Новости Joomla

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

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Прочитала тему Как вставить модуль в контент  компонента. Нужен было выводить модуль после 3, 6, 9, 12 и так далее материала. Вот какой код у меня получился.
<?php $leadingcount = 1; ?>
<?php
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModules('position-2');
$attribs['style'] = 'none';
?>
......
      <?php
         if($leadingcount%3 == 0){
            foreach($modules as $moduleitem){
               echo JModuleHelper::renderModule($moduleitem, $attribs);
            }
         }
      ?>
      <?php $leadingcount++; ?>
   <?php endforeach; ?>
</div>
<?php endif; ?>
Создала переопределение файла /components/com_content/views/category/tmpl/blog.php и в параметрах категории указала альтернативный макет. Модуль опубликован. Но ничего не отображается( Помогите, пожалуйста!
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Позиция уникальная, нет в шаблоне, модуль опубликован для всех страниц, тестовый текст выводит в переопределенном макете ?
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Позиция уникальная, нет в шаблоне, модуль опубликован для всех страниц, тестовый текст выводит в переопределенном макете ?
Позиция пользовательская не из шаблона, модуль опубликован для всех страниц, тестовый текст не пробовала. Сейчас сделаю и отпишусь
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
<?php
         if($leadingcount%3 == 0){
            echo "Привет мир!";
         }
      ?>
не выводит
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Без if тоже не выводит
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Потому что вы модули получили в переменную $module, а перебираете в цикле переменную $modules

Но оптимальне так что бы каждый раз не делать перебор!
$modules = JModuleHelper::getModules('position-2');
$moduleContent = '';
foreach($modules as $module){
$moduleContent .=  JModuleHelper::renderModule($module, array('style'=>'none'));
}

.....

if(!($leadingcount % 3)){
echo $moduleContent;
}
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Потому что вы модули получили в переменную $module, а перебираете в цикле переменную $modules

Но оптимальне так что бы каждый раз не делать перебор!
$modules = JModuleHelper::getModules('position-2');
$moduleContent = '';
foreach($modules as $module){
$moduleContent .=  JModuleHelper::renderModule($module, array('style'=>'none'));
}

.....

if(!($leadingcount % 3)){
echo $moduleContent;
}
Не выводит
Прикрепила скрины с настройками
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Вы перебираете массив $leadingcount, но обычно все материалы выводятся через только введения http://tinyurl.com/ycottk32
Может у вас аналогичные настройки либо в "всю ширину" (это и есть $leadingcount) меньше трех вот условие и не отрабатывает.
Я бы рекомендовал там поставить 0, указывать количество в введениях и работать с массивом $this->intro_items
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
сделайте сразу после цикла foreach($modules as $module)  echo $moduleContent; будет ли какой то вывод? если будет то ошибка в цикле вывода
« Последнее редактирование: 24.01.2018, 19:06:05 от Aleks.Denezh »
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Вы перебираете массив $leadingcount, но обычно все материалы выводятся через только введения http://tinyurl.com/ycottk32
Может у вас аналогичные настройки либо в "всю ширину" (это и есть $leadingcount) меньше трех вот условие и не отрабатывает.
Я бы рекомендовал там поставить 0, указывать количество в введениях и работать с массивом $this->intro_items
Действительно, у меня у самой только введения выводятся. Попытаюсь привязаться к intro_items.
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Всё получилось! Проблема была в том, что альтернативный макет, созданный мной не цеплялся. Joomla подхватывает только файл /html/com_content/category/blog.php из шаблона, а любые другие, что я там создаю - не подхватывает, хотя и отражаются в списке альтернативных макетов категории. Внесла изменения в файл /html/com_content/category/blog.php в шаблоне и всё заработало. Всем спасибо!
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Теперь другая проблема) При переходе на 2 страницу блога, модули начинают выводиться с первого, а нужно, чтоб продолжали с 3.

$countofmodules=0;//количество модулей
$modulenumber=0;  //порядковый номер модуля
jimport( 'joomla.application.module.helper' );
$modules = JModuleHelper::getModules('position-2');
foreach($modules as $moduleitem) $countofmodules++;
$countforblock=1;//номер строки в блоге
// Article columns
foreach ($intro as $i => $item) {
    $columns[$i % $count][] = $item;
}
.....

<?php foreach ($columns as $column) : ?>
    <div><?php foreach ($column as $item)
{
echo $article($item);
echo $countofmodules;
echo $modulenumber;
if($countforblock%3 == 0 && $modulenumber < $countofmodules)
{        echo JModuleHelper::renderModule($modules[$modulenumber], $attribs);
           $modulenumber++;
         }
$countforblock++; 
 }
?>
  </div>
 
    <?php endforeach ?>
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Тогда придется дополнительно плясать от пагинации, от переменной $this->pagination->pagesCurrent, если не 1 то добавлять какое-то условие для изменения позиции модуля
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
что бы отображались не с первого нужно:
if(!($countforblock%3) && $countforblock)
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Все работает, как надо. На первой странице вывод начинается с 1 модуля, всего выводится 2 модуля, на второй странице вывод начинается с 3 модуля.
Только на 2 странице к url добавляется /?start=6. Не могу понять, что это. Это может быть номер статьи? Потому, что у меня количество статей, отображающихся, как вводные равно 6. Код, который получился:

jimport( 'joomla.application.module.helper' );
jimport( 'joomla.html.pagination' );
$modules = JModuleHelper::getModules('position-2');
$countofmodules=count($modules);//количество модулей
$countforblock=1;//номер строки в блоге
$pagenumber =  $this->pagination->pagesCurrent;//текущая страница
$introcount=count($this->intro_items);//количество вводных статей на странице
$itemsbeforblock=3; //количество статей между вставными блоками;
$newp=floor($introcount/$itemsbeforblock);
$modulenumber=($pagenumber-1)*$newp;  //порядковый номер модуля из position-2, с которого начнется вывод на странице

...

<?php foreach ($columns as $column) : ?>
    <div>
     <?php foreach ($column as $item)
      { echo $article($item);
         if($countforblock%$itemsbeforblock==0 && $modulenumber < $countofmodules)
         {
            echo JModuleHelper::renderModule($modules[$modulenumber], $attribs);
            $modulenumber++;
         }       
        $countforblock++; 
       }
     ?>
  </div>
 
<?php endforeach ?>
« Последнее редактирование: 25.01.2018, 22:32:27 от sasha_klimenchuk »
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Цитировать
Только на 2 странице к url добавляется /?start=6.
Это нормально, работа пагинации, чтобы можно было передать прямую ссылку кому-нибудь и попасть именно на эту страницу, обычный GET параметр
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Это нормально, работа пагинации, чтобы можно было передать прямую ссылку кому-нибудь и попасть именно на эту страницу, обычный GET параметр
а можно сделать так, чтоб выводился номер страницы?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Скорей всего нет, номер страницы же генерируется автоматически исходя из кол-ва материалов, потому может меняться. А параметр start скажет скрипту пагинации с какого места начинать вывод.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

sasha_klimenchuk

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Скорей всего нет, номер страницы же генерируется автоматически исходя из кол-ва материалов, потому может меняться. А параметр start скажет скрипту пагинации с какого места начинать вывод.
Понятно) Спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 3877
Последний ответ 21.02.2024, 11:03:08
от saynez
Блог | Тайтл, description подкатегории

Автор darkghost

Ответов: 0
Просмотров: 202
Последний ответ 02.02.2024, 22:25:53
от darkghost
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 726
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Криво выводится футер

Автор Zegeberg

Ответов: 1
Просмотров: 365
Последний ответ 07.11.2023, 15:56:52
от Zegeberg
Поиск в Материал- Блог категории

Автор mag_num83

Ответов: 1
Просмотров: 325
Последний ответ 14.09.2023, 20:36:34
от beliyadm