Новости Joomla

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

gm35

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Accordion VirtueMart PHP
« : 19.03.2020, 14:40:16 »
Привет всем! Подскажите кто знает делаю Accordion menu для VirtueMart на основе их же mod_virtuemart_category  + uikit  так вот  вот я сделал код
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$categoryModel->addImages($categories);
?>

<ul uk-accordion>
<?php foreach ($categories as $category) {
$active_menu = 'class="VmClose"';
$caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$category->virtuemart_category_id);
$cattext = $category->category_name;
if (in_array( $category->virtuemart_category_id, $parentCategories)) {
$active_menu = 'class="active uk-open"';
} ?>
<li <?php echo $active_menu ?>>
<a class="ukitedis <?php

if (!empty($category->childs)) { 
echo 'uk-accordion-title';
} ?>" >
<a>
<?php echo $category->images[0]->displayMediaThumb('class="imagemenupm"',false);?>
              <?php echo JHTML::link($caturl, $cattext);
?>
</a>
</a>
<div class="uk-accordion-content">
<?php if (!empty($category->childs)) { ?>

<?php
foreach ($category->childs as $child) {
$active_menu = 'class="VmClose"';
$caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$child->virtuemart_category_id);
$cattext = vmText::_($child->category_name);
if (in_array($child->virtuemart_category_id, $parentCategories)) {
$active_menu = 'class="VmOpen"';
} ?>

<div <?php echo $active_menu ?>>
<div <?php echo $active_menu ?>><?php echo JHTML::link($caturl, $cattext); ?></div>
</div>

<?php
} ?>
</div>
<?php } ?>
</li>
<?php
} ?>
</ul>
Поставил условие
Код
<?php 

if (!empty($category->childs)) { 
echo 'uk-accordion-title';
} ?>
То есть получается если в категории есть вложения childs то применяется class="uk-accordion-title" он нам дает + для того чтобы можно было раскрывать меню. Прописал я так по тому что хотел чтобы + стоял не у всех как в стандартном исполнении
Код
<a class="uk-accordion-title" ></a>
а только у тех кто имеет под категорию childs. Все вроде нормально работает категории в вложением идут по порядку друг а если стоит появится в данном списке категории без вложения то после категории без вложения, категория с вложением не открывается на + а открывается та категория которая без вложения. Как быть может кто подскажет? !
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Re: Accordion VirtueMart PHP
« Ответ #1 : 19.03.2020, 15:39:27 »
Код
<a class="ukitedis <?php

if (!empty($category->childs)) {
echo 'uk-accordion-title';
} ?>" >
<a>
<?php echo $category->images[0]->displayMediaThumb('class="imagemenupm"',false);?>
              <?php echo JHTML::link($caturl, $cattext);
?>
</a>
</a>

А зачем у вас тут вложение ссылки сделано? уберите внутреннюю, чтоб было:
Код
<a class="ukitedis <?php

if (!empty($category->childs)) {
echo 'uk-accordion-title';
} ?>" >
<?php echo $category->images[0]->displayMediaThumb('class="imagemenupm"',false);?>
              <?php echo JHTML::link($caturl, $cattext);
?>
</a>

И уберите под условие вот это <div class="uk-accordion-content">, а то у вас незакрытый тег получается, когда дочек нет, от того скорее всего и подглючивает.

Чтоб в целом получилось так:
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$categoryModel->addImages($categories);
?>

<ul uk-accordion>
<?php foreach ($categories as $category) {
$active_menu = 'class="VmClose"';
$caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$category->virtuemart_category_id);
$cattext = $category->category_name;
if (in_array( $category->virtuemart_category_id, $parentCategories)) {
$active_menu = 'class="active uk-open"';
} ?>
<li <?php echo $active_menu ?>>
<a class="ukitedis <?php

if (!empty($category->childs)) {
echo 'uk-accordion-title';
} ?>" >
<?php echo $category->images[0]->displayMediaThumb('class="imagemenupm"',false);?>
              <?php echo JHTML::link($caturl, $cattext);
?>
</a>
<?php if (!empty($category->childs)) { ?>
<div class="uk-accordion-content">
<?php
foreach ($category->childs as $child) {
$active_menu = 'class="VmClose"';
$caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$child->virtuemart_category_id);
$cattext = vmText::_($child->category_name);
if (in_array($child->virtuemart_category_id, $parentCategories)) {
$active_menu = 'class="VmOpen"';
} ?>

<div <?php echo $active_menu ?>>
<div <?php echo $active_menu ?>><?php echo JHTML::link($caturl, $cattext); ?></div>
</div>

<?php
} ?>
</div>
<?php } ?>
</li>
<?php
} ?>
</ul>
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка 1054 Unknown column 'created_by' in 'field list' VirtueMart

Автор Evgen Kulibin

Ответов: 3
Просмотров: 794
Последний ответ 26.02.2023, 01:56:42
от lakshmi
Как вывести в категории VirtueMart кастомное поле с редактором?

Автор dc_web

Ответов: 4
Просмотров: 378
Последний ответ 05.10.2022, 11:07:00
от sivers
Проблема с выводом изображения в VirtueMart 3

Автор vetkrs

Ответов: 0
Просмотров: 262
Последний ответ 30.09.2022, 17:22:43
от vetkrs
Общая форма регистрации и авторизации для VirtueMart 3

Автор Evgen Kulibin

Ответов: 0
Просмотров: 460
Последний ответ 30.11.2021, 14:18:37
от Evgen Kulibin
Товары в VirtueMart не переносятся на мобильных устройствах

Автор VBedya

Ответов: 4
Просмотров: 484
Последний ответ 13.10.2021, 17:29:50
от ShopES