Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

art22

  • Захожу иногда
  • 332
  • 2 / 0
Здравствуйте друзья. Очень нужно реализовать Title при загрузки картинки  в JoomShopping , установил даже последнюю версию там такой же косяк, нет этой важной функции картинки берут название АЛТ и дублируют. Для продвижения сайта это огромный минус.

Можно конечно взять код и добавить в ручную Title и разбавить с  словом но так неправильно. ПРИКРЕПЛЯЮ КОД МОЖЕТ КОМУ ТО ПРИГОДИТЬСЯ

C:\OSPanel\domains\par.ru\templates\1\html\com_jshopping\product\product_default.php

<class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?>>
                    <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title=" "РАЗБАВЛЯЮ  СЛОВОМ"<?php print htmlspecialchars($image->_title)?>" />
                    <div class="text_zoom">
                        <i class="icon-zoom-in"></i>
                    </div>
                </a>




Как сделать так? может есть какой то плагин?

*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
может есть какой то плагин?
Есть. Давно уже писал его для JoomShopping 4+ (есть версия для JoomShopping 5+). Если нужно, можно доработать плагин. Можно для уникальности еще что-нибудь добавить, например - название категории.

Плагин добавляет АЛТ для списка товаров и для страницы товара.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Плагин добавляет АЛТ для списка товаров и для страницы товара.
Данный плагин добавляет лишь одно слово ко всем Title это не есть хорошо, в моем примере тоже самое просто в ручную. У меня на готове тексты уникальные, нужно для каждой картинки уникальные титле и алт по этому важно добавить поле рядом с алт
*

Akeksandr

  • Захожу иногда
  • 396
  • 12 / 0
Есть. Давно уже писал его для JoomShopping 4+ (есть версия для JoomShopping 5+). Если нужно, можно доработать плагин. Можно для уникальности еще что-нибудь добавить, например - название категории.
Плагин добавляет АЛТ для списка товаров и для страницы товара.
Подскажите пожалуйста что за плагин. Он необходим, или это как рекомендация?
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Подскажите пожалуйста что за плагин. Он необходим, или это как рекомендация?
он разбавляет АЛТ слово чтобы титле и алт не были одинаковы, но это так себе решение
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
нашел файл который отвечает за вывод поле

C:\OSPanel\domains\1.ru\administrator\components\com_jshopping\views\product_edit\tmpl\images.php


продублировал поле             <input type="text" name="product_image_descr2_<?php print $i;?>" size="35" title="<?php print _JSHOP_TITLE2?>" />

Код
        <fieldset class="adminform">
        <legend><?php echo _JSHOP_UPLOAD_IMAGE?></legend>
        <div style="height:4px;"></div>
        <?php for($i=0; $i < $jshopConfig->product_image_upload_count; $i++){?>
            <div style="padding-bottom:6px;">
            <input type="text" name="product_image_descr_<?php print $i;?>" size="35" title="<?php print _JSHOP_TITLE?>" />
            <input type="text" name="product_image_descr2_<?php print $i;?>" size="35" title="<?php print _JSHOP_TITLE2?>" />
            <input type="file" class="product_image" name="product_image_<?php print $i;?>" />
            <input type="text" class="product_folder_image" name="product_folder_image_<?php print $i;?>" style="display:none;" />
            <input type="button" name="select_image_<?php print $i;?>" value="<?php echo _JSHOP_IMAGE_SELECT;?>" onclick="SqueezeBox_init(); product_images_request(<?php echo $i;?>, 'index.php?option=com_jshopping&controller=product_images&task=display');" class="product_folder_image"/>
            <br/><input type="checkbox" value="1" name="image_from_folder_<?php print $i;?>" id="image_from_folder_<?php print $i;?>" onclick="changeProductField(this);"/><label for="image_from_folder_<?php print $i;?>"><?php print _JSHOP_IMAGE_SELECT?></label>
            </div>
        <?php } ?>       
        </fieldset>

за вывод названия вроде отвечает

C:\OSPanel\domains\1.ru\administrator\components\com_jshopping\models\products.php

Код
               if (!$error){
                    $this->addToProductImage($product_id, $name_image, $post["product_image_descr_".$i]);
                    $dispatcher->trigger('onAfterSaveProductImage', array($product_id, $name_image));
                }
            }else{
                if ($upload->getError()!= 4){
                    JError::raiseWarning("", _JSHOP_ERROR_UPLOADING_IMAGE);
                    saveToLog("error.log", "SaveProduct - Error upload image. code: ".$upload->getError());
                }
            }
                       
            unset($upload);   
        }       
       
for($i=0; $i<$jshopConfig->product_image_upload_count; $i++){
if ($post['product_folder_image_'.$i] != '') {
if (file_exists($jshopConfig->image_product_path .'/'.$post['product_folder_image_'.$i])) {
$name_image = $post['product_folder_image_'.$i];
$name_thumb = 'thumb_'.$name_image;
$name_full = 'full_'.$name_image;
$this->addToProductImage($product_id, $name_image, $post["product_image_descr_".$i]);
$dispatcher->trigger('onAfterSaveProductFolerImage', array($product_id, $name_full, $name_image, $name_thumb));
}
}
}



как правильно прописать product_image_descr2_ чтобы выводило в картинке?


а данные код отвечает за вывод на страницу как видим в коде прописаны одинаковые значения  <?php print htmlspecialchars($image->_title)
C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\product\product_default.php,


Код
<div class="jshop_img_thumb">
<img  src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
</div>


*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
он разбавляет АЛТ слово чтобы титле и алт не были одинаковы, но это так себе решение
Любое решение, можно сделать специально под Вас. А вот лезть с правками в ядро не советую. После каждого обновления придется делать правки заново!

И кстати, тайтл для картинки не так важен (он и так заполнен), главное чтобы был заполнен альт!
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
как правильно прописать product_image_descr2_ чтобы выводило в картинке?
Правками в шаблоне тут не обойдешься... Нужно писать два плагина (для админки и сайта), ну или аддон (на два плагина)
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Любое решение, можно сделать специально под Вас. А вот лезть с правками в ядро не советую. После каждого обновления придется делать правки заново!
это не трудно, всего лишь минуту потрачу, мне нужен еще тайтл чтобы выводит на показ. по этому хочу сделать, если разбираетесь в этому был бы благодарен)

Нужно писать два плагина (для админки и сайта), ну или аддон (на два плагина)
видел похожие плагины которые прописывали сразу в админку и  в сайт при добавлении пару строк кода. Да и в VM3 когда работал с ним таким образом добавлял новые поля  в категории
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
это не трудно, всего лишь минуту потрачу, мне нужен еще тайтл чтобы выводит на показ.
Да, не трудно, но крайне вредно (почему же написал выше).
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Да, не трудно, но крайне вредно
это ничего страшного, если знаете как сделать скажите пожалуйста
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
это ничего страшного
Это только Вам кажется...
если знаете как сделать скажите пожалуйста
Как ядре это делать даже если знаю не скажу. Дополнительным расширением могу сделать (за деньги).

Если Вы все тайтлы и альты будете вручную прописывать, то... Как сделать (опишу процесс):

1. Нужен плагин для админки (группы - jshoppingadmin), который добавит в карточке товара (режим ее редактирования) дополнительное поле для Title изображения и при сохранении товара будет сохранять в базу данных текст, который введен в доп.поле - Title. Да, еще в базе данных в таблице #__jshopping_products_images нужен столбец где будет сохраняться информация, например - `title`
2. Нужен плагин для сайта (группы - jshoppingproducts), который будет уже выводить в товаре Title из базы данных текст из столбца - `title`. Сейчас там один столбец - `name`, который используется для ALT

Как Вы пишите, можно конечно сделать одним плагином, например группы - jshopping или system, но это неправильно, так как этот плагин будет загружен на всем сайте, а Вам нужно только в двух местах: В списках товаров и В карточке товара.

И лучше все сделать аддоном (комплектом из двух плагинов), так как нужно еще создавать дополнительный столбец в таблице базы данных.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
таблицу я уже сделал добавил название title, + добавил поля нужно лишь правильно редактировать \components\com_jshopping\models\products.php и вписать





вот как добавить дополнительное поле может кому то нужно будет

Код
инструкция по добавлению поля с редактором (подробного описания description1):

1)    Добавление формы редактирования в админке:

administrator\components\com_jshopping\views\product_edit\tmpl\description.php (17,62)
(добавляем строки после аналогичных для существующего поля)

$description1 = "description1_".$lang->language;

и

<tr>
  <td  class="key">Дополнительное поле:</td>
  <td>
    <?php
       $editor1 = &JFactory::getEditor();
       print $editor1->display('description1'.$lang->id,
        $row->$description1 , '100%', '350', '75', '20');
    ?>
  </td>
</tr>

После вставки в админке на странице редактирования товара должно появиться поле, но вводимые в него данные сохраняться не будут, т.к. необходимо добавить еще поля в БД и контроллер, который будет согласовывать их согласовывать.

2)    Добавление контроллера для формы в админке:

administrator\components\com_jshopping\models\products.php (213)

$post['description1_'.$lang->language] = $input->get('description1'.$lang->id, '', 'RAW');

3)    Добавление полей в базу данных

Заходим с помощью phpMyAdmin в таблицу _jshopping_products базы данных, выбираем вкладку «Структура».
В зависимости от количества языков на сайте добавляем одно или несколько полей с нужным нам названием.

description1_ru-RU

После данных манипуляций наше поле в админке должно успешно сохраняться.
Теперь необходимо вывести его, например, в шаблон карточки товара.

4)    Получение значения поля

Открываем файл \components\com_jshopping\tables\product.php, находим функцию getDescription() и добавляем строки:

$description1 = $lang->get('description1');
и
$this->description1 = $this->$description1;
5)    Вывод поля в шаблон

В шаблон карточки товара \components\com_jshopping\templates\default\product\product_default.php в необходимом месте прописываем:

<?php print $this->product->description1; ?>
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
А вы это все для себя пилите или для клиента?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
вот как добавить дополнительное поле может кому то нужно будет
Для того чтобы добавить дополнительное поле с редактором в карточке товара есть бесплатные аддоны от разработчика (без правок в ядре компонента):
1. Second short Description for a Product
2. Second Description For Product (есть модифицированная версия для трех описаний товара)

И еще - Second short Description for a Category
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

victorantoniak

  • Moderator
  • 1578
  • 185 / 2
  • JoomShopping Team
В JoomShopping 5.1.3 - можно задать title, alt и переименовать картинку.

Configuration / Other config
Product image SEO : Y
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
В JoomShopping 5.1.3 - можно задать title, alt и переименовать картинку.
у меня 4,8 версия там нет такого и не могу обновить так как данная версия 4 Joomla поддерживает  https://www.joomshopping.com/components/com_forum/uploads/product_seo.patch вот скинули какой то патч но не получился ничего
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Видео с Youtube вместо картинки на карточке товара

Автор ksena

Ответов: 35
Просмотров: 8689
Последний ответ 08.10.2024, 04:26:36
от kit2m2
Добавить кнопку 'В корзину'

Автор Indexxx

Ответов: 16
Просмотров: 2990
Последний ответ 13.09.2023, 10:42:25
от kit2m2
Как добавить код в <head> в отдельные товары JoomShopping?

Автор Hugo

Ответов: 3
Просмотров: 2933
Последний ответ 01.03.2023, 12:07:42
от Hugo
Как вывести цену в Title (Joomshopping)?

Автор 8merka

Ответов: 12
Просмотров: 1483
Последний ответ 06.02.2023, 10:44:44
от marksetter
Как добавить кнопки сортировки в модуль Sj Extra Slider for JoomShopping?

Автор Ravil

Ответов: 3
Просмотров: 1262
Последний ответ 14.06.2022, 16:37:53
от kit2m2