/** * Move To Trash * Hide special pages * */ public function MoveToTrash() { global $gp_titles, $gp_index, $langmessage, $gp_menu, $config, $dataDir; $this->CacheSettings(); $_POST += array('index' => ''); $indexes = explode(',', $_POST['index']); $trash_data = array(); foreach ($indexes as $index) { $title = \gp\tool::IndexToTitle($index); // Create file in trash if ($title) { if (!\gp\admin\Content\Trash::MoveToTrash_File($title, $index, $trash_data)) { msg($langmessage['OOPS'] . ' (Not Moved)'); $this->RestoreSettings(); return false; } } // Remove from menu if (isset($gp_menu[$index])) { if (count($gp_menu) == 1) { continue; } if (!$this->RmFromMenu($index, false)) { msg($langmessage['OOPS']); $this->RestoreSettings(); return false; } } unset($gp_titles[$index]); unset($gp_index[$title]); } \gp\admin\Menu\Tools::ResetHomepage(); if (!\gp\admin\Tools::SaveAllConfig()) { $this->RestoreSettings(); return false; } $link = \gp\tool::GetUrl('Admin/Trash'); msg(sprintf($langmessage['MOVED_TO_TRASH'], $link)); \gp\tool\Plugins::Action('MenuPageTrashed', array($indexes)); return true; }
/** * Display current layout, list of available layouts and list of titles affected by the layout setting for $title * */ public function SelectLayout($url, $query_string) { global $gp_titles, $gpLayouts, $langmessage, $config, $gp_index; $index = $_REQUEST['index']; $title = \gp\tool::IndexToTitle($index); if (!$title) { echo $langmessage['OOPS']; return; } $this->title = $title; $Inherit_Info = \gp\admin\Menu\Tools::Inheritance_Info(); $curr_layout = \gp\admin\Menu\Tools::CurrentLayout($index); $curr_info = $gpLayouts[$curr_layout]; echo '<div class="inline_box">'; echo '<h3>'; echo $langmessage['current_layout'] . ': '; echo '<span class="layout_color_id" style="background-color:' . $curr_info['color'] . ';" title="' . $curr_info['color'] . '"></span> '; echo str_replace('_', ' ', $curr_info['label']); echo '</h3>'; if (!empty($gp_titles[$index]['gpLayout'])) { echo '<p>'; if (isset($Inherit_Info[$index]['parent_layout'])) { $parent_layout = $Inherit_Info[$index]['parent_layout']; } else { $parent_layout = $config['gpLayout']; } $parent_info = $gpLayouts[$parent_layout]; echo $langmessage['restore'] . ': '; $span = '<span class="layout_color_id" style="background-color:' . $parent_info['color'] . ';" title="' . $parent_info['color'] . '"></span> '; echo \gp\tool::Link($url, $span . $parent_info['label'], $query_string . 'cmd=restorelayout&index=' . urlencode($index), array('data-cmd' => 'postlink', 'title' => $langmessage['restore']), 'restore'); echo '</p>'; } echo '<table class="bordered full_width">'; echo '<tr><th>'; echo $langmessage['available_layouts']; echo '</th><th>'; echo $langmessage['theme']; echo '</th></tr>'; if (count($gpLayouts) < 2) { echo '<tr><td colspan="2">'; echo $langmessage['Empty']; echo '</td></tr>'; echo '</table>'; echo \gp\tool::Link('Admin_Theme_Content', $langmessage['new_layout']); echo '</div>'; return; } foreach ($gpLayouts as $layout => $info) { if ($layout == $curr_layout) { continue; } echo '<tr><td>'; echo '<span class="layout_color_id" style="background-color:' . $info['color'] . ';" title="' . $info['color'] . '">'; echo '</span> '; if ($layout != $curr_layout) { echo \gp\tool::Link($url, $info['label'], $query_string . 'cmd=uselayout&index=' . urlencode($index) . '&layout=' . urlencode($layout), array('data-cmd' => 'postlink'), 'use_' . $layout); } echo '</td><td>'; echo $info['theme']; echo '</td></tr>'; } echo '</table>'; //show affected pages $affected = self::GetAffectedFiles($index); echo '<br/>'; echo '<table class="bordered full_width">'; echo '<tr><th>' . $langmessage['affected_files'] . '</th></tr></table>'; echo '<p class="sm">' . $langmessage['about_layout_change'] . '</p>'; echo '<p class="admin_note" style="width:35em">'; $label = \gp\tool::GetLabelIndex($index, false); echo \gp\tool::LabelSpecialChars($label); $i = 0; foreach ($affected as $affected_label) { $i++; echo ', ' . $affected_label; } echo '</p>'; echo '<p>'; echo ' <input type="submit" value="' . $langmessage['cancel'] . '" class="admin_box_close gpcancel" /> '; echo '</p>'; echo '<p class="admin_note">'; echo '<b>' . $langmessage['see_also'] . '</b> '; echo \gp\tool::Link('Admin_Theme_Content', $langmessage['layouts']); echo '</p>'; echo '</div>'; }
protected function MenuInsert_Child($titles, $parent) { if (!isset($this->curr_menu_array[$parent]) || !isset($this->curr_menu_array[$parent]['level'])) { return false; } $parent_level = $this->curr_menu_array[$parent]['level']; //level adjustment $old_level = \gp\admin\Menu\Tools::GetRootLevel($titles); $level_adjustment = $parent_level - $old_level + 1; $titles = $this->AdjustMovedLevel($titles, $level_adjustment); //rebuild menu // insert $titles after parent $new_menu = array(); foreach ($this->curr_menu_array as $menu_title => $menu_info) { $new_menu[$menu_title] = $menu_info; if ($menu_title == $parent) { foreach ($titles as $titles_title => $titles_info) { $new_menu[$titles_title] = $titles_info; } } } $this->curr_menu_array = $new_menu; return true; }
/** * Remove an alternate menu from the configuration and delete the data file * */ public function MenuRemove() { global $langmessage, $config, $dataDir; $menu_id =& $_POST['id']; if (!\gp\admin\Menu\Tools::IsAltMenu($menu_id)) { msg($langmessage['OOPS']); return; } $menu_file = $dataDir . '/data/_menus/' . $menu_id . '.php'; unset($config['menus'][$menu_id]); unset($this->avail_menus[$menu_id]); \gp\admin\Tools::SaveConfig(true, true); //delete menu file $menu_file = $dataDir . '/data/_menus/' . $menu_id . '.php'; if (\gp\tool\Files::Exists($menu_file)) { unlink($menu_file); } }