Помогите переработать модуль для Joomla

Василий Колодин
На сайте с 17.12.2008
Offline
250
1273

Есть сайт на Joomla 1.6

Есть стандартный модуль mod_articles_categories

Задача: вывести иконки категорий.

В настоящее время код выглядит так:

defined('_JEXEC') or die;

foreach ($list as $item) :

?>
<div> <?php $levelup=$item->level-$startLevel -1; ?>
<h<?php echo $params->get('item_heading')+ $levelup; ?> class="yo-company"><?php echo $item->note;?>


<!-- Вот сюда бы иконку вывести... -->



<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($item->id)); ?>" class="yo-company">
<?php echo $item->title;?></a>
</h><?php echo $params->get('item_heading')+ $levelup; ?>>

<?php
if($params->get('show_description', 0))
{
echo JHTML::_('content.prepare',$item->description, $item->getParams());
}
if($params->get('show_children', 0) && (($params->get('maxlevel', 0) == 0) || ($params->get('maxlevel') >= ($item->level - $startLevel))) && count($item->getChildren()))
{

echo '<ul>';
$temp = $list;
$list = $item->getChildren();
require JModuleHelper::getLayoutPath('mod_articles_categories', $params->get('layout', 'default').'_items');
$list = $temp;
echo '</ul>';
}
?>
</div>
<?php endforeach; ?>
Юзаю Бегет с 2013 года. Начни юзать и ты: https://beget.com/p64496/ru/hosting/virtual
DiAksID
На сайте с 02.08.2008
Offline
218
#1

Вы просто проблему сформулируйте подробнее. нужна иконка где то в контенте страницы? так этим мало мало другие файлы занимаются, однако ;)...

show must go on !!!...
Василий Колодин
На сайте с 17.12.2008
Offline
250
#2

Иконка задается тут: http://awesomescreenshot.com/04cbdmi2d

Модуль mod_articles_categories выводит категории из указанной родительской категории. По-умолчанию он выводит просто названия категорий списком, а мне нужно чтобы выводились еще и иконки.

Вот у меня есть родительская категория "Организации", и для каждой организации своя подкатегория. И иконкой будет назначаться фотография директора каждой из организаций.

Т.е. получается, что тыкаешь на фотографию директора и попадаешь в категорию, которая полностью относится к организации, которую этот директор возглавляет.

ЗЫ: забыл сказать, что приведенный листинг кода - это default_items.php данного модуля, уже чуточку измененный.

DiAksID
На сайте с 02.08.2008
Offline
218
#3
titaniMOZG:
Иконка задается тут: http://awesomescreenshot.com/04cbdmi2d

Модуль mod_articles_categories выводит категории из указанной родительской категориию...

за изменением визуализации контента Вам в /compontnts/com_content/views/ выбираете директорию необходимого типа и в ней лезете в /tmpl/ - вот там и лежат шаблоны для визуализации (например, шаблон "списка категорий" и шаблон "элемента списка категорий" и т.п.). в них и меняется (для контента) что где и как показывать на frontpage.

всё не сложно, удачи...

ЗЫ: ну а модуль который Вы хотели "переработать" он слегка для кое-чего другого.

Василий Колодин
На сайте с 17.12.2008
Offline
250
#4
DiAksID:
за изменением визуализации контента Вам в /compontnts/com_content/views/ выбираете директорию необходимого типа и в ней лезете в /tmpl/ - вот там и лежат шаблоны для визуализации (например, шаблон "списка категорий" и шаблон "элемента списка категорий" и т.п.). в них и меняется (для контента) что где и как показывать на frontpage.

всё не сложно, удачи...

ЗЫ: ну а модуль который Вы хотели "переработать" он слегка для кое-чего другого.

В принципах работы жумлы я разбираюсь хорошо - есть сложности с технической реализацией.

Содержание tmpl я уже скопировал в: templates\имя_шаблона\html\mod_articles_categories - этот файл подключился, и изменения в нем приводят к визуальному изменению в модуле, после обновления страницы. Класс я туда добавил для H4 и он появился на самой странице.

Модуль, который я хотел переработать, как раз для этого. Из его описания в админке: "Модуль выводит список подкатегорий родительской категории. "

http://awesomescreenshot.com/0dabee50d

DiAksID
На сайте с 02.08.2008
Offline
218
#5
titaniMOZG:
Модуль, который я хотел переработать, как раз для этого...

есчо раз: подготовкой контента , обработкой событий и формированием буфера вывода занимается много разных частей Joomla. Вам же требуется элементарное изменение визаулизации контента. просто посмотрите ;). выдрать кусок кода, отвечающий за вывод картинки, из-под условий всяких и переставить в нужное место, обернув нужной ссылкой, дело 5-ти минут.

titaniMOZG:
В принципах работы жумлы я разбираюсь хорошо - есть сложности с технической реализацией...

без обид, но это абсолютно и однозначно взаимосвязано...

ЗЫ: вся визуализация точно также замещается файлами в директории html шаблона, системные можно/нужно не менять.

Василий Колодин
На сайте с 17.12.2008
Offline
250
#6

Решил задачу следующим образом:

<?php
/**
* @version $Id: default_items.php 20196 2011-01-09 02:40:25Z ian $
* @package Joomla.Site
* @subpackage mod_articles_categories
* @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

// no direct access
defined('_JEXEC') or die;
foreach ($list as $item) :

?>
<div> <?php $levelup=$item->level-$startLevel -1; ?>
<h<?php echo $params->get('item_heading')+ $levelup; ?> class="yo-company">






<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($item->id)); ?>" class="yo-company">


<?php
$kztchi=$item->params;
$mas=explode('":"',$kztchi);
$mas[2]=str_replace('"','',$mas[2]);
$mas[2]=str_replace('\/','/',$mas[2]);
$directorface=$mas[2]=str_replace('}','',$mas[2]);
if($directorface != ''){
?>
<img src="<?php echo $directorface ?>" class="director_face" />
<?php } else {?>
<img src="files/faces/default.jpg" class="director_face" />
<?php } ?>


<span class="director_name"><?php echo $item->note;?></span><br />

<?php echo $item->title;?></a>
</h<?php echo $params->get('item_heading')+ $levelup; ?>>

<?php
if($params->get('show_description', 0))
{
echo JHTML::_('content.prepare',$item->description, $item->getParams());
}
if($params->get('show_children', 0) && (($params->get('maxlevel', 0) == 0) || ($params->get('maxlevel') >= ($item->level - $startLevel))) && count($item->getChildren()))
{

echo '<ul>';
$temp = $list;
$list = $item->getChildren();
require JModuleHelper::getLayoutPath('mod_articles_categories', $params->get('layout', 'default').'_items');
$list = $temp;
echo '</ul>';
}
?>
</div>
<?php endforeach; ?>

Комментарий: если фотография не назначена, то будет взято фото: files/faces/default.jpg

DiAksID:
есчо раз: подготовкой контента , обработкой событий и формированием буфера вывода занимается много разных частей Joomla. Вам же требуется элементарное изменение визаулизации контента. просто посмотрите ;). выдрать кусок кода, отвечающий за вывод картинки, из-под условий всяких и переставить в нужное место, обернув нужной ссылкой, дело 5-ти минут.

Этот модуль картинку, как раз таки и не выводит.

Ни в его настройках, и нигде более не сказанно, что он может выводить картинки.

Кроме того, путь к картинке хранится не в чистом виде в ячейке БД, а в виде:

{"category_layout":"","image":"files\/faces\/gorbynova-l-n.jpg"}

Т.е. потребовалось даже не просто достать данные из БД, а еще и обработать их.

Я - не программер. Я дизайнер и верстальщик, а PHP понимаю на уровне интуиции.

DiAksID:

без обид, но это абсолютно и однозначно взаимосвязано...

Все в школе изучают, как работает двигатель внутреннего сгорания, вот только открыв капот автомобиля, половина даже не сможет указать пальцем, где и что у него находится.

Вот наглядный пример между пониманием принципов и технической реализацией.

DiAksID:

ЗЫ: вся визуализация точно также замещается файлами в директории html шаблона, системные можно/нужно не менять.

Это я и так знаю. Спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий