protected function getParams($slot, $settings)
 {
     $page = $settings['page'];
     $relative_slug = $slot->getOption('relative_page', null, $settings['culture']);
     if ($relative_slug === null) {
         $relative_page = $page->isRoot() ? $page : sfPlopPageQuery::create()->findRoot();
     } elseif ($page->getSlug() == $relative_slug) {
         $relative_page = $page;
     } else {
         $relative_page = sfPlopPagePeer::retrieveBySlug($relative_slug);
     }
     if (!$relative_page) {
         $relative_page = $page->isRoot() ? $page : sfPlopPageQuery::create()->findRoot();
     }
     $level_depth = $slot->getOption('level_depth', null, $settings['culture']);
     if (isset($level_depth)) {
         $q = sfPlopPageQuery::create()->addCond('cond1', sfPlopPagePeer::TREE_LEVEL, $relative_page->getLevel() + $level_depth, Criteria::LESS_EQUAL)->addCond('cond2', sfPlopPagePeer::TREE_LEVEL, null, Criteria::ISNULL)->combine(array('cond1', 'cond2'), Criteria::LOGICAL_OR);
     } else {
         $q = sfPlopPageQuery::create();
     }
     $level1_nodes = $relative_page->getDescendants($q);
     $useAjax = sfPlop::get('sf_plop_use_ajax') === true ? true : false;
     $displays = $slot->getOption('displays', array(), $settings['culture']);
     $use_icon = in_array('icon', $displays) ? true : false;
     $use_subtitle = in_array('subtitle', $displays) ? true : false;
     $use_title = in_array('title', $displays) || !$use_icon && !$use_subtitle ? true : false;
     return array('relative_level' => $relative_page->getLevel() + 1, 'relative_page' => $relative_page, 'level_depth' => $level_depth, 'show_hidden_parent' => false, 'level1_nodes' => $level1_nodes, 'useAjax' => $useAjax, 'displays' => $displays, 'use_icon' => $use_icon, 'use_subtitle' => $use_subtitle, 'use_title' => $use_title, 'menu_class' => 'w-menu');
 }
 protected function getParams($slot, $settings)
 {
     $root = $settings['page']->isRoot() ? $settings['page'] : sfPlopPageQuery::create()->findRoot();
     $q = sfPlopPageQuery::create();
     $level1_nodes = $root->getBranch($q);
     $displays = $slot->getOption('displays', array(), $settings['culture']);
     $use_icon = in_array('icon', $displays) ? true : false;
     $use_subtitle = in_array('subtitle', $displays) ? true : false;
     $use_title = in_array('title', $displays) || !$use_icon && !$use_subtitle ? true : false;
     return array('relative_level' => 1, 'relative_page' => false, 'level1_nodes' => $level1_nodes, 'level_depth' => null, 'show_hidden_parent' => true, 'displays' => $displays, 'use_icon' => $use_icon, 'use_subtitle' => $use_subtitle, 'use_title' => $use_title, 'useAjax' => false, 'menu_class' => 'w-list');
 }
 protected function getParams($slot, $settings)
 {
     $pages_ids = array();
     $q = sfPlopPageQuery::create()->filterByTreeLevel($slot->getPage()->getLevel() + 1);
     $pages = $slot->getPage()->getBranch($q);
     foreach ($pages as $page) {
         $pages_ids[] = $page->getId();
     }
     $slotConfigs = sfPlopSlotConfigQuery::create()->innerJoinsfPlopSlot()->filterByPageId($pages_ids)->usesfPlopPageQuery()->orderByTreeLeft()->endUse()->find();
     foreach ($slotConfigs as $i => $slotConfig) {
         if (!$slotConfig->getTemplate() != 'AssetGallery' && !$slotConfig->getSlot()->ispublished()) {
             unset($slotConfigs[$i]);
         }
     }
     return array('slotConfigs' => $slotConfigs);
 }
 public function getChoices()
 {
     $page_filters_ids = array();
     $page = sfPlopPagePeer::retrieveByPK($this->getOption('page_id)'));
     $q = sfPlopPageQuery::create()->filterByTreeLevel($page->getLevel() + 1);
     $page_filters = $page->getBranch($q);
     foreach ($page_filters as $page_filter) {
         $page_filters_ids[] = $page_filter->getId();
     }
     $filters = sfPlopSlotConfigQuery::create()->innerJoinsfPlopSlot()->filterByPageId($page_filters_ids)->find();
     foreach ($filters as $i => $filter) {
         if (!$filter->getTemplate() != 'GoogleMapsFilter' && !$filter->getSlot()->ispublished()) {
             unset($filters[$i]);
         }
     }
     $options_for_filter = array('' => '');
     foreach ($filters as $filter_object) {
         $options_for_filter[$filter_object->getValue($this->getOption('page_culture)'))] = $filter_object->getValue($this->getOption('page_culture)'));
     }
     $this->setOption('choices', array_keys($options_for_filter));
     return parent::getChoices();
 }
Ejemplo n.º 5
0
 /**
  * Get the maaximum level of the page tree.
  * @return Integer
  */
 public static function getMaxLevel()
 {
     return sfPlopPageQuery::create()->orderByTreeLevel(Criteria::DESC)->findOne()->getLevel() + 1;
 }
Ejemplo n.º 6
0
 /**
  * Delete all the unused template slot configs
  * @param  Integer $tpl_id The template page to retrieve slots
  */
 public function deleteUnusedInheritedSlotConfigs($tpl_id)
 {
     if (!$tpl_id) {
         return;
     }
     $slot_ids = array();
     $slots = sfPlopSlotQuery::create()->filterByPageId($tpl_id)->filterByTemplate('Area', Criteria::NOT_EQUAL)->find();
     foreach ($slots as $slot) {
         $slot_ids[] = $slot->getId();
     }
     $page_ids = array($this->getId());
     $pages = sfPlopPageQuery::create()->filterByTemplateId($this->getId())->find();
     foreach ($pages as $page) {
         $page_ids[] = $page->getId();
     }
     $slot_configs = sfPlopSlotConfigQuery::create()->filterByPageId($page_ids)->filterBySlotId($slot_ids)->find();
     foreach ($slot_configs as $sc) {
         $sc->delete();
     }
 }
Ejemplo n.º 7
0
?>

<<?php 
echo html5Tag('nav');
?>
 class="nav">
  <?php 
if (isset($page)) {
    ?>
    <?php 
    if (!isset($type)) {
        $type = null;
    }
    ?>
    <?php 
    $root = sfPlopPageQuery::create()->findRoot();
    ?>
    <ul class="w-menu menu-custom">
      <li class="w-menu-dd w-menu-dd-left">
        <span class="element">
          <?php 
    echo __('Page : %s', array('%s' => content_tag('strong', $page->getTitle(), 'class=' . ($page->getIsPublished() ? 'published' : 'unpublished'))), 'plopAdmin');
    ?>
          <?php 
    echo image_flag($culture, array('alt' => format_language($culture)));
    ?>
          <?php 
    if ($page->isTemplate()) {
        ?>
            <?php 
        echo content_tag('span', '(' . $page->countTemplateChildren() . ')', array('title' => __('This page has %s template children.', array('%s' => $page->countTemplateChildren()), 'plopAdmin'), 'class' => 'w'));
 /**
  * Retrieve the assets files and/or folders
  * @param sfWebRequest $request
  * @return Json array
  */
 public function executeWsRepository(sfWebRequest $request)
 {
     if (!$this->isUserAdmin) {
         return;
     }
     $data = array();
     $type = strtolower($request->getParameter('type', 'folder'));
     $folder = strtolower($request->getParameter('folder', null));
     $term = strtolower($request->getParameter('term', null));
     if ($type == 'folder' && !$folder) {
         $data['Assets'] = 'Assets';
         $data['Links'] = 'Links';
     } elseif ($type == 'file') {
         if ($folder == '/links') {
             // Links
             $page_query = sfPlopPageQuery::create();
             if ($term) {
                 $page_query->filterBySlug('%' . $term . '%', Criteria::LIKE);
             }
             $nodes = sfPlopPageQuery::create()->findRoot()->getBranch($page_query);
             sfProjectConfiguration::getActive()->loadHelpers('Url');
             foreach ($nodes as $node) {
                 $node->setCulture($this->getCulture());
                 $url = url_for('@sf_plop_page_show?slug=' . $node->getSlug());
                 $data[] = array('name' => $node->getTitle(), 'description' => $node->getTitle(), 'title' => $node->getTitle(), 'forward' => $url, 'url' => $url, 'type' => 'website', 'html' => '<a href="' . $url . '">' . $node->getTitle() . '</a>');
             }
         } elseif ($folder == '/assets') {
             if (in_array('sfAssetLibrary', array_keys(sfPlop::getSafePluginModules()))) {
                 // Assets
                 $asset_query = sfAssetQuery::create();
                 if ($term) {
                     $asset_query->filterByFilename('%' . $term . '%', Criteria::LIKE);
                 }
                 $assets = $asset_query->find();
                 foreach ($assets as $asset) {
                     $data[] = array('name' => $asset->getFilename(), 'title' => $asset->getFilename(), 'url' => $asset->getUrl(), 'src' => $asset->getUrl(), 'type' => $asset->getType(), 'html' => '<a href="' . $asset->getUrl() . '">' . '<img src="' . $asset->getUrl() . '" height="25" />' . $asset->getFilename() . '</a>');
                 }
             }
         }
     }
     $this->getResponse()->setContentType('text/json');
     return $this->renderText(str_replace('\\/', '/', json_encode($data)));
 }