diff options
author | Phil Davis <phil.davis@inf.org> | 2015-05-15 17:47:00 +0545 |
---|---|---|
committer | Phil Davis <phil.davis@inf.org> | 2015-05-15 17:47:00 +0545 |
commit | f8ac4407a8817d9513ffb7fd491f929b6232f487 (patch) | |
tree | d5c0a88dbb08aa5b5e5b52648f8f5b55ab244acd /usr/local/www/pkg.php | |
parent | 83c380c3eb0ee38f591a455aabee40d0a543bb95 (diff) | |
download | pfsense-f8ac4407a8817d9513ffb7fd491f929b6232f487.zip pfsense-f8ac4407a8817d9513ffb7fd491f929b6232f487.tar.gz |
Code style WWW pkg
The syntax of these all seems good. Because the 2.3-DEVELOPMENT master
does not currently have get_pkg_info implemented, the available packages
tab always says "Unable to retrieve package info...".
But I don't think I broke any code.
This is integrated with the little changes for startdisplayingat var in
pkg.php
Diffstat (limited to 'usr/local/www/pkg.php')
-rwxr-xr-x | usr/local/www/pkg.php | 776 |
1 files changed, 410 insertions, 366 deletions
diff --git a/usr/local/www/pkg.php b/usr/local/www/pkg.php index 9173965..9b0ae61 100755 --- a/usr/local/www/pkg.php +++ b/usr/local/www/pkg.php @@ -1,31 +1,31 @@ <?php /* $Id$ */ /* - pkg.php - Copyright (C) 2013-2015 Electric Sheep Fencing, LP - Copyright (C) 2004-2012 Scott Ullrich <sullrich@gmail.com> - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. + pkg.php + Copyright (C) 2013-2015 Electric Sheep Fencing, LP + Copyright (C) 2004-2012 Scott Ullrich <sullrich@gmail.com> + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ /* pfSense_MODULE: pkgs @@ -46,25 +46,25 @@ function gentitle_pkg($pgname) { return $config['system']['hostname'] . "." . $config['system']['domain'] . " - " . $pgname; } -function domTT_title($title_msg){ +function domTT_title($title_msg) { print "onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\" onmouseover=\"domTT_activate(this, event, 'content', '".gettext($title_msg)."', 'trail', true, 'delay', 0, 'fade', 'both', 'fadeMax', 93, 'styleClass', 'niceTitle');\""; } $xml = $_REQUEST['xml']; -if($xml == "") { +if ($xml == "") { print_info_box_np(gettext("ERROR: No package defined.")); exit; } else { - if(file_exists("/usr/local/pkg/" . $xml)) + if (file_exists("/usr/local/pkg/" . $xml)) { $pkg = parse_xml_config_pkg("/usr/local/pkg/" . $xml, "packagegui"); - else { + } else { echo "File not found " . htmlspecialchars($xml); exit; } } -if($pkg['donotsave'] <> "") { +if ($pkg['donotsave'] <> "") { header("Location: pkg_edit.php?xml=" . $xml); exit; } @@ -78,62 +78,67 @@ $section = $pkg['menu'][0]['section']; $config_path = $pkg['configpath']; $title = $pkg['title']; -if($_REQUEST['startdisplayingat']) +if ($_REQUEST['startdisplayingat']) { $startdisplayingat = $_REQUEST['startdisplayingat']; +} -if($_REQUEST['display_maximum_rows']) - if($_REQUEST['display_maximum_rows']) +if ($_REQUEST['display_maximum_rows']) { + if ($_REQUEST['display_maximum_rows']) { $display_maximum_rows = $_REQUEST['display_maximum_rows']; + } +} $evaledvar = $config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']; if ($_GET['act'] == "update") { - - if(is_array($config['installedpackages'][$pkg['name']]) && $pkg['name'] != "" && $_REQUEST['ids'] !=""){ - #get current values - $current_values=$config['installedpackages'][$pkg['name']]['config']; - #get updated ids - parse_str($_REQUEST['ids'], $update_list); - #sort ids to know what to change - #usefull to do not loose data when using sorting and paging - $sort_list=$update_list['ids']; - sort($sort_list); - #apply updates - foreach($update_list['ids'] as $key=> $value){ - $config['installedpackages'][$pkg['name']]['config'][$sort_list[$key]]=$current_values[$update_list['ids'][$key]]; - } - #save current config - write_config(); - #sync package - eval ("{$pkg['custom_php_resync_config_command']}"); - } - #function called via jquery, no need to continue after save changes. - exit; + + if (is_array($config['installedpackages'][$pkg['name']]) && $pkg['name'] != "" && $_REQUEST['ids'] !="") { + #get current values + $current_values=$config['installedpackages'][$pkg['name']]['config']; + #get updated ids + parse_str($_REQUEST['ids'], $update_list); + #sort ids to know what to change + #useful to do not lose data when using sorting and paging + $sort_list=$update_list['ids']; + sort($sort_list); + #apply updates + foreach ($update_list['ids'] as $key=> $value) { + $config['installedpackages'][$pkg['name']]['config'][$sort_list[$key]]=$current_values[$update_list['ids'][$key]]; + } + #save current config + write_config(); + #sync package + eval ("{$pkg['custom_php_resync_config_command']}"); + } + #function called via jquery, no need to continue after save changes. + exit; } if ($_GET['act'] == "del") { - // loop through our fieldnames and automatically setup the fieldnames - // in the environment. ie: a fieldname of username with a value of - // testuser would automatically eval $username = "testuser"; - foreach ($evaledvar as $ip) { - if($pkg['adddeleteeditpagefields']['columnitem']) - foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { - ${xml_safe_fieldname($column['fielddescr'])} = $ip[xml_safe_fieldname($column['fieldname'])]; - } + // loop through our fieldnames and automatically setup the fieldnames + // in the environment. ie: a fieldname of username with a value of + // testuser would automatically eval $username = "testuser"; + foreach ($evaledvar as $ip) { + if ($pkg['adddeleteeditpagefields']['columnitem']) { + foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { + ${xml_safe_fieldname($column['fielddescr'])} = $ip[xml_safe_fieldname($column['fieldname'])]; + } } + } - $a_pkg = &$config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']; + $a_pkg = &$config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']; - if ($a_pkg[$_GET['id']]) { - unset($a_pkg[$_GET['id']]); - write_config(); - if($pkg['custom_delete_php_command'] <> "") { - if($pkg['custom_php_command_before_form'] <> "") - eval($pkg['custom_php_command_before_form']); - eval($pkg['custom_delete_php_command']); + if ($a_pkg[$_GET['id']]) { + unset($a_pkg[$_GET['id']]); + write_config(); + if ($pkg['custom_delete_php_command'] <> "") { + if ($pkg['custom_php_command_before_form'] <> "") { + eval($pkg['custom_php_command_before_form']); } - header("Location: pkg.php?xml=" . $xml); - exit; - } + eval($pkg['custom_delete_php_command']); + } + header("Location: pkg.php?xml=" . $xml); + exit; + } } ob_start(); @@ -141,11 +146,13 @@ ob_start(); $iflist = get_configured_interface_with_descr(false, true); $evaledvar = $config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']; -if($pkg['custom_php_global_functions'] <> "") +if ($pkg['custom_php_global_functions'] <> "") { eval($pkg['custom_php_global_functions']); +} -if($pkg['custom_php_command_before_form'] <> "") +if ($pkg['custom_php_command_before_form'] <> "") { eval($pkg['custom_php_command_before_form']); +} $pgtitle = array($title); include("head.inc"); @@ -163,368 +170,405 @@ include("head.inc"); function setFilter(filtertext) { jQuery('#pkg_filter').val(filtertext); document.pkgform.submit(); - } + } <?php - if($pkg['adddeleteeditpagefields']['movable']){ + if ($pkg['adddeleteeditpagefields']['movable']) { ?> - jQuery(document).ready(function(){ + jQuery(document).ready(function() { jQuery('#mainarea table tbody').sortable({ items: 'tr.sortable', cursor: 'move', distance: 10, opacity: 0.8, - helper: function(e,ui){ - ui.children().each(function(){ - jQuery(this).width(jQuery(this).width()); + helper: function(e,ui) { + ui.children().each(function() { + jQuery(this).width(jQuery(this).width()); }); - return ui; + return ui; }, }); }); function save_changes_to_xml(xml) { - var ids=jQuery('#mainarea table tbody').sortable('serialize',{key:"ids[]"}); - var strloading="<img src='/themes/<?= $g['theme']; ?>/images/misc/loader.gif' alt='loader' /> " + "<?=gettext('Saving changes...');?>"; - if(confirm("<?=gettext("Do you really want to save changes?");?>")){ - jQuery.ajax({ - type: 'get', - cache: false, - url: "<?=$_SERVER['SCRIPT_NAME'];?>", - data: {xml:'<?=$xml?>', act:'update', ids: ids}, - beforeSend: function(){ - jQuery('#savemsg').empty().html(strloading); - }, - error: function(data){ - jQuery('#savemsg').empty().html('Error:' + data); - }, - success: function(data){ - jQuery('#savemsg').empty().html(data); - } - }); - } + var ids=jQuery('#mainarea table tbody').sortable('serialize',{key:"ids[]"}); + var strloading="<img src='/themes/<?= $g['theme']; ?>/images/misc/loader.gif' alt='loader' /> " + "<?=gettext('Saving changes...');?>"; + if (confirm("<?=gettext("Do you really want to save changes?");?>")) { + jQuery.ajax({ + type: 'get', + cache: false, + url: "<?=$_SERVER['SCRIPT_NAME'];?>", + data: {xml:'<?=$xml?>', act:'update', ids: ids}, + beforeSend: function() { + jQuery('#savemsg').empty().html(strloading); + }, + error: function(data) { + jQuery('#savemsg').empty().html('Error:' + data); + }, + success: function(data) { + jQuery('#savemsg').empty().html(data); + } + }); + } } - <?php + <?php } ?> //]]> </script> <form action="pkg.php" name="pkgform" method="get"> <input type='hidden' name='xml' value='<?=$_REQUEST['xml']?>' /> -<?php if($_GET['savemsg'] <> "") $savemsg = htmlspecialchars($_GET['savemsg']); ?> +<?php if ($_GET['savemsg'] <> "") $savemsg = htmlspecialchars($_GET['savemsg']); ?> <div id="savemsg"></div> <?php if ($savemsg) print_info_box($savemsg); ?> <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="package settings"> <?php -if ($pkg['tabs'] <> "") { - $tab_array = array(); - foreach($pkg['tabs']['tab'] as $tab) { - if($tab['tab_level']) - $tab_level = $tab['tab_level']; - else - $tab_level = 1; - if(isset($tab['active'])) { - $active = true; - } else { - $active = false; - } - if(isset($tab['no_drop_down'])) - $no_drop_down = true; - $urltmp = ""; - if($tab['url'] <> "") $urltmp = $tab['url']; - if($tab['xml'] <> "") $urltmp = "pkg_edit.php?xml=" . $tab['xml']; - - $addresswithport = getenv("HTTP_HOST"); - $colonpos = strpos($addresswithport, ":"); - if ($colonpos !== False) { - //my url is actually just the IP address of the pfsense box - $myurl = substr($addresswithport, 0, $colonpos); - } else { - $myurl = $addresswithport; - } - // eval url so that above $myurl item can be processed if need be. - $url = str_replace('$myurl', $myurl, $urltmp); - - $tab_array[$tab_level][] = array( - $tab['text'], - $active, - $url - ); - } - - ksort($tab_array); - foreach($tab_array as $tab) { - echo '<tr><td>'; - display_top_tabs($tab, $no_drop_down); - echo '</td></tr>'; - } -} + if ($pkg['tabs'] <> "") { + $tab_array = array(); + foreach ($pkg['tabs']['tab'] as $tab) { + if ($tab['tab_level']) { + $tab_level = $tab['tab_level']; + } else { + $tab_level = 1; + } + if (isset($tab['active'])) { + $active = true; + } else { + $active = false; + } + if (isset($tab['no_drop_down'])) { + $no_drop_down = true; + } + $urltmp = ""; + if ($tab['url'] <> "") { + $urltmp = $tab['url']; + } + if ($tab['xml'] <> "") { + $urltmp = "pkg_edit.php?xml=" . $tab['xml']; + } + + $addresswithport = getenv("HTTP_HOST"); + $colonpos = strpos($addresswithport, ":"); + if ($colonpos !== False) { + //my url is actually just the IP address of the pfsense box + $myurl = substr($addresswithport, 0, $colonpos); + } else { + $myurl = $addresswithport; + } + // eval url so that above $myurl item can be processed if need be. + $url = str_replace('$myurl', $myurl, $urltmp); + + $tab_array[$tab_level][] = array( + $tab['text'], + $active, + $url + ); + } + + ksort($tab_array); + foreach ($tab_array as $tab) { + echo '<tr><td>'; + display_top_tabs($tab, $no_drop_down); + echo '</td></tr>'; + } + } ?> <tr><td><div id="mainarea"><table width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area"> <tr> <td class="tabcont"> <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="tabs"> <?php - /* Handle filtering bar A-Z */ - $include_filtering_inputbox = false; - $colspan = 0; - if($pkg['adddeleteeditpagefields']['columnitem'] <> "") - foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) - $colspan++; - if($pkg['fields']['field']) { - // First find the sorting type field if it exists - foreach($pkg['fields']['field'] as $field) { - if($field['type'] == "sorting") { - if(isset($field['include_filtering_inputbox'])) - $include_filtering_inputbox = true; - if($display_maximum_rows < 1) - if($field['display_maximum_rows']) - $display_maximum_rows = $field['display_maximum_rows']; - echo "<tr><td class='listhdrr' colspan='$colspan' align='center'>"; - echo "Filter by: "; - $isfirst = true; - for($char = 65; $char < 91; $char++) { - if(!$isfirst) - echo " | "; - echo "<a href=\"#\" onclick=\"setFilter('" . chr($char) . "');\">" . chr($char) . "</a>"; - $isfirst = false; - } - echo "</td></tr>"; - echo "<tr><td class='listhdrr' colspan='$colspan' align='center'>"; - if($field['sortablefields']) { - echo "Filter field: <select name='pkg_filter_type'>"; - foreach($field['sortablefields']['item'] as $si) { - if($si['name'] == $_REQUEST['pkg_filter_type']) - $SELECTED = "selected=\"selected\""; - else - $SELECTED = ""; - echo "<option value='{$si['name']}' {$SELECTED}>{$si['name']}</option>"; - } - echo "</select>"; - } - if($include_filtering_inputbox) - echo " Filter text: <input id='pkg_filter' name='pkg_filter' value='" . $_REQUEST['pkg_filter'] . "' /> <input type='submit' value='Filter' />"; - echo "</td></tr><tr><td><font size='-3'> </font></td></tr>"; + /* Handle filtering bar A-Z */ + $include_filtering_inputbox = false; + $colspan = 0; + if ($pkg['adddeleteeditpagefields']['columnitem'] <> "") { + foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { + $colspan++; + } + } + if ($pkg['fields']['field']) { + // First find the sorting type field if it exists + foreach ($pkg['fields']['field'] as $field) { + if ($field['type'] == "sorting") { + if (isset($field['include_filtering_inputbox'])) { + $include_filtering_inputbox = true; + } + if ($display_maximum_rows < 1) { + if ($field['display_maximum_rows']) { + $display_maximum_rows = $field['display_maximum_rows']; + } + } + echo "<tr><td class='listhdrr' colspan='$colspan' align='center'>"; + echo "Filter by: "; + $isfirst = true; + for ($char = 65; $char < 91; $char++) { + if (!$isfirst) { + echo " | "; + } + echo "<a href=\"#\" onclick=\"setFilter('" . chr($char) . "');\">" . chr($char) . "</a>"; + $isfirst = false; + } + echo "</td></tr>"; + echo "<tr><td class='listhdrr' colspan='$colspan' align='center'>"; + if ($field['sortablefields']) { + echo "Filter field: <select name='pkg_filter_type'>"; + foreach ($field['sortablefields']['item'] as $si) { + if ($si['name'] == $_REQUEST['pkg_filter_type']) { + $SELECTED = "selected=\"selected\""; + } else { + $SELECTED = ""; } + echo "<option value='{$si['name']}' {$SELECTED}>{$si['name']}</option>"; } + echo "</select>"; } + if ($include_filtering_inputbox) { + echo " Filter text: <input id='pkg_filter' name='pkg_filter' value='" . $_REQUEST['pkg_filter'] . "' /> <input type='submit' value='Filter' />"; + } + echo "</td></tr><tr><td><font size='-3'> </font></td></tr>"; + } + } + } ?> <tr> <?php - if($display_maximum_rows) { - $totalpages = ceil(round((count($evaledvar) / $display_maximum_rows),9)); - $page = 1; + if ($display_maximum_rows) { + $totalpages = ceil(round((count($evaledvar) / $display_maximum_rows),9)); + $page = 1; + $tmpcount = 0; + $tmppp = 0; + if (is_array($evaledvar)) { + foreach ($evaledvar as $ipa) { + if ($tmpcount == $display_maximum_rows) { + $page++; $tmpcount = 0; - $tmppp = 0; - if(is_array($evaledvar)) { - foreach ($evaledvar as $ipa) { - if($tmpcount == $display_maximum_rows) { - $page++; - $tmpcount = 0; - } - if($tmppp == $startdisplayingat) - break; - $tmpcount++; - $tmppp++; - } - } - echo "<tr><td colspan='" . count($pkg['adddeleteeditpagefields']['columnitem']) . "'>"; - echo "<table width='100%' summary=''>"; - echo "<tr>"; - echo "<td align='left'>Displaying page $page of $totalpages</b></td>"; - echo "<td align='right'>Rows per page: <select onchange='document.pkgform.submit();' name='display_maximum_rows'>"; - for($x=0; $x<250; $x++) { - if($x == $display_maximum_rows) - $SELECTED = "selected=\"selected\""; - else - $SELECTED = ""; - echo "<option value='$x' $SELECTED>$x</option>\n"; - $x=$x+4; - } - echo "</select></td></tr>"; - echo "</table>"; - echo "</td></tr>"; } - $cols = 0; - if($pkg['adddeleteeditpagefields']['columnitem'] <> "") { - foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { - echo "<td class=\"listhdrr\">" . $column['fielddescr'] . "</td>"; - $cols++; - } + if ($tmppp == $startdisplayingat) { + break; } - echo "</tr>"; - $i=0; - $pagination_startingrow=0; - $pagination_counter=0; - if($evaledvar) - foreach ($evaledvar as $ip) { - if($startdisplayingat) { - if($i < $startdisplayingat) { - $i++; - continue; - } + $tmpcount++; + $tmppp++; + } + } + echo "<tr><td colspan='" . count($pkg['adddeleteeditpagefields']['columnitem']) . "'>"; + echo "<table width='100%' summary=''>"; + echo "<tr>"; + echo "<td align='left'>Displaying page $page of $totalpages</b></td>"; + echo "<td align='right'>Rows per page: <select onchange='document.pkgform.submit();' name='display_maximum_rows'>"; + for ($x=0; $x<250; $x++) { + if ($x == $display_maximum_rows) { + $SELECTED = "selected=\"selected\""; + } else { + $SELECTED = ""; + } + echo "<option value='$x' $SELECTED>$x</option>\n"; + $x = $x + 4; + } + echo "</select></td></tr>"; + echo "</table>"; + echo "</td></tr>"; + } + $cols = 0; + if ($pkg['adddeleteeditpagefields']['columnitem'] <> "") { + foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { + echo "<td class=\"listhdrr\">" . $column['fielddescr'] . "</td>"; + $cols++; + } + } +?> + </tr> +<?php + $i = 0; + $pagination_startingrow=0; + $pagination_counter=0; + if ($evaledvar) { + foreach ($evaledvar as $ip) { + if ($startdisplayingat) { + if ($i < $startdisplayingat) { + $i++; + continue; } - if($_REQUEST['pkg_filter']) { - // Handle filterered items - if($pkg['fields']['field'] && !$filter_regex) { - // First find the sorting type field if it exists - foreach($pkg['fields']['field'] as $field) { - if($field['type'] == "sorting") { - if($field['sortablefields']['item']) { - foreach($field['sortablefields']['item'] as $sf) { - if($sf['name'] == $_REQUEST['pkg_filter_type']) { - $filter_fieldname = $sf['fieldname']; - #Use a default regex on sortable fields when none is declared - if($sf['regex']) - $filter_regex = str_replace("%FILTERTEXT%", $_REQUEST['pkg_filter'], trim($sf['regex'])); - else - $filter_regex = "/{$_REQUEST['pkg_filter']}/i"; + } + if ($_REQUEST['pkg_filter']) { + // Handle filtered items + if ($pkg['fields']['field'] && !$filter_regex) { + // First find the sorting type field if it exists + foreach ($pkg['fields']['field'] as $field) { + if ($field['type'] == "sorting") { + if ($field['sortablefields']['item']) { + foreach ($field['sortablefields']['item'] as $sf) { + if ($sf['name'] == $_REQUEST['pkg_filter_type']) { + $filter_fieldname = $sf['fieldname']; + #Use a default regex on sortable fields when none is declared + if ($sf['regex']) { + $filter_regex = str_replace("%FILTERTEXT%", $_REQUEST['pkg_filter'], trim($sf['regex'])); + } else { + $filter_regex = "/{$_REQUEST['pkg_filter']}/i"; } } } } } } - // Do we have something to filter on? - unset($filter_matches); - if($pkg['adddeleteeditpagefields']['columnitem'] <> "") { - foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { - $fieldname = $ip[xml_safe_fieldname($column['fieldname'])]; - if($column['fieldname'] == $filter_fieldname) { - if($filter_regex) { - //echo "$filter_regex - $fieldname<p/>"; - preg_match($filter_regex, $fieldname, $filter_matches); - break; - } + } + // Do we have something to filter on? + unset($filter_matches); + if ($pkg['adddeleteeditpagefields']['columnitem'] <> "") { + foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { + $fieldname = $ip[xml_safe_fieldname($column['fieldname'])]; + if ($column['fieldname'] == $filter_fieldname) { + if ($filter_regex) { + //echo "$filter_regex - $fieldname<p/>"; + preg_match($filter_regex, $fieldname, $filter_matches); + break; } } } - if(!$filter_matches) { - $i++; - continue; - } } - if($pkg['adddeleteeditpagefields']['movable']) - echo "<tr valign=\"top\" class=\"sortable\" id=\"id_{$i}\">\n"; - else - echo "<tr valign=\"top\">\n"; - if($pkg['adddeleteeditpagefields']['columnitem'] <> "") - foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { - if ($column['fieldname'] == "description") - $class = "listbg"; - else - $class = "listlr"; + if (!$filter_matches) { + $i++; + continue; + } + } + if ($pkg['adddeleteeditpagefields']['movable']) { + echo "<tr valign=\"top\" class=\"sortable\" id=\"id_{$i}\">\n"; + } else { + echo "<tr valign=\"top\">\n"; + } + if ($pkg['adddeleteeditpagefields']['columnitem'] <> "") { + foreach ($pkg['adddeleteeditpagefields']['columnitem'] as $column) { + if ($column['fieldname'] == "description") { + $class = "listbg"; + } else { + $class = "listlr"; + } ?> - <td class="<?=$class;?>" ondblclick="document.location='pkg_edit.php?xml=<?=$xml?>&act=edit&id=<?=$i;?>';"> - <?php - $fieldname = $ip[xml_safe_fieldname($column['fieldname'])]; - #Check if columnitem has a type field declared - if($column['type'] == "checkbox") { - if($fieldname == "") { - echo gettext("No"); - } else { - echo gettext("Yes"); - } - } else if ($column['type'] == "interface") { - echo $column['prefix'] . $iflist[$fieldname] . $column['suffix']; - } else { - #Check if columnitem has an encoding field declared - if ($column['encoding'] == "base64") - echo $column['prefix'] . base64_decode($fieldname) . $column['suffix']; - #Check if there is a custom info to show when $fieldname is not empty - else if($column['listmodeon'] && $fieldname != "") - echo $column['prefix'] . gettext($column['listmodeon']). $column['suffix']; - #Check if there is a custom info to show when $fieldname is empty - else if($column['listmodeoff'] && $fieldname == "") - echo $column['prefix'] .gettext($column['listmodeoff']). $column['suffix']; - else - echo $column['prefix'] . $fieldname ." ". $column['suffix']; - } - ?> - </td> + <td class="<?=$class;?>" ondblclick="document.location='pkg_edit.php?xml=<?=$xml?>&act=edit&id=<?=$i;?>';"> <?php + $fieldname = $ip[xml_safe_fieldname($column['fieldname'])]; + #Check if columnitem has a type field declared + if ($column['type'] == "checkbox") { + if ($fieldname == "") { + echo gettext("No"); + } else { + echo gettext("Yes"); + } + } else if ($column['type'] == "interface") { + echo $column['prefix'] . $iflist[$fieldname] . $column['suffix']; + } else { + #Check if columnitem has an encoding field declared + if ($column['encoding'] == "base64") { + echo $column['prefix'] . base64_decode($fieldname) . $column['suffix']; + #Check if there is a custom info to show when $fieldname is not empty + } else if ($column['listmodeon'] && $fieldname != "") { + echo $column['prefix'] . gettext($column['listmodeon']). $column['suffix']; + #Check if there is a custom info to show when $fieldname is empty + } else if ($column['listmodeoff'] && $fieldname == "") { + echo $column['prefix'] .gettext($column['listmodeoff']). $column['suffix']; + } else { + echo $column['prefix'] . $fieldname ." ". $column['suffix']; + } } ?> - <td valign="middle" class="list nowrap"> - <table border="0" cellspacing="0" cellpadding="1" summary="icons"> - <tr> - <?php - #Show custom description to edit button if defined - $edit_msg=($pkg['adddeleteeditpagefields']['edittext']?$pkg['adddeleteeditpagefields']['edittext']:"Edit this item");?> - <td valign="middle"><a href="pkg_edit.php?xml=<?=$xml?>&act=edit&id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" <?=domTT_title($edit_msg)?> alt="edit" /></a></td> - <?php - #Show custom description to delete button if defined - $delete_msg=($pkg['adddeleteeditpagefields']['deletetext']?$pkg['adddeleteeditpagefields']['deletetext']:"Delete this item");?> - <td valign="middle"><a href="pkg.php?xml=<?=$xml?>&act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this item?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" <?=domTT_title($delete_msg)?> alt="delete" /></a></td> - </tr> - </table> - </td> + </td> <?php - echo "</tr>\n"; - // Handle pagination and display_maximum_rows - if($display_maximum_rows) { - if($pagination_counter == ($display_maximum_rows-1) or - $i == (count($evaledvar)-1)) { - $colcount = count($pkg['adddeleteeditpagefields']['columnitem']); - $final_footer = ""; - $final_footer .= "<tr><td colspan='$colcount'>"; - $final_footer .= "<table width='100%' summary=''><tr>"; - $final_footer .= "<td align='left'>"; - $startingat = $startdisplayingat - $display_maximum_rows; - if($startingat > -1) { - $final_footer .= "<a href='pkg.php?xml=" . $_REQUEST['xml'] . "&startdisplayingat={$startingat}&display_maximum_rows={$display_maximum_rows}'>"; - } else if ($startdisplayingat > 1) { - $final_footer .= "<a href='pkg.php?xml=" . $_REQUEST['xml'] . "&startdisplayingat=0&display_maximum_rows={$display_maximum_rows}'>"; - } - $final_footer .= "<font size='2'><< Previous page</font></a>"; - if($tmppp + $display_maximum_rows > count($evaledvar)) - $endingrecord = count($evaledvar); - else - $endingrecord = $tmppp + $display_maximum_rows; - $final_footer .= "</td><td align='center'>"; - $tmppp++; - $final_footer .= "<font size='2'>Displaying {$tmppp} - {$endingrecord} / " . count($evaledvar) . " records"; - $final_footer .= "</font></td><td align='right'> "; - if(($i+1) < count($evaledvar)) - $final_footer .= "<a href='pkg.php?xml=" . $_REQUEST['xml'] . "&startdisplayingat=" . ($startdisplayingat + $display_maximum_rows) . "&display_maximum_rows={$display_maximum_rows}'>"; - $final_footer .= "<font size='2'>Next page >></font></a>"; - $final_footer .= "</td></tr></table></td></tr>"; - $i = count($evaledvar); - break; + } // foreach columnitem + } // if columnitem +?> + <td valign="middle" class="list nowrap"> + <table border="0" cellspacing="0" cellpadding="1" summary="icons"> + <tr> +<?php + #Show custom description to edit button if defined + $edit_msg=($pkg['adddeleteeditpagefields']['edittext']?$pkg['adddeleteeditpagefields']['edittext']:"Edit this item"); +?> + <td valign="middle"><a href="pkg_edit.php?xml=<?=$xml?>&act=edit&id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" <?=domTT_title($edit_msg)?> alt="edit" /></a></td> +<?php + #Show custom description to delete button if defined + $delete_msg=($pkg['adddeleteeditpagefields']['deletetext']?$pkg['adddeleteeditpagefields']['deletetext']:"Delete this item"); +?> + <td valign="middle"><a href="pkg.php?xml=<?=$xml?>&act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this item?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" <?=domTT_title($delete_msg)?> alt="delete" /></a></td> + </tr> + </table> + </td> +<?php + echo "</tr>\n"; // Pairs with an echo tr some way above + // Handle pagination and display_maximum_rows + if ($display_maximum_rows) { + if ($pagination_counter == ($display_maximum_rows-1) or + $i == (count($evaledvar)-1)) { + $colcount = count($pkg['adddeleteeditpagefields']['columnitem']); + $final_footer = ""; + $final_footer .= "<tr><td colspan='$colcount'>"; + $final_footer .= "<table width='100%' summary=''><tr>"; + $final_footer .= "<td align='left'>"; + $startingat = $startdisplayingat - $display_maximum_rows; + if ($startingat > -1) { + $final_footer .= "<a href='pkg.php?xml=" . $_REQUEST['xml'] . "&startdisplayingat={$startingat}&display_maximum_rows={$display_maximum_rows}'>"; + } else if ($startdisplayingat > 1) { + $final_footer .= "<a href='pkg.php?xml=" . $_REQUEST['xml'] . "&startdisplayingat=0&display_maximum_rows={$display_maximum_rows}'>"; } + $final_footer .= "<font size='2'><< Previous page</font></a>"; + if ($tmppp + $display_maximum_rows > count($evaledvar)) { + $endingrecord = count($evaledvar); + } else { + $endingrecord = $tmppp + $display_maximum_rows; + } + $final_footer .= "</td><td align='center'>"; + $tmppp++; + $final_footer .= "<font size='2'>Displaying {$tmppp} - {$endingrecord} / " . count($evaledvar) . " records"; + $final_footer .= "</font></td><td align='right'> "; + if (($i+1) < count($evaledvar)) { + $final_footer .= "<a href='pkg.php?xml=" . $_REQUEST['xml'] . "&startdisplayingat=" . ($startdisplayingat + $display_maximum_rows) . "&display_maximum_rows={$display_maximum_rows}'>"; + } + $final_footer .= "<font size='2'>Next page >></font></a>"; + $final_footer .= "</td></tr></table></td></tr>"; + $i = count($evaledvar); + break; } - $i++; - $pagination_counter++; - } + } + $i++; + $pagination_counter++; + } // foreach evaledvar + } // if evaledvar ?> <tr> <td colspan="<?=$cols?>"></td> <td> <table border="0" cellspacing="0" cellpadding="1" summary="icons"> <tr> - <?php - #Show custom description to add button if defined - $add_msg=($pkg['adddeleteeditpagefields']['addtext']?$pkg['adddeleteeditpagefields']['addtext']:"Add a new item");?> +<?php + #Show custom description to add button if defined + $add_msg=($pkg['adddeleteeditpagefields']['addtext']?$pkg['adddeleteeditpagefields']['addtext']:"Add a new item"); +?> <td valign="middle"><a href="pkg_edit.php?xml=<?=$xml?>&id=<?=$i?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" <?=domTT_title($add_msg)?> alt="add" /></a></td> - <?php - #Show description button and info if defined - if($pkg['adddeleteeditpagefields']['description']){?> +<?php + #Show description button and info if defined + if ($pkg['adddeleteeditpagefields']['description']) { +?> <td valign="middle"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_info_pkg.gif" width="17" height="17" border="0" <?=domTT_title($pkg['adddeleteeditpagefields']['description'])?> alt="info" /></td> - <?php }?> +<?php + } +?> </tr> </table> </td> </tr> <?=$final_footer?> - <?php - #Show save button only when movable is defined - if($pkg['adddeleteeditpagefields']['movable']){?> - <tr><td><input class="formbtn" type="button" value="Save" name="Submit" onclick="save_changes_to_xml('<?=$xml?>')" /></td></tr> - <?php }?> - </table> - </td> -</tr> +<?php + #Show save button only when movable is defined + if ($pkg['adddeleteeditpagefields']['movable']) { +?> + <tr> + <td><input class="formbtn" type="button" value="Save" name="Submit" onclick="save_changes_to_xml('<?=$xml?>')" /></td> + </tr> +<?php + } +?> + </table> + </td> + </tr> +</table></div></td></tr> </table> -</div></td></tr></table> </form> <?php include("fend.inc"); ?> |