/** * 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; }
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; }
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; }
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(); }