Добрый вечер, подскажите можно ли выводить новости с кратким описанием.
0
Можно ли выводить новости с кратким описанием?
Автор
vasko
, 04.07.2009, 18:28
Сообщений в теме: 4
#1
Отправлено 04.07.2009, 18:28
#2
Отправлено 05.07.2009, 06:04
vasko (4.7.2009, 22:28) писал:
Добрый вечер, подскажите можно ли выводить новости с кратким описанием.
Можно добавить к страницам свое свойство, где прописывать аннотацию к странице, а там где требуется, использовать ее.
#3
Отправлено 05.07.2009, 21:11
support (5.7.2009, 9:04) писал:
В текущей версии Zebrum Lite у страниц нет свойства, которое бы отвечало за аннотацию к статье, поэтому при выводе списка дочерних страниц используется метатэг описания страницы или, если его нет, первый абзац страницы (http://blog.zebrum.r...additional.html, текст под ссылкой на страницу лицензии).
Можно добавить к страницам свое свойство, где прописывать аннотацию к странице, а там где требуется, использовать ее.
Можно добавить к страницам свое свойство, где прописывать аннотацию к странице, а там где требуется, использовать ее.
#4
Отправлено 06.07.2009, 03:48
А не смогли бы Вы поподробнее объяснить, я вывожу новости в шаблоне, в блоке, с помощью <?php zsidebarmanager::displaySidebar(2); ?>, но там отображается только @@title, которое и является ссылкой на полную новость а @@description= хоть и прописываю но не отображается.
В качестве примера привожу возможный вариант реализации этого класса (комментарии класса zwidget_pages удалены для сокращения кода, добавленный код выделен комментариями):
<?php class widget_news extends zwidget { public function displayContent () { $this->nofollow = ''; if (zengine::config()->get('menu.nofollow')) { $this->nofollow = ' rel="nofollow"'; } $this->zpage = zengine::ztemplate()->zpage; $this->pagepath = $this->zpage->getPagepath(); $menu = zengine::zsource()->getMenu()->find($this->getParam('childs_of')); if (!$menu) { return; } echo '<ul>'; $this->displayItems($menu, 1); echo '</ul>'; } private function displayItems ($items, $currentDepth) { $displayed = 0; foreach ($items as $item) { if ($this->getParam('number') > 0 && $displayed >= $this->getParam('number')) { break; } if ($item->nomenuitem || (false !== $this->getParam('menuid') && $item->menuid !== $this->getParam('menuid'))) { continue; } $itemClasses = array('page_item'); // Мы находимся на этой странице if ($this->pagepath == $item->uri) { $itemClasses[] = 'current_page_item'; } // Эта страницы выше по нашей ветке if (strpos($this->pagepath, $item->uri . '/') === 0) { $itemClasses[] = 'current_page_ancestor'; // Эта страницы является родительской для текущей if (false === strpos(substr($this->pagepath, strlen($item->uri) + 1), '/')) { $itemClasses[] = 'current_page_parent'; } } echo '<li class="' . implode(' ', $itemClasses) . '">'; if (strpos($this->pagepath, $item->uri . '/') === 0 || strpos($item->uri, dirname($this->pagepath)) !== 0) { echo '<a href="' . $item->link . '"' . $this->nofollow . '>' . $item->name . '</a>'; } else { echo '<a href="' . $item->link . '">' . $item->name . '</a>'; } // Добавление вывода описания страницы $page = zpage::find($item->uri, true); $description = $page->getDescription(); if (strlen($description) != 0) { echo '<br />' . $description; } // --- if ((!$this->getParam('depth') || $currentDepth < $this->getParam('depth')) && !$item->nosubmenu && $item->hasSubmenu() && $this->showSubmenu($item)) { echo '<ul>'; $this->displayItems($item, $currentDepth + 1); echo '</ul>'; } echo '</li>'; ++$displayed; } } private function showSubmenu ($item) { if ($this->getParam('type', 'minimal') == 'minimal') { if ($item->uri == $this->pagepath || strpos($this->pagepath, $item->uri . '/') === 0) { return true; } else { return false; } } return true; } private $nofollow; private $pagepath; protected $defaults = array( 'type' => 'minimal', 'depth' => 0, 'menuid' => 'main', 'childs_of' => '', 'number' => 0, ); }
Если данный класс поместить в файл widget_news.php рядом с файлом functions.php, то для его использования можно прописать следующий код (параметры создания виджета подправить):
require_once(dirname(__FILE__) . '/widget_news.php'); $sidebar2 = new zsidebar(); $sidebar2->addWidget(new widget_news('news', array( 'title' => 'Последние новости', // Заголовок блока 'type' => 'full', // Тип вывода меню: minimal или full 'menuid' => 'news', // тип меню, false - все пункты, main 'childs_of' => '/news', // выводить дочерние страницы этой страницы 'depth' => 1, // глубина иерархии меню ограничена первым уровнем 'number' => 10, // выводить не более 10 пунктов меню )));
#5
Отправлено 06.07.2009, 06:16
Спасибо большое, все получилось .
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 скрытых пользователей