diff --git a/e107_admin/frontpage.php b/e107_admin/frontpage.php
index 41d442f57..896a428c3 100644
--- a/e107_admin/frontpage.php
+++ b/e107_admin/frontpage.php
@@ -1,613 +1,618 @@
- 'news.php', 'title' => ADLAN_0);
-$front_page['download'] = array('page' => 'download.php', 'title' => ADLAN_24);
-$front_page['wmessage'] = array('page' => 'index.php', 'title' => ADLAN_28);
-
-if($sql->db_Select('page', 'page_id, page_title', "page_theme=''"))
-{
- $front_page['custom']['title'] = FRTLAN_30;
- while($row = $sql->db_Fetch())
- {
- $front_page['custom']['page'][] = array('page' => 'page.php?'.$row['page_id'], 'title' => $row['page_title']);
- }
-}
-
-// Now let any plugins add to the options - must append to the $front_page array as above
-if(varset($pref['e_frontpage_list']))
-{
- foreach($pref['e_frontpage_list'] as $val)
- {
- if(is_readable(e_PLUGIN.$val.'/e_frontpage.php'))
- {
- require_once (e_PLUGIN.$val.'/e_frontpage.php');
- }
- }
-}
-
-// Now sort out list of rules for display (based on $pref data to start with)
-$gotpub = FALSE;
-if(is_array($pref['frontpage']))
-{
- $i = 1;
- foreach($pref['frontpage'] as $class => $val)
- {
- if($class == 'all')
- {
- $class = e_UC_PUBLIC;
- $gotpub = TRUE;
- }
- if($val)
- { // Only add non-null pages
- $fp_settings[$i] = array('order' => $i, 'class' => $class, 'page' => $val, 'force' => varset($pref['frontpage_force'][$class], ''));
- $i ++;
- }
- }
-}
-else
-{ // Legacy stuff to convert
- $fp_settings = array();
- $fp_settings[] = array('order' => 0, 'class' => e_UC_PUBLIC, 'page' => varset($pref['frontpage'], 'news.php'), 'force' => '');
-}
-
-if(!$gotpub)
-{ // Need a 'default' setting - usually 'all'
- $fp_settings[] = array('order' => $i, 'class' => e_UC_PUBLIC, 'page' => (isset($pref['frontpage']['all']) ? $pref['frontpage']['all'] : 'news.php'), 'force' => '');
-}
-
-$fp_update_prefs = FALSE;
-
-if(isset($_POST['fp_inc']))
-{
- $mv = intval($_POST['fp_inc']);
- if(($mv > 1) && ($mv <= count($fp_settings)))
- {
- $temp = $fp_settings[$mv - 1];
- $fp_settings[$mv - 1] = $fp_settings[$mv];
- $fp_settings[$mv] = $temp;
- $fp_update_prefs = TRUE;
- frontpage_adminlog('01', 'Inc '.$mv);
- }
-}
-elseif(isset($_POST['fp_dec']))
-{
- $mv = intval($_POST['fp_dec']);
- if(($mv > 0) && ($mv < count($fp_settings)))
- {
- $temp = $fp_settings[$mv + 1];
- $fp_settings[$mv + 1] = $fp_settings[$mv];
- $fp_settings[$mv] = $temp;
- $fp_update_prefs = TRUE;
- frontpage_adminlog('01', 'Dec '.$mv);
- }
-}
-
-// Edit an existing rule
-if(isset($_POST['fp_edit_rule']))
-{
- $_POST['type'] = (isset($_POST['edit']['all'])) ? 'all_users' : 'user_class';
- $_POST['class'] = key($_POST['edit']);
-}
-
-// Cancel Edit
-
-
-if(isset($_POST['fp_save_new']))
-{ // Add or edit an existing rule here.
- // fp_order - zero for a new rule, non-zero if editing an existing rule
- // class - user class for rule
- // frontpage - radio button option indicating type of page (for home page)
- // frontpage_multipage[] - the other information for custom pages and similar - array index matches value of 'frontpage' when selected
- // frontpage_other - URL for 'other' home page
- // fp_force_page - radio button option indicating type of page (for post-login page)
- // fp_force_page_multipage[] - the other information for custom pages and similar - array index matches value of 'frontpage' when selected
- // fp_force_page_other - URL for forced post-login 'other' page
-
-
- if($_POST['frontpage'] == 'other')
- {
- $_POST['frontpage_other'] = trim($tp->toForm($_POST['frontpage_other']));
- $frontpage_value = $_POST['frontpage_other'] ? $_POST['frontpage_other'] : 'news.php';
- }
- else
- {
- if(is_array($front_page[$_POST['frontpage']]['page']))
- {
- $frontpage_value = $front_page[$_POST['frontpage']]['page'][$_POST['frontpage_multipage'][$_POST['frontpage']]]['page'];
- }
- else
- {
- $frontpage_value = $front_page[$_POST['frontpage']]['page'];
- }
- }
-
- if($_POST['fp_force_page'] == 'other')
- {
- $_POST['fp_force_page_other'] = trim($tp->toForm($_POST['fp_force_page_other']));
- $forcepage_value = $_POST['fp_force_page_other']; // A null value is allowable here
- }
- else
- {
- if(is_array($front_page[$_POST['fp_force_page']]['page']))
- {
- $forcepage_value = $front_page[$_POST['fp_force_page']]['page'][$_POST['fp_force_page_multipage'][$_POST['fp_force_page']]]['page'];
- }
- else
- {
- $forcepage_value = $front_page[$_POST['fp_force_page']]['page'];
- }
- }
-
- $temp = array('order' => intval($_POST['fp_order']), 'class' => $_POST['class'], 'page' => $frontpage_value, 'force' => trim($forcepage_value));
- if($temp['order'] == 0)
- { // New index to add
- $ind = 0;
- for($i = 1; $i <= count($fp_settings); $i ++)
- {
- if($fp_settings[$i]['class'] == $temp['class'])
- $ind = $i;
- }
- if($ind)
- {
- unset($fp_settings[$ind]); // Knock out duplicate definition for class
- echo "duplicate definition for class: ".$ind."
";
- }
- array_unshift($fp_settings, $temp); // Deliberately add twice
- array_unshift($fp_settings, $temp); // ....because re-indexed from zero
- unset($fp_settings[0]); // Then knock out index zero
- $fp_update_prefs = TRUE;
- frontpage_adminlog('02', "class => {$_POST['class']},[!br!]page => {$frontpage_value},[!br!]force => {$forcepage_value}");
- }
- elseif(array_key_exists($temp['order'], $fp_settings))
- {
- $fp_settings[$temp['order']] = $temp;
- $fp_update_prefs = TRUE;
- frontpage_adminlog('03', "posn => {$temp},[!br!]class => {$_POST['class']},[!br!]page => {$frontpage_value},[!br!]force => {$forcepage_value}");
- }
- else
- { // Someone playing games
- //$ns->tablerender(LAN_UPDATED, "
"."Software error"."
");
- $emessage->add('Software error', E_MESSAGE_ERROR);
- }
-}
-
-if(isset($_POST['fp_delete_rule']))
-{
- if(isset($fp_settings[key($_POST['fp_delete_rule'])]))
- {
- $rule_no = key($_POST['fp_delete_rule']);
- $array_size = count($fp_settings);
- frontpage_adminlog('04', "Rule {$rule_no},[!br!]class => {$fp_settings[$rule_no]['class']},[!br!]page => {$fp_settings[$rule_no]['page']},[!br!]force => {$fp_settings[$rule_no]['force']}");
- unset($fp_settings[$rule_no]);
- while($rule_no < $array_size)
- { // Move up and renumber any entries after the deleted rule
- $fp_settings[$rule_no] = $fp_settings[$rule_no + 1];
- $rule_no ++;
- unset($fp_settings[$rule_no]);
- }
- $fp_update_prefs = TRUE;
- }
-}
-
-if($fp_update_prefs)
-{ // Save the two arrays
- $fp_list = array();
- $fp_force = array();
- for($i = 1; $i <= count($fp_settings); $i ++)
- {
- $fp_list[$fp_settings[$i]['class']] = $fp_settings[$i]['page'];
- $fp_force[$fp_settings[$i]['class']] = $fp_settings[$i]['force'];
- }
- $pref['frontpage'] = $fp_list;
- $pref['frontpage_force'] = $fp_force;
- save_prefs();
- $emessage->add(FRTLAN_1, E_MESSAGE_SUCCESS);
-}
-
-
-
-
-// All updates complete now - latest data is in the $fp_settings, $fp_list and $fp_force arrays
-$fp = new frontpage($front_page);
-
-
-if(isset($_POST['fp_add_new']))
-{
- $text = $fp->edit_rule(array('order' => 0, 'class' => e_UC_PUBLIC, 'page' => 'news.php', 'force' => FALSE)); // Display edit form as well
- $text .= $fp->select_class($fp_settings, FALSE);
- $e107->ns->tablerender(FRTLAN_PAGE_TITLE." - ".FRTLAN_42, $text);
-}
-elseif(isset($_POST['fp_edit_rule']))
-{
- $text = $fp->edit_rule($fp_settings[key($_POST['fp_edit_rule'])]); // Display edit form as well
- $text .= $fp->select_class($fp_settings, FALSE);
- $e107->ns->tablerender(FRTLAN_PAGE_TITLE." - ".FRTLAN_46, $text);
-}
-else
-{ // Just show existing rules
- $e107->ns->tablerender(FRTLAN_PAGE_TITLE." - ".FRTLAN_13, $emessage->render().$fp->select_class($fp_settings, TRUE));
-}
-
-
-
-class frontpage
-{
- protected $frm;
- protected $frontPage = array(); // List of options for front page
-
- public function __construct($fp)
- {
- $this->frm = new e_form();
- $this->frontPage = $fp;
- }
-
-
-
- /**
- * Show a list of existing rules, with edit/delete/move buttons, and optional button to add a new rule
- *
- * @param boolean $show_button - show the 'Add new rule' button if true
- *
- * @return string text for display
- */
- function select_class(&$fp_settings, $show_button = TRUE)
- {
- // List of current settings
- $show_legend = $show_button ? " class='e-hideme'" : '';
- $text = "
- ";
-
- return $text;
- }
-
-
-
- /**
- * Display form to add/edit rules
- *
- * @param array $rule_info - initial data (must be preset if new rule)
- *
- * @return string - text for display
- */
- function edit_rule($rule_info)
- {
- $is_other_home = TRUE;
- $is_other_force = TRUE;
- //$force_checked = $rule_info['force'] ? " checked='checked'" : '';
- $text_tmp_1 = '';
- $text_tmp_2 = '';
- foreach($this->frontPage as $front_key => $front_value)
- {
- //$type_selected = FALSE;
-
- $text_tmp_1 .= "
-
- ".$this->show_front_val('frontpage', $front_key, $front_value, $is_other_home, $rule_info['page'])."
-
- ";
-
- $text_tmp_2 .= "
-
- ".$this->show_front_val('fp_force_page', $front_key, $front_value, $is_other_force, $rule_info['force'])."
-
- ";
-
- }
-
- $text = "
-
- ";
- return $text;
- }
-
-
-
- /**
- * Given a path string related to a choice, returns the 'type' (title) for it
- *
- * @param string $path
- *
- * @return string - title of option
- */
- function lookup_path($path)
- {
- foreach($this->frontPage as $front_value)
- {
- if(is_array($front_value['page']))
- { // Its a URL with multiple options
- foreach($front_value['page'] as $multipage)
- {
- if($path == $multipage['page'])
- {
- // return $front_value['title'].":".$path;
- return $front_value['title'].":".$multipage['title'];
- }
- }
- }
- else
- {
- if($path == $front_value['page'])
- {
- return $front_value['title'];
- }
- }
- }
- if(strlen($path))
- return FRTLAN_51.":".$path; // 'Other'
- else
- return FRTLAN_52; // 'None'
- }
-
-
-
- /**
- * Show the selection options for a possible target of a rule
- *
- * @param string $ob_name - name of the radio button which selects this element
- * @param string $front_key
- * @param array|string $front_value - array of choices, or a single value
- * @param boolean $is_other - passed by reference - set if some other option is selected
- * @param string $current_setting - current value
- *
- * @return string - text for display
- */
- function show_front_val($ob_name, $front_key, $front_value, &$is_other, $current_setting)
- {
- $type_selected = FALSE;
- $text = '';
-
- // First, work out if the selection os one of these options
- if (is_array($front_value['page']))
- { // Its a URL with multiple options
- foreach($front_value['page'] as $multipage)
- {
- if($current_setting == $multipage['page'])
- {
- $type_selected = TRUE;
- $is_other = FALSE;
- }
- }
- }
- else
- {
- if($current_setting == $front_value['page'])
- {
- $type_selected = TRUE;
- $is_other = FALSE;
- }
- }
-
- // Now generate the display text - two table cells worth
- if (is_array($front_value['page']))
- { // Multiple options for same page name
- $text .= "
-
- ".$this->frm->radio($ob_name, $front_key, $type_selected)."
- ".$this->frm->label($front_value['title'], $ob_name, $front_key)."
- |
-
- ";
- $text .= $this->frm->select_open($ob_name.'_multipage['.$front_key.']');
- foreach($front_value['page'] as $multipage_key => $multipage_value)
- {
- $text .= "\n".$this->frm->option($multipage_value['title'], $multipage_key, ($current_setting == $multipage_value['page']))."\n";
- }
- $text .= $this->frm->select_close();
- $text .= " | ";
- }
- else
- { // Single option for URL
- $text .= "
-
- ".$this->frm->radio($ob_name, $front_key, $type_selected)."
- ".$this->frm->label($front_value['title'], $ob_name, $front_key)."
-
- |
- | ";
- }
- return $text;
- }
-
-
-
- /**
- * Provide the text for an 'other' option - a text box for URL entry
- *
- * @param string $ob_name - name of the radio button which selects this element
- * @param string $front_key
- * @param string $curval - current 'selected' value
- * @param string $cur_page - probably the secondary (e.g. custom page) value for any option that has one
- *
- * @return string - text for display
- */
- function add_other($ob_name, $cur_val, $cur_page)
- {
- return "
- ".$this->frm->radio($ob_name, 'other', $cur_val)." ".$this->frm->label(FRTLAN_15, $ob_name, 'other')." |
- ".$this->frm->text($ob_name.'_other', ($cur_val ? $cur_page : ''), 150, "size=50&id={$ob_name}-other-txt")." |
- ";
- }
-}
-
-require_once(e_ADMIN.'footer.php');
-
-/**
- * Log event to admin log
- *
- * @param string $msg_num - exactly two numeric characters corresponding to a log message
- * @param string $woffle - information for the body of the log entre
- *
- * @return none
- */
-function frontpage_adminlog($msg_num = '00', $woffle = '')
-{
- e107::getAdminLog()->log_event('FRONTPG_'.$msg_num, $woffle, E_LOG_INFORMATIVE, '');
-}
-
-/**
- * Handle page DOM within the page header
- *
- * @return string JS source
- */
-function headerjs()
-{
- require_once(e_HANDLER.'js_helper.php');
- $ret = "
-
-
- ";
-
- return $ret;
-}
-
+ 'news.php', 'title' => ADLAN_0);
+//$front_page['download'] = array('page' => 'download.php', 'title' => ADLAN_24); // Its a plugin now
+$front_page['wmessage'] = array('page' => 'index.php', 'title' => ADLAN_28);
+
+if($sql->db_Select('page', 'page_id, page_title', "page_theme=''"))
+{
+ $front_page['custom']['title'] = FRTLAN_30;
+ while($row = $sql->db_Fetch())
+ {
+ $front_page['custom']['page'][] = array('page' => 'page.php?'.$row['page_id'], 'title' => $row['page_title']);
+ }
+}
+
+// Now let any plugins add to the options - must append to the $front_page array as above
+if(varset($frontPref['e_frontpage_list']))
+{
+ foreach($frontPref['e_frontpage_list'] as $val)
+ {
+ if(is_readable(e_PLUGIN.$val.'/e_frontpage.php'))
+ {
+ require_once (e_PLUGIN.$val.'/e_frontpage.php');
+ }
+ }
+}
+
+
+
+// Now sort out list of rules for display (based on $pref data to start with)
+$gotpub = FALSE;
+if(is_array($frontPref['frontpage']))
+{
+ $i = 1;
+ foreach($frontPref['frontpage'] as $class => $val)
+ {
+ if($class == 'all')
+ {
+ $class = e_UC_PUBLIC;
+ $gotpub = TRUE;
+ }
+ if($val)
+ { // Only add non-null pages
+ $fp_settings[$i] = array('order' => $i, 'class' => $class, 'page' => $val, 'force' => varset($frontPref['frontpage_force'][$class], ''));
+ $i ++;
+ }
+ }
+}
+else
+{ // Legacy stuff to convert
+ $fp_settings = array();
+ $fp_settings[] = array('order' => 0, 'class' => e_UC_PUBLIC, 'page' => varset($frontPref['frontpage'], 'news.php'), 'force' => '');
+}
+
+if(!$gotpub)
+{ // Need a 'default' setting - usually 'all'
+ $fp_settings[] = array('order' => $i, 'class' => e_UC_PUBLIC, 'page' => (isset($frontPref['frontpage']['all']) ? $frontPref['frontpage']['all'] : 'news.php'), 'force' => '');
+}
+
+$fp_update_prefs = FALSE;
+
+if(isset($_POST['fp_inc']))
+{
+ $mv = intval($_POST['fp_inc']);
+ if(($mv > 1) && ($mv <= count($fp_settings)))
+ {
+ $temp = $fp_settings[$mv - 1];
+ $fp_settings[$mv - 1] = $fp_settings[$mv];
+ $fp_settings[$mv] = $temp;
+ $fp_update_prefs = TRUE;
+ frontpage_adminlog('01', 'Inc '.$mv);
+ }
+}
+elseif(isset($_POST['fp_dec']))
+{
+ $mv = intval($_POST['fp_dec']);
+ if(($mv > 0) && ($mv < count($fp_settings)))
+ {
+ $temp = $fp_settings[$mv + 1];
+ $fp_settings[$mv + 1] = $fp_settings[$mv];
+ $fp_settings[$mv] = $temp;
+ $fp_update_prefs = TRUE;
+ frontpage_adminlog('01', 'Dec '.$mv);
+ }
+}
+
+// Edit an existing rule
+if(isset($_POST['fp_edit_rule']))
+{
+ $_POST['type'] = (isset($_POST['edit']['all'])) ? 'all_users' : 'user_class';
+ $_POST['class'] = key($_POST['edit']);
+}
+
+// Cancel Edit
+
+
+if(isset($_POST['fp_save_new']))
+{ // Add or edit an existing rule here.
+ // fp_order - zero for a new rule, non-zero if editing an existing rule
+ // class - user class for rule
+ // frontpage - radio button option indicating type of page (for home page)
+ // frontpage_multipage[] - the other information for custom pages and similar - array index matches value of 'frontpage' when selected
+ // frontpage_other - URL for 'other' home page
+ // fp_force_page - radio button option indicating type of page (for post-login page)
+ // fp_force_page_multipage[] - the other information for custom pages and similar - array index matches value of 'frontpage' when selected
+ // fp_force_page_other - URL for forced post-login 'other' page
+
+
+ if($_POST['frontpage'] == 'other')
+ {
+ $_POST['frontpage_other'] = trim($tp->toForm($_POST['frontpage_other']));
+ $frontpage_value = $_POST['frontpage_other'] ? $_POST['frontpage_other'] : 'news.php';
+ }
+ else
+ {
+ if(is_array($front_page[$_POST['frontpage']]['page']))
+ {
+ $frontpage_value = $front_page[$_POST['frontpage']]['page'][$_POST['frontpage_multipage'][$_POST['frontpage']]]['page'];
+ }
+ else
+ {
+ $frontpage_value = $front_page[$_POST['frontpage']]['page'];
+ }
+ }
+
+ if($_POST['fp_force_page'] == 'other')
+ {
+ $_POST['fp_force_page_other'] = trim($tp->toForm($_POST['fp_force_page_other']));
+ $forcepage_value = $_POST['fp_force_page_other']; // A null value is allowable here
+ }
+ else
+ {
+ if(is_array($front_page[$_POST['fp_force_page']]['page']))
+ {
+ $forcepage_value = $front_page[$_POST['fp_force_page']]['page'][$_POST['fp_force_page_multipage'][$_POST['fp_force_page']]]['page'];
+ }
+ else
+ {
+ $forcepage_value = $front_page[$_POST['fp_force_page']]['page'];
+ }
+ }
+
+ $temp = array('order' => intval($_POST['fp_order']), 'class' => $_POST['class'], 'page' => $frontpage_value, 'force' => trim($forcepage_value));
+ if($temp['order'] == 0)
+ { // New index to add
+ $ind = 0;
+ for($i = 1; $i <= count($fp_settings); $i ++)
+ {
+ if($fp_settings[$i]['class'] == $temp['class'])
+ $ind = $i;
+ }
+ if($ind)
+ {
+ unset($fp_settings[$ind]); // Knock out duplicate definition for class
+ echo "duplicate definition for class: ".$ind."
";
+ }
+ array_unshift($fp_settings, $temp); // Deliberately add twice
+ array_unshift($fp_settings, $temp); // ....because re-indexed from zero
+ unset($fp_settings[0]); // Then knock out index zero
+ $fp_update_prefs = TRUE;
+ frontpage_adminlog('02', "class => {$_POST['class']},[!br!]page => {$frontpage_value},[!br!]force => {$forcepage_value}");
+ }
+ elseif(array_key_exists($temp['order'], $fp_settings))
+ {
+ $fp_settings[$temp['order']] = $temp;
+ $fp_update_prefs = TRUE;
+ frontpage_adminlog('03', "posn => {$temp},[!br!]class => {$_POST['class']},[!br!]page => {$frontpage_value},[!br!]force => {$forcepage_value}");
+ }
+ else
+ { // Someone playing games
+ $emessage->add('Software error', E_MESSAGE_ERROR);
+ }
+}
+
+if(isset($_POST['fp_delete_rule']))
+{
+ if(isset($fp_settings[key($_POST['fp_delete_rule'])]))
+ {
+ $rule_no = key($_POST['fp_delete_rule']);
+ $array_size = count($fp_settings);
+ frontpage_adminlog('04', "Rule {$rule_no},[!br!]class => {$fp_settings[$rule_no]['class']},[!br!]page => {$fp_settings[$rule_no]['page']},[!br!]force => {$fp_settings[$rule_no]['force']}");
+ unset($fp_settings[$rule_no]);
+ while($rule_no < $array_size)
+ { // Move up and renumber any entries after the deleted rule
+ $fp_settings[$rule_no] = $fp_settings[$rule_no + 1];
+ $rule_no ++;
+ unset($fp_settings[$rule_no]);
+ }
+ $fp_update_prefs = TRUE;
+ }
+}
+
+if($fp_update_prefs)
+{ // Save the two arrays
+ $fp_list = array();
+ $fp_force = array();
+ for($i = 1; $i <= count($fp_settings); $i ++)
+ {
+ $fp_list[$fp_settings[$i]['class']] = $fp_settings[$i]['page'];
+ $fp_force[$fp_settings[$i]['class']] = $fp_settings[$i]['force'];
+ }
+
+ $corePrefs = e107::getConfig('core'); // Core Prefs Object.
+ $corePrefs->set('frontpage', $fp_list);
+ $corePrefs->set('frontpage_force', $fp_force);
+ $result = $corePrefs->save(FALSE, TRUE);
+ $emessage->add(FRTLAN_1, E_MESSAGE_SUCCESS);
+}
+
+
+
+
+// All updates complete now - latest data is in the $fp_settings, $fp_list and $fp_force arrays
+$fp = new frontpage($front_page);
+
+
+if(isset($_POST['fp_add_new']))
+{
+ $text = $fp->edit_rule(array('order' => 0, 'class' => e_UC_PUBLIC, 'page' => 'news.php', 'force' => FALSE)); // Display edit form as well
+ $text .= $fp->select_class($fp_settings, FALSE);
+ $e107->ns->tablerender(FRTLAN_PAGE_TITLE." - ".FRTLAN_42, $text);
+}
+elseif(isset($_POST['fp_edit_rule']))
+{
+ $text = $fp->edit_rule($fp_settings[key($_POST['fp_edit_rule'])]); // Display edit form as well
+ $text .= $fp->select_class($fp_settings, FALSE);
+ $e107->ns->tablerender(FRTLAN_PAGE_TITLE." - ".FRTLAN_46, $text);
+}
+else
+{ // Just show existing rules
+ $e107->ns->tablerender(FRTLAN_PAGE_TITLE." - ".FRTLAN_13, $emessage->render().$fp->select_class($fp_settings, TRUE));
+}
+
+
+
+class frontpage
+{
+ protected $frm;
+ protected $frontPage = array(); // List of options for front page
+
+ public function __construct($fp)
+ {
+ $this->frm = new e_form();
+ $this->frontPage = $fp;
+ }
+
+
+
+ /**
+ * Show a list of existing rules, with edit/delete/move buttons, and optional button to add a new rule
+ *
+ * @param boolean $show_button - show the 'Add new rule' button if true
+ *
+ * @return string text for display
+ */
+ function select_class(&$fp_settings, $show_button = TRUE)
+ {
+ // List of current settings
+ $show_legend = $show_button ? " class='e-hideme'" : '';
+ $text = "
+ ";
+
+ return $text;
+ }
+
+
+
+ /**
+ * Display form to add/edit rules
+ *
+ * @param array $rule_info - initial data (must be preset if new rule)
+ *
+ * @return string - text for display
+ */
+ function edit_rule($rule_info)
+ {
+ $is_other_home = TRUE;
+ $is_other_force = TRUE;
+ //$force_checked = $rule_info['force'] ? " checked='checked'" : '';
+ $text_tmp_1 = '';
+ $text_tmp_2 = '';
+ foreach($this->frontPage as $front_key => $front_value)
+ {
+ //$type_selected = FALSE;
+
+ $text_tmp_1 .= "
+
+ ".$this->show_front_val('frontpage', $front_key, $front_value, $is_other_home, $rule_info['page'])."
+
+ ";
+
+ $text_tmp_2 .= "
+
+ ".$this->show_front_val('fp_force_page', $front_key, $front_value, $is_other_force, $rule_info['force'])."
+
+ ";
+
+ }
+
+ $text = "
+
+ ";
+ return $text;
+ }
+
+
+
+ /**
+ * Given a path string related to a choice, returns the 'type' (title) for it
+ *
+ * @param string $path
+ *
+ * @return string - title of option
+ */
+ function lookup_path($path)
+ {
+ foreach($this->frontPage as $front_value)
+ {
+ if(is_array($front_value['page']))
+ { // Its a URL with multiple options
+ foreach($front_value['page'] as $multipage)
+ {
+ if($path == $multipage['page'])
+ {
+ // return $front_value['title'].":".$path;
+ return $front_value['title'].":".$multipage['title'];
+ }
+ }
+ }
+ else
+ {
+ if($path == $front_value['page'])
+ {
+ return $front_value['title'];
+ }
+ }
+ }
+ if(strlen($path))
+ return FRTLAN_51.":".$path; // 'Other'
+ else
+ return FRTLAN_52; // 'None'
+ }
+
+
+
+ /**
+ * Show the selection options for a possible target of a rule
+ *
+ * @param string $ob_name - name of the radio button which selects this element
+ * @param string $front_key
+ * @param array|string $front_value - array of choices, or a single value
+ * @param boolean $is_other - passed by reference - set if some other option is selected
+ * @param string $current_setting - current value
+ *
+ * @return string - text for display
+ */
+ function show_front_val($ob_name, $front_key, $front_value, &$is_other, $current_setting)
+ {
+ $type_selected = FALSE;
+ $text = '';
+
+ // First, work out if the selection os one of these options
+ if (is_array($front_value['page']))
+ { // Its a URL with multiple options
+ foreach($front_value['page'] as $multipage)
+ {
+ if($current_setting == $multipage['page'])
+ {
+ $type_selected = TRUE;
+ $is_other = FALSE;
+ }
+ }
+ }
+ else
+ {
+ if($current_setting == $front_value['page'])
+ {
+ $type_selected = TRUE;
+ $is_other = FALSE;
+ }
+ }
+
+ // Now generate the display text - two table cells worth
+ if (is_array($front_value['page']))
+ { // Multiple options for same page name
+ $text .= "
+
+ ".$this->frm->radio($ob_name, $front_key, $type_selected)."
+ ".$this->frm->label($front_value['title'], $ob_name, $front_key)."
+ |
+
+ ";
+ $text .= $this->frm->select_open($ob_name.'_multipage['.$front_key.']');
+ foreach($front_value['page'] as $multipage_key => $multipage_value)
+ {
+ $text .= "\n".$this->frm->option($multipage_value['title'], $multipage_key, ($current_setting == $multipage_value['page']))."\n";
+ }
+ $text .= $this->frm->select_close();
+ $text .= " | ";
+ }
+ else
+ { // Single option for URL
+ $text .= "
+
+ ".$this->frm->radio($ob_name, $front_key, $type_selected)."
+ ".$this->frm->label($front_value['title'], $ob_name, $front_key)."
+
+ |
+ | ";
+ }
+ return $text;
+ }
+
+
+
+ /**
+ * Provide the text for an 'other' option - a text box for URL entry
+ *
+ * @param string $ob_name - name of the radio button which selects this element
+ * @param string $front_key
+ * @param string $curval - current 'selected' value
+ * @param string $cur_page - probably the secondary (e.g. custom page) value for any option that has one
+ *
+ * @return string - text for display
+ */
+ function add_other($ob_name, $cur_val, $cur_page)
+ {
+ return "
+ ".$this->frm->radio($ob_name, 'other', $cur_val)." ".$this->frm->label(FRTLAN_15, $ob_name, 'other')." |
+ ".$this->frm->text($ob_name.'_other', ($cur_val ? $cur_page : ''), 150, "size=50&id={$ob_name}-other-txt")." |
+ ";
+ }
+}
+
+require_once(e_ADMIN.'footer.php');
+
+/**
+ * Log event to admin log
+ *
+ * @param string $msg_num - exactly two numeric characters corresponding to a log message
+ * @param string $woffle - information for the body of the log entre
+ *
+ * @return none
+ */
+function frontpage_adminlog($msg_num = '00', $woffle = '')
+{
+ e107::getAdminLog()->log_event('FRONTPG_'.$msg_num, $woffle, E_LOG_INFORMATIVE, '');
+}
+
+/**
+ * Handle page DOM within the page header
+ *
+ * @return string JS source
+ */
+function headerjs()
+{
+ require_once(e_HANDLER.'js_helper.php');
+ $ret = "
+
+
+ ";
+
+ return $ret;
+}
+
?>
\ No newline at end of file