Exemple #1
0
 /**
  * Generate admin toolbar links
  *
  */
 public function AdminLinks()
 {
     global $langmessage;
     $admin_links = $this->admin_links;
     $menu_permissions = \gp\admin\Tools::HasPermission('Admin_Menu');
     if ($menu_permissions) {
         //visibility
         $q = 'cmd=ToggleVisibility';
         $label = '<i class="fa fa-eye-slash"></i> ' . $langmessage['Visibility'] . ': ' . $langmessage['Private'];
         if (!$this->visibility) {
             $label = '<i class="fa fa-eye"></i> ' . $langmessage['Visibility'] . ': ' . $langmessage['Public'];
             $q .= '&visibility=private';
         }
         $attrs = array('title' => $label, 'data-cmd' => 'creq');
         $admin_links[] = \gp\tool::Link($this->title, $label, $q, $attrs);
     }
     // page options: less frequently used links that don't have to do with editing the content of the page
     $option_links = array();
     if ($menu_permissions) {
         $option_links[] = \gp\tool::Link($this->title, $langmessage['rename/details'], 'cmd=renameform&index=' . urlencode($this->gp_index), 'data-cmd="gpajax"');
         $option_links[] = \gp\tool::Link('Admin/Menu', $langmessage['current_layout'], 'cmd=layout&from=page&index=' . urlencode($this->gp_index), array('title' => $langmessage['current_layout'], 'data-cmd' => 'gpabox'));
     }
     if (\gp\admin\Tools::HasPermission('Admin_User')) {
         $option_links[] = \gp\tool::Link('Admin/Users', $langmessage['permissions'], 'cmd=file_permissions&index=' . urlencode($this->gp_index), array('title' => $langmessage['permissions'], 'data-cmd' => 'gpabox'));
     }
     if (!empty($option_links)) {
         $admin_links[$langmessage['options']] = $option_links;
     }
     return $admin_links;
 }
Exemple #2
0
 /**
  * Find the requested admin script and execute it if the user has permissions to view it
  *
  */
 private function RunAdminScript()
 {
     global $dataDir, $langmessage;
     if (strtolower($this->requested) == 'admin') {
         $this->AdminPanel();
         return;
     }
     //resolve request for /Admin_Theme_Content if the request is for /Admin_Theme_Conent/1234
     $request_string = str_replace('_', '/', $this->requested);
     $parts = explode('/', $request_string);
     do {
         $request_string = implode('/', $parts);
         $scriptinfo = $this->GetScriptInfo($request_string);
         if (is_array($scriptinfo)) {
             if (\gp\admin\Tools::HasPermission($request_string)) {
                 $this->OrganizeFrequentScripts($request_string);
                 \gp\tool\Output::ExecInfo($scriptinfo, array('page' => $this));
                 return;
             }
             message($langmessage['not_permitted']);
             $this->AdminPanel();
             return;
         }
         //these are here because they should be available to everyone
         switch ($request_string) {
             case 'Admin/Finder':
                 if (\gp\admin\Tools::HasPermission('Admin_Uploaded')) {
                     includeFile('thirdparty/finder/connector.php');
                     return;
                 }
                 break;
         }
         array_pop($parts);
     } while (count($parts));
     $this->Redirect();
 }
Exemple #3
0
 /**
  * Plugin option links
  *
  */
 function OptionLinks($addon_key, $addon_config, $format = false)
 {
     global $langmessage, $gpLayouts;
     $list = array();
     if (!isset($addon_config['is_theme']) || !$addon_config['is_theme']) {
         //editable text
         if (isset($addon_config['editable_text']) && \gp\admin\Tools::HasPermission('Admin_Theme_Content')) {
             $list[] = \gp\tool::Link('Admin_Theme_Content/Text', $langmessage['editable_text'], 'cmd=AddonTextForm&addon=' . urlencode($addon_key), array('title' => urlencode($langmessage['editable_text']), 'data-cmd' => 'gpabox'));
         }
         //upgrade link
         if (isset($addon_config['upgrade_from'])) {
             $list[] = '<a href="?cmd=LocalInstall&source=' . rawurlencode($addon_config['upgrade_from']) . '" data-cmd="cnreq">' . $langmessage['upgrade'] . '</a>';
         }
         //uninstall
         $list[] = \gp\tool::Link('Admin/Addons', $langmessage['uninstall'], 'cmd=uninstall&addon=' . rawurlencode($addon_key), 'data-cmd="gpabox"');
         //version
         if (!empty($addon_config['version'])) {
             $list[] = '<a>' . $langmessage['Your_version'] . ' ' . $addon_config['version'] . '</a>';
         }
         //rating
         if (isset($addon_config['id']) && is_numeric($addon_config['id'])) {
             $id = $addon_config['id'];
             $rating = 5;
             if (isset($this->addonReviews[$id])) {
                 $rating = $this->addonReviews[$id]['rating'];
             }
             $label = $langmessage['rate_this_addon'] . ' ' . $this->ShowRating($id, $rating);
             $list[] = '<span>' . $label . '</span>';
         }
         echo $this->FormatList($list, $langmessage['options'], $format);
         return;
     }
     //show list of themes using these addons
     foreach ($gpLayouts as $layout_id => $layout_info) {
         if (!isset($layout_info['addon_key']) || $layout_info['addon_key'] !== $addon_key) {
             continue;
         }
         $item = '<span><span class="layout_color_id" style="background:' . $layout_info['color'] . '"></span> ';
         $item .= \gp\tool::Link('Admin_Theme_Content', $layout_info['label']);
         $item .= ' ( ';
         $item .= \gp\tool::Link('Admin_Theme_Content/Edit/' . $layout_id, $langmessage['edit']);
         $item .= ' )</span>';
         $list[] = $item;
     }
     echo $this->FormatList($list, $langmessage['layouts'], $format);
 }
Exemple #4
0
 /**
  * Generate admin toolbar links
  *
  */
 public function AdminLinks()
 {
     global $langmessage;
     //viewing revision
     if (isset($this->revision)) {
         return $this->RevisionLinks();
     }
     $admin_links = array();
     //history
     $backup_files = $this->BackupFiles();
     $times = array_keys($backup_files);
     $admin_links[] = \gp\tool::Link($this->title, '<i class="fa fa-backward"></i> ' . $langmessage['Previous'], 'cmd=ViewRevision&time=' . array_pop($times), array('data-cmd' => 'cnreq'));
     $admin_links[] = \gp\tool::Link($this->title, '<i class="fa fa-history"></i> ' . $langmessage['Revision History'], 'cmd=ViewHistory', array('title' => $langmessage['Revision History'], 'data-cmd' => 'gpabox'));
     if ($this->permission_menu) {
         //visibility
         $q = 'cmd=ToggleVisibility';
         $label = '<i class="fa fa-eye-slash"></i> ' . $langmessage['Visibility'] . ': ' . $langmessage['Private'];
         if (!$this->visibility) {
             $label = '<i class="fa fa-eye"></i> ' . $langmessage['Visibility'] . ': ' . $langmessage['Public'];
             $q .= '&visibility=private';
         }
         $attrs = array('title' => $label, 'data-cmd' => 'creq');
         $admin_links[] = \gp\tool::Link($this->title, $label, $q, $attrs);
     }
     // page options: less frequently used links that don't have to do with editing the content of the page
     $option_links = array();
     if ($this->permission_menu) {
         $option_links[] = \gp\tool::Link($this->title, $langmessage['rename/details'], 'cmd=renameform&index=' . urlencode($this->gp_index), 'data-cmd="gpajax"');
         $option_links[] = \gp\tool::Link('Admin/Menu', $langmessage['current_layout'], 'cmd=layout&from=page&index=' . urlencode($this->gp_index), array('title' => $langmessage['current_layout'], 'data-cmd' => 'gpabox'));
         $option_links[] = \gp\tool::Link('Admin/Menu/Ajax', $langmessage['Copy'], 'cmd=CopyForm&redir=redir&index=' . urlencode($this->gp_index), array('title' => $langmessage['Copy'], 'data-cmd' => 'gpabox'));
     }
     if (\gp\admin\Tools::HasPermission('Admin_User')) {
         $option_links[] = \gp\tool::Link('Admin/Users', $langmessage['permissions'], 'cmd=file_permissions&index=' . urlencode($this->gp_index), array('title' => $langmessage['permissions'], 'data-cmd' => 'gpabox'));
     }
     if ($this->permission_menu) {
         $option_links[] = \gp\tool::Link('Admin/Menu/Ajax', $langmessage['delete_file'], 'cmd=MoveToTrash&index=' . urlencode($this->gp_index), array('data-cmd' => 'postlink', 'title' => $langmessage['delete_page'], 'class' => 'gpconfirm'));
     }
     if (!empty($option_links)) {
         $admin_links[$langmessage['options']] = $option_links;
     }
     //publish draft
     if ($this->permission_edit && $this->draft_exists) {
         $admin_links[] = \gp\tool::Link($this->title, '<i class="fa fa-check"></i> ' . $langmessage['Publish Draft'], 'cmd=PublishDraft', array('data-cmd' => 'creq', 'class' => 'msg_publish_draft'));
     }
     return array_merge($admin_links, $this->admin_links);
 }
Exemple #5
0
 /**
  * Output html for the menu editing options displayed for selected titles
  *
  */
 public function MenuSkeleton()
 {
     global $langmessage;
     //page options
     echo '<b>' . $langmessage['page_options'] . '</b>';
     echo '<span>';
     $img = '<i class="menu_icon fa fa-pencil"></i>';
     echo '<a href="[url]" class="view_edit_link not_multiple">' . $img . htmlspecialchars($langmessage['view/edit_page']) . '</a>';
     $img = '<i class="menu_icon fa fa-gears"></i>';
     $attrs = array('title' => $langmessage['rename/details'], 'data-cmd' => 'gpajax', 'class' => 'not_multiple');
     echo $this->Link('Admin/Menu/Ajax', $img . $langmessage['rename/details'], 'cmd=renameform&index=[key]', $attrs);
     $img = '<i class="fa fa-eye-slash menu_icon"></i>';
     $q = 'cmd=ToggleVisibility&index=[key]';
     $label = $langmessage['Visibility'] . ': ' . $langmessage['Private'];
     $attrs = array('title' => $label, 'data-cmd' => 'gpajax', 'class' => 'vis_private');
     echo $this->Link('Admin/Menu/Ajax', $img . $label, $q, $attrs);
     $img = '<i class="fa fa-eye menu_icon"></i>';
     $label = $langmessage['Visibility'] . ': ' . $langmessage['Public'];
     $attrs = array('title' => $label, 'data-cmd' => 'gpajax', 'class' => 'vis_public not_multiple');
     $q .= '&visibility=private';
     echo $this->Link('Admin/Menu/Ajax', $img . $label, $q, $attrs);
     echo '<a href="[url]?cmd=ViewHistory" class="view_edit_link not_multiple not_special" data-cmd="gpabox"><i class="fa fa-history menu_icon"></i>' . htmlspecialchars($langmessage['Revision History']) . '</a>';
     $img = '<i class="menu_icon fa fa-files-o"></i>';
     $attrs = array('title' => $langmessage['Copy'], 'data-cmd' => 'gpabox', 'class' => 'not_multiple not_special');
     echo $this->Link('Admin/Menu/Ajax', $img . $langmessage['Copy'], 'cmd=CopyForm&index=[key]', $attrs);
     if (\gp\admin\Tools::HasPermission('Admin_User')) {
         $img = '<i class="menu_icon fa fa-user"></i>';
         $attrs = array('title' => $langmessage['permissions'], 'data-cmd' => 'gpabox');
         echo $this->Link('Admin/Users', $img . $langmessage['permissions'], 'cmd=file_permissions&index=[key]', $attrs);
     }
     $img = '<i class="menu_icon fa fa-scissors"></i>';
     $attrs = array('title' => $langmessage['rm_from_menu'], 'data-cmd' => 'postlink', 'class' => 'gpconfirm');
     echo $this->Link('Admin/Menu/Ajax', $img . $langmessage['rm_from_menu'], 'cmd=hide&index=[key]', $attrs);
     $img = '<i class="menu_icon fa fa-trash"></i>';
     $attrs = array('title' => $langmessage['delete_page'], 'data-cmd' => 'postlink', 'class' => 'gpconfirm not_special');
     echo $this->Link('Admin/Menu/Ajax', $img . $langmessage['delete'], 'cmd=MoveToTrash&index=[key]', $attrs);
     echo '[opts]';
     //replaced with the contents of \gp\tool\Plugins::Action('MenuPageOptions',array($title,$menu_key,$menu_value,$layout_info));
     echo '</span>';
     //layout
     if ($this->is_main_menu) {
         echo '<div class="not_multiple">';
         echo '<b>' . $langmessage['layout'] . '</b>';
         echo '<span>';
         //has_layout
         $img = '<span class="layout_icon"></span>';
         echo $this->Link('Admin/Menu', $img . '[layout_label]', 'cmd=layout&index=[key]', ' title="' . $langmessage['layout'] . '" data-cmd="gpabox" class="has_layout"');
         $img = '<i class="menu_icon fa fa-undo"></i>';
         echo $this->Link('Admin/Menu', $img . $langmessage['restore'], 'cmd=restorelayout&index=[key]', array('data-cmd' => 'postlink', 'title' => $langmessage['restore'], 'class' => 'has_layout'), 'restore');
         //no_layout
         $img = '<span class="layout_icon"></span>';
         echo $this->Link('Admin/Menu', $img . '[layout_label]', 'cmd=layout&index=[key]', ' title="' . $langmessage['layout'] . '" data-cmd="gpabox" class="no_layout"');
         echo '</span>';
         echo '</div>';
     }
     $this->InsertLinks();
     //file stats
     echo '<div>';
     echo '<b>' . $langmessage['Page Info'] . '</b>';
     echo '<span>';
     echo '<a class="not_multiple">' . $langmessage['Slug/URL'] . ': [title]</a>';
     echo '<a class="not_multiple">' . $langmessage['Content Type'] . ': [types]</a>';
     echo '<a class="not_special only_multiple">' . sprintf($langmessage['%s Pages'], '[files]') . '</a>';
     echo '<a class="not_special">' . $langmessage['File Size'] . ': [size]</a>';
     echo '<a class="not_special not_multiple">' . $langmessage['Modified'] . ': [mtime]</a>';
     echo '<a class="not_multiple">Data Index: [key]</a>';
     echo '</span>';
     echo '</div>';
 }
Exemple #6
0
 /**
  * Notify the admin if there have been any fatal errors
  *
  */
 public static function FatalNotices()
 {
     global $dataDir, $page;
     if (!\gp\admin\Tools::HasPermission('Admin_Errors')) {
         return;
     }
     if (is_object($page) && property_exists($page, 'requested') && strpos($page->requested, 'Admin/Errors') !== false) {
         return;
     }
     $dir = $dataDir . '/data/_site';
     $files = scandir($dir);
     $has_fatal = false;
     foreach ($files as $file) {
         if (strpos($file, 'fatal_') === false) {
             continue;
         }
         $has_fatal = true;
     }
     if (!$has_fatal) {
         return;
     }
     $msg = 'Warning: One or more components have caused fatal errors and have been disabled. ' . \gp\tool::Link('Admin/Errors', 'More Information', '', 'style="white-space:nowrap"') . ' &nbsp; ' . \gp\tool::Link($page->title, 'Clear All Errors', 'cmd=ClearErrors', '', 'ClearErrors');
     //cannot be creq
     msg($msg);
 }
Exemple #7
0
 public static function ShowEditLink($permission = false)
 {
     if ($permission) {
         return !self::$nested_edit && \gp\tool::LoggedIn() && \gp\admin\Tools::HasPermission($permission);
     }
     return !self::$nested_edit && \gp\tool::LoggedIn();
 }