restrictAccess(Auth::isAdmin()) ->setPageTitle(WT_I18N::translate('Module administration') . ' — ' . WT_I18N::translate('Tabs')) ->pageHeader() ->addInlineJavascript(' jQuery("#tabs_table").sortable({items: ".sortme", forceHelperSize: true, forcePlaceholderSize: true, opacity: 0.7, cursor: "move", axis: "y"}); //-- update the order numbers after drag-n-drop sorting is complete jQuery("#tabs_table").bind("sortupdate", function(event, ui) { jQuery("#"+jQuery(this).attr("id")+" input").each( function (index, value) { value.value = index+1; } ); }); '); $modules=WT_Module::getActiveTabs(WT_GED_ID, WT_PRIV_HIDE); $action = WT_Filter::post('action'); if ($action=='update_mods' && WT_Filter::checkCsrf()) { foreach ($modules as $module_name=>$module) { foreach (WT_Tree::getAll() as $tree) { $access_level = WT_Filter::post("tabaccess-{$module_name}-{$tree->tree_id}", WT_REGEX_INTEGER, $module->defaultAccessLevel()); WT_DB::prepare( "REPLACE INTO `##module_privacy` (module_name, gedcom_id, component, access_level) VALUES (?, ?, 'tab', ?)" )->execute(array($module_name, $tree->tree_id, $access_level)); } $order = WT_Filter::post('taborder-'.$module_name); WT_DB::prepare( "UPDATE `##module` SET tab_order=? WHERE module_name=?" )->execute(array($order, $module_name)); $module->order=$order; // Make the new order take effect immediately } uasort($modules, function($x,$y) { return $x->order - $y->order; }); } ?>

getPageTitle(); ?>

$module) { ?>
getTitle(); ?> getDescription(); ?> tree_id; $access_level=WT_DB::prepare( "SELECT access_level FROM `##module_privacy` WHERE gedcom_id=? AND module_name=? AND component='tab'" )->execute(array($tree->tree_id, $module_name))->fetchOne(); if ($access_level===null) { $access_level=$module->defaultAccessLevel(); } echo '
', $tree->tree_title_html, ''; echo edit_field_access_level($varname, $access_level); } ?>