Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 31 Ответов
  • 5286 Просмотров
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
J3.2  В теле материала пишу
Код
Количество просмотров: <?php echo JText::sprintf('COM_CONTENT_ARTICLE_HITS', $this->item->hits); ?>

выводится
Код
Количество просмотров: item->hits); ?>

В php не силен, помогите поправить, пожалуйста  >:(
« Последнее редактирование: 10.12.2013, 19:31:26 от b2z »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Количество просмотров: <?php echo $this->item->hits; ?>
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
К сожалению не помогло, то же самое выводит ((
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В шаблоне в /html/com_content/article/default.php добавил $hits = $this->item->hits; в материале вывел <?php echo $hits; ?> - ничего не показывает вообще
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
в материале вывел <?php echo $hits; ?>
Это как так - в материале? В теле материала Вы никак не выведите такую информацию! Или я неверно Вас понял?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А вы пишете в теле материала? дык тогда все понятно! ничего у вас не выведется! PHP вообще порежется редактором!
Вам нужно писать либо плагин который выведет в любом месте контента количество просмотров!
либо переопределить шаблон и в любом месте после вывода текста вывести количество показов!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Жаль, спс за разъяснение.
Просто хотелось в краткой части материала (до "подробнее") вывести одной строкой Дату публикации и кол-во просмотров, а в основной части эти данные у меня располагаются сверху и снизу материала с-но.
Плагин - это интересно, сам не писал - есть повод попробовать :)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Можно и без плагина, можно в текст вставить что то типа {hits}
и в шаблоне вывода материала (/templates/ваш_шаблон/html/com_content/article/default.php) найти строку <?php echo $this->item->text; ?>:
и заменить её на:
<?php echo str_replace('{hits}', 'Количество просмотров: ' . $this->item->hits, $this->item->text); ?>
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Можно и без плагина, можно в текст вставить что то типа {hits}
и в шаблоне вывода материала (/templates/ваш_шаблон/html/com_content/article/default.php) найти строку <?php echo $this->item->text; ?>:
и заменить её на:
<?php echo str_replace('{hits}', 'Количество просмотров: ' . $this->item->hits, $this->item->text); ?>
Спасибо, но это работает только тогда, когда в параметрах материала включено отображение кол-ва просмотров.

Мне бы хотелось хотелось иметь следующее (структура матерала):
Код
<div><span class="addon-info">Опубликовано: <?php echo JText::_(JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC4'))); ?>, количество просмотров: <?php echo $this->item->hits; ?></span></div>
<div>Краткая аннотация материала</div>
<hr id="system-readmore" />
<h2>Заголовок</h2>
<p><span class="addon-info">Опубликовано: <?php echo JText::_(JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC4'))); ?></span></p>

<p>Тело материала</p>

<p>Автор материала: <?php echo $this->item->author; ?></p>
<p><span class="addon-info">Количество просмотров материала: <?php echo $this->item->hits; ?></span></p>

И при этом независимо от того, включены в параметрах отображения материала соответствующие данные (дата публикации, автор, кол-во просмотров), или нет.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В /templates/templname/html/com_content/article/default.php, когда пишу <?php echo str_replace('{hits}', $this->item->hits, $this->item->text); ?> материал на странице дублируется, при этом в 1 экземпляре замена {hits} на значение происходит, во втором - нет. Опробовано в нескольких шаблонах на чистой системе. Как поправить?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Спасибо, но это работает только тогда, когда в параметрах материала включено отображение кол-ва просмотров.
Это и будет работать только тогда, когда включена опция. В противном случае $this->item->hits вообще в шаблоне не будет выводиться. Можно сделать дополнительным sql-запросом. Но некошерно. Если надо, напишу конечно. Но логичнее и правильнее было бы просто включать эту опцию в админке.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
ппц, неделю мучился, задал вопрос - ответ сам нашелся (закон подлости?): <?php //echo $this->item->text; ?> (закомментил)
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Если надо, напишу конечно.
Спс, пока пробую сам, в образовательных целях. Но, возможно обращусь за помощью :)
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А вот эта конструкция работать не хочет:
<?php echo str_replace('{publiched_date}', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC4')), $this->item->text); ?>
Почему?

Нет, работает, но создает копию материала. Сколько раз в коде встречается $this->item->text, столько раз материал выводится на странице, (подозреваю, что это нормально), при этом в каждой копии материала только одна корректная замена, каждый раз - своя: сначала дата, потом хиты.
Если я правильно понял, нужно получить свой экзкмпляр $this->item->text и уже с ним работать, а потом результат возвращать. И вот здесь мне уже нужна помощь...
« Последнее редактирование: 10.12.2013, 18:18:14 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Если вы делаете
Код: php
<?php echo str_replace('{publiched_date}', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC4')), $this->item->text); ?>
то все остальные $this->item->text в шаблоне нужно удалить!
либо сделайте
Код: php
<?php $this->item->text = str_replace('{publiched_date}', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC4')), $this->item->text); ?>
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Вообще для таких манипуляций есть готовый плагин у NoNumber`а. ReReplacer по-моему называется.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
а после всех $this->item->text = str_replace уже 1 раз echo $this->item->text; я вас правильно понял?

Да, понял правильно :) Премного благодарен! +
« Последнее редактирование: 10.12.2013, 18:47:36 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
нет. не совсем решено.
/templates/templname/html/com_content/article/default.php - это для обычных материалов, а для избранных что править?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
/templates/templname/html/com_content/featured/default.php

Хотя постойте. Какая разница избранный материал или нет? Те правки выше будут работать во всех материалах, т.к. это шаблон статьи. Избранное — всего лишь опция.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
спс, решено.

поправка: /templates/templname/html/com_content/featured/default_item.php
« Последнее редактирование: 10.12.2013, 19:56:38 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
вот только одна маленькая проблемка: $this->item->text там вообще не встречается, а если добавить, материал дублируется: первая копия без замен, вторая с заменами

Какая разница избранный материал или нет? Те правки выше будут работать во всех материалах, т.к. это шаблон статьи. Избранное — всего лишь опция.
видимо, большая, т.к. для избранных материалов отдельный модуль их вывода

и еще один момент: у избранного материала счетчик просмотров всегда равен 1, что, имхо, не есть совсем нормально. это правиться?
« Последнее редактирование: 10.12.2013, 20:18:33 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
вот только одна маленькая проблемка: $this->item->text там вообще не встречается, а если добавить, материал дублируется: первая копия без замен, вторая с заменами
видимо, большая, т.к. для избранных материалов отдельный модуль их вывода
Материал что избранный что обычный выводится через /templates/templname/html/com_content/article/default.php
В /templates/templname/html/com_content/featured/ выводится списком избранные материалы! но не один материал!
и выводится по идее только вступительный текст материала!
/templates/templname/html/com_content/featured/default.php тут формируется цикл для вывода избранных!
/templates/templname/html/com_content/featured/default_item.php - тут выводится каждая запись избранного материала!
и вступительный текст избранного материала выводится через <?php echo $this->item->introtext; ?> в файле /templates/templname/html/com_content/featured/default_item.php
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А если избранный материал только один, то он выводится полностью, все равно $this->item->introtext; ?

В общем, я понял правильно, спасибо :)

Остался только вопрос со счетчиком просмотров избранных материалов
« Последнее редактирование: 10.12.2013, 20:36:41 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В общем, не знаю, что я сделал (похоже, что-то в общих настройках материалов наменял), но счетчик просмотров избранных материалов заработал. Всем большое спасибо. Окончательно решено.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Опять вопрос из примерно той же области.
В /templates/templname/html/com_content/category/blog_item.php line 30-32:
Код: php
<?php if ($useDefList) : ?>
<?php echo JLayoutHelper::render('joomla.content.info_block.block', array('item' => $this->item, 'params' => $params, 'position' => 'above')); ?>
<?php endif; ?>

Откуда именно он цепляет шаблон отображения useDefList?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
useDefList - это не шаблон отображения! Это переменная которая определяет отображать ли ей слой Joomla.content.info_block.block
этот слой лежит в /layouts/joomla/content/info_block/block.php
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
и как этот слой переопределить в шаблоне?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
и как этот слой переопределить в шаблоне?
а зачем его переопределять в шаблоне?
скопировать файл /layouts/joomla/content/info_block/block.php по этому же адресу и назвать например blockmy.php
и переподключить:
Код: php
<?php if ($useDefList) : ?>
<?php echo JLayoutHelper::render('joomla.content.info_block.blockmy', array('item' => $this->item, 'params' => $params, 'position' => 'above')); ?>
<?php endif; ?>
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Ок. А как теперь этот blockmy.php прописать в templateDetails.xml, чтобы при установке шаблона он попадал куда следует?

И еще вопрос. Как (где почитать об этом хотя бы, на русском желательно) при установке шаблона поменять общие параметры вывода материалов?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не удается разблокировать в менеджере материалов.

Автор vityavoluevich

Ответов: 4
Просмотров: 2172
Последний ответ 24.05.2025, 09:20:18
от azm1n
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1944
Последний ответ 06.04.2025, 09:27:20
от wishlight
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1486
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Поменять порядок материалов

Автор tatyana34

Ответов: 3
Просмотров: 1005
Последний ответ 11.12.2024, 16:10:41
от nikolakovach8619
Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 845
Последний ответ 22.11.2024, 07:14:15
от stepan39