public function preRender()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $controller = sgContext::getInstance()->getController();
         if ($controller instanceof FlatCMSPluginController) {
             $session = new Zend_Session_Namespace(Zend_Auth::getInstance()->getStorage()->getNamespace());
             $session->FlatCMSEditorPluginFileMTime = filemtime(FlatCMSPluginPageModel::getPagePath(sgContext::getInstance()->getCurrentPath()));
             //figure out better way to handle this so libraries aren't double loaded
             $controller->scripts[] = sgToolkit::url('/js/FlatCMSEditorPlugin/jquery.min.js');
             $controller->scripts[] = sgToolkit::url('/js/FlatCMSEditorPlugin/jquery.jeditable.mini.js');
             $controller->scripts[] = sgToolkit::url('/js/FlatCMSEditorPlugin/jquery.jeditable.autogrow.js');
             $controller->scripts[] = sgToolkit::url('/js/FlatCMSEditorPlugin/tinymce/jscripts/tiny_mce/jquery.tinymce.js');
             $controller->scripts[] = sgToolkit::url('/js/FlatCMSEditorPlugin/jquery.jeditable.tinymce.js');
             $controller->scripts[] = sgToolkit::url('/js/FlatCMSEditorPlugin/init.js');
             $controller->js_settings['FlatCMSEditorPlugin'] = array('saveURL' => sgToolkit::url(sgConfiguration::get('routing.FlatCMSEditorPlugin_save.path')), 'currentPath' => sgContext::getInstance()->getCurrentPath());
             if (isset($controller->content) && is_array($controller->content)) {
                 $textarea_fields = sgConfiguration::get('settings.FlatCMSEditorPlugin.textarea_fields', array());
                 foreach ($controller->content as $key => &$field) {
                     if (in_array($key, $textarea_fields)) {
                         $field = '<div class="editable-area" id="' . $key . '">' . $field . '</div>';
                     } else {
                         $field = '<div class="editable" id="' . $key . '">' . $field . '</div>';
                     }
                 }
             }
         }
     }
 }
 public function executeCoreFixPerms($arguments, $options)
 {
     $path = realpath(sgContext::getInstance()->getRootDir() . '/cache/');
     chmod($path, 0777);
     $files = sgToolkit::getFiles($path);
     sgToolkit::chmod($files, 0777);
 }
 public static function uninstall()
 {
     $root = sgContext::getInstance()->getRootDir();
     sgToolkit::rmdir($root . '/config/doctrine');
     sgToolkit::rmdir($root . '/lib/doctrine');
     sgToolkit::rmdir($root . '/models/doctrine');
     sgToolkit::rmdir($root . '/data/doctrine');
 }
    public static function uninstall()
    {
        $message = <<<END
Are you you want to uninstall this plugin? Doing this will remove
all of your cms data in the project_root/data/flatcms directory!
END;
        sgCLI::confirm($message);
        sgToolkit::rmdir(sgConfiguration::get('settings.FlatCMSPlugin.data_dir'));
    }
 public static function rmdir($path)
 {
     $path = realpath($path);
     if (!is_dir($path)) {
         return false;
     }
     $files = sgToolkit::getFiles($path);
     $files[] = $path;
     self::remove($files);
 }
 public static function getPagePath($path)
 {
     $filepath = sgConfiguration::get('settings.FlatCMSPlugin.data_dir') . $path;
     if (sgToolkit::checkFileLocation($filepath, $path)) {
         if (file_exists("{$filepath}.yml")) {
             return "{$filepath}.yml";
         }
         return false;
     }
     return false;
 }
Exemple #7
0
 public final function execute($namespace, $task, $cliParams = array())
 {
     //special case for init-project
     if ("{$namespace}:{$task}" !== 'core:init-project' && "{$namespace}:{$task}" !== 'core:help') {
         if (!file_exists(sgContext::getInstance()->getRootDir() . '/config/ProjectConfiguration.class.php')) {
             sgCLI::error("Task \"{$namespace}:{$task}\" can only be executed in a project directory.");
             return false;
         }
     }
     if ($params = $this->parseParams($namespace, $task, $cliParams)) {
         $executeMethod = sgToolkit::camelCase("execute {$namespace} {$task}");
         $this->{$executeMethod}($params['arguments'], $params['options']);
         return true;
     }
     return false;
 }
 public function POST()
 {
     $data = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
     $adapter = new Zend_Auth_Adapter_Digest(sgConfiguration::get('settings.ZendAuthPlugin.passwd_path'), '*', $data['username'], $data['password']);
     $result = Zend_Auth::getInstance()->authenticate($adapter);
     if ($result && $result->isValid()) {
         if (isset($data['destination'])) {
             header('Location: ' . sgToolkit::url(filter_var($data['destination'], FILTER_SANITIZE_URL)));
             exit;
         }
         header('Location: ' . sgContext::getRelativeBaseUrl());
         exit;
     } else {
         $this->errors = $result->getMessages();
         if (isset($data['destination'])) {
             $_GET['destination'] = $data['destination'];
         }
         return self::GET();
     }
 }
    public static function install()
    {
        sgToolkit::touch(sgConfiguration::get('settings.ZendAuthPlugin.passwd_path'));
        $message = <<<END
    You must place the Zend Framework in your project. ZendAuthPlugin will 
    automatically look in project_root/lib/vendor for the Zend dir, or you 
    can specify the lib dir with the config ZendAuthPlugin => zend_lib_path. 
    This path should be the directory containing the Zend dir, without 
    including the Zend/ dir itself. Also remeber to exclude the Zend path from
    the autoloader by adding this line to your ProjectConfiguration before
    the sgAutoload::register() call is made: 
    
    sgAutoloader::setExclusions(array(realpath('path/to/Zend')));
    
    Finally, you must add users to the /data/ZendAuthPlugin.passwd file in the format:

    username:realm:md5(username:realm:password)

END;
        sgCLI::println($message, sgCLI::STYLE_COMMENT);
    }
 private static function _initPlugins($dir, array $plugins)
 {
     foreach ($plugins as $pluginName) {
         $plugin = new StdClass();
         $plugin->name = $pluginName;
         $plugin->path = "{$dir}/plugins/{$pluginName}";
         sgAutoloader::loadPaths(array($plugin->path));
         $class = $plugin->name . "Configuration";
         if (class_exists($class)) {
             $configuration = new $class();
             sgToolkit::executeMethod($configuration, 'preConfig');
             $plugin->configuration = $configuration;
         }
         self::loadConfig('settings', "{$plugin->path}/config/config.php", true);
         self::loadConfig('routing', "{$plugin->path}/config/routing.php", true);
         if (isset($configuration)) {
             sgToolkit::executeMethod($configuration, 'postConfig');
         }
         self::$enabledPlugins[$plugin->name] = $plugin;
     }
 }
Exemple #11
0
 public static function dispatch($route, $method, $matches)
 {
     sgContext::setCurrentRoute($route);
     if (isset($route['disabled']) && $route['disabled'] == true) {
         if (sgConfiguration::get('settings.debug')) {
             exit('<pre>Route "' . $route['name'] . '" is disabled.' . "\n</pre>");
         }
         $obj = new sgBaseController($matches);
         sgContext::getInstance()->setController($obj);
         print $obj->throwErrorCode('404');
     } else {
         $plugins = sgConfiguration::getInstance()->getPlugins();
         foreach ($plugins as $plugin) {
             if (isset($plugin->configuration)) {
                 sgToolkit::executeMethod($plugin->configuration, 'preExecute');
             }
         }
         sgToolkit::executeMethod(sgConfiguration::getInstance(), 'preExecute');
         if (isset($route['class'])) {
             if (class_exists($route['class'])) {
                 $obj = new $route['class']($matches);
                 sgContext::getInstance()->setController($obj);
                 if (method_exists($obj, $method)) {
                     sgToolkit::executeMethod($obj, 'preExecute');
                     print $obj->{$method}();
                     sgToolkit::executeMethod($obj, 'postExecute');
                 } else {
                     throw new BadMethodCallException("Method, {$method}, not supported");
                 }
             } else {
                 throw new Exception('Class, ' . $route['class'] . ', not found');
             }
         } else {
             $obj = new sgBaseController($matches);
             sgContext::getInstance()->setController($obj);
             sgToolkit::executeMethod($obj, 'preExecute');
             print $obj->{$method}();
             sgToolkit::executeMethod($obj, 'postExecute');
         }
         sgToolkit::executeMethod(sgConfiguration::getInstance(), 'postExecute');
         foreach ($plugins as $plugin) {
             if (isset($plugin->configuration)) {
                 sgToolkit::executeMethod($plugin->configuration, 'postExecute');
             }
         }
     }
 }
 public function render($template = NULL)
 {
     $plugins = sgConfiguration::getInstance()->getPlugins();
     foreach ($plugins as $plugin) {
         if (isset($plugin->configuration)) {
             sgToolkit::executeMethod($plugin->configuration, 'preRender');
         }
     }
     sgToolkit::executeMethod(sgConfiguration::getInstance(), 'preRender');
     sgToolkit::executeMethod($this, 'preRender');
     try {
         if ($template) {
             $this->loadTemplate($template);
         } else {
             if (isset($this->matchedRoute['template'])) {
                 $this->loadTemplate($this->matchedRoute['template']);
             } else {
                 $this->loadTemplate($this->matchedRoute['name']);
             }
         }
     } catch (Exception $e) {
         return $this->throwError($e);
     }
     // update route cache with appropriate template
     if (sgConfiguration::get('settings.cache_routes')) {
         $method = strtoupper($_SERVER['REQUEST_METHOD']);
         $path = sgContext::getCurrentPath();
         sgGlue::$cachedRoutes["{$method} {$path}"]['template'] = str_replace('.html', '', sgView::getInstance()->getView()->getName());
     }
     return sgView::getInstance()->render($this->getTemplateVars());
 }