Beispiel #1
0
 function Finder()
 {
     global $page, $config, $dataDir;
     $page->head .= "\n" . '<link rel="stylesheet" type="text/css" media="screen" href="' . common::GetDir('/include/thirdparty/finder/css/finder.css') . '">';
     $page->head .= "\n" . '<link rel="stylesheet" type="text/css" media="screen" href="' . common::GetDir('/include/thirdparty/finder/style.css') . '">';
     $page->head .= "\n" . '<script type="text/javascript" src="' . common::GetDir('/include/thirdparty/finder/js/finder.js') . '"></script>';
     $page->head .= "\n" . '<script type="text/javascript" src="' . common::GetDir('/include/thirdparty/finder/config.js') . '"></script>';
     echo '<div id="finder"></div>';
     common::LoadComponents('selectable,draggable,droppable,resizable,dialog,slider,button');
     //get the finder language
     $language = $config['langeditor'];
     if ($language == 'inherit') {
         $language = $config['language'];
     }
     $lang_file = '/include/thirdparty/finder/js/i18n/' . $language . '.js';
     $lang_full = $dataDir . $lang_file;
     if (file_exists($lang_full)) {
         $page->head .= "\n" . '<script type="text/javascript" src="' . common::GetDir($lang_file) . '"></script>';
     } else {
         $language = 'en';
     }
     $this->finder_opts['lang'] = $language;
     $this->finder_opts['customData']['verified'] = common::new_nonce('post', true);
     $this->finder_opts['uiOptions'] = array('toolbar' => array(array('back', 'forward', 'up', 'reload'), array('home', 'netmount'), array('mkdir', 'upload'), array('open', 'download', 'getfile'), array('info'), array('quicklook'), array('copy', 'cut', 'paste'), array('rm'), array('duplicate', 'rename', 'edit', 'resize'), array('extract', 'archive'), array('search'), array('view', 'sort'), array('help')), 'tree' => array('openRootOnLoad' => true, 'syncTree' => true), 'navbar' => array('minWidth' => 150, 'maxWidth' => 500), 'cwd' => array('oldSchool' => false));
     $this->FinderPrep();
     $this->finder_opts = gpPlugin::Filter('FinderOptionsClient', array($this->finder_opts));
     gpSettingsOverride('finder_options_client', $this->finder_opts);
     $page->head_script .= "\n" . 'var finder_opts = ' . json_encode($this->finder_opts) . ';';
 }
Beispiel #2
0
 function __construct($title)
 {
     common::LoadComponents('gp-admin-css');
     $this->requested = str_replace(' ', '_', $title);
     $this->title = $title;
     $this->get_theme_css = false;
     $_REQUEST['gpreq'] = 'admin';
     $this->head .= "\n" . '<meta name="robots" content="noindex,nofollow" />';
     @header('X-Frame-Options: SAMEORIGIN');
 }
 function __construct()
 {
     global $page, $config, $gpLayouts, $langmessage;
     $page->head_js[] = '/include/js/theme_content.js';
     $page->head_js[] = '/include/js/dragdrop.js';
     $page->css_admin[] = '/include/css/theme_content.less';
     common::LoadComponents('resizable');
     parent::__construct();
     $this->GetPossible();
     $cmd = common::GetCommand();
     //layout requests
     if (strpos($page->requested, '/')) {
         $parts = explode('/', $page->requested);
         $layout_part = $parts[1];
         if (gp_remote_themes && strtolower($layout_part) == 'remote') {
             $this->RemoteBrowse();
             return;
         }
         if (strtolower($layout_part) == 'available') {
             $this->ShowAvailable();
             return;
         }
         if (isset($gpLayouts[$layout_part])) {
             $this->layout_request = true;
             $this->EditLayout($layout_part, $cmd);
             return;
         }
     }
     //set current layout
     $this->curr_layout = $config['gpLayout'];
     if (isset($_REQUEST['layout'])) {
         $this->curr_layout = $_REQUEST['layout'];
     }
     if (!array_key_exists($this->curr_layout, $gpLayouts)) {
         message($langmessage['OOPS'] . ' (Invalid Layout)');
         $cmd = '';
     }
     $this->SetLayoutArray();
     switch ($cmd) {
         //remote themes
         case 'remote_install':
             $this->RemoteInstall();
             return;
         case 'remote_install_confirmed':
             $installer = $this->RemoteInstallConfirmed('theme');
             $this->GetPossible();
             $this->UpdateLayouts($installer);
             break;
         case 'deletetheme':
             $this->DeleteTheme();
             $this->GetPossible();
             break;
             //adminlayout
         //adminlayout
         case 'adminlayout':
             $this->AdminLayout();
             return;
             //theme ratings
         //theme ratings
         case 'Update Review':
         case 'Send Review':
         case 'rate':
             $this->admin_addon_rating('theme', 'Admin_Theme_Content');
             if ($this->ShowRatingText) {
                 return;
             }
             break;
             //new layouts
         //new layouts
         case 'preview':
         case 'preview_iframe':
         case 'newlayout':
         case 'addlayout':
             if ($this->NewLayout($cmd)) {
                 return;
             }
             break;
         case 'updatetheme':
             $this->UpdateTheme($_REQUEST['source']);
             break;
             //copy
         //copy
         case 'copy':
             $this->CopyLayoutPrompt();
             return;
         case 'copylayout':
             $this->CopyLayout();
             break;
             //editing layouts without a layout id as part of slug
         //editing layouts without a layout id as part of slug
         case 'editlayout':
             //linked from install page without a layout id
         //linked from install page without a layout id
         case 'details':
             $this->EditLayout($this->curr_layout, $cmd);
             return;
             //layout options
         //layout options
         case 'deletelayout':
             $this->DeleteLayoutConfirmed();
             break;
             //links
         //links
         case 'editlinks':
         case 'editcustom':
             $this->SelectLinks();
             return;
         case 'savelinks':
             $this->SaveLinks();
             break;
             //text
         //text
         case 'edittext':
             $this->EditText();
             return;
         case 'savetext':
             $this->SaveText();
             break;
         case 'saveaddontext':
             $this->SaveAddonText();
             break;
         case 'addontext':
             $this->AddonText();
             return;
     }
     if ($this->LayoutCommands($cmd)) {
         return;
     }
     $this->ShowLayouts();
 }
Beispiel #4
0
 static function HeadContent()
 {
     global $config, $page, $gp_head_content, $wbMessageBuffer;
     //before ob_start() so plugins can get buffer content
     gpPlugin::Action('HeadContent');
     ob_start();
     if (common::LoggedIn()) {
         common::AddColorBox();
     }
     //always include javascript when there are messages
     if ($page->admin_js || !empty($page->jQueryCode) || !empty($wbMessageBuffer) || isset($_COOKIE['cookie_cmd'])) {
         common::LoadComponents('gp-main');
     }
     //defaults
     common::LoadComponents('jquery,gp-additional');
     //get css and js info
     includeFile('combine.php');
     $scripts = gp_combine::ScriptInfo(gpOutput::$components);
     //check for bootstrap theme
     if (strpos(gpOutput::$components, 'bootstrap')) {
         //this would only find bootstrap themes that include css
     }
     gpOutput::GetHead_TKD();
     gpOutput::GetHead_CSS($scripts['css']);
     //css before js so it's available to scripts
     gpOutput::GetHead_Lang();
     gpOutput::GetHead_JS($scripts['js']);
     gpOutput::GetHead_InlineJS();
     //gadget info
     if (!empty($config['addons'])) {
         foreach ($config['addons'] as $addon_info) {
             if (!empty($addon_info['html_head'])) {
                 echo "\n";
                 echo $addon_info['html_head'];
             }
         }
     }
     if (!empty($page->head)) {
         echo $page->head;
     }
     $gp_head_content .= ob_get_clean();
 }
Beispiel #5
0
<?php

global $page;
$path = $page->theme_dir . '/drop_down_menu.php';
include_once $path;
?>
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">

		<?php 
common::LoadComponents('bootstrap3-js');
gpOutput::GetHead();
?>

		<!--[if lt IE 9]><?php 
// HTML5 shim, for IE6-8 support of HTML5 elements
gpOutput::GetComponents('html5shiv');
gpOutput::GetComponents('respondjs');
?>
<![endif]-->
	</head>


	<body>
		<div class="navbar navbar-default navbar-fixed-top">
			<div class="container">
				<div class="navbar-header">
					<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
defined('is_running') or die('Not an entry point...');
/*
 * Page/Menu Manager
 *
 * Uses the following other files
 * 		admin_menu_tools.php
 * 		admin_trash.php
 *
 *
 *
 *
 */
defined('gp_max_menu_level') or define('gp_max_menu_level', 6);
includeFile('admin/admin_menu_tools.php');
common::LoadComponents('sortable');
class admin_menu_new extends admin_menu_tools
{
    var $cookie_settings = array();
    var $hidden_levels = array();
    var $search_page = 0;
    var $search_max_per_page = 20;
    var $query_string;
    var $avail_menus = array();
    var $curr_menu_id;
    var $curr_menu_array = false;
    var $is_alt_menu = false;
    var $max_level_index = 3;
    var $main_menu_count;
    var $list_displays = array('search' => true, 'all' => true, 'hidden' => true, 'nomenus' => true);
    function __construct()
Beispiel #7
0
 /**
  * Add js and css elements to the <head> section of a page
  *
  */
 static function AddColorBox()
 {
     global $page, $config, $langmessage;
     static $init = false;
     if ($init) {
         return;
     }
     $init = true;
     $list = array('previous' => $langmessage['Previous'], 'next' => $langmessage['Next'], 'close' => $langmessage['Close'], 'caption' => $langmessage['caption'], 'current' => sprintf($langmessage['Image_of'], '{current}', '{total}'));
     //'Start Slideshow'=>'slideshowStart','Stop Slideshow'=>'slideshowStop'
     $page->head_script .= "\nvar colorbox_lang = " . common::JsonEncode($list) . ';';
     common::LoadComponents('colorbox');
 }
Beispiel #8
0
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">

		<?php 
common::LoadComponents('bootstrap-all');
gpOutput::GetHead();
?>

		<!--[if lt IE 9]><?php 
// HTML5 shim, for IE6-8 support of HTML5 elements
gpOutput::GetComponents('html5shiv');
?>
<![endif]-->

	</head>

	<body>

		<div class="container-narrow">

			<div class="masthead">
				<?php 
$GP_ARRANGE = false;
$GP_MENU_CLASSES = array('menu_top' => 'nav nav-pills pull-right', 'selected' => '', 'selected_li' => 'active', 'childselected' => '', 'childselected_li' => '', 'li_' => '', 'li_title' => '');
gpOutput::Get('Menu');
//top level links
?>
 static function AddComponents()
 {
     global $addonFolderName, $page, $addonRelativeCode;
     static $done = false;
     if ($done) {
         return;
     }
     if (version_compare(gpversion, '4.3b2', '>=')) {
         common::LoadComponents('bootstrap3-carousel');
     } else {
         common::LoadComponents('bootstrap-carousel');
     }
     //$page->admin_js = true; //loads main.js
     $page->head_js[] = '/data/_addoncode/' . $addonFolderName . '/jquery.mobile.custom.js';
     $page->head_js[] = '/data/_addoncode/' . $addonFolderName . '/carousel.js';
     $page->css_user[] = '/data/_addoncode/' . $addonFolderName . '/carousel.css';
     $done = true;
 }
Beispiel #10
0
 /**
  * Determine if $session_id represents a valid session and if so start the session
  *
  */
 static function start($session_id, $sessions = false)
 {
     global $langmessage, $dataDir, $wbMessageBuffer;
     static $locked_message = false;
     //get the session file
     if (!$sessions) {
         $sessions = self::GetSessionIds();
         if (!isset($sessions[$session_id])) {
             msg('hmm: ' . gp_session_cookie);
             self::cookie(gp_session_cookie);
             //make sure the cookie is deleted
             msg($langmessage['Session Expired'] . ' (timeout)');
             return false;
         }
     }
     $sess_info = $sessions[$session_id];
     //check ~ip, ~user agent ...
     if (gp_browser_auth && !empty($sess_info['uid'])) {
         $auth_uid = self::auth_browseruid();
         $auth_uid_legacy = self::auth_browseruid(true);
         //legacy option added to prevent logging users out, added 2.0b2
         if ($sess_info['uid'] != $auth_uid && $sess_info['uid'] != $auth_uid_legacy) {
             self::cookie(gp_session_cookie);
             //make sure the cookie is deleted
             msg($langmessage['Session Expired'] . ' (browser auth)');
             return false;
         }
     }
     $session_file = $dataDir . '/data/_sessions/' . $sess_info['file_name'];
     if ($session_file === false || !gpFiles::Exists($session_file)) {
         self::cookie(gp_session_cookie);
         //make sure the cookie is deleted
         msg($langmessage['Session Expired'] . ' (invalid)');
         return false;
     }
     //prevent browser caching when editing
     Header('Last-Modified: ' . gmdate('D, j M Y H:i:s') . ' GMT');
     Header('Expires: ' . gmdate('D, j M Y H:i:s', time()) . ' GMT');
     Header('Cache-Control: no-store, no-cache, must-revalidate');
     // HTTP/1.1
     Header('Cache-Control: post-check=0, pre-check=0', false);
     Header('Pragma: no-cache');
     // HTTP/1.0
     $GLOBALS['gpAdmin'] = self::SessionData($session_file, $checksum);
     //lock to prevent conflicting edits
     if (gp_lock_time > 0 && (!empty($GLOBALS['gpAdmin']['editing']) || !empty($GLOBALS['gpAdmin']['granted']))) {
         $expires = gp_lock_time;
         if (!gpFiles::Lock('admin', sha1(sha1($session_id)), $expires)) {
             msg($langmessage['site_locked'] . ' ' . sprintf($langmessage['lock_expires_in'], ceil($expires / 60)));
             $locked_message = true;
         } else {
             unset($GLOBALS['gpAdmin']['locked']);
         }
     }
     //extend cookie?
     if (isset($GLOBALS['gpAdmin']['remember'])) {
         $elapsed = time() - $GLOBALS['gpAdmin']['remember'];
         if ($elapsed > 604800) {
             //7 days
             $GLOBALS['gpAdmin']['remember'] = time();
             self::cookie(gp_session_cookie, $session_id);
         }
     }
     register_shutdown_function(array('gpsession', 'close'), $session_file, $checksum);
     self::SaveSetting();
     //make sure forms have admin nonce
     ob_start(array('gpsession', 'AdminBuffer'));
     gpOutput::$lang_values += array('cancel' => 'ca', 'update' => 'up', 'caption' => 'cp', 'Width' => 'Width', 'Height' => 'Height');
     common::LoadComponents('sortable,autocomplete,gp-admin,gp-admin-css');
     admin_tools::VersionsAndCheckTime();
     gpOutput::$inline_vars += array('gpRem' => admin_tools::CanRemoteInstall());
     //prepend messages from message buffer
     if (isset($GLOBALS['gpAdmin']['message_buffer']) && count($GLOBALS['gpAdmin']['message_buffer'])) {
         $wbMessageBuffer = array_merge($GLOBALS['gpAdmin']['message_buffer'], $wbMessageBuffer);
         unset($GLOBALS['gpAdmin']['message_buffer']);
     }
     //alias
     if (isset($_COOKIE['gp_alias'])) {
         $GLOBALS['gpAdmin']['useralias'] = $_COOKIE['gp_alias'];
     } else {
         $GLOBALS['gpAdmin']['useralias'] = $GLOBALS['gpAdmin']['username'];
     }
     return true;
 }
Beispiel #11
0
 /**
  * Use ckeditor for to edit content
  *
  *	configuration options
  * 	- http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html
  */
 static function UseCK($contents, $name = 'gpcontent', $options = array())
 {
     global $page, $dataDir;
     $options += array('rows' => '20', 'cols' => '50');
     echo "\n\n";
     echo '<textarea name="' . $name . '" style="width:90%" rows="' . $options['rows'] . '" cols="' . $options['cols'] . '" class="CKEDITAREA">';
     echo htmlspecialchars($contents);
     echo '</textarea><br/>';
     $page->head .= "\n" . '<script type="text/javascript" src="' . common::GetDir('/include/thirdparty/ckeditor_34/ckeditor.js') . '?' . rawurlencode(gpversion) . '"></script>';
     $page->head .= "\n" . '<script type="text/javascript" src="' . common::GetDir('/include/js/ckeditor_config.js') . '?' . rawurlencode(gpversion) . '"></script>';
     common::LoadComponents('autocomplete');
     $page->head_script .= gp_edit::AutoCompleteValues(true);
     ob_start();
     echo "\n\n";
     // extra plugins
     $config = gp_edit::CKConfig($options, 'json', $plugins);
     foreach ($plugins as $plugin => $plugin_path) {
         echo 'CKEDITOR.plugins.addExternal(' . json_encode($plugin) . ',' . json_encode($plugin_path) . ');';
         echo "\n";
     }
     echo '$(".CKEDITAREA").each(function(){';
     echo 'CKEDITOR.replace( this, ' . $config . ' );';
     echo '});';
     echo "\n\n";
     $page->jQueryCode .= ob_get_clean();
 }
Beispiel #12
0
            $menus .= '"' . $key . '":"' . $value . '"' . ($i == count($GLOBALS['config']['menus']) ? '' : ', ');
        }
        $menus .= '};';
        $page->head_script .= "\n" . $menus . "\n";
    } else {
        $menus = 'var gpE_menus = {';
        $menus .= '};';
        $page->head_script .= "\n" . $menus . "\n";
    }
    if (array_key_exists("datafilter", $config) and $config['datafilter'] != "") {
        $datafilterJS = 'var gpE_datafilter = [';
        $i = 0;
        $pieces = explode(",", $config['datafilter']);
        foreach ($pieces as $value) {
            $i++;
            $datafilterJS .= '"' . $value . '"' . ($i == count($pieces) ? '' : ', ');
        }
        $datafilterJS .= '];';
        $page->head_script .= "\n" . $datafilterJS . "\n";
    } else {
        $datafilterJS = 'var gpE_datafilter = {';
        $datafilterJS .= '};';
        $page->head_script .= "\n" . $datafilterJS . "\n";
    }
    $layoutsJS = 'var gpE_added_layouts = {';
    $layoutsJS .= '};';
    $page->head_script .= "\n" . $layoutsJS . "\n";
    $page->head_script .= 'gpE_add_opts = "";';
}
common::LoadComponents('colorbox');