Новости Joomla

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+). При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php     // Это файл в /layouts/components/com_component/your_layout.php?><input type="hidden" name="task" value=""><input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"><input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"><?php echo HTMLHelper::_('form.token'); ?>
Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

Zaicev

  • Захожу иногда
  • 120
  • 2 / 0
Кратко опишу инструкцию.
Идем по адресу /administrator/components/com_k2/models/ и открываем item.php
После строк (362 строка)
                $msg = JText::_('Item saved');
                $link = 'index.php?option=com_k2&view=item';
                break;
            case 'save':

Вставляем :
// alphauserpoints - add item
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);
AlphaUserPointsHelper::newpoints( 'plgaup_k2','', 'reference_key');

}
//end alphauserpoints - add item

И загружаем прикрепленное правило в AlphaUserPoints и назначаем количество балов. 
http://depositfiles.com/files/srj5dsydy
Все работает, сам проверял, балы даются только при первом сохранении, при редактирования ничего не насчитывает :).
Удачи!
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
а что это вообще такое! расскажи!
Смотрю....
*

migus

  • Давно я тут
  • 992
  • 144 / 0
  • OPEN THE BOX
Все работает, сам проверял, балы даются только при первом сохранении, при редактирования ничего не насчитывает :).
Удачи!
У вас могут возникнуть коллизии при использовании такого кода:
Код: php-brief
// alphauserpoints - add item
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);
AlphaUserPointsHelper::newpoints( 'plgaup_k2','', 'reference_key');

}
//end alphauserpoints - add item
в строчке: AlphaUserPointsHelper::newpoints( 'plgaup_k2','', 'reference_key') вместо 'reference_key' лучше использовать переменную ID материала, заранее определив ее. Что-то вроде:
Код: php-brief
AlphaUserPointsHelper::newpoints( 'plgaup_k2','', $item->id)

- удачи ;)
"The Lord Of A SandBox"
*

Zaicev

  • Захожу иногда
  • 120
  • 2 / 0
migus спасибо!
*

Alex_P

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
лучше использовать переменную ID материала, заранее определив ее.
можете для совсем нубов написать, как определить эту переменную(какой тип данных должен быть)? :)
« Последнее редактирование: 25.02.2011, 13:24:56 от Alex_P »
*

migus

  • Давно я тут
  • 992
  • 144 / 0
  • OPEN THE BOX
можете для совсем нубов написать, как определить эту переменную(какой тип данных должен быть)? :)
Если честно, не знаю, что объяснять... Сам К2 не пользуюсь, но у всякого материала должен быть уникальный id, который в этом случае позволяет указать в AUP, что эту статью юзер уже оплатил баллами, чтобы при ее повторном просмотре баллы не списывались.
В самой Joomla! это - контент, определяется как article->id... Может быть вам поможет Документация для разработчиков AUP

- удачи ;)
"The Lord Of A SandBox"
*

pikaper

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
всем привет а вот интересно как можно сделать чтобы эти баллы получать была возможность только два раз в месяц? ну то есть материалов он добавил 5 в месяц а баллы на числились только 2 раза. Никто не сталкивался?
*

Zaicev

  • Захожу иногда
  • 120
  • 2 / 0
всем привет а вот интересно как можно сделать чтобы эти баллы получать была возможность только два раз в месяц? ну то есть материалов он добавил 5 в месяц а баллы на числились только 2 раза. Никто не сталкивался?

Уменьши число балов за публикацию статьи :)
А то отобьешь охоту у блогеров..
*

Dagiz

  • Захожу иногда
  • 78
  • 1 / 0
У меня K2 v2.4.1 и

$msg = JText::_('Item saved');
                $link = 'index.php?option=com_k2&view=item';
                break;
            case 'save':

находится на строке 638
« Последнее редактирование: 24.04.2011, 23:19:19 от Dagiz »
*

Dagiz

  • Захожу иногда
  • 78
  • 1 / 0
Все проверил, действительно вот так все работает  

// alphauserpoints - add item
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);
AlphaUserPointsHelper::newpoints( 'plgaup_k2','', $item->id);
 
}
//end alphauserpoints - add item

Но есть недочет, очки капают при каждом редактировании/сохранении материлов :D

посмотрел в документации 'reference_key'  Предотвращение присвоения баллов более одного раза за одно и то
же действие - значит за 2-рую статью баллы не дадут
« Последнее редактирование: 24.04.2011, 21:19:32 от Dagiz »
*

migus

  • Давно я тут
  • 992
  • 144 / 0
  • OPEN THE BOX
Вы неправильно поняли. Если reference-key указан корректно и будет записан в таблицу, то к элементам с этой записью правило применяться не будет. У каждой статьи свой уникальный id, который для этого вполне подходит, т.к. к статье по которой начисление уже производилось, правило не сработает, а новая статья будет иметь новый id и - правило будет применено.
Судя по вашим словам
очки капают при каждом редактировании/сохранении материалов
и коду, у вас не определен $item->id и вам надо искать другое определение для id статьи в вашем коде.
"The Lord Of A SandBox"
*

Dagiz

  • Захожу иногда
  • 78
  • 1 / 0
вот так вот выглядит ссылка на материал:
http://localhost/b/index.php?option=com_k2&view=item&id=45:название статьи

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