Additional fixes for XML handler and listing builder
authorRoland Häder <roland@mxchange.org>
Sat, 10 Nov 2012 15:44:07 +0000 (15:44 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 10 Nov 2012 15:44:07 +0000 (15:44 +0000)
inc/callback-functions.php
inc/functions.php
inc/modules/admin/admin-inc.php
inc/mysql-manager.php
inc/xml-functions.php
templates/xml/admin/admin_delete_show_user_subid.xml
templates/xml/admin/admin_edit_show_user_subid.xml

index 8f5aada84de8ae366c08753432fa58b16e982e50..d42f017e3ae3fc1ca7f0539e8fbcfc297c493790 100644 (file)
@@ -1247,7 +1247,10 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
                if (trim($attributes['NAME']) == '') {
                        // Numerical index
                        //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',VALUE[' . gettype($attributes['VALUE']) . ']=' . $attributes['VALUE'] . ' - NUMERICAL!');
-                       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$extraKey][] = $attributes['VALUE'];
+                       if (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$extraKey])) {
+                               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$extraKey] = array();
+                       } // END - if
+                       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$extraKey][count($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$extraKey])] = $attributes['VALUE'];
                } elseif (!empty($key)) {
                        // Use from $key
                        //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',VALUE[' . gettype($attributes['VALUE']) . ']=' . $attributes['VALUE'] . ' - KEY! (key=' . $attributes[$key] . ')');
@@ -1279,7 +1282,10 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
 
                // Add the entry
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',ALIAS[' . gettype($attributes['ALIAS']) . ']=' . $attributes['ALIAS'] . ',FUNCTION[' . gettype($attributes['FUNCTION']) . ']=' . $attributes['FUNCTION'] . ' - FUNCTION! (VALUE=' . $attributes['VALUE'] . ')');
-               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $array;
+               if (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element])) {
+                       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element] = array();
+               } // END - if
+               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][count($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element])] = $array;
        } elseif ((isset($attributes['CONDITION'])) && (isset($attributes['LOOK-FOR']))) {
                // CONDITION/LOOK-FOR detected
                // Init array
@@ -1291,7 +1297,10 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
                );
 
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CONDITION[' . gettype($attributes['CONDITION']) . ']=' . $attributes['CONDITION'] . ',LOOK-FOR[' . gettype($attributes['LOOK-FOR']) . ']=' . $attributes['LOOK-FOR'] . ' - CONDITION! (VALUE=' . $attributes['VALUE'] . ')');
-               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $array;
+               if (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element])) {
+                       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element] = array();
+               } // END - if
+               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][count($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element])] = $array;
        } elseif ((isset($attributes['CONDITION'])) && (isset($attributes['NAME']))) {
                // CONDITION/NAME detected
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CONDITION[' . gettype($attributes['CONDITION']) . ']=' . $attributes['CONDITION'] . ',NAME[' . gettype($attributes['NAME']) . ']=' . $attributes['NAME'] . ' - CONDITION!');
@@ -1307,11 +1316,17 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
        } elseif (isset($attributes['COLUMN'])) {
                // COLUMN/VALUE detected
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',VALUE[' . gettype($attributes['VALUE']) . ']=' . $attributes['VALUE'] . ',COLUMN[' . gettype($attributes['COLUMN']) . ']=' . $attributes['COLUMN'] . ' - COLUMN!');
-               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['COLUMN']][] = $attributes['VALUE'];
+               if (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['COLUMN']])) {
+                       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['COLUMN']] = array();
+               } // END - if
+               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['COLUMN']][count($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['COLUMN']])] = $attributes['VALUE'];
        } elseif ((!isset($attributes['NAME'])) || (trim($attributes['NAME']) == '')) {
                // Numerical index
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',VALUE[' . gettype($attributes['VALUE']) . ']=' . $attributes['VALUE'] . ' - NUMERICAL!');
-               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $attributes['VALUE'];
+               if (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element])) {
+                       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element] = array();
+               } // END - if
+               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][count($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element])] = $attributes['VALUE'];
        } elseif (isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['NAME']])) {
                // Already created
                reportBug(__FUNCTION__, __LINE__, 'NAME=' . $attributes['NAME'] . ' already addded to ' . $element . ' attributes=<pre>' . print_r($attributes, TRUE) . '</pre>');
index 5fae9029ade664d4af5dfd37be0eec38f98d5d70..ff6852bb84205a2ef5a390f230ec227af64273af 100644 (file)
@@ -1369,6 +1369,24 @@ function doHandleExtraValues ($filterFunctions, $extraValues, $key, $entries, $u
                        // Then log it
                        /* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'search=' . $search . ',filterFunctions=' . $filterFunctions[$search] . ',extraValues=' . $extraValues[$key] . ',key=' . $key . ',id=' . $id . ',entries[' . gettype($entries) . ']=' . $entries . ' - AFTER!');
                } // END - if
+       } elseif ((!empty($filterFunctions[$search])) && (!empty($extraValues[$search]))) {
+               // Debug mode enabled?
+               if (isDebugModeEnabled()) {
+                       // Then log it
+                       /* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'search=' . $search . ',filterFunctions=' . $filterFunctions[$search] . ',key=' . $key . ',search=' . $search . ',entries[' . gettype($entries) . ']=' . $entries . ' - BEFORE!');
+               } // END - if
+
+               // Handle extra values
+               $entries = handleExtraValues($filterFunctions[$search], $entries, $extraValues[$search]);
+
+               // Debug mode enabled?
+               if (isDebugModeEnabled()) {
+                       // Then log it
+                       /* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'search=' . $search . ',filterFunctions=' . $filterFunctions[$search] . ',key=' . $key . ',search=' . $search . ',entries[' . gettype($entries) . ']=' . $entries . ' - AFTER!');
+               } // END - if
+
+               // Make sure entries is not bool, then something went wrong
+               assert(!is_bool($entries));
        } elseif (!empty($filterFunctions[$search])) {
                // Debug mode enabled?
                if (isDebugModeEnabled()) {
index a9ba79610137c0a415f9006d98b13535aaa9573b..e8257ceaeed4a77ec53c85441fe4bc4c10f01b5f 100644 (file)
@@ -495,7 +495,7 @@ ORDER BY
        while ($content = SQL_FETCHARRAY($result)) {
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . intval($userid) . '/' . $content['userid']);
                $OUT .= '<option value="' . bigintval($content['userid']) . '"';
-               if (bigintval($userid) === bigintval($content['userid'])) {
+               if (bigintval($userid, FALSE, FALSE) === bigintval($content['userid'])) {
                        $OUT .= ' selected="selected"';
                } // END - if
                $OUT .= '>' . $content['surname'] . ' ' . $content['family'] . ' (' . bigintval($content['userid']) . ')</option>';
index fad3d46bc2860332d0d8358e6f363daa47edd8af..2b48644bdfcb8477ceaf7af1bc84c1d37995937a 100644 (file)
@@ -2331,7 +2331,16 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter
                        // Filter all data
                        foreach ($row as $key => $value) {
                                // Search index
-                               $idx = searchXmlArray($key, $columns, 'column');
+                               $idx  = searchXmlArray($key, $columns, 'column');
+
+                               // Default name is NULL
+                               $name = NULL;
+
+                               // Is the name there?
+                               if (isset($columns[$idx]['name'])) {
+                                       // Then use it
+                                       $name = $columns[$idx]['name'];
+                               } // END - if
 
                                // Skip any missing entries
                                if ($idx === FALSE) {
@@ -2362,7 +2371,8 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter
 
                                // Try to handle call-back functions and/or extra values
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'idx=' . $idx . ',row[' . $key . ']=' . $row[$key]);
-                               $row[$key] = doHandleExtraValues($filterFunctions, $extraValues, $idx, $row[$key], $userIdColumn, $key);
+                               //if ($key == 'forced_campaign_created') die($idx.'=<pre>'.print_r($columns,true).'</pre><pre>'.print_r($extraValues,true).'</pre>');
+                               $row[$key] = doHandleExtraValues($filterFunctions, $extraValues, $idx, $row[$key], $userIdColumn, ((!is_null($name)) ? $name : $key));
                        } // END - foreach
 
                        // Then list it
index 2a11ccc4b72ebcfc413fd323abf9af4262614a4c..ff62e48d5d128204f01abb83df4a700338e9fc99 100644 (file)
@@ -329,6 +329,7 @@ function searchXmlArray ($value, $columns, $childKey) {
                assert(isset($columnArray[$childKey]));
 
                // Now is it what we are looking for?
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ',key=' . $key . ',childKey=' . $childKey . ',columnArray=' . $columnArray[$childKey]);
                if ($columnArray[$childKey] === $value) {
                        // Remember this match
                        $return = $key;
index f5862fed306e7d574d33ed897802e55e2d8fd74a..db163996c9462f88e7d926092ff6caf68ac964b5 100644 (file)
@@ -44,7 +44,7 @@ MA  02110-1301  USA
                //-->
                <database-column-list-entry name="" type="string" table="" value="id" alias="" function="" />
                <database-column-list-entry name="" type="string" table="" value="userid" alias="" function="" />
-               <database-column-list-entry name="subid_added" type="string" table="" value="subid_added" alias="subid_added" function="UNIX_TIMESTAMP" />
+               <database-column-list-entry name="added_list" type="string" table="" value="subid_added" alias="subid_added" function="UNIX_TIMESTAMP" />
                <database-column-list-entry name="" type="string" table="" value="subid" alias="" function="" />
        </database-column-list>
        <!--
@@ -56,7 +56,7 @@ MA  02110-1301  USA
                A call-back function list entry
                //-->
                <callback-function-list-entry name="" type="string" value="bigintval" />
-               <callback-function-list-entry name="subid_added" type="string" value="generateDateTime" />
+               <callback-function-list-entry name="added_list" type="string" value="generateDateTime" />
        </callback-function-list>
        <!--
        Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
index faecde36b9bc83fdbe7738dc5ee722966a89951f..1b108d2bdf0dd4f7c89ee9e23470e24ed0227e2f 100644 (file)
@@ -43,7 +43,7 @@ MA  02110-1301  USA
                numerical column names?
                //-->
                <database-column-list-entry name="" type="string" table="" value="id" alias="" function="" />
-               <database-column-list-entry name="subid_added" type="string" table="" value="subid_added" alias="subid_added" function="UNIX_TIMESTAMP" />
+               <database-column-list-entry name="added_list" type="string" table="" value="subid_added" alias="subid_added" function="UNIX_TIMESTAMP" />
                <database-column-list-entry name="" type="string" table="" value="subid" alias="" function="" />
        </database-column-list>
        <!--
@@ -55,7 +55,7 @@ MA  02110-1301  USA
                A call-back function list entry
                //-->
                <callback-function-list-entry name="" type="string" value="bigintval" />
-               <callback-function-list-entry name="subid_added" type="string" value="generateDateTime" />
+               <callback-function-list-entry name="added_list" type="string" value="generateDateTime" />
        </callback-function-list>
        <!--
        Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array