Exemple #1
0
 /**
  * Returns an array of directories
  *
  * Is called recursively is recursive is true.
  *
  * @param boolean with_root If true, return results prefixed with the root dir
  * @author Matthew McNaney <mcnaney at gmail dot com>
  * @return array directories Array of directories if successful, NULL if nothing found
  */
 public static function listDirectories($root_dir, $with_root = false, $recursive = false)
 {
     $directories = NULL;
     PHPWS_File::appendSlash($root_dir);
     if (!is_dir($root_dir) || !is_readable($root_dir)) {
         return false;
     }
     $listing = scandir($root_dir);
     if (empty($listing)) {
         return false;
     }
     foreach ($listing as $directory) {
         $full_dir = $root_dir . $directory;
         if (strpos($directory, '.') === 0 || !is_dir($full_dir)) {
             continue;
         }
         if ($with_root) {
             $directories[] = $full_dir;
         } else {
             $directories[] = $directory;
         }
         if ($with_root && $recursive) {
             $subdir = PHPWS_File::listDirectories($full_dir, true, true);
             if ($with_root) {
                 if (!empty($subdir)) {
                     $directories = array_merge($directories, $subdir);
                 }
             }
         }
     }
     return $directories;
 }
 public function loadTemplates()
 {
     PHPWS_Core::initModClass('pagesmith', 'PS_Template.php');
     if (!empty($this->tpl_list)) {
         return true;
     }
     $tpl_dir = $this->ps->pageTplDir();
     $templates = PHPWS_File::listDirectories($tpl_dir);
     if (empty($templates)) {
         PHPWS_Error::log(PS_TPL_DIR, 'pagesmith', 'PS_Forms::loadTemplates', $tpl_dir);
         return false;
     }
     foreach ($templates as $tpl) {
         $pg_tpl = new PS_Template($tpl);
         if ($pg_tpl->data) {
             $this->tpl_list[$tpl] = $pg_tpl;
         }
     }
     return true;
 }
Exemple #3
0
 public function post_basic()
 {
     PHPWS_Core::initCoreClass('File.php');
     $result = true;
     if (empty($this->branch->dbname) && isset($this->dbname)) {
         $this->branch->dbname = $this->dbname;
     }
     $this->branch->directory = $_POST['directory'];
     if (!preg_match('/\\/$/', $this->branch->directory)) {
         $this->branch->directory .= '/';
     }
     if (!is_dir($this->branch->directory)) {
         $this->message[] = dgettext('branch', 'Branch directory does not exist.');
         $directory = explode('/', $this->branch->directory);
         // removes item after the /
         array_pop($directory);
         // removes the last directory
         array_pop($directory);
         $write_dir = implode('/', $directory);
         // only writes directory on new branches
         if (!$this->branch->id) {
             if (is_writable($write_dir)) {
                 if (mkdir($this->branch->directory)) {
                     $this->message[] = dgettext('branch', 'Directory creation successful.');
                 } else {
                     $this->message[] = dgettext('branch', 'Unable to create the directory. You will need to create it manually.');
                     return false;
                 }
             } else {
                 $this->message[] = dgettext('branch', 'Unable to create the directory. You will need to create it manually.');
                 $result = false;
             }
         }
     } elseif (!is_writable($this->branch->directory)) {
         $this->message[] = dgettext('branch', 'Directory exists but is not writable.');
         $result = false;
     } elseif (!$this->branch->id && PHPWS_File::listDirectories($this->branch->directory)) {
         $this->message[] = dgettext('branch', 'Directory exists but already contains files.');
         $result = false;
     }
     if (empty($_POST['branch_name'])) {
         $this->message[] = dgettext('branch', 'You must name your branch.');
         $result = false;
     } elseif (!$this->branch->setBranchName($_POST['branch_name'])) {
         $this->message[] = dgettext('branch', 'You may not use that branch name.');
         $result = false;
     }
     if (empty($_POST['url'])) {
         $this->message[] = dgettext('branch', 'Enter your site\'s url address.');
         $result = false;
     } else {
         $this->branch->url = $_POST['url'];
     }
     if (empty($_POST['site_hash'])) {
         $this->message[] = dgettext('branch', 'Your branch site must have a site_hash.');
         $result = false;
     } else {
         $this->branch->site_hash = $_POST['site_hash'];
     }
     return $result;
 }
 public function getTemplateList()
 {
     $tpl_list = PHPWS_File::listDirectories(PHPWS_SOURCE_DIR . 'mod/pagesmith/templates/page_templates/');
     foreach ($tpl_list as $name) {
         $tpl = new PS_Template($name);
         $flist[$name] = $tpl->title;
     }
     return $flist;
 }
Exemple #5
0
 public function getTemplateList()
 {
     $included_result = PHPWS_File::listDirectories(PHPWS_Template::getTemplateDirectory('menu') . 'menu_layout/');
     $theme_result = PHPWS_File::listDirectories(PHPWS_SOURCE_DIR . Layout::getThemeDir() . 'templates/menu/menu_layout/');
     if (PHPWS_Error::logIfError($included_result) || PHPWS_Error::logIfError($theme_result)) {
         return null;
     }
     if ($theme_result) {
         $result = array_unique(array_merge($included_result, $theme_result));
     } else {
         $result = $included_result;
     }
     $result = array_combine($result, $result);
     if (empty($result)) {
         return null;
     }
     foreach ($result as $dir) {
         $directories[$dir] = $dir;
     }
     return $directories;
 }
Exemple #6
0
    private function menuList()
    {
        \Layout::addStyle('menu', 'admin.css');
        javascript('jquery');
        javascript('jquery_ui');
        //commenting out for now. problem clearing select dropdown
        //javascript('select2');
        $template = new \Template();
        $template->setModuleTemplate('menu', 'admin/administrate.html');
        $first_menu_pin_all = 0;
        $first_menu_template = null;
        $db = new PHPWS_DB('menus');
        $db->addOrder('queue');
        $result = $db->getObjects('Menu_Item');
        $first_menu = null;
        if (!empty($result)) {
            foreach ($result as $menu) {
                $menu->_show_all = true;
                if (empty($first_menu)) {
                    $first_menu = $menu;
                    $active = 'active';
                } else {
                    $active = null;
                }
                $tpl['menus'][] = array('title' => $menu->title, 'id' => $menu->id, 'active' => $active);
            }
            $first_menu_template = $first_menu->template;
            // for display, use the admin template
            $first_menu->template = 'admin';
            $tpl['first_menu'] = $first_menu->view(true);
            $first_menu_pin_all = $first_menu->pin_all;
            $first_menu_id = $first_menu->id;
        } else {
            $first_menu_id = 0;
            $tpl['first_menu'] = null;
        }
        $vars['delete'] = t('Delete');
        $vars['confirm_delete'] = t('Confirm deletion');
        $vars['first_menu_id'] = $first_menu_id;
        $vars['authkey'] = \Current_User::getAuthKey();
        $vars['blank_title'] = t('Title must not be blank');
        $vars['title_error'] = t('Make sure you have filled in the required inputs.');
        $vars['url_error'] = t('Please enter a url or choose a PageSmith page.');
        $vars['delete_menu_message'] = t('Are you sure you want to delete this menu and links?');
        $vars['edit'] = t('Edit');
        $vars['title_error'] = t('Please enter a menu title');
        if (PHPWS_Settings::get('menu', 'display_type')) {
            $vars['pin_all'] = null;
            $vars['pin_some'] = null;
        } else {
            $vars['pin_all'] = t('Shown on all pages');
            $vars['pin_some'] = t('Shown on some pages');
        }
        $jvar = json_encode($vars);
        $script = <<<EOF
<script type="text/javascript">var translate = {$jvar}; var fmp={$first_menu_pin_all};</script>
EOF;
        \Layout::addJSHeader($script);
        \Layout::addJSHeader('<script type="text/javascript" src="' . PHPWS_SOURCE_HTTP . 'mod/menu/javascript/administrate/script.js"></script>');
        $main_menu_templates = PHPWS_File::listDirectories(PHPWS_Template::getTemplateDirectory('menu') . 'menu_layout/');
        $theme_menu_templates = PHPWS_File::listDirectories(PHPWS_Template::getTplDir('menu') . 'menu_layout/');
        $menu_tpls[] = '<optgroup label="' . t('Menu module templates') . '">';
        foreach ($main_menu_templates as $menu_tpl) {
            if ($first_menu_template == $menu_tpl) {
                $selected = ' selected="selected"';
            } else {
                $selected = null;
            }
            $menu_tpls[] = "<option value='{$menu_tpl}'{$selected}>{$menu_tpl}</option>";
        }
        $menu_tpls[] = '</optgroup>';
        if (!empty($theme_menu_templates)) {
            $menu_tpls[] = '<optgroup label="' . t('Theme templates') . '">';
            foreach ($theme_menu_templates as $menu_tpl) {
                if ($first_menu_template == $menu_tpl) {
                    $selected = ' selected="selected"';
                } else {
                    $selected = null;
                }
                $menu_tpls[] = "<option value='{$menu_tpl}'{$selected}>{$menu_tpl}</option>";
            }
            $menu_tpls[] = '</optgroup>';
        }
        $tpl['templates'] = implode('', $menu_tpls);
        $tpl['display_type'] = \PHPWS_Settings::get('menu', 'display_type');
        if (isset($first_menu) && $first_menu->pin_all) {
            $tpl['pin_all'] = $vars['pin_all'];
            $tpl['pin_button_class'] = 'btn-primary';
        } else {
            $tpl['pin_all'] = $vars['pin_some'];
            $tpl['pin_button_class'] = 'btn-default';
        }
        if (\Current_User::isDeity()) {
            $tpl['reset_menu_link'] = PHPWS_Text::linkAddress('menu', array('command' => 'reset_menu'), true);
        } else {
            $tpl['reset_menu_link'] = '#';
        }
        $tpl['link_limit'] = \PHPWS_Settings::get('menu', 'max_link_characters');
        if (\PHPWS_Core::moduleExists('carousel')) {
            $tpl['carousel'] = $this->carouselSlidesForm();
        } else {
            $tpl['carousel'] = null;
        }
        $template->addVariables($tpl);
        return $template->get();
    }