format, reads the $_POST variable of each name, applies the specified formatting, * identifies changes, writes back the changes, makes admin log entry * * @param array $prefList - each key is the name of a pref; value is an integer representing its type * @param array $oldPref - array of current pref values * @param string $logRef - used as title if any changes to be logged * * @return - none */ function logPrefChanges(&$prefList, &$oldPref, $logRef) { $admin_log = e107::getAdminLog(); $calNew = e107::getPlugConfig('calendar_menu'); // Initialize calendar_menu prefs. $tp = e107::getParser(); $prefChanges = array(); $mes = e107::getMessage(); foreach ($prefList as $prefName => $process) { switch ($process) { case 0 : $temp = varset($_POST[$prefName],''); break; case 1 : $temp = intval(varset($_POST[$prefName],0)); break; case 2 : $temp = $tp->toDB(varset($_POST[$prefName],'')); break; case 3 : // Array of integers - turn into comma-separated string $tmp = array(); foreach ($_POST[$prefName] as $v) { $tmp[] = intval($v); } $temp = implode(",", $tmp); unset($tmp); break; } if (!isset($oldPref[$prefName]) || ($temp != $oldPref[$prefName])) { // Change to process $oldPref[$prefName] = $temp; $calNew->set($prefName, $temp); $prefChanges[] = $prefName.' => '.$temp; } } if (count($prefChanges)) { $result = $calNew->save(); if ($result === TRUE) { // Do admin logging $logString = implode('[!br!]', $prefChanges); $admin_log->log_event($logRef,$logString,''); //$mes->addSuccess(LAN_UPDATED); } elseif ($result === FALSE) { $mes->addError("Error saving calendar prefs"); // TODO LAN } else { // Should never happen $mes->addInfo('Unexpected result: '.$result); // TODO LAN } } } $prefSettings = array( 'updateOptions' => array( 'eventpost_admin' => 1, // Integer 'eventpost_super' => 1, // Integer 'eventpost_adminlog' => 1, // Integer 'eventpost_menulink' => 1, // Integer 'eventpost_showmouseover' => 1, // Integer 'eventpost_showeventcount' => 1, // Integer 'eventpost_forum' => 1, // Integer 'eventpost_recentshow' => 2, // String ('LV' or an integer) 'eventpost_weekstart' => 1, // Integer 'eventpost_lenday' => 1, // Integer 'eventpost_dateformat' => 2, // String ('my' or 'ym') 'eventpost_datedisplay' => 1, // Integer 'eventpost_fivemins' => 1, // Integer 'eventpost_editmode' => 1, // Integer 'eventpost_caltime' => 1, // Integer 'eventpost_timedisplay' => 1, // Integer 'eventpost_timecustom' => 2, // String 'eventpost_dateevent' => 1, // Integer 'eventpost_eventdatecustom' => 2, // String 'eventpost_datenext' => 1, // Integer 'eventpost_nextdatecustom' => 2, // String 'eventpost_printlists' => 1, // Integer 'eventpost_asubs' => 1, // Integer 'eventpost_mailfrom' => 2, // String 'eventpost_mailsubject' => 2, // String 'eventpost_mailaddress' => 2, // String 'eventpost_emaillog' => 1 // Integer ), 'updateForthcoming' => array( 'eventpost_menuheading' => 2, // String 'eventpost_daysforward' => 1, // Integer 'eventpost_numevents' => 1, // Integer 'eventpost_checkrecur' =>1, // Integer 'eventpost_linkheader' => 1, // Integer 'eventpost_fe_set' => 3, // Array of class values 'eventpost_fe_hideifnone' => 1, // Integer 'eventpost_fe_showrecent' => 1, // Integer 'eventpost_showcaticon' => 1, // Integer 'eventpost_namelink' => 1 // Integer ) ); if (isset($_POST['updatesettings'])) { logPrefChanges($prefSettings['updateOptions'], $calPref, 'EC_ADM_06'); $e107cache->clear('nq_event_cal'); // Clear cache as well, in case displays changed //$mes->addSuccess(); } // ****************** FORTHCOMING EVENTS ****************** if (isset($_POST['updateforthcoming'])) { logPrefChanges($prefSettings['updateForthcoming'], $calPref, 'EC_ADM_07'); $e107cache->clear('nq_event_cal'); // Clear cache as well, in case displays changed //$mes->addSuccess(); } $action = 'config'; // Default action - show preferences if (e_QUERY) { $ec_qs = explode('.', e_QUERY); $action = preg_replace('#\W#', '',$ec_qs[0]); } require_once('ecal_class.php'); $ecal_class = new ecal_class; // ****************** MAINTENANCE ****************** if (isset($_POST['deleteold']) && isset($_POST['eventpost_deleteoldmonths'])) { $back_count = intval($_POST['eventpost_deleteoldmonths']); if (($back_count >= 1) && ($back_count <= 12)) { $old_date = intval(mktime(0,0,0,$ecal_class->now_date['mon']-$back_count,1,$ecal_class->now_date['year'])); $old_string = strftime("%d %B %Y",$old_date); // $message = "Back delete {$back_count} months. Oldest date = {$old_string}"; $action = 'confdel'; $ec_qs[1] = $old_date; } else //$message = EC_ADLAN_A148; $mes->addError(EC_ADLAN_A148); } if (isset($_POST['cache_clear'])) { $action = 'confcache'; } //------------------------------------------------- require_once(e_ADMIN.'auth.php'); if (!defined('USER_WIDTH')){ define('USER_WIDTH','width:auto'); } // Actually delete back events if (isset($_POST['confirmdeleteold']) && ($action == 'backdel')) { $old_date = intval($ec_qs[1]); $old_string = strftime("%d %B %Y",$old_date); // Check both start and end dates to avoid problems with events originally entered under 0.617 $qry = "event_start < {$old_date} AND event_end < {$old_date} AND event_recurring = 0"; // $message = "Back delete {$back_count} months. Oldest date = {$old_string} Query = {$qry}"; if ($sql -> db_Delete('event',$qry)) { // Add in a log event $ecal_class->cal_log(4,"db_Delete - earlier than {$old_string} (past {$back_count} months)",$qry); //$message = EC_ADLAN_A146.$old_string.EC_ADLAN_A147; $mes->addSuccess(EC_ADLAN_A146 . $old_string . EC_ADLAN_A147); } else { //$message = EC_ADLAN_A149." : ".$sql->mySQLresult; $mes->addError(EC_ADLAN_A149." : ".$sql->mySQLresult); } $action = 'maint'; } // Actually empty cache if (isset($_POST['confirmdelcache']) && ($action == 'cachedel')) { $e107cache->clear('nq_event_cal'); //$message = EC_ADLAN_A163; $mes->addSuccess(EC_ADLAN_A163); // TODO LAN $action = 'maint'; // Re-display maintenance menu $ns->tablerender($caption, $mes->render() . $text); } // Prompt to delete back events if ($action == 'confdel') { $old_string = strftime("%d %B %Y",$ec_qs[1]); $text = "
".EC_ADLAN_A150.$old_string."
".$frm->admin_button('confirmdeleteold', LAN_UI_DELETE_LABEL, 'delete')."
"; $ns->tablerender(LAN_UI_DELETE_LABEL, $mes->render() . $text); } // Prompt to clear cache if ($action == 'confcache') { $text = "
".EC_ADLAN_A162."
".$frm->admin_button('confirmdelcache', LAN_UI_DELETE_LABEL, 'delete')." "; } // Just delete odd email subscriptions if (isset($ec_qs[2]) && isset($ec_qs[3]) && ($action == 'subs') && ($ec_qs[2] == 'del') && is_numeric($ec_qs[3])) { if ($sql->db_Delete('event_subs',"event_subid='{$ec_qs[3]}'")) $mes->addSuccess(LAN_DELETED.$ec_qs[3]); else $mes->addError(LAN_DELETED_FAILED.$ec_qs[3]); } $ns->tablerender($caption, $mes->render() . $text); //category $ecal_send_email = 0; if($action == 'cat') { // This uses two hidden fields, preset from the category selection menu: // calendarmenu_action // 'update' - to create or update a record (actually save the info) // 'dothings' - create/edit/delete just triggered - $calendarmenu_do = $_POST['calendarmenu_recdel']; has action 1, 2, 3 // calendarmenu_id - the number of the category - zero indicates a new category // We may also have $_POST['send_email_1'] or $_POST['send_email_2'] set to generate a test email as well as doing update/save if (is_readable(THEME.'ec_mailout_template.php')) { // Has to be require require(THEME.'ec_mailout_template.php'); } else { require(e_PLUGIN.'calendar_menu/ec_mailout_template.php'); } $calendarmenu_db = new DB; $calendarmenu_action = ''; if (isset($_POST['calendarmenu_action'])) $calendarmenu_action = $_POST['calendarmenu_action']; $calendarmenu_edit = FALSE; // * If we are updating then update or insert the record if ($calendarmenu_action == 'update') { $calendarmenu_id = intval($_POST['calendarmenu_id']); $calPars = array(); $calPars['event_cat_name'] = $tp->toDB($_POST['event_cat_name']); $calPars['event_cat_description'] = $tp->toDB($_POST['event_cat_description']); $calPars['event_cat_icon'] = $tp->toDB($_POST['ne_new_category_icon']); $calPars['event_cat_class'] = intval($_POST['event_cat_class']); $calPars['event_cat_subs'] = intval($_POST['event_cat_subs']); $calPars['event_cat_force_class'] = intval($_POST['event_cat_force_class']); $calPars['event_cat_ahead'] = intval($_POST['event_cat_ahead']); $calPars['event_cat_msg1'] = $tp->toDB($_POST['event_cat_msg1']); $calPars['event_cat_msg2'] = $tp->toDB($_POST['event_cat_msg2']); $calPars['event_cat_notify'] = intval($_POST['event_cat_notify']); $calPars['event_cat_lastupdate'] = intval(time()); $calPars['event_cat_addclass'] = intval($_POST['event_cat_addclass']); if ($calendarmenu_id == 0) { // New record so add it if ($calendarmenu_db->db_Insert("event_cat", $calPars)) { $mes->addSuccess(LAN_CREATED); $admin_log->log_event(EC_ADM_08,$calPars['event_cat_name'],''); } else { $mes->addError(LAN_CREATED_FAILED); } } else { // Update existing if ($calendarmenu_db->db_UpdateArray("event_cat", $calPars, 'WHERE `event_cat_id` = '.$calendarmenu_id)) { // Changes saved $mes->addSuccess(LAN_UPDATED); $admin_log->log_event(EC_ADM_09,'ID: '.$calendarmenu_id.', '.$calPars['event_cat_name'],''); } else { $mes->addError(LAN_UPDATED_FAILED); } } // Now see if we need to send a test email if (isset($_POST['send_email_1'])) $ecal_send_email = 1; if (isset($_POST['send_email_2'])) $ecal_send_email = 2; if ($ecal_send_email != 0) { $calendarmenu_action = 'dothings'; // This forces us back to category edit screen $_POST['calendarmenu_selcat'] = $calendarmenu_id; // Record number to use $_POST['calendarmenu_recdel'] = '1'; // This forces re-read of the record } } // We are creating, editing or deleting a record if ($calendarmenu_action == 'dothings') { $calendarmenu_id = intval($_POST['calendarmenu_selcat']); $calendarmenu_do = intval($_POST['calendarmenu_recdel']); $calendarmenu_dodel = false; switch ($calendarmenu_do) { case '1': // Edit existing record // We edit the record $calendarmenu_db->db_Select('event_cat', '*', 'event_cat_id='.$calendarmenu_id); $calendarmenu_row = $calendarmenu_db->db_Fetch() ; extract($calendarmenu_row); $calendarmenu_cap1 = LAN_EDIT ." ". LAN_CATEGORY; $calendarmenu_edit = TRUE; if ($ecal_send_email != 0) { // Need to send a test email // First, set up a dummy event $thisevent = array('event_start' => $ecal_class->time_now, 'event_end' => ($ecal_class->time_now)+3600, 'event_title' => 'Test event', 'event_details' => EC_ADLAN_A191, 'event_cat_name' => $event_cat_name, 'event_location' => EC_ADLAN_A192, 'event_contact' => USEREMAIL, 'event_thread' => SITEURL.'dodgypage', 'event_id' => '6'); // *************** SEND EMAIL HERE ************** require_once(e_PLUGIN.'calendar_menu/calendar_shortcodes.php'); require_once(e_HANDLER . 'mail.php'); switch ($ecal_send_email) { case 1 : $cal_msg = $event_cat_msg1; break; case 2 : $cal_msg = $event_cat_msg2; break; } $cal_msg = $tp -> parseTemplate($cal_msg, TRUE); $cal_title = $tp -> parseTemplate($calPref['eventpost_mailsubject'], TRUE); $user_email = USEREMAIL; $user_name = USERNAME; $send_result = sendemail($user_email, $cal_title, $cal_msg, $user_name, $calPref['eventpost_mailaddress'], $calPref['eventpost_mailfrom']); if ($send_result) { $mes->addSuccess(EC_ADLAN_A187); } else { $mes->addError(EC_ADLAN_A188); } } break; case '2': // New category // Create new record $calendarmenu_id = 0; // set all fields to zero/blank $calendar_category_name = ''; $calendar_category_description = ''; $calendarmenu_cap1 = LAN_CREATE ." ". LAN_CATEGORY; $calendarmenu_edit = TRUE; $event_cat_name = ''; // Define some variables for notice removal $event_cat_description = ''; $event_cat_class = e_UC_MEMBER; $event_cat_addclass = e_UC_ADMIN; $event_cat_icon = ''; $event_cat_subs = 0; $event_cat_notify = 0; $event_cat_force_class = ''; $event_cat_ahead = 5; $event_cat_msg1 = ''; $event_cat_msg2 = ''; break; case '3': // Delete record if ($_POST['calendarmenu_okdel'] == '1') { if ($calendarmenu_db->db_Select('event', 'event_id', 'event_category='.$calendarmenu_id, 'nowhere')) { $mes->addError(EC_ADLAN_A59); } else { if ($calendarmenu_db->db_Delete('event_cat', 'event_cat_id='.$calendarmenu_id)) { $admin_log->log_event(EC_ADM_10,'ID: '.$calendarmenu_id,''); $mes->addSuccess(LAN_DELETED); } else { $mes->addError(LAN_DELETED_FAILED); } } } else { $mes->addError(LAN_CONFIRMDEL); } $calendarmenu_dodel = TRUE; $calendarmenu_edit = FALSE; break; } if (!$calendarmenu_dodel) { //require_once(e_HANDLER.'file_class.php'); $calendarmenu_text .= "
{$calendarmenu_cap1}
".EC_ADLAN_A21."
".EC_ADLAN_A121."
".EC_ADLAN_A80." ".$uc->uc_dropdown('event_cat_class', $event_cat_class, 'public, nobody, member, admin, classes')."
".EC_ADLAN_A94." ".$uc->uc_dropdown('event_cat_addclass', $event_cat_addclass, 'public, nobody, member, admin, classes, no-excludes')."
".EC_ADLAN_A219." "; // // //
".EC_ADLAN_A81." 0?"checked='checked'":'')." />
".EC_ADLAN_A86."
".EC_ADLAN_A82." ".$uc->uc_dropdown('event_cat_force_class', $event_cat_force_class, 'nobody, member, admin, classes, no-excludes')."
".EC_ADLAN_A83."
".EC_ADLAN_A84; if ($calendarmenu_do == 1) $calendarmenu_text .= "


"; $calendarmenu_text .= "
"; if ($event_cat_name != EC_DEFAULT_CATEGORY) $calendarmenu_text .= "
".EC_ADLAN_A189.""; $calendarmenu_text .= "
".EC_ADLAN_A117; if ($calendarmenu_do == 1) $calendarmenu_text .= "


"; $calendarmenu_text .= "
"; if ($event_cat_name != EC_DEFAULT_CATEGORY) $calendarmenu_text .= "
".EC_ADLAN_A189.""; $calendarmenu_text .= "
"; if($calendarmenu_do == 1) { $calendarmenu_text .= $frm->admin_button('submits', LAN_UPDATE, 'update'); } else { $calendarmenu_text .= $frm->admin_button('submits', LAN_CREATE, 'update'); } $calendermenu_text .= "
"; } } if (!$calendarmenu_edit) { // Get the category names to display in combo box then display actions available $calendarmenu2_db = new DB; $calendarmenu_catopt = ''; if (!isset($calendarmenu_id)) $calendarmenu_id = -1; if ($calendarmenu2_db->db_Select('event_cat', 'event_cat_id,event_cat_name', ' order by event_cat_name', 'nowhere')) { while ($row = $calendarmenu2_db->db_Fetch()) { $calendarmenu_catopt .= ""; } } else { $calendarmenu_catopt .= ""; } $calendarmenu_text .= "
".EC_ADLAN_A11."
".EC_ADLAN_A18." ".LAN_EDIT."
".LAN_CREATE."
".LAN_DELETE." ".LAN_CONFDELETE."
".$frm->admin_button('submits', EC_ADLAN_A17, 'submit')."
"; } if(isset($calendarmenu_text)) { $ns->tablerender(EC_ADLAN_1." - ".EC_ADLAN_A19, $mes->render() . $calendarmenu_text); } } // ==================================================== // FORTHCOMING EVENTS OPTIONS // ==================================================== if($action == 'forthcoming') { if (!isset($calPref['eventpost_menuheading'])) $calPref['eventpost_menuheading'] = EC_ADLAN_A100; if (!isset($calPref['eventpost_daysforward'])) $calPref['eventpost_daysforward'] = 30; if (!isset($calPref['eventpost_numevents'])) $calPref['eventpost_numevents'] = 3; if (!isset($calPref['eventpost_checkrecur'])) $calPref['eventpost_checkrecur'] = '1'; if (!isset($calPref['eventpost_linkheader'])) $calPref['eventpost_linkheader'] = '0'; if (!isset($calPref['eventpost_namelink'])) $calPref['eventpost_namelink'] = '1'; $text = "
".EC_ADLAN_A108."
".EC_ADLAN_A101."
".EC_ADLAN_A102."
".EC_ADLAN_A103."
".EC_ADLAN_A107."
".EC_ADLAN_A199."
".EC_ADLAN_A130."
".EC_ADLAN_A104."
".EC_ADLAN_A120."
".EC_ADLAN_A118." "; // Now display all the current categories as checkboxes $cal_fe_prefs = array(); if (isset($calPref['eventpost_fe_set'])) $cal_fe_prefs = array_flip(explode(",",$calPref['eventpost_fe_set'])); if (!isset($calendarmenu2_db) || !is_object($calendarmenu2_db)) $calendarmenu2_db = new DB; // Possible notice here if ($calendarmenu2_db->db_Select("event_cat", "event_cat_id,event_cat_name", " WHERE (event_cat_name != '".EC_DEFAULT_CATEGORY."') order by event_cat_name", "nowhere")) { while ($row = $calendarmenu2_db->db_Fetch()) { $selected = isset($cal_fe_prefs[$row['event_cat_id']]); $text .= "".$row['event_cat_name']."
"; } } else { $text .= EC_ADLAN_A119; // No categories, or error } $text .= "
".$frm->admin_button('updateforthcoming', LAN_UPDATE, 'update')."
"; $ns->tablerender(EC_ADLAN_1." - ".EC_ADLAN_A100, $mes->render() . $text); } // End of Forthcoming Events Menu Options // ==================================================== // MAINTENANCE OPTIONS // ==================================================== if(($action == 'maint')) { $text = "
".EC_ADLAN_A142." ".EC_ADLAN_A143."
".$frm->admin_button('deleteold', EC_ADLAN_A145, 'delete')."


"; $ns->tablerender(EC_ADLAN_1." - ".EC_ADLAN_A141, $mes->render() . $text); $text = "
".EC_ADLAN_A160."
".$frm->admin_button('cache_clear', EC_ADLAN_A161, 'delete')."
"; $ns->tablerender(EC_ADLAN_1." - ".EC_ADLAN_A159, $mes->render() . $text); } // ==================================================== // SUBSCRIPTIONS OPTIONS // ==================================================== if($action == 'subs') { $mes = e107::getMessage(); echo $mes->render() . $text; $from = 0; $amount = 20; // Number per page - could make configurable later if required if (isset($ec_qs[1])) $from = intval($ec_qs[1]); $num_entry = $sql->db_Count("event_subs", "(*)", ""); // Just count the lot $qry = "SELECT es.*, u.user_id, u.user_name, u.user_class, ec.event_cat_id, ec.event_cat_name, ec.event_cat_class FROM `#event_subs` AS es LEFT JOIN `#user` AS u ON es.event_userid = u.user_id LEFT JOIN `#event_cat` AS ec ON es.event_cat = ec.event_cat_id ORDER BY u.user_id LIMIT {$from}, {$amount} "; $text = "
"; if (!$sql->db_Select_gen($qry)) { $text .= ""; $num_entry = 0; } else { $text .= "'; while ($row = $sql->db_Fetch()) { // Columns - UID, User name, Category name, Action $problems = ""; if (!isset($row['user_id']) || ($row['user_id'] == 0) || (!isset($row['user_name'])) || ($row['user_name'] == "")) $problems = EC_ADLAN_A198; if (!check_class($row['event_cat_class'],$row['user_class'])) { if ($problems != "") $problems .= "
"; $problems .= EC_ADLAN_A197; } $text .= " "; } // End while // TODO / FIX admin_images to ad_links constant? // Next-Previous. ========================== if ($num_entry > $amount) { $parms = "{$num_entry},{$amount},{$from},".e_SELF."?".$action.'.[FROM]'; $text .= "'); } } $text .= "
".EC_ADLAN_A174."
".EC_ADLAN_A175.''.EC_ADLAN_A176." ".EC_ADLAN_A177."".EC_ADLAN_A178.''.EC_ADLAN_A179.'
".$row['user_id']." ".$row['user_name']." ".$row['event_cat_name']." ".$problems." ".LAN_DELETE."
".$tp->parseTemplate("{NEXTPREV={$parms}}".'
"; $text .= "   ".str_replace("--NUM--", $num_entry, EC_ADLAN_A182); $ns->tablerender(EC_ADLAN_1." - ".EC_ADLAN_A173, $text); } // ======================================================== // MAIN OPTIONS MENU // ======================================================== if($action == 'config') { function select_day_start($val) { if ($val == 'sun') $val = 0; elseif ($val == 'mon') $val = 1; // Legacy values $ret = "\n"; return $ret; } $text = "
"; $text .= "
".EC_ADLAN_A208." ". $uc->uc_dropdown('eventpost_admin', $calPref['eventpost_admin'], 'public, nobody, member, admin, classes, no-excludes')."
".EC_ADLAN_A211." ". $uc->uc_dropdown('eventpost_super', $calPref['eventpost_super'], 'public, nobody, member, admin, classes, no-excludes')."
".EC_ADLAN_A134." ".EC_ADLAN_A137."
".EC_ADLAN_A165."
".EC_ADLAN_A183." ".EC_ADLAN_A184."
".EC_ADLAN_A140."
".EC_ADLAN_A213." ".EC_ADLAN_A22."
".EC_ADLAN_A171." ".EC_ADLAN_A172."
".EC_ADLAN_A212." ".select_day_start($calPref['eventpost_weekstart'])."
".EC_ADLAN_A214."
".EC_ADLAN_A215."
".EC_ADLAN_A133."
".EC_ADLAN_A138."   ".EC_ADLAN_A139."
".EC_ADLAN_A200."
".EC_ADLAN_A122."
".EC_ADLAN_A124."".$ecal_class->time_string($ecal_class->time_now)."
".EC_ADLAN_A125."".$ecal_class->time_string($ecal_class->site_timedate)."
".EC_ADLAN_A126."".$ecal_class->time_string($ecal_class->user_timedate)."

".EC_ADLAN_A129."
".EC_ADLAN_A123."
".EC_ADLAN_A127."

".EC_ADLAN_A128."
".EC_ADLAN_A166."
".EC_ADLAN_A169."

".EC_ADLAN_A168."
".EC_ADLAN_A167."
".EC_ADLAN_A170."

".EC_ADLAN_A168."
".EC_ADLAN_A193."
".EC_ADLAN_A95."   ".EC_ADLAN_A96."
".EC_ADLAN_A92."
".EC_ADLAN_A91."
".EC_ADLAN_A93."
".EC_ADLAN_A114."
".$frm->admin_button('updatesettings', LAN_UPDATE, 'update')."
"; $ns->tablerender(EC_ADLAN_1." - ".EC_ADLAN_A207, $text); } function admin_config_adminmenu() { if (e_QUERY) { $tmp = explode(".", e_QUERY); $action = $tmp[0]; } if (!isset($action) || ($action == "")) { $action = "config"; } $var['config']['text'] = EC_ADLAN_A10; $var['config']['link'] = "admin_config.php"; $var['cat']['text'] = EC_ADLAN_A11; $var['cat']['link'] ="admin_config.php?cat"; $var['forthcoming']['text'] = EC_ADLAN_A100; $var['forthcoming']['link'] ="admin_config.php?forthcoming"; $var['maint']['text'] = EC_ADLAN_A141; $var['maint']['link'] ="admin_config.php?maint"; $var['subs']['text'] = EC_ADLAN_A173; $var['subs']['link'] ="admin_config.php?subs"; show_admin_menu(EC_ADLAN_A12, $action, $var); } require_once(e_ADMIN."footer.php"); ?>