Перейти к содержимому


Фотография
- - - - -

Как вывести зображение из элемента JBImage в модуль комментариев mod_zoocomment ?


Лучший Ответ SmetDenis , 28 April 2014 - 18:22

Попробуйте вставить в нужное место шаблона модуля комментариев следующий код

            $item   = $comment->getItem();
            $params = array(
                "display"  => "first",
                "template" => "default",
                "width"    => "50",
                "height"   => "50",
            );
            $params = $zoo->data->create($params);
            $img    = $item->getElement('<ELEMENT_ID>')->render($params);
            echo '<a href="' . $zoo->route->item($item) . '">' . $img . '</a>';
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 12

#1 happy home

happy home

Отправлено 24 April 2014 - 02:13

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

 

Заказчик поставил задачу вывести все комментарии из всех материалов всех категорий одного типа в общую ленту на отдельной странице сайта (система комментариев используется стандартная от Zoo), я для этого решил использовать соответствующий модуль zoocomment.

Загвоздка в том, что заказчик настоятельно просит вывести в комментариях не аватары авторов комментариев, а озображения из карточки (айтема) комментируемого товара (в моем случае используется элемент JBImage)? например, как оно выводится в тизере...

Подскажите как это реализовать? Желательно, чтобы изображение было заданного размера (пусть в коде), желательно, но не обязательно, что бы изображение было ссылкой ведущей на соответствующий материал (айтем).

 

Я понимаю, что необходимо подредактировать код в модуле zoocomment, но не имею достаточного опыта и знаний PHP

 

Может быть ктото уже решал подобную задачу? Поделитесь опытом или подскажите пожалуйста решение. Что то мне подсказывает, что решается все довольно просто - вставкой небольшой части кода вот в этот файл:

 

/modules/mod_zoocomment/tmpl/list.php    (я использую этот шаблон для вывода комментариев в модуле zoocomment)

 

Вот его содержимое:

<?php
/**
* @package   ZOO Comment
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

// include css
$zoo->document->addStylesheet('mod_zoocomment:tmpl/list/style.css');

?>

<?php if (count($comments)) : ?>

<section class="zoo-comments-list">

	<?php $i = 0; foreach ($comments as $comment) : ?>

		<?php // set author name
			$author = $comment->getAuthor();
			$author->name = $author->name ? $author->name : JText::_('COM_ZOO_ANONYMOUS');
		?>

		<article class="<?php if ($author->isJoomlaAdmin()) echo 'comment-byadmin'; ?>">

			<?php if ($params->get('show_avatar', 1)) : ?>
			<div class="avatar">
				<?php if ($author->url) : ?><a href="<?php echo $author->url; ?>" title="<?php echo $author->url; ?>" rel="nofollow"><?php endif; ?>
				<?php echo $author->getAvatar($params->get('avatar_size', 50)); ?>
				<?php if ($author->url) : ?></a><?php endif; ?>
			</div>
			<?php endif; ?>

			<?php if ($params->get('show_author', 1)) : ?>
			<h4 class="author">
				<?php if ($author->url) : ?><a href="<?php echo $author->url; ?>" title="<?php echo $author->url; ?>" rel="nofollow"><?php endif; ?>
				<?php echo $author->name; ?>
				<?php if ($author->url) : ?></a><?php endif; ?>
			</h4>
			<?php endif; ?>

			<?php if ($params->get('show_meta', 1)) : ?>
			<p class="meta">
				<?php echo $zoo->html->_('date', $comment->created, $zoo->date->format(JText::_('ZOO_COMMENT_MODULE_DATE_FORMAT')), $zoo->date->getOffset()); ?>
				| <a class="permalink" href="<?php echo JRoute::_($zoo->route->comment($comment)); ?>">#</a>
			</p>
			<?php endif; ?>

			<div class="content"><p><?php echo $zoo->comment->filterContentOutput($zoo->string->truncate($comment->content, $zoo->get('commentsmodule.max_characters'))); ?></p></div>

		</article>

	<?php $i++; endforeach; ?>

</section>

<?php else : ?>
	<?php echo JText::_('COM_ZOO_NO_COMMENTS_FOUND'); ?>
<?php endif;

Может быть необходимо взять часть кода из модуля mod_zooitem там как раз выводятся миниатюры изображений из JBImage....

Хотя у модуля ZOO Item: есть в настройке типов - Расширенное расположение (его настройка) где добавляются нужные элементы для вывода в модуле... Видимо я привел неудачное сравнение...

Вероятнее всего требуется взять часть кода из самого элемента JBImage...

 

Заранее благодарю всех, кто готов помочь!

Спасибо!


Сообщение отредактировал happy home: 24 April 2014 - 02:28

  • 0

#2 happy home

happy home

Отправлено 25 April 2014 - 03:33

Может быть такое можно реализовать на базе патча предложенного Денисом для вставки изображения в письмо-заказ отправляемое покупателю и администратору сайта вот в этой теме: http://forum.jbzoo.c...atelyu/?p=31704


  • 0

#3 Cheren-dow

Cheren-dow

Отправлено 25 April 2014 - 07:07

happy home, мне представляется следующее. Получить id материала, из материала JSON параметров взять путь до изображения и выводить картинку.


  • 0
Изображение
 

#4 happy home

happy home

Отправлено 25 April 2014 - 07:51

Уважаемый Cheren-dow, не могли бы Вы помочь мне с более подробным описанием или, если это возможно, указать какой код и из какого файла требуется брать. Если честно, то я почти ничего не понял из того, что вы написали выше.

Извините и спасибо!


  • 0

#5 happy home

happy home

Отправлено 25 April 2014 - 14:05

HELP ME!!!


  • 0

#6 SmetDenis

SmetDenis

Отправлено 28 April 2014 - 18:22   Лучший Ответ

Попробуйте вставить в нужное место шаблона модуля комментариев следующий код

            $item   = $comment->getItem();
            $params = array(
                "display"  => "first",
                "template" => "default",
                "width"    => "50",
                "height"   => "50",
            );
            $params = $zoo->data->create($params);
            $img    = $item->getElement('<ELEMENT_ID>')->render($params);
            echo '<a href="' . $zoo->route->item($item) . '">' . $img . '</a>';

  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 happy home

happy home

Отправлено 29 April 2014 - 02:06

Денис, здравствуйте.

Я не силен в программировании PHP, но, думаю, что в начале и в конце кода надо добавить соответствующие открывающие и закрывающие тэги... попробовал сделать вот так:

<?php
			$item   = $comment->getItem();
            $params = array(
                "display"  => "first",
                "template" => "default",
                "width"    => "50",
                "height"   => "50",
            );
            $params = $zoo->data->create($params);
            $img    = $item->getElement('<ELEMENT_ID>')->render($params);
            echo '<a href="' . $zoo->route->item($item) . '">' . $img . '</a>';
			?>

Весь шаблон и содержимое страниц сайта "рассыпается".

Подскажите пожалуйста как следует сделать правильно?

 

Возможно "съелись" тэги php...

 

Добавлять код пытаюсь вот в этот файл шаблона /modules/mod_zoocomment/tmpl/list.php


Сообщение отредактировал happy home: 29 April 2014 - 02:22

  • 0

#8 Cheren-dow

Cheren-dow

Отправлено 29 April 2014 - 09:39

happy home, вам вот тут

$item->getElement('<ELEMENT_ID>') 

вместо <ELEMENT_ID> нужно вставлять id элемента.


  • 1
Изображение
 

#9 happy home

happy home

Отправлено 29 April 2014 - 10:15

happy home, вам вот тут

$item->getElement('<ELEMENT_ID>') 

вместо <ELEMENT_ID> нужно вставлять id элемента.

 

Здравствуйте уважаемый Cheren-dow.

Извините, что могу показаться Вам "чайником"...

 

Если я вставляю в файл шаблона модуля комментариев код, который мне предложил Денис (заменив в нем <ELEMENT_ID> на id элемента (JBZoo Comments),

$item   = $comment->getItem();
            $params = array(
                "display"  => "first",
                "template" => "default",
                "width"    => "50",
                "height"   => "50",
            );
            $params = $zoo->data->create($params);
            $img    = $item->getElement('baca8a41-c362-497f-a4fb-a47220680a9a')->render($params);
            echo '<a href="' . $zoo->route->item($item) . '">' . $img . '</a>';

то у меня код появляется в самом комментарии в модуле комментариев, а если я вставляю код, добавив в него открывающий и закрывающий теги,

<?php
		$item   = $comment->getItem();
            $params = array(
                "display"  => "first",
                "template" => "default",
                "width"    => "50",
                "height"   => "50",
            );
            $params = $zoo->data->create($params);
            $img    = $item->getElement('baca8a41-c362-497f-a4fb-a47220680a9a')->render($params);
            echo '<a href="' . $zoo->route->item($item) . '">' . $img . '</a>';
			?>

то вся страница рассыпается...

Подскажите пожалуйста, что я делаю не так?


  • 0

#10 SmetDenis

SmetDenis

Отправлено 29 April 2014 - 10:26

то вся страница рассыпается...

Что это значит? Где увидеть?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!