DeMoN13 1 Опубликовано: 28 мая 2016 Рассказать Опубликовано: 28 мая 2016 Друзья! Нужна совсем незначительная помощь от тех кто разбирается в PHP! Есть замечательный модуль от АлаичЪ'а «Карта сайта» для пользователей! Ставится на все версии современного движка DLE и без особых сложностей выводит карту сайта для пользователей – список категорий и новостей, которые находятся в них. В моем случае нужны лишь списки категорий и вложенных подкатегорий - соответственно! Сам не разбираюсь в PHP, обратился к разработчику модуля, но человек занят и уже давно не занимается своими творениями, хотя и сказал, что любой кто шарит в PHP сможет удалить код, который отвечает за вывод СТАТЕЙ в «карте сайта»! Может кто то уже делал это или есть те, кому не составит труда разобраться в этом. P.S. Если вдруг разработчики DLE увидят эту тему – Хотелось бы пожелать, что бы вы включили данный модуль к себе в сборку, весьма полезный инструмент, когда много сайтов и много каталогов, как у нас на портале! Руками это крайне сложно! Заранее всем огромное спасибо! Выручите друзья, очень нужна ваша помощь! Ссылка на мой сайт: SPR.krasnogorsk.nameСсылка на модуль: http://alaev.info/blog/post/1974 Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 455 Опубликовано: 28 мая 2016 Рассказать Опубликовано: 28 мая 2016 Код весь прокомментирован, даже если не разбираетесь в php то можно удалить /* * Метод для отображения всех статей в данной категории * @param $cat - массив в информацией о категории - необходим для выяснения параметров сортировки статей * @return string */ public function show_cat_items($cat) { // id категории $cat_id = intval($cat['id']); // В переменную $items_html будем класть складывать результаты для вывода $items_html =''; // Получаем все статьи из данной категории $items = $this->take_cat_items($cat); if($items) { // Открываем блок $items_html = '<ul class="sitemap_items'.(($cat_id == 0)?' root':'').'">'; // Перебираем все статьи foreach($items as $item) { $items_html .= '<li'.(($cat_id == 0)?' class="root"':'').'>'; $items_html .= '<a href="'.$this->getPostUrl($item).'">'.stripslashes($item['title']).'</a>'; $items_html .= '</li>'; } // Закрываем блок $items_html .= '</ul>'; } // Возвращаем результат return $items_html; } Цитата Ссылка на сообщение Поделиться на других сайтах
DeMoN13 1 Опубликовано: 29 мая 2016 Рассказать Опубликовано: 29 мая 2016 (изменено) Автор 10 часов назад, germanydletest сказал: Код весь прокомментирован, даже если не разбираетесь в php то можно удалить /* * Метод для отображения всех статей в данной категории * @param $cat - массив в информацией о категории - необходим для выяснения параметров сортировки статей * @return string */ public function show_cat_items($cat) { // id категории $cat_id = intval($cat['id']); // В переменную $items_html будем класть складывать результаты для вывода $items_html =''; // Получаем все статьи из данной категории $items = $this->take_cat_items($cat); if($items) { // Открываем блок $items_html = '<ul class="sitemap_items'.(($cat_id == 0)?' root':'').'">'; // Перебираем все статьи foreach($items as $item) { $items_html .= '<li'.(($cat_id == 0)?' class="root"':'').'>'; $items_html .= '<a href="'.$this->getPostUrl($item).'">'.stripslashes($item['title']).'</a>'; $items_html .= '</li>'; } // Закрываем блок $items_html .= '</ul>'; } // Возвращаем результат return $items_html; } Видимо у нас еще старая версия модуля была. Скачали последнюю версию, да, там все помечено! Огромное спасибо. Все получилось. Остается понять как его оформить до вида: <ul> <li>Категория МАМА</li> <ul> <li>Дочка-1</li> <li>Дочка-2</li> </ul><hr></ul> <ul> <li>Категория Папа</li> <ul> <li>Сынка-1</li> <li>Сынка-2</li> </ul> </ul> Не знаете случаем где это нужно прописать? 0=) Изменено 29 мая 2016 пользователем DeMoN13 Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 455 Опубликовано: 29 мая 2016 Рассказать Опубликовано: 29 мая 2016 2 часа назад, DeMoN13 сказал: Не знаете случаем где это нужно прописать? тут /* * Метод для отображения всех подкатегорий в данной категории * @param $parent_id - идентификатор категории-родителя * @return string */ public function show_cats($parent_id) { // В переменную $cats_html будем класть складывать результаты для вывода $cats_html = ''; // Получаем все подкатегории данной категории $cats = $this->take_cats($parent_id); if($cats) { // Открываем блок $cats_html = '<ul class="sitemap_categories'.(($parent_id == 0)?' root':'').'">'; // Перебираем все категории из массива категорий foreach($cats as $cat) { // Открываем блок категории $cats_html .= '<li'.(($parent_id == 0)?' class="root"':'').'>'; // Если установлен параметр cats_as_links, показываем ссылку на категорию, если нет - просто текстовое наименование if($this->sitemap_config['cats_as_links']) { $cats_html .= '<a href="'.$this->create_cat_url($cat).'">'.stripslashes($cat['name']).'</a>'; } else { $cats_html .= '<span>'.stripslashes($cat['name']).'</span>'; } // Выводим статьи из категории $cats_html .= $this->show_cat_items($cat); // Выводим подкатегории $cats_html .= $this->show_cats($cat['id']); // Закрываем блок $cats_html .= '</li>'; } // Закрываем блок $cats_html .= '</ul>'; } // Возвращаем результат return $cats_html; } Цитата Ссылка на сообщение Поделиться на других сайтах
trubie 0 Опубликовано: 30 мая 2016 Рассказать Опубликовано: 30 мая 2016 Вы представляете, что бы вносить изменения в код надо весь код перелистать и изучать. Цитата Ссылка на сообщение Поделиться на других сайтах
DeMoN13 1 Опубликовано: 8 июня 2016 Рассказать Опубликовано: 8 июня 2016 Автор В 29.05.2016 в 14:15, germanydletest сказал: тут /* * Метод для отображения всех подкатегорий в данной категории * @param $parent_id - идентификатор категории-родителя * @return string */ public function show_cats($parent_id) { // В переменную $cats_html будем класть складывать результаты для вывода $cats_html = ''; // Получаем все подкатегории данной категории $cats = $this->take_cats($parent_id); if($cats) { // Открываем блок $cats_html = '<ul class="sitemap_categories'.(($parent_id == 0)?' root':'').'">'; // Перебираем все категории из массива категорий foreach($cats as $cat) { // Открываем блок категории $cats_html .= '<li'.(($parent_id == 0)?' class="root"':'').'>'; // Если установлен параметр cats_as_links, показываем ссылку на категорию, если нет - просто текстовое наименование if($this->sitemap_config['cats_as_links']) { $cats_html .= '<a href="'.$this->create_cat_url($cat).'">'.stripslashes($cat['name']).'</a>'; } else { $cats_html .= '<span>'.stripslashes($cat['name']).'</span>'; } // Выводим статьи из категории $cats_html .= $this->show_cat_items($cat); // Выводим подкатегории $cats_html .= $this->show_cats($cat['id']); // Закрываем блок $cats_html .= '</li>'; } // Закрываем блок $cats_html .= '</ul>'; } // Возвращаем результат return $cats_html; } Будем думать! Спасибо. В 30.05.2016 в 06:11, trubie сказал: Вы представляете, что бы вносить изменения в код надо весь код перелистать и изучать. Это к чему? Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 8 июня 2016 Рассказать Опубликовано: 8 июня 2016 а там же параметры передавать можно. Так попробовать можно: {include file="engine/modules/sitemap.php?show_static=0&news_limit=0&cats_as_links=1} отображать в карте статические страницы - нет максимальное количество выводимых статей из категории - 0 показывать названия категорий как ссылки - да Цитата Ссылка на сообщение Поделиться на других сайтах
DeMoN13 1 Опубликовано: 12 июня 2016 Рассказать Опубликовано: 12 июня 2016 Автор В 08.06.2016 в 19:03, alex32 сказал: а там же параметры передавать можно. Так попробовать можно: {include file="engine/modules/sitemap.php?show_static=0&news_limit=0&cats_as_links=1} отображать в карте статические страницы - нет максимальное количество выводимых статей из категории - 0 показывать названия категорий как ссылки - да Вот в этом то и проблема, что не получается стандартными средствами отключить! Поэтому и сюда написали. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.