Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #расширения

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Многие при написании своих шаблонов сталкиваются с тем, как задать ширину модулей в зависимости от количества опубликованных позиций. Самые частые здесь примеры, не показывать правую или левую колонки исходя из заданных условий. При этом модули должны растягиваться. Предлагаю ниже приведенную функцию, которая возвращает количество опубликованных модулей. В зависимости от от полученного результата можно с легкостью управлять размерами модулей. Количество передаваемых аргументов не определено.
Код: php-brief
<?php 
function colpoz() {
$arg = func_get_args();
$numarg = func_num_args();
$col = 0;
for ($i = 0; $i < $numarg; $i++) {
if(JFactory::getDocument()->countModules($arg[$i])) $col++;
}
return $col;
}
?>
Пример 1. Задание класса
Код: html4strict
<?php $myclass = 'test'.colpoz('left', 'right', 'center'); ?>
<div class="<?php echo $myclass;?>"><jdoc:include type="modules" name="left" /></div>
Пример 2. Задание ширины модуля
Код: html4strict
<?php $modwidth = round (100 / colpoz('left', 'right', 'center', 'left1', 'right1', 'center1')).'%'; ?>
<div id='left' style='width:<?php echo $modwidth;?>'><jdoc:include type="modules" name="right1" /></div>
'left', 'right', 'center', 'left1', 'right1', 'center1' - позиции модулей
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Ох уж эти заказчики. В общем надоело позиции постоянно прописывать. Подкорректировал немножко функцию сверху и вот, что получилось ^-^
Код: php
<?php function colpoz() {
$col = 0; $htmlcode = '';
$numarg = func_num_args(); $arg = func_get_args();
for ($i = 0; $i < $numarg; $i++) {
$argname = $arg[$i];
if(JFactory::getDocument()->countModules($argname)){
$htmlcode .= '<div id="'.$argname.'" zamena><jdoc:include type="modules" name="'.$argname.'" /></div>';
$col++;
}
}
if ( $col == 0) return;
$style = 'style="width: '. round (100 / $col).'%; float: left;"';
echo preg_replace('/zamena/', $style, $htmlcode);
} ?>
Теперь, чтоб вывести позиции в шаблоне достаточно написать:
Код: php
<?php colpoz('top1', 'top2', 'top3'); ?>
<?php colpoz('top4', 'top5', 'top6', 'top7', 'top8'); ?>
При этом блоки выведутся если в них опубликованы модули и трансформируются(растянутся) по ширине
Здесь я не вывожу заголовки модулей. modChrome_none можно и переписать под свой вкус код в modules.php или добавить вывод стиля в colpoz()
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Функция прописывается непосредственно в шаблоне?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Да, можно и в другом месте. Где угодно. Здесь показан принцип и подход. И может лучше использовать вместо preg_replace sprintf
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Прикрепил. Фёдору респекты.
*

GTitan

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
А как на Бутстрап 3 такое реализовать, количество таблиц прописывать нигде не нужно, "span3" "span9" и т.д?
*

ShfVD

  • Давно я тут
  • 871
  • 65 / 0
А как на Бутстрап 3 такое реализовать, количество таблиц прописывать нигде не нужно, "span3" "span9" и т.д?
А где вы в Bootstrap 3 видели "span3" "span9"?
*

GTitan

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
А где вы в Bootstrap 3 видели "span3" "span9"?
Вы иронизируете, не знаете сами, или увидели мою ошибку?
*

ShfVD

  • Давно я тут
  • 871
  • 65 / 0
Увидел ошибку - сетка Bootstrap3 в корне отличается от Bootstrap2 (где были "span3" "span9")
http://bootstrap-ru.com/300/css/#grid
Для Bootstrap, мне кажется это не катит, т.к. ширина высчитывется
Код: php
$style = 'style="width: '. round (100 / $col).'%; float: left;"';
и в Bootstrap придется еще делать вычисления, подставляя  % - класс
« Последнее редактирование: 08.02.2015, 18:27:49 от ShfVD »
*

GTitan

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Благодарю Вас, за указание на мою ошибку. Рекомендация полезная)
*

nixx

  • Новичок
  • 2
  • 0 / 0
Чтобы не плодить темы, решил спросить здесь.

Joomla 2.5.
На некоторых страницах отключено левое меню.
Нужно на этих страницах подвинуть содержимое влево (занять тот объем, который занимало левое меню)
в CSS добавлен блок выполняющий все что нужно по сдвигу, в шаблон добавил конструкцию, которая  по условию (IF) применит нужный стиль из блока CSS. А вот само условие "IF" сформулировать не получается, и информацию нигде не могу найти.

проблема в том, что в шаблоне нет разметки <TD> и условие можно привязать только к статусу модуля "левое меню", т.е, - если оно отключено, то занять левую область (сдвинуть контент влево) иначе применяется стандартный стиль (выравнивание по границе этого левого меню)

Вопрос в том как в конструкции "IF ..." проверить статус левого меню (включено оно на текущей странице или отключено). Подскажите, пожалуйста, конструкцию, при помощи которой это можно сделать.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
if(JFactory::getDocument()->countModules('Имя позиции модуля')):
echo 'В позиции есть модули';
else
echo 'В позиции нет модулей';
endif;

Инфо о загуженных модулях

Код: php
$reflectionMethod = new ReflectionMethod(JModuleHelper, _load);
$reflectionMethod->setAccessible(true); //открываем защищенный метод
$module = $reflectionMethod->invoke(null);
printf("<pre>%s</pre>", print_r($module, true)); //немного изврата с выводом :-)
*

nixx

  • Новичок
  • 2
  • 0 / 0
Fedor Vlasenko, благодарю за внимание к проблеме.

При выполнении блока "Инфо о загуженных модулях" среди списка нет нужного объекта (ну и подобных объектов тоже)

наверное я не совсем корректно написал что именно нужно.
Когда писал вопрос, имел ввиду меню, которое в панели управления Joomla управляется в менеджере меню
В этом менеджере меню "левые меню" для некоторых страниц, чтобы не загружались, были сняты с публикации.

Вопрос в том, как определить этот объект "левое меню" чтобы на основании его состояния "опубликован-не опубликован", "загружен-не загружен" (присутствует или отсутствует на странице) принять решение, т.е:

Код
if  ОБЪЕКТ "Левое меню" включен_загружен

применяем стандартный стиль "равнение по ширине левого меню"
else
применяем стиль "равнение по ширине 0"
endif;

вопрос в том, как определить  включен ли объект "Левое меню" (есть ли он на загруженной странице), чтобы правильно сформулировать условие:
 "if  ОБЪЕКТ "Левое меню" включен_загружен"
« Последнее редактирование: 22.04.2015, 16:44:39 от nixx »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Код: php-brief
      <?php if($this->countModules('left and right') == 0) $contentwidth = "_full";
      if($this->countModules('left or right') == 1) $contentwidth = "_middle";
      if($this->countModules('left and right') == 1) $contentwidth = "_small";
      if(strlen(trim(strip_tags($doc->getBuffer('component')))) > 0) { ?>

        <div class="section">

          <?php if($this->countModules('left')) { ?>
            <div class="pos_left">
              <jdoc:include type="modules" name="left" style="html5" />
            </div>
          <?php } ?>

          <div class="pos_<?php echo $contentwidth; ?>">
            <div class="content">
              <?php if($this->countModules('breadcrumb')) { ?>
                <jdoc:include type="modules" name="breadcrumb" style="html5" />
              <?php } ?>
              <jdoc:include type="messages" />
              <jdoc:include type="component" />
            </div>

          </div>

          <?php if($this->countModules('right')) { ?>
            <div class="pos_right">
              <jdoc:include type="modules" name="right" style="html5" />
            </div>
          <?php } ?>

          <div class="clr"></div>

        </div>
      <?php } ?>

Код: css
.pos_left,.pos_right {width:25%;}
.pos_full {width:100%;}
.pos_middle {width:75%;}
.pos_small {width:50%;}
« Последнее редактирование: 22.04.2015, 17:37:56 от AlekVolsk »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
3 года спустя пишем функцию
Код: php-brief
function showModules()
{
    $html = '';
    $count = 0;
    $doc = JFactory::getDocument();
    foreach (func_get_args() as $value) {
        if ($doc->countModules($value)) {
            $html .= '<div %1$s><jdoc:include type="modules" name="' . $value . '" /></div>' . PHP_EOL;
            ++$count;
        }
    }
    if ($count) {
        $style = 'style="width: ' . round(100 / $count). '%; float: left;"';
        printf($html, $style);
    }
}
выводим модули
Код: php-brief
showModules('position-0', 'position-1', 'position-2', 'position-3',
    'position-4', 'position-5', 'position-6', 'position-7', 'position-8', 'position-9');
*

Progressive

  • Новичок
  • 2
  • 0 / 0
Ох уж эти заказчики. В общем надоело позиции постоянно прописывать. Подкорректировал немножко функцию сверху и вот, что получилось ^-^
Код: php
<?php function colpoz() {
$col = 0; $htmlcode = '';
$numarg = func_num_args(); $arg = func_get_args();
for ($i = 0; $i < $numarg; $i++) {
$argname = $arg[$i];
if(JFactory::getDocument()->countModules($argname)){
$htmlcode .= '<div id="'.$argname.'" zamena><jdoc:include type="modules" name="'.$argname.'" /></div>';
$col++;
}
}
if ( $col == 0) return;
$style = 'style="width: '. round (100 / $col).'%; float: left;"';
echo preg_replace('/zamena/', $style, $htmlcode);
} ?>
Теперь, чтоб вывести позиции в шаблоне достаточно написать:
Код: php
<?php colpoz('top1', 'top2', 'top3'); ?>
<?php colpoz('top4', 'top5', 'top6', 'top7', 'top8'); ?>
При этом блоки выведутся если в них опубликованы модули и трансформируются(растянутся) по ширине
Здесь я не вывожу заголовки модулей. modChrome_none можно и переписать под свой вкус код в modules.php или добавить вывод стиля в colpoz()

Здравствуйте !
Прошу Вас , если не трудно, подскажите дилетанту , как в данном коде вывести заголовки ?
Спасибо .
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Код
$htmlcode .= '<div id="'.$argname.'" zamena><jdoc:include type="modules" style="xhtml" name="'.$argname.'" /></div>';
как в данном коде вывести заголовки ?
Добавить стиль style="xhtml"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Шаблон с прокруткой [Решение]

Автор Usman48

Ответов: 4
Просмотров: 2450
Последний ответ 27.04.2017, 22:15:57
от darkghost
Ширина сайта в шаблоне YOO Cloud от студии YOO Theme

Автор urry

Ответов: 1
Просмотров: 1789
Последний ответ 27.06.2016, 21:18:51
от AlekVolsk
Выравнивание модулей внутри позиции.

Автор user

Ответов: 8
Просмотров: 12027
Последний ответ 28.04.2016, 10:26:01
от ambrazura
[Решено] Вывод модулей с позиции left в шаблоне vt_farm

Автор TV_Master

Ответов: 7
Просмотров: 2502
Последний ответ 06.02.2016, 19:39:40
от Омск
no 1 shopping просмотр позиций модюлей

Автор ramzes_g18

Ответов: 9
Просмотров: 1888
Последний ответ 19.01.2016, 16:07:06
от SeBun