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

vladsklyar

  • Захожу иногда
  • 86
  • 1 / 0
Модуль материалы по ID
« : 08.09.2020, 15:38:31 »
Добрый день, подскажите!
Есть модуль вывода метериала по ID, в котором ввожу ID материалов через запятую для, вывода в статье нужных мне материалов проблема в том что нужно добавить ещё поле для вывода определенного  количества материала на мобильных устройствах для это дописал ещё одно поле ID материалов через запятую для скрытия на моб. версии - тоесть вводяться два поля 1. материалы которые отображаться на пк    2. материалы на моб. -  получилось два массива
 
   $article_ids = explode(',',$params->get('articleid', ''));  (для пк)
   $article_mb = explode(',',$params->get('articleid-mb', '')); (для мобилы)

а дальше фантазия закончилась  (хотел сравнять два массива и если есть одинаковые значения до дописать style="hidden-xs")
только как передать style="hidden-xs" в массив

   foreach ($items as &$item)


      {
         $item->slug    = $item->id . ':' . $item->alias;
         $item->catslug = $item->catid . ':' . $item->category_alias;

         if ($access || in_array($item->access, $authorised))
         {
            // We know that user has the privilege to view the article
            $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
         }
         else
         {
            $item->link = JRoute::_('index.php?option=com_users&view=login');
         }
      }

      return $items;
   }
}

] https://prnt.sc/udmq62]
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Модуль материалы по ID
« Ответ #1 : 08.09.2020, 15:45:25 »
Зачем скрыть одинаковые материалы и один из них показывать, объединяйте массивы с помощью array_merge и удаляйте повторения с помощью array_unique
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

vladsklyar

  • Захожу иногда
  • 86
  • 1 / 0
Re: Модуль материалы по ID
« Ответ #2 : 08.09.2020, 15:51:20 »
Да не, мне нужно к ним (где Id одинаковый ) дописать класс hidden-xs
*

vladsklyar

  • Захожу иногда
  • 86
  • 1 / 0
Re: Модуль материалы по ID
« Ответ #3 : 08.09.2020, 15:56:56 »
тоесть как добавить класс class="<?php echo $item->hidden; ?>" в шаблон вывода материалов   


   <div class="row work-block" itemscope itemtype="http://schema.org/Blog" class="articleid<?php echo $moduleclass_sfx; ?>">

<?php foreach ($list as $item) :  ?>

         <a href="<?php echo $item->link; ?>" itemprop="url" class="<?php echo $item->hidden; ?>">    
   <?php if(isset(json_decode($item->images)->image_intro) && !empty(json_decode($item->images)->image_intro)) :?>
    <img src="<?php echo(json_decode($item->images)->image_intro); ?>"
    alt="<?php echo(json_decode($item->images)->image_intro_alt); ?>"
    />
    <?php else : continue; endif;    ?>
<h3 itemprop="name"><?php echo $item->title; ?>      </h3>
      
            
   
      </a>

<?php endforeach; ?>
</div>
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Модуль материалы по ID
« Ответ #4 : 08.09.2020, 18:35:16 »
Да не, мне нужно к ним (где Id одинаковый ) дописать класс hidden-xs
:o
то Вы это решили !! .... то что чел никогда не увидит этих материалов - но Я все равно загружу ему - Да так - на всякий случай что бы жизнь была веселей !! ))  ;D Ну Да !
Код: php
# Получили данные веб клиента на основании его Юзер аганта
            $client = new \Joomla\Application\Web\WebClient();

            #Операционная система ....... Если нужна ВАМ
            $platform = $client->__get('platform');

            #Мобильный или нет
            $mobile = $client->__get('mobile');

            # Ставим лимит на кол. статей ( 3 - для мобильных или 9 для остальных )
            $limit = ($mobile?3:9);

            # Далее как вы и писали
            # значек амерсанда(&) сразу убираем так как вы не воздействуете на массив  $items
            # а просто его крутите !! :)
            /**
             * @var $items array
             */
            foreach ($items as $a => $item){
                # ($limit - 1) - так как в array первый индекс === 0
                if( $a > ( $limit - 1 ) ) break ;
                $item->slug    = $item->id . ':' . $item->alias;
                // ....... .... .... Ваш код
            }
Там трабла может быть с последними iPad - так как  у них подписан User Agent  как макинтош ... )))
А так это будет работать !!!!!!
« Последнее редактирование: 08.09.2020, 18:41:19 от gartes »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор zvi

Ответов: 9
Просмотров: 3775
Последний ответ 21.02.2024, 11:03:08
от saynez
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 708
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Joomla 3 создает материалы с нулевым id

Автор asmol

Ответов: 0
Просмотров: 274
Последний ответ 24.09.2023, 14:22:21
от asmol
Модуль Похожие метки – только более ранние статьи!

Автор Gerostrat

Ответов: 6
Просмотров: 441
Последний ответ 24.08.2023, 21:56:09
от sivers
Модуль для опросов Advanced Poll не работает

Автор Escander

Ответов: 15
Просмотров: 1408
Последний ответ 02.06.2023, 20:10:22
от kzalmatuy1