Warning: Declaration of NameControllerForms::getModel($name = 'form', $prefix = '...') should be compatible with Joomla\CMS\MVC\Controller\BaseController::getModel($name = '', $prefix = '', $config = Array) in /administrator/components/NAME/controllers/forms.php on line 8


Категории: CMS Joomla 3.X, Joomla

Полный текст ошибки Joomla:

Warning: session_start(): Failed to read session data: user (path: /var/www/SITE.ru/tmp) in /var/www/SITE.ru/www/libraries/joomla/session/handler/native.php on line 260
Error: Failed to start application: Failed to start the session


Категории: CMS Joomla 3.X, Joomla

Столкнулся с проблемой, при сохранении элемента, его время не совпадало с текущим на 3 часа. При этом с датой создания все было в порядке.

Т.е. при создании новости, например, в 10:00 часов, она сохранялась с верной датой и временем, но если ее тот же сохранить еще раз, то в дате изменения уже отображалось как 13:00


Категории: Joomla
Пометки: Joomla слетает время при сохранении.

Нужно было получить значения полей формы(XML схеме). Например, models/forms/item.xml

Итак, getFieldset модели возвращает объект /libraries/src/Form/FormField.php у которого пачка защищенных методов. А значения нужно получать через магической метод __get, которое в свою очередь вызывает одноименный метод. Т.е. например, $field->title вызывает getTitle().

 
    protected function _getFields()
    {
      $oInput = JFactory::getApplication()->input;
      $data  = $oInput->post->get('jform', array(), 'array');
      $form = $this->getForm($data, false);
      foreach($form->getFieldset('details') as $field)
      {
        echo $field->type. '<br />';
        //echo $field->label. '<br />';
        echo $field->fieldname. '<br />';
        echo $field->title. '<br />';
        echo  '<hr />';
      }


Категории: CMS Joomla 3.X, Joomla

Пример обрезания всего лишнего в метатегах. Удаление всего кроме такса (html тегов и плейсхолдеров).


Пометки: meta_title, meta_keywords, meta_description

Проблема в том, что если попробовать выдать языковую константу через JText::_ из другого компонента или модуля, то Joomla локализацию не находит.

Для вызова нужно сначала подключить его языковой файл.


Категории: CMS Joomla 3.X, Joomla

Довольна давно столкнулся с проблемой, что ссылки сделанные через JRoute::_ не на страницах самого компонента теряли ЧПУ, т.е. вместо /blog/29 выводятся как /component/blog/29


Решение: нужно добавлять ссылкам Itemid=, равен он должен быть ID пункта меню.

Т.е.: JRoute::_('index.php?option=com_blog&view=item&Itemid=108&id='.$oRow->id);


Категории: PHP, CMS Joomla 3.X, Joomla
Пометки: ЧПУ, cpu, ссылки, links

На сайте под управлением Joomla 3, столкнулся с проблемой - при переходе на несуществующую страницу, вместо кода 404 и соответствующей страницы, выдавалось содержимое главная с кодом 200.


Категории: CMS Joomla 3.X, Joomla

Самый простой вариант, работать с ajax в Joomla, это обратиться к контроллеру компонента.

Пример такого запроса /index.php?option=com_test&task=ajax.method&tmpl=component (Подробнее про &tmpl=component).

При этом сделать это можно как из другого компонента, так и модуля:

 
let response = await fetch("/index.php?option=com_test&task=ajax.method&tmpl=component&id=123");

if (response.ok) {
  let json = await response.json();
} else {
  alert("Ошибка HTTP: " + response.status);
}


Категории: CMS Joomla 3.X, Joomla
Пометки: модель Ajax, Контроллер Ajax запроса в Joomla 3

Пример того, как а Joomla 3 проверить, что пользователь авторизован и к каким группам он относиться.


Пометки: auth, авторизация, права пользователя
Яндекс.Метрика