コード例 #1
0
 public function run()
 {
     $files = glob($this->dir . '*.php');
     foreach ($files as $file) {
         $filename = basename($file, '.php');
         $content = file_get_contents($file);
         // Can't use REPLACE as the name column isn't indexed
         #$res = $modx->db->query("REPLACE INTO $table SET {$component[$type]['col_content']} = '". mysql_real_escape_string($content, $modx->db->conn) ."' WHERE {$component[$type]['col_name']} = '". $filename ."'");
         $id = $this->modx->db->getValue("SELECT id FROM {$this->table} WHERE {$this->component[$this->type]['col_name']} = '" . $filename . "'");
         if ($id) {
             $res = $this->modx->db->query("UPDATE {$this->table} SET {$this->component[$this->type]['col_content']} = '" . $this->modx->db->escape($content, $this->modx->db->conn) . "' WHERE {$this->component[$this->type]['col_name']} = '" . $filename . "'");
             $updated_items[] = $filename;
         } else {
             $res = $this->modx->db->query("INSERT INTO {$this->table} SET {$this->component[$this->type]['col_content']} = '" . $this->modx->db->escape($content, $this->modx->db->conn) . "', {$this->component[$this->type]['col_name']} = '" . $filename . "'");
             $new_items[] = $filename;
         }
         $fs_items[] = $filename;
     }
     // Handle items which may now be in the DB/filesystem but are no longer present in the filesystem/db
     // (i.e. remove deleted resources)
     $this->fs_items = $fs_items;
     $this->new_items = $new_items;
     $this->updated_items = $updated_items;
     // Clear cache if sync'ing back to DB - as chunks etc are cached there
     include_once $this->modx->config['base_path'] . "manager/processors/cache_sync.class.processor.php";
     $sync = new synccache();
     $sync->setCachepath($this->modx->config['base_path'] . "assets/cache/");
     $sync->setReport(false);
     $sync->emptyCache();
     // first empty the cache
 }
コード例 #2
0
ファイル: MODx.php プロジェクト: radist/DocFaker
 public final function clearCache($fire_events = null)
 {
     $this->modx->clearCache();
     include_once $this->modx->getManagerPath() . '/processors/cache_sync.class.processor.php';
     $sync = new synccache();
     $sync->setCachepath($this->modx->getCachePath());
     $sync->setReport(false);
     $sync->emptyCache();
     $this->invokeEvent('OnSiteRefresh', array(), $fire_events);
 }
コード例 #3
0
ファイル: functions.inc.php プロジェクト: vvp24/tsvshop
function saveconfig()
{
    global $shop_lang, $modx;
    $user = $modx->userLoggedIn();
    $act = $_GET['act'];
    if ($user['usertype'] == "manager") {
        if (!empty($act) && $act == "saveconfig") {
            foreach ($_GET as $key => $value) {
                if ($key != "a" && $key != "id" && $key != "act" && $key != "act2" && $key != "act3") {
                    //echo  $value;
                    setConf("", $key, $value, 1);
                }
            }
            include_once $modx->config['base_path'] . "manager/processors/cache_sync.class.processor.php";
            $sync = new synccache();
            $sync->setCachepath($modx->config['base_path'] . "assets/cache/");
            $sync->setReport(false);
            $sync->emptyCache();
            // first empty the cache
            regenConf();
            return "<span class='ok'>" . $shop_lang['saveok'] . "</span>";
        }
    }
}
コード例 #4
0
ファイル: instprocessor.php プロジェクト: jgrau/MODx-CMS
    $callBackFnc($sqlParser);
}
// Setup the MODx API -- needed for the cache processor
define('MODX_API_MODE', true);
define('MODX_BASE_PATH', $base_path);
$database_type = 'mysql';
// initiate a new document parser
include_once '../manager/includes/document.parser.class.inc.php';
$modx = new DocumentParser();
$modx->db->connect();
// always empty cache after install
include_once "../manager/processors/cache_sync.class.processor.php";
$sync = new synccache();
$sync->setCachepath("../assets/cache/");
$sync->setReport(false);
$sync->emptyCache();
// first empty the cache
// try to chmod the cache go-rwx (for suexeced php)
$chmodSuccess = @chmod('../assets/cache/siteCache.idx.php', 0600);
$chmodSuccess = @chmod('../assets/cache/sitePublishing.idx.php', 0600);
// remove any locks on the manager functions so initial manager login is not blocked
mysql_query("TRUNCATE TABLE `" . $table_prefix . "active_users`");
// close db connection
$sqlParser->close();
// andrazk 20070416 - release manager access
if (file_exists('../assets/cache/installProc.inc.php')) {
    @chmod('../assets/cache/installProc.inc.php', 0755);
    unlink('../assets/cache/installProc.inc.php');
}
// setup completed!
echo "<p><b>" . $_lang['installation_successful'] . "</b></p>";
コード例 #5
0
 /**
  * Clear the cache of MODX.
  *
  * @return boolean 
  */
 function clearCache($type = '', $report = false)
 {
     if ($type == 'full') {
         include_once MODX_MANAGER_PATH . 'processors/cache_sync.class.processor.php';
         $sync = new synccache();
         $sync->setCachepath(MODX_BASE_PATH . 'assets/cache/');
         $sync->setReport($report);
         $sync->emptyCache();
     } else {
         $files = glob(MODX_BASE_PATH . 'assets/cache/*');
         $deletedfiles = array();
         while ($file = array_shift($files)) {
             $name = basename($file);
             if (preg_match('/\\.pageCache/', $name) && !in_array($name, $deletedfiles)) {
                 $deletedfiles[] = $name;
                 unlink($file);
                 clearstatcache();
             }
         }
     }
 }
コード例 #6
0
ファイル: core.inc.php プロジェクト: vvp24/tsvshop
 function regenConf()
 {
     global $modx;
     $query = "SELECT * FROM " . $modx->getFullTableName('shop_conf') . " WHERE exported=1 ORDER BY module, name";
     if (!($result = $modx->db->query($query))) {
         exit('Query failed: ' . mysql_error());
     }
     $f = fopen($modx->config['base_path'] . 'assets/snippets/tsvshop/include/config.inc.php', 'w') or die('Can not open config.inc.php for writing!');
     $js = fopen($modx->config['base_path'] . 'assets/snippets/tsvshop/js/config.js', 'w') or die('Can not open config.inc.php for writing!');
     fwrite($f, "<?php // This file is automatically generated. Do not edit.\n\n");
     fwrite($js, "// This file is automatically generated. Do not edit.\n\n");
     while ($row = mysql_fetch_row($result)) {
         //$mod = strtoupper($row[0]);
         //$nam = strtoupper($row[1]);
         $mod = $row[0];
         $nam = $row[1];
         $val = $row[2];
         // write numerics directly
         if (is_numeric($val)) {
             //fwrite($f, "define('$mod"."_$nam', $val);\n");
             if (!empty($mod)) {
                 //fwrite($f, "define('$mod"."_$nam', $val);\n");
                 if (!empty($val)) {
                     fwrite($f, "\$tsvshop['" . $mod . "_" . $nam . "']=" . $val . ";\n");
                 } else {
                     fwrite($f, "\$tsvshop['" . $mod . "_" . $nam . "']='';\n");
                 }
                 //if ($val=="0,00") {$val="'0,00'";}
                 //fwrite($js, $mod."_".$nam."=".$val.";\n");
             } else {
                 if (!empty($val)) {
                     fwrite($f, "\$tsvshop['" . $nam . "']=" . $val . ";\n");
                     if ($val == "0,00") {
                         $val = "'0,00'";
                     }
                     fwrite($js, $nam . "=" . $val . ";\n");
                 } else {
                     fwrite($f, "\$tsvshop['" . $nam . "']='';\n");
                     if ($val == "0,00") {
                         $val = "'0,00'";
                     }
                     fwrite($js, $nam . "='';\n");
                 }
             }
         } else {
             // escape the single quotes
             $val = str_replace('\'', '\\\'', $val);
             // end-of-php will break the conf.php; replace it:
             $val = str_replace('?' . '>', "?'.'>", $val);
             //fwrite($f,"define('$mod"."_$nam', '$val');\n");
             if (!empty($mod)) {
                 //fwrite($f, "define('$mod"."_$nam', $val);\n");
                 if (!empty($val)) {
                     fwrite($f, "\$tsvshop['" . $mod . "_" . $nam . "']='" . $val . "';\n");
                 } else {
                     fwrite($f, "\$tsvshop['" . $mod . "_" . $nam . "']='';\n");
                 }
                 //if ($val=="0,00") {$val="'0,00'";}
                 //fwrite($js, $mod."_".$nam."=".$val.";\n");
             } else {
                 if (!empty($val)) {
                     fwrite($f, "\$tsvshop['" . $nam . "']='" . $val . "';\n");
                     if ($val == "0,00") {
                         $val = "0,00";
                     }
                     fwrite($js, $nam . "='" . $val . "';\n");
                 } else {
                     fwrite($f, "\$tsvshop['" . $nam . "']='';\n");
                     if ($val == "0,00") {
                         $val = "'0,00'";
                     }
                     fwrite($js, $nam . "='';\n");
                 }
             }
         }
     }
     fwrite($f, '?' . '>');
     fclose($f);
     fclose($js);
     /* Clear Cache of MODx*/
     include_once $modx->config['base_path'] . "manager/processors/cache_sync.class.processor.php";
     $sync = new synccache();
     $sync->setCachepath($modx->config['base_path'] . "assets/cache/");
     $sync->setReport(false);
     $sync->emptyCache();
     // first empty the cache
     // invoke OnSiteRefresh event
     $modx->invokeEvent("OnSiteRefresh");
 }
コード例 #7
0
ファイル: qm.inc.php プロジェクト: noahlearner/evolution
 function clearCache()
 {
     // Clear cache
     include_once $this->modx->config['base_path'] . "manager/processors/cache_sync.class.processor.php";
     $sync = new synccache();
     $sync->setCachepath($this->modx->config['base_path'] . "assets/cache/");
     $sync->setReport(false);
     $sync->emptyCache();
 }
コード例 #8
0
ファイル: MODx.php プロジェクト: dukeRD/DocLister
 public final function clearCache($fire_events = null, $custom = false)
 {
     $IDs = array();
     if ($custom === false) {
         $this->modx->clearCache();
         include_once MODX_MANAGER_PATH . 'processors/cache_sync.class.processor.php';
         $sync = new synccache();
         $path = $this->getCachePath(true);
         $sync->setCachepath($path);
         $sync->setReport(false);
         $sync->emptyCache();
     } else {
         if (is_scalar($custom)) {
             $custom = array($custom);
         }
         $files = array();
         switch ($this->modx->config['cache_type']) {
             case 2:
                 $cacheFile = "_*.pageCache.php";
                 break;
             default:
                 $cacheFile = ".pageCache.php";
         }
         if (is_array($custom)) {
             foreach ($custom as $id) {
                 $tmp = glob(MODX_BASE_PATH . "assets/cache/docid_" . $id . $cacheFile);
                 foreach ($tmp as $file) {
                     if (is_readable($file)) {
                         unlink($file);
                     }
                     $IDs[] = $id;
                 }
             }
         }
         clearstatcache();
     }
     $this->invokeEvent('OnSiteRefresh', array('IDs' => $IDs), $fire_events);
 }
コード例 #9
0
 /**
  * Удаляем все неиспользуемые параметры товаров снятых с производства
  * @
  */
 function clearVars()
 {
     // Удалим все TV параметры не спользуемые в шаблоне для товаров снятых с производства
     if ($this->config['clear_tvs'] && $this->config['product_prodution_tpl_id'] && $this->config['prodution_catalog_id']) {
         $tv_p_res = $this->query("SELECT tmplvarid FROM " . $this->modx->getFullTableName('site_tmplvar_templates') . " WHERE templateid = " . $this->config['product_tpl_id']);
         while ($tv = mysql_fetch_array($tv_p_res)) {
             $tv_product[] = $tv[0];
         }
         $tv_p_p_res = $this->query("SELECT tmplvarid FROM " . $this->modx->getFullTableName('site_tmplvar_templates') . " WHERE templateid = " . $this->config['product_prodution_tpl_id']);
         while ($tv = mysql_fetch_array($tv_p_p_res)) {
             $tv_product_prodution[] = $tv[0];
         }
         $this->query("DELETE FROM " . $this->config['tbl_catalog_tv'] . " \n\t\t\t\t\tWHERE contentid IN (" . implode(',', $this->modx->getChildIds($this->config['prodution_catalog_id'])) . ") \n\t\t\t\t\tAND tmplvarid IN (" . implode(",", array_diff($tv_product, $tv_product_prodution)) . ")");
     }
     // Полная очистка кэша
     $this->modx->clearCache();
     include_once MODX_BASE_PATH . 'manager/processors/cache_sync.class.processor.php';
     $sync = new synccache();
     $sync->setCachepath(MODX_BASE_PATH . "assets/cache/");
     $sync->setReport(false);
     $sync->emptyCache();
 }
コード例 #10
0
ファイル: qm.inc.php プロジェクト: jgrau/MODx-CMS
        function Run()
        {
            // Include MODx manager language file
            global $_lang;
            include_once $this->modx->config['base_path'] . 'manager/includes/lang/' . $this->modx->config['manager_language'] . '.inc.php';
            // Get event
            $e = $this->modx->Event;
            // Run plugin based on event
            switch ($e->name) {
                // Save document
                case 'OnDocFormSave':
                    // Saving process for Qm only, confirm HTTP_REFERER
                    if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'quickmanager=true') !== false) {
                        $id = $e->params['id'];
                        $key = $id;
                        // Normal saving document procedure stops to redirect => Before redirecting secure documents and clear cache
                        // Secure web documents - flag as private (code from: manager/processors/save_content.processor.php)
                        include $this->modx->config['base_path'] . "manager/includes/secure_web_documents.inc.php";
                        secureWebDocument($key);
                        // Secure manager documents - flag as private (code from: manager/processors/save_content.processor.php)
                        include $this->modx->config['base_path'] . "manager/includes/secure_mgr_documents.inc.php";
                        secureMgrDocument($key);
                        // Clear cache
                        include_once $this->modx->config['base_path'] . "manager/processors/cache_sync.class.processor.php";
                        $sync = new synccache();
                        $sync->setCachepath($this->modx->config['base_path'] . "assets/cache/");
                        $sync->setReport(true);
                        $sync->emptyCache();
                        // Redirect to clearer page which refreshes parent window and closes ColorBox frame
                        $this->modx->sendRedirect($this->modx->config['base_url'] . 'assets/plugins/qm/close.php?id=' . $id . '&baseurl=' . $this->modx->config['base_url'], 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');
                    }
                    break;
                    // Display page in front-end
                // Display page in front-end
                case 'OnWebPagePrerender':
                    // If logged in manager but not in manager preview show control buttons
                    if (isset($_SESSION['mgrValidated']) && $_REQUEST['z'] != 'manprev') {
                        $output =& $this->modx->documentOutput;
                        // If logout break here
                        if (isset($_REQUEST['logout'])) {
                            $this->Logout();
                            break;
                        }
                        $userID = $_SESSION['mgrInternalKey'];
                        $docID = $this->modx->documentIdentifier;
                        $doc = $this->modx->getDocument($docID);
                        // Edit button
                        $editButton = '
						<li>
							<a class="qmButton qmEdit colorbox" title="' . $doc['pagetitle'] . ' &raquo; ' . $_lang['edit_document'] . '" href="' . $this->modx->config['site_url'] . 'manager/index.php?a=27&amp;id=' . $docID . '&amp;quickmanager=true">' . $_lang['edit_document'] . '</a>
						</li>';
                        // Does user have permissions to edit document
                        if ($this->modx->hasPermission('edit_document')) {
                            $controls .= $editButton;
                        }
                        if ($this->addbutton == 'true') {
                            // Add button
                            $addButton = '
							<li>
								<a class="qmButton qmAdd colorbox" title="' . $doc['pagetitle'] . ' &raquo; ' . $_lang['create_document_here'] . '" href="' . $this->modx->config['site_url'] . 'manager/index.php?a=4&amp;pid=' . $docID . '&amp;quickmanager=true">' . $_lang['create_document_here'] . '</a>
							</li>';
                            // Does user have permissions to add document
                            if ($this->modx->hasPermission('new_document')) {
                                $controls .= $addButton;
                            }
                        }
                        // Not implemented yet
                        //$delButton  = '<a class="button delete" title="'.$doc['pagetitle'].'&raquo; '.$_lang['delete_document'].'" href="#" onclick="if(confirm(\'`'.$doc['pagetitle'].'`\n\n'.$_lang['confirm_delete_document'].'\')==true) document.location.href=\''.$this->modx->config['site_url'].'manager/index.php?a=4&id='.$docID.'\';return false;">'.$_lang['delete_document'].'</a>';
                        //if($this->modx->hasPermission('delete_document')) $controls.=$delButton;
                        // Logout button
                        $logout = $this->modx->config['site_url'] . 'manager/index.php?a=8';
                        $logoutButton = '
						<li>
							<a class="qmButton qmLogout" title="' . $_lang['logout'] . '" href="' . $logout . '" ><!--img src="' . MODX_BASE_URL . 'assets/plugins/qm/res/exit.png" alt="Edit" /-->' . $_lang['logout'] . '</a>
						</li>';
                        $controls .= $logoutButton;
                        $editor = '
						<div id="qmEditor" class="actionButtons">
							<ul>' . $controls . '
							</ul>
						</div>';
                        $css = '<link rel="stylesheet" type="text/css" href="assets/plugins/qm/res/style.css" />';
                        // Insert jQuery and ColorBox in head if needed
                        if ($this->loadfrontendjq == 'true') {
                            $head .= '<script src="' . $this->modx->config['site_url'] . $this->jqpath . '" type="text/javascript"></script>';
                        }
                        if ($this->loadtb == 'true') {
                            $head .= '
                        <script type="text/javascript" src="' . $this->modx->config['site_url'] . 'assets/js/jquery.colorbox-min.js"></script>
                        <link type="text/css" media="screen" rel="stylesheet" href="' . $this->modx->config['site_url'] . 'assets/js/colorbox.css" />
                        <!--[if IE]>
                        <link type="text/css" media="screen" rel="stylesheet" href="' . $this->modx->config['site_url'] . 'assets/js/colorbox-ie.css" title="example" />
                        <![endif]-->

                    	<script type="text/javascript">
	                    	var $j = jQuery.noConflict();
	                    	$j(document).ready(function($){
	                    		$("a.colorbox").colorbox({width:"' . $this->tbwidth . '", height:"' . $this->tbheight . '", iframe:true});
	                    	});
	                		function cb_remove(){
	                            $j.fn.colorbox.close();
	                		}
                        </script>
                        ';
                        }
                        // Insert Qm css in head
                        $head .= $css;
                        // Place Qm head information in head, just before </head> tag
                        $output = preg_replace('~(</head>)~i', $head . '\\1', $output);
                        // Insert editor toolbar right after <body> tag
                        $output = preg_replace('~(<body[^>]*>)~i', '\\1' . $editor, $output);
                    }
                    break;
                    // Edit document in ColorBox frame (MODx manager frame)
                // Edit document in ColorBox frame (MODx manager frame)
                case 'OnDocFormPrerender':
                    // If there is Qm call, add control buttons and modify to edit document page
                    if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'manager') === false) {
                        global $content;
                        // Set template for new document, action = 4
                        if ($_GET['a'] == 4) {
                            switch ($this->tpltype) {
                                // Template type is parent
                                case 'parent':
                                    // Get parent document id
                                    $pid = $content['parent'] ? $content['parent'] : $_REQUEST['pid'];
                                    // Get parent document
                                    $parent = $this->modx->getDocument($pid);
                                    // Set parent template
                                    $content['template'] = $parent['template'];
                                    break;
                                    // Template is specific id
                                // Template is specific id
                                case 'id':
                                    $content['template'] = $this->tplid;
                                    break;
                                    // Template is inherited by Inherit Selected Template plugin
                                // Template is inherited by Inherit Selected Template plugin
                                case 'selected':
                                    // Get parent document id
                                    $pid = $content['parent'] ? $content['parent'] : $_REQUEST['pid'];
                                    // Get inheritTpl TV
                                    $tv = $this->modx->getTemplateVar("inheritTpl", "", $pid);
                                    // Set template to inherit
                                    if ($tv['value'] != '') {
                                        $content['template'] = $tv['value'];
                                    } else {
                                        $content['template'] = $this->modx->config['default_template'];
                                    }
                                    break;
                            }
                        }
                        // Manager control class
                        $mc = new Mcc($this->jqpath);
                        // Hide subtitle
                        $mc->addLine('$(".subTitle").hide();');
                        // Use with ManagerManager => remove sectionBody
                        $qm_theme = $this->modx->config['manager_theme'];
                        if ($this->usemm == 'true') {
                            $mc->addLine('var controls = "<div style=\\"position:fixed;top:10px;right:-10px;z-index:1000\\" id=\\"qmcontrols\\" class=\\"actionButtons\\"><ul><li><a href=\\"#\\" onclick=\\"documentDirty=false;document.mutate.save.click();return false;\\"><img src=\\"media/style/' . $qm_theme . '/images/icons/save.png\\"/>' . $_lang['save'] . '</a></li><li><a href=\\"#\\" onclick=\\"documentDirty=false;document.location.href=\'index.php?a=3&amp;id=' . $_REQUEST['id'] . '&amp;quickmanager=cancel\';return false;\\"><img src=\\"media/style/' . $qm_theme . '/images/icons/stop.png\\"/>' . $_lang['cancel'] . '</a></li></ul></div>";');
                        } else {
                            $mc->addLine('var controls = "<div id=\\"qmcontrols\\" class=\\"sectionBody actionButtons\\"><ul><li><a href=\\"#\\" onclick=\\"documentDirty=false;document.mutate.save.click();return false;\\"><img src=\\"media/style/' . $qm_theme . '/images/icons/save.png\\"/>' . $_lang['save'] . '</a></li><li><a href=\\"#\\" onclick=\\"documentDirty=false;document.location.href=\'index.php?a=3&amp;id=' . $_REQUEST['id'] . '&amp;quickmanager=cancel\';return false;\\"><img src=\\"media/style/' . $qm_theme . '/images/icons/stop.png\\"/>' . $_lang['cancel'] . '</a></li></ul></div>";');
                        }
                        // Modify head
                        $mc->head = '<script type="text/javascript">document.body.style.display="none";</script>';
                        if ($this->loadmanagerjq == 'true') {
                            $mc->head .= '<script src="' . $modx->config['site_url'] . ($jqpath = $this->jqpath . '" type="text/javascript"></script>');
                        }
                        // Add control button
                        $mc->addLine('$("body").prepend(controls);');
                        //$mc->addLine('$("body").append(controls);');
                        // Hide fields to from front-end editors, especially template and parent are problematic
                        $hideFields = explode(",", $this->hidefields);
                        foreach ($hideFields as $key => $field) {
                            $mc->hideField($field);
                        }
                        // Hide templates but not active template => Changing template is not possible with Qm+
                        $sql = "SELECT id FROM " . $this->modx->getFullTableName('site_templates');
                        $rs = $this->modx->db->query($sql);
                        while ($row = $this->modx->db->getRow($rs)) {
                            if ($content['template'] != $row['id']) {
                                $hideTpls[] = $row['id'];
                            }
                        }
                        $mc->hideTemplates($hideTpls);
                        // Output
                        $e->output($mc->Output());
                    }
                    break;
                    // Remove edit document locks
                // Remove edit document locks
                case 'OnManagerPageInit':
                    // Only if cancel editing the document and QuickManager is in use
                    if ($_REQUEST['quickmanager'] == 'cancel') {
                        // Redirect to clearer page which closes ColorBox frame
                        $this->modx->sendRedirect($this->modx->config['base_url'] . 'assets/plugins/qm/close.php?action=cancel', 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');
                    }
                    break;
            }
        }
コード例 #11
0
ファイル: qm.inc.php プロジェクト: rthrash/evolution
        function Run()
        {
            // Include MODx manager language file
            global $_lang;
            // Get manager language
            $manager_language = $this->modx->config['manager_language'];
            // Include_once the language file
            if (!isset($manager_language) || !file_exists(MODX_MANAGER_PATH . "includes/lang/" . $manager_language . ".inc.php")) {
                $manager_language = "english";
                // if not set, get the english language file.
            }
            // Include default language
            include_once MODX_MANAGER_PATH . "includes/lang/english.inc.php";
            // Include user language
            if ($manager_language != "english" && file_exists(MODX_MANAGER_PATH . "includes/lang/" . $manager_language . ".inc.php")) {
                include_once MODX_MANAGER_PATH . "includes/lang/" . $manager_language . ".inc.php";
            }
            // Get event
            $e = $this->modx->Event;
            // Run plugin based on event
            switch ($e->name) {
                // Save document
                case 'OnDocFormSave':
                    // Saving process for Qm only
                    if (intval($_REQUEST['quickmanager']) == 1) {
                        $id = $e->params['id'];
                        $key = $id;
                        // Normal saving document procedure stops to redirect => Before redirecting secure documents and clear cache
                        // Secure web documents - flag as private (code from: manager/processors/save_content.processor.php)
                        include $this->modx->config['base_path'] . "manager/includes/secure_web_documents.inc.php";
                        secureWebDocument($key);
                        // Secure manager documents - flag as private (code from: manager/processors/save_content.processor.php)
                        include $this->modx->config['base_path'] . "manager/includes/secure_mgr_documents.inc.php";
                        secureMgrDocument($key);
                        // Clear cache
                        include_once $this->modx->config['base_path'] . "manager/processors/cache_sync.class.processor.php";
                        $sync = new synccache();
                        $sync->setCachepath($this->modx->config['base_path'] . "assets/cache/");
                        $sync->setReport(true);
                        $sync->emptyCache();
                        // Redirect to clearer page which refreshes parent window and closes modal box frame
                        $this->modx->sendRedirect($this->modx->config['base_url'] . 'assets/plugins/qm/close.php?id=' . $id, 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');
                    }
                    break;
                    // Display page in front-end
                // Display page in front-end
                case 'OnWebPagePrerender':
                    // If logged in manager but not in manager preview show control buttons
                    if (isset($_SESSION['mgrValidated']) && $_REQUEST['z'] != 'manprev') {
                        $output =& $this->modx->documentOutput;
                        // If logout break here
                        if (isset($_REQUEST['logout'])) {
                            $this->Logout();
                            break;
                        }
                        $userID = $_SESSION['mgrInternalKey'];
                        $docID = $this->modx->documentIdentifier;
                        $doc = $this->modx->getDocument($docID);
                        // Edit button
                        $editButton = '
                    <li>
                    <a class="qmButton qmEdit colorbox" href="' . $this->modx->config['site_url'] . 'manager/index.php?a=27&amp;id=' . $docID . '&amp;quickmanager=1"><span> ' . $_lang['edit_resource'] . '</span></a>
                    </li>
                    ';
                        // Check if user has manager access to current document
                        $access = $this->checkAccess();
                        // Does user have permissions to edit document
                        if ($access) {
                            $controls .= $editButton;
                        }
                        if ($this->addbutton == 'true' && $access) {
                            // Add button
                            $addButton = '
                        <li>
                        <a class="qmButton colorbox" href="' . $this->modx->config['site_url'] . 'manager/index.php?a=4&amp;pid=' . $docID . '&amp;quickmanager=1">' . $_lang['create_resource_here'] . '</a>
                        </li>
                        ';
                            // Does user have permissions to add document
                            if ($this->modx->hasPermission('new_document')) {
                                $controls .= $addButton;
                            }
                        }
                        // Custom add buttons if not empty and enough permissions
                        if ($this->custombutton != '') {
                            $buttons = explode("||", $this->custombutton);
                            // Buttons are divided by "#"
                            // Parse buttons
                            foreach ($buttons as $key => $field) {
                                $field = substr($field, 1, -1);
                                // Trim "'" from beginning and from end
                                $buttonParams = explode("','", $field);
                                // Button params are divided by "','"
                                $buttonTitle = $buttonParams[0];
                                $buttonAction = $buttonParams[1];
                                // Contains URL if this is not add button
                                $buttonParentId = $buttonParams[2];
                                // Is empty is this is not add button
                                $buttonTplId = $buttonParams[3];
                                // Button visible for all
                                if ($buttonParams[4] == '') {
                                    $showButton = TRUE;
                                } else {
                                    $showButton = FALSE;
                                    // Get user roles the button is visible for
                                    $buttonRoles = explode(",", $buttonParams[4]);
                                    // Roles are divided by ','
                                    // Check if user role is found
                                    foreach ($buttonRoles as $key => $field) {
                                        if ($field == $_SESSION['mgrRole']) {
                                            $showButton = TRUE;
                                        }
                                    }
                                }
                                // Show custom button
                                if ($showButton) {
                                    switch ($buttonAction) {
                                        case 'new':
                                            $customButton = '
                                        <li>
                                        <a class="qmButton colorbox" href="' . $this->modx->config['site_url'] . 'manager/index.php?a=4&amp;pid=' . $buttonParentId . '&amp;quickmanager=1&amp;customaddtplid=' . $buttonTplId . '">' . $buttonTitle . '</a>
                                        </li>
                                        ';
                                            break;
                                        case 'link':
                                            $customButton = '
                                        <li>
                                        <a class="qmButton" href="' . $buttonParentId . '" >' . $buttonTitle . '</a>
                                        </li>
                                        ';
                                            break;
                                        case 'modal':
                                            $customButton = '
                                        <li>
                                        <a class="qmButton colorbox" href="' . $buttonParentId . '" >' . $buttonTitle . '</a>
                                        </li>
                                        ';
                                            break;
                                    }
                                    $controls .= $customButton;
                                }
                            }
                        }
                        // Not implemented yet
                        //$delButton  = '<a class="button delete" title="'.$doc['pagetitle'].'&raquo; '.$_lang['delete_document'].'" href="#" onclick="if(confirm(\'`'.$doc['pagetitle'].'`\n\n'.$_lang['confirm_delete_document'].'\')==true) document.location.href=\''.$this->modx->config['site_url'].'manager/index.php?a=4&id='.$docID.'\';return false;">'.$_lang['delete_document'].'</a>';
                        //if($this->modx->hasPermission('delete_document')) $controls.=$delButton;
                        // Go to Manager button
                        if ($this->managerbutton == 'true') {
                            $managerButton = '
                        <li>
                        <a class="qmButton" title="' . $_lang['manager'] . '" href="' . $this->modx->config['site_url'] . 'manager/" >' . $_lang['manager'] . '</a>
                        </li>
                        ';
                            $controls .= $managerButton;
                        }
                        // Logout button
                        $logout = $this->modx->config['site_url'] . 'manager/index.php?a=8&amp;quickmanager=logout&amp;logoutid=' . $docID;
                        $logoutButton = '
                    <li>
                    <a id="qmLogout" class="qmButton" title="' . $_lang['logout'] . '" href="' . $logout . '" >' . $_lang['logout'] . '</a>
                    </li>
                    ';
                        $controls .= $logoutButton;
                        // Add action buttons
                        $editor = '
                    <div id="qmEditorClosed"></div>
                    
					<div id="qmEditor">
					
                    <a id="qmClose" class="qmButton qmClose" href="#" onclick="javascript: return false;">X</a>
                    
                    <ul>
                    <li><a id="qmLogoClose" class="qmClose" href="#" onclick="javascript: return false;"></a></li>
                    ' . $controls . '
                    </ul>
					</div>';
                        $css = '
                    <link rel="stylesheet" type="text/css" href="' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/style.css" />
                    <!--[if IE]><link rel="stylesheet" type="text/css" href="' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/ie.css" /><![endif]-->
                    <!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/ie7.css" /><![endif]-->
                    ';
                        // Autohide toolbar? Default: true
                        if ($this->autohide == 'false') {
                            $css .= '
                        <style type="text/css">
                        #qmEditor, #qmEditorClosed { top: 0px; }
                        </style>
                        ';
                        }
                        // Insert jQuery and ColorBox in head if needed
                        if ($this->loadfrontendjq == 'true') {
                            $head .= '<script src="' . $this->modx->config['site_url'] . $this->jqpath . '" type="text/javascript"></script>';
                        }
                        if ($this->loadtb == 'true') {
                            $head .= '
                        <link type="text/css" media="screen" rel="stylesheet" href="' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/colorbox.css" />
                        
                        <style type="text/css">
                        .cboxIE #cboxTopLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderTopLeft.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxTopCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderTopCenter.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxTopRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderTopRight.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxBottomLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderBottomLeft.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxBottomCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderBottomCenter.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxBottomRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderBottomRight.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxMiddleLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderMiddleLeft.png, sizingMethod=\'scale\');}
                        .cboxIE #cboxMiddleRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' . $this->modx->config['site_url'] . 'assets/plugins/qm/css/images/internet_explorer/borderMiddleRight.png, sizingMethod=\'scale\');}
                        </style>
                        
                        <script type="text/javascript" src="' . $this->modx->config['site_url'] . 'assets/plugins/qm/js/jquery.colorbox-min.js"></script>
                        ';
                        }
                        // Insert ColorBox jQuery definitions for QuickManager+
                        $head .= '
                    <script type="text/javascript">
                    ';
                        // jQuery in noConflict mode
                        if ($this->noconflictjq == 'true') {
                            $head .= '
                    	var $j = jQuery.noConflict();
                    	$j(document).ready(function($)
                    	';
                            $jvar = 'j';
                        } else {
                            $head .= '$(document).ready(function($)';
                            $jvar = '';
                        }
                        $head .= '    
                        {                      
                    		$("a.colorbox").colorbox({width:"' . $this->tbwidth . '", height:"' . $this->tbheight . '", iframe:true, overlayClose:false});
                    	
                        	// Bindings
                        	$().bind("cbox_open", function(){
                                $("body").css({"overflow":"hidden"});
                                $("html").css({"overflow":"hidden"});
                                $("#qmEditor").css({"display":"none"});
                            });
                        	$().bind("cbox_closed", function(){
                                $("body").css({"overflow":"auto"});
                                $("html").css({"overflow":"auto"});
                                $("#qmEditor").css({"display":"block"});
                                // Remove manager lock by going to home page
                                $' . $jvar . '.ajax({ type: "GET", url: "' . $this->modx->config['site_url'] . 'manager/index.php?a=2" });
                            });                  
                                                        						                            
                            // Hide QM+ if cookie found
                            if (getCookie("hideQM") == 1)
                            {
                                $("#qmEditor").css({"display":"none"});
                                $("#qmEditorClosed").css({"display":"block"});    
                            }
                            
                            // Hide QM+
                            $(".qmClose").click(function () {
                                $("#qmEditor").hide("normal");
                                $("#qmEditorClosed").show("normal");
                                document.cookie = "hideQM=1; path=/;";
                            });
                            
                            // Show QM+
                            $("#qmEditorClosed").click(function () {
                                {
                                    $("#qmEditorClosed").hide("normal");
                                    $("#qmEditor").show("normal");
                                    document.cookie = "hideQM=0; path=/;";
                                }
                            });

                        });
                        
                        function getCookie(cookieName)
                        {
                            var results = document.cookie.match ( "(^|;) ?" + cookieName + "=([^;]*)(;|$)" );
    
                            if (results) return (unescape(results[2]));
                            else return null;
                        }

                    </script>
                    ';
                        // Insert QM+ css in head
                        $head .= $css;
                        // Place Qm head information in head, just before </head> tag
                        $output = preg_replace('~(</head>)~i', $head . '\\1', $output);
                        // Insert editor toolbar right after <body> tag
                        $output = preg_replace('~(<body[^>]*>)~i', '\\1' . $editor, $output);
                    }
                    break;
                    // Edit document in ThickBox frame (MODx manager frame)
                // Edit document in ThickBox frame (MODx manager frame)
                case 'OnDocFormPrerender':
                    // If there is Qm call, add control buttons and modify to edit document page
                    if (intval($_REQUEST['quickmanager']) == 1) {
                        global $content;
                        // Set template for new document, action = 4
                        if (intval($_GET['a']) == 4) {
                            // Custom add button
                            if (isset($_GET['customaddtplid'])) {
                                // Set template
                                $content['template'] = intval($_GET['customaddtplid']);
                            } else {
                                switch ($this->tpltype) {
                                    // Template type is parent
                                    case 'parent':
                                        // Get parent document id
                                        $pid = $content['parent'] ? $content['parent'] : intval($_REQUEST['pid']);
                                        // Get parent document
                                        $parent = $this->modx->getDocument($pid);
                                        // Set parent template
                                        $content['template'] = $parent['template'];
                                        break;
                                        // Template is specific id
                                    // Template is specific id
                                    case 'id':
                                        $content['template'] = $this->tplid;
                                        break;
                                        // Template is inherited by Inherit Selected Template plugin
                                    // Template is inherited by Inherit Selected Template plugin
                                    case 'selected':
                                        // Get parent document id
                                        $pid = $content['parent'] ? $content['parent'] : intval($_REQUEST['pid']);
                                        // Get inheritTpl TV
                                        $tv = $this->modx->getTemplateVar("inheritTpl", "", $pid);
                                        // Set template to inherit
                                        if ($tv['value'] != '') {
                                            $content['template'] = $tv['value'];
                                        } else {
                                            $content['template'] = $this->modx->config['default_template'];
                                        }
                                        break;
                                }
                            }
                        }
                        // Manager control class
                        $mc = new Mcc();
                        // Hide default manager action buttons
                        $mc->addLine('$("#actions").hide();');
                        // Get MODx theme
                        $qm_theme = $this->modx->config['manager_theme'];
                        // Get doc id
                        $doc_id = intval($_REQUEST['id']);
                        // Get jQuery conflict mode
                        if ($this->noconflictjq == 'true') {
                            $jq_mode = '$j';
                        } else {
                            $jq_mode = '$';
                        }
                        // Add action buttons
                        $mc->addLine('var controls = "<div style=\\"padding:4px 0;position:fixed;top:10px;right:-10px;z-index:1000\\" id=\\"qmcontrols\\" class=\\"actionButtons\\"><ul><li><a href=\\"#\\" onclick=\\"setBaseUrl(\'' . $this->modx->config['base_url'] . '\'); documentDirty=false;document.mutate.save.click();return false;\\"><img src=\\"media/style/' . $qm_theme . '/images/icons/save.png\\" />' . $_lang['save'] . '</a></li><li><a href=\\"#\\" onclick=\\"parent.' . $jq_mode . '.fn.colorbox.close(); return false;\\"><img src=\\"media/style/' . $qm_theme . '/images/icons/stop.png\\"/>' . $_lang['cancel'] . '</a></li></ul></div>";');
                        // Modify head
                        $mc->head = '<script type="text/javascript">document.body.style.display="none";</script>';
                        if ($this->loadmanagerjq == 'true') {
                            $mc->head .= '<script src="' . $this->modx->config['site_url'] . $this->jqpath . '" type="text/javascript"></script>';
                        }
                        // Add control button
                        $mc->addLine('$("body").prepend(controls);');
                        // Hide fields to from front-end editors
                        if ($this->hidefields != '') {
                            $hideFields = explode(",", $this->hidefields);
                            foreach ($hideFields as $key => $field) {
                                $mc->hideField($field);
                            }
                        }
                        // Hide tabs to from front-end editors
                        if ($this->hidetabs != '') {
                            $hideTabs = explode(",", $this->hidetabs);
                            foreach ($hideTabs as $key => $field) {
                                $mc->hideTab($field);
                            }
                        }
                        // Hide sections from front-end editors
                        if ($this->hidesections != '') {
                            $hideSections = explode(",", $this->hidesections);
                            foreach ($hideSections as $key => $field) {
                                $mc->hideSection($field);
                            }
                        }
                        // Set active doc script (needed if alias is changed)
                        $setActiveDoc = '
                    <script type="text/javascript">
                    function setBaseUrl(baseUrl)
                    {
                        // Set base url
                        document.cookie = "baseUrlQM=" + baseUrl + "; path=/;";
                    }
                    </script>
                    ';
                        // Hidden field to verify that QM+ call exists
                        $hiddenField = '<input type="hidden" name="quickmanager" value="1" />';
                        // Output
                        $e->output($mc->Output() . $setActiveDoc . $hiddenField);
                    }
                    break;
                    // Where to logout
                // Where to logout
                case 'OnManagerLogout':
                    // Only if cancel editing the document and QuickManager is in use
                    if ($_REQUEST['quickmanager'] == 'logout') {
                        // Redirect to document id
                        if ($this->logout != 'manager') {
                            $this->modx->sendRedirect($this->modx->makeUrl($_REQUEST['logoutid']), 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');
                        }
                    }
                    break;
            }
        }
コード例 #12
0
ファイル: xedit.class.php プロジェクト: Bruno17/bloX-Xedit
 function emptyCache()
 {
     global $modx;
     // empty cache
     include_once $modx->config['base_path'] . 'manager/processors/cache_sync.class.processor.php';
     $sync = new synccache();
     $sync->setCachepath($modx->config['base_path'] . 'assets/cache/');
     $sync->setReport(false);
     $sync->emptyCache();
     // first empty the cache
 }
コード例 #13
0
ファイル: index.php プロジェクト: Jako/ModX-Evo-dbEdit
function clearCache()
{
    include_once "processors/cache_sync.class.processor.php";
    $sync = new synccache();
    $sync->setCachepath("../assets/cache/");
    $sync->setReport(false);
    $sync->emptyCache();
}
コード例 #14
0
 function clearCache($params = array())
 {
     if ($this->isBackend() && !$this->hasPermission('empty_cache')) {
         return;
     }
     if (opendir(MODX_BASE_PATH . 'assets/cache') !== false) {
         $showReport = $params['showReport'] ? $params['showReport'] : false;
         $target = $params['target'] ? $params['target'] : 'pagecache,sitecache';
         include_once MODX_MANAGER_PATH . 'processors/cache_sync.class.processor.php';
         $sync = new synccache();
         $sync->setCachepath(MODX_BASE_PATH . 'assets/cache/');
         $sync->setReport($showReport);
         $sync->setTarget($target);
         $sync->emptyCache();
         // first empty the cache
         return true;
     } else {
         return false;
     }
 }
コード例 #15
0
 function syncsite()
 {
     // clears and rebuilds the site cache
     // added in 0.6.1.1
     // Modified 2008-03-17 by Ralph for improved cachePath handling
     include_once "./manager/processors/cache_sync.class.processor.php";
     $sync = new synccache();
     $sync->setCachepath("assets/cache/");
     $sync->setReport(false);
     $sync->emptyCache();
 }
コード例 #16
0
ファイル: Save.php プロジェクト: netProphET/Middleman
  public function syncsite()
  {
    $do_sync = isset($_POST['syncsite']) ? $_POST['syncsite'] : 0;
		if ($do_sync == 1) {
			// empty cache
      include_once MODX_BASE_PATH.'manager/processors/cache_sync.class.processor.php';
			$sync = new synccache();
			$sync->setCachepath(MODX_BASE_PATH.'assets/cache/');
			$sync->setReport(false);
			$sync->emptyCache();
		}
  }