$ret = array();
foreach($name as $key => $dflt)
if (!is_numeric($key)) {
- $ret[$key] = is_float($dflt) ? input_num($key, $dflt) : get_post($key, $dflt);
+ $ret[$key] = is_numeric($dflt) ? input_num($key, $dflt) : get_post($key, $dflt);
} else {
$ret[$dflt] = get_post($dflt, null);
}
}
+/*
+ Flush hidden fields buffer.
+*/
+function output_hidden()
+{
+ global $hidden_fields;
+
+ if (is_array($hidden_fields))
+ echo implode('', $hidden_fields);
+ $hidden_fields = array();
+}
//---------------------------------------------------------------------------------
function end_form($breaks=0)
if ($form_nested-- > 0) return;
- $_SESSION['csrf_token'] = hash('sha256', uniqid(mt_rand(), true));
+ $_SESSION['csrf_token'] = random_id();
if ($breaks)
br($breaks);
hidden('_focus');
hidden('_confirmed'); // helper for final form confirmation
hidden('_token', $_SESSION['csrf_token']);
- echo implode('', $hidden_fields)."</form>\n";
+ output_hidden();
+ echo "</form>\n";
$Ajax->activate('_token');
$Ajax->activate('_confirmed');
}
function end_table($breaks=0)
{
echo "</table></center>\n";
+ output_hidden();
if ($breaks)
br($breaks);
}
if ($number > 1)
{
echo "</table>\n";
+ output_hidden();
$width = ($width ? "width='$width'" : "");
- //echo "</td><td class='tableseparator' $width>\n"; // outer table
echo "</td><td style='border-left:1px solid #cccccc;' $width>\n"; // outer table
}
echo "<table class='tablestyle_inner'>\n";
function end_outer_table($breaks=0, $close_table=true)
{
if ($close_table)
+ {
echo "</table>\n";
+ output_hidden();
+ }
echo "</td></tr>\n";
end_table($breaks);
}
echo "</td></tr><tr><td valign=center $params>";
}
-function meta_forward($forward_to, $params="", $timeout=0)
+function meta_forward($forward_to, $params="", $timeout=0, $return=false)
{
global $Ajax;
echo "<meta http-equiv='Refresh' content='".$timeout."; url=$forward_to?$params'>\n";
echo " " . _("If this does not happen") . " " . "<a href='$forward_to?$params'>" . _("click here") . "</a> " . _("to continue") . ".<br><br></center>\n";
if ($params !='') $params = '?'.$params;
$Ajax->redirect($forward_to.$params);
- exit;
+ if (!$return) exit;
}
//-----------------------------------------------------------------------------------
$pars = access_string($label);
if (user_graphic_links() && $icon)
$pars[0] = set_icon($icon, $pars[0]);
-- $preview_str = "<a target='_blank' $class $id href='$path_to_root/$url' onclick=\"javascript:openWindow(this.href,this.target); return false;\"$pars[1]>$pars[0]</a>";
+ $preview_str = "<a target='_blank' $class $id href='$path_to_root/$url' onclick=\"javascript:openWindow(this.href,this.target); return false;\"$pars[1]>$pars[0]</a>";
}
else
$preview_str = $label;
function menu_link($url, $label, $id=null)
{
+ global $path_to_root;
+
$id = default_focus($id);
$pars = access_string($label);
+
+ if ($url[0] != '/')
+ $url = '/'.$url;
+ $url = $path_to_root.$url;
+
return "<a href='$url' class='menu_option' id='$id' $pars[1]>$pars[0]</a>";
}
{
global $ajax_divs, $Ajax;
+ output_hidden();
if (count($ajax_divs))
{
$div = array_pop($ajax_divs);
if ($div[1] !== null)
$Ajax->addUpdate($div[1], $div[0], ob_get_flush());
- echo "</div>";
}
+ echo "</div>";
}
//-----------------------------------------------------------------------------
}
function tabbed_content_end() {
+ output_hidden();
echo "</div>"; // content box (don't change to div_end() unless div_start() is used above)
div_end(); // tabs widget
}
*/
$popup_editors = array(
'customer' => array('/sales/manage/customers.php?debtor_no=',
- 113, _("Customers"), 900, 500),
+ 113, _("Customers"), 900, 550),
'branch' => array('/sales/manage/customer_branches.php?SelectedBranch=',
- 114, _("Branches"), 900, 700),
+ 114, _("Branches"), 900, 650),
'supplier' => array('/purchasing/manage/suppliers.php?supplier_id=',
- 113, _("Suppliers"), 900, 700),
+ 113, _("Suppliers"), 1150, 550),
'item' => array('/inventory/manage/items.php?stock_id=',
- 115, _("Items"), 800, 600)
+ 115, _("Items"), 1000, 500),
+ 'fa_item' => array('/inventory/manage/items.php?FixedAsset=1&stock_id=',
+ 115, _("Items"), 1000, 500)
);
/*
Bind editors for various selectors.
global $Ajax;
if ($msg === true)
- $msg = _('Entered data has not been saved yet.\nDo you want to abandon changes?');
+ $msg = _("Entered data has not been saved yet.\nDo you want to abandon changes?");
$js = "_validate._processing=" . (
$msg ? '\''.strtr($msg, array("\n"=>'\\n')) . '\';' : 'null;');