Новости 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 Гость просматривают эту тему.
  • 19 Ответов
  • 3262 Просмотров
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Всем привет!
Поставил ChronoForms, настроил простенькую форму и получил такую ошибку:
Код
Warning: nl2br() expects parameter 1 to be string, array given in /administrator/components/com_chronoforms7/chronoforms/helpers/parser2.php on line 665
А после текста, что все замечательно
Цитировать
Thanks for being awesome! We have received your message and would like to thank you for writing to us. We will reply by email as soon as possible.
, идёт еще сообщение об ошибке:
Код
Warning: strlen() expects parameter 1 to be string, array given in administrator/components/com_chronoforms7/chronoforms/functions/validation/validation_output.php on line 90
Версия РНР на хостинге 7.4.14 (если это важно)
Кто-нибудь сталкивался?
« Последнее редактирование: 08.08.2021, 19:20:39 от AlexP750 »
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
просто предупреждение
скорее всего из за версии PHP
попробуйте понизьте
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Странно.
Письма-то тоже нет. Видимо, что-то еще не включил. Саму форму создал и настроил, там всего три поля: имя, почта и текст сообщения, а вот писем нет. Хотя, в Settings-ах стоят действующие адреса.
И да, попробую понизить ))))
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Поставил ChronoForms, настроил простенькую форму и получил такую ошибку:
А почитать какую версию PHP поддерживает расширение ?
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Понижал РНР до 7.3 - изменений не было.
А почитать какую версию PHP поддерживает расширение ?
Даже в голову не пришло, честно. Загрузил ChronoForms через JED, а учитывая, что на РНР 7.2 уже начинает ругаться и сама Joomla, и, насколько я помню, Akeeba, то я никак не ожидал, что ChronoForms потребует другой версии.
К слову, я понижал, но так и не добился успеха.
Если же надо повышать, то на хостинге есть восьмая версия, но тогда что-то отваливается... JComments, если не ошибаюсь.
Да, я попытался найти инфу о требуемых характеристиках, но пока так и не нашел
UP: Пробовал поднять до 8.0, но перестают работать комментарии, да и сама страница с формой не загружается.
« Последнее редактирование: 08.08.2021, 20:31:33 от AlexP750 »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Да, я попытался найти инфу о требуемых характеристиках, но пока так и не нашел
И народ на JED тоже ругается на отсутствие документации. Если даете ошибку, давайте и код. не у всех же есть ChronoForms, да еще и разные версии .
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Содержимое файла parser2.php, на который ссылается ошибка:
Код
foreach($value as $val){
$output .= '<li><a href="'.r3('index.php?ext=chronoforms&cont=logs&act=file&fname='.$val.'&form_id='.$this->data('form_id')).'">'.$val.'</a></li>';
}
$output .= '</ul>';
}else{
$output = '<a href="'.r3('index.php?ext=chronoforms&cont=logs&act=file&fname='.$value.'&form_id='.$this->data('form_id')).'">'.$value.'</a>';
}

}else if($unit['type'] == 'field_textarea'){
$output = nl2br($value);

}else if(!empty($unit['options'])){
$options = $this->options($unit['options']);
Строка 665, о которой говорится в ошибке:
Код
			$output = nl2br($value);
Если честно, то я не знаю, какую часть кода выделить. Я выбрал ту часть, которую можно свернуть/развернуть в Notepad++, что как мне кажется, сигнализирует о том, что это какие-то общии куски кода.
И да, письма, таки дошли, сорри. То есть, сообщения отправляются, только с этими неприглядными ошибками:

То, что внизу ошибка - это вторая часть формы, которая, как я решил, должна выводиться после успешной отправки.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Проверьте какой тип данных
Код
else if($unit['type'] == 'field_textarea'){
var_dump($value);
$output = nl2br($value);

}
А можно сразу попробовать
Код
else if($unit['type'] == 'field_textarea'){
$output = nl2br($value[0]);

}
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Большое спасибо!
А можно сразу попробовать
Это сработало!
Осталась вторая ошибка, но с ней я либо попробую сделать по аналогии, либо уберу вторую часть формы.
UP: не решился действовать самостоятельно, ибо ни бельмеса в коде.
Строка 90, на которую ссылается ошибка:
Цитировать
Warning: strlen() expects parameter 1 to be string, array given in /administrator/components/com_chronoforms7/chronoforms/functions/validation/validation_output.php on line 90
начинается с оператора if:
Код
	foreach($field['datapath'] as $keysData => $dataname){
if(!empty($vsettings['optional']) AND strlen(\G3\L\Arr::getVal($data, $dataname)) == 0){
continue;
}

Есть еще вопрос по поводу содержания сообщения, которое показывается пользователю после отправки. Я нашел сам файл, где лежит это
Цитировать
Thanks for being awesome! И весь остальной текст
, заменил его на нужный мне текст, но изменений не заметил. Можете подсказать, как поправить, или лучше новую тему создать?
« Последнее редактирование: 09.08.2021, 10:29:33 от AlexP750 »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Осталась вторая ошибка, но с ней я либо попробую сделать по аналогии,
Судя по ошибке- получают массив вместо строки, должно сработать.
Можете подсказать, как поправить, или лучше новую тему создать?
Лучше новую.
А тип файла -языковый или в коде ?
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Судя по ошибке- получают массив вместо строки, должно сработать.
Я обновил предыдущую тему, но и сюда скопирую
не решился действовать самостоятельно, ибо ни бельмеса в коде.
Строка 90, на которую ссылается ошибка:
Цитировать
Warning: strlen() expects parameter 1 to be string, array given in /administrator/components/com_chronoforms7/chronoforms/functions/validation/validation_output.php on line 90
начинается с оператора if:
Код
	foreach($field['datapath'] as $keysData => $dataname){
if(!empty($vsettings['optional']) AND strlen(\G3\L\Arr::getVal($data, $dataname)) == 0){
continue;
}
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Код
	foreach($field['datapath'] as $keysData => $dataname){
if(!empty($vsettings['optional']) AND strlen(\G3\L\Arr::getVal($data, $dataname)[0]) == 0){
continue;
}
Код
	foreach($field['datapath'] as $keysData => $dataname){
if(!empty($vsettings['optional']) AND (!is_array(\G3\L\Arr::getVal($data, $dataname)) && strlen(\G3\L\Arr::getVal($data, $dataname)) == 0) ){
continue;
}
Но лучше смотреть что в методе getVal
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
К сожалению, этот вариант приводит к двум новым ошибкам, в других строчках.
Что касается getVal, то вот, что удалось найти в файле:
Цитировать
if(!empty($ruledata['name']) AND !empty($ruledata['phpdef'])){
                     $value = \G3\L\Arr::getVal($data, $dataname);
                     $condition = eval($ruledata['phpdef']);
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Пересобрал форму, ошибка ушла.  yes!
Но осталась еще одна важная особенность - оказывается, письма приходили пустыми. Т.е. содержимое текстового поля пустое. Видимо, я что-то упустил. Посмотрю внимательней.
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
смотрите так же в настройках формы
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
Сорри, я не совсем корректно выразился.
Или совсем некорректно.
В письме, которое приходит при успешной отправке есть поля с данными, которые заполнил пользователь: имя и емейл без вопросов, а "Ваше сообщение" содержит всего один символ. Если текст набирался в латинице, то первая буква первого слова и все. Если на русском языке, то тоже один символ, но, на сей раз, это белый вопросительный знак на фоне чёрного ромба. То есть, тут еще и с кодировкой разбираться надо (
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Похоже трабл при валидации поля сообщения  .
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
а может все же отказаться от такого геморроя ради простой формы?
используйте фришную balboa forms
там все просто и вам за глаза хватит
*

AlexP750

  • Захожу иногда
  • 189
  • 1 / 0
а может все же отказаться от такого геморроя ради простой формы?
используйте фришную balboa forms
Да я бы и не против. Я почему-то был уверен, что тут уже все должно работать, как часики... Всё-таки, уже аж седьмая версия. Конструктор, все по взрослому Сам удивился, что код подкручивать пришлось, чтобы заработало из коробки )))) Мне пока простая форма нужна. Да и в дальнейшем, думаю, не сильно сложнее будет. Максимум, с полем телефон, да и то, вряд-ли. Просто об этой давно слышал, вот и вся причина выбора

UP: Поставил ту, о которой говорили - вообще, за пол-часа разобрался! )))) Дольше искал информацию, как добавить форму в материал - искал что-то, вроде: {forms}{/forms}, а оказалось, там кнопка в TinyMCE есть

UP2: Оказалось, что после установки Chronoforms перестали работать Sliders, Tabs и Sourcerer от Regularlabs. Поотключал все от Chronoforms - заработали
« Последнее редактирование: 09.08.2021, 21:32:57 от AlexP750 »
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
ну вот и все решилось

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка syntax error, unexpected 'Fn' (T_FN), expecting identifier ((t_string))

Автор sergspb

Ответов: 3
Просмотров: 3709
Последний ответ 03.04.2023, 16:28:29
от ArieZ
Ошибка - You didn't select the correct image

Автор cirip

Ответов: 0
Просмотров: 3514
Последний ответ 18.04.2018, 22:42:27
от cirip
Ошибка в chronoform.php ?

Автор warlocksp

Ответов: 1
Просмотров: 1739
Последний ответ 28.08.2017, 19:16:03
от warlocksp
Ошибка 500 и 502 в компоненте

Автор meatrich

Ответов: 0
Просмотров: 2389
Последний ответ 01.05.2016, 23:04:35
от meatrich
Установил ChronoForms ошибка при отправлении

Автор ramil

Ответов: 0
Просмотров: 1350
Последний ответ 30.04.2016, 09:34:54
от ramil