Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Внезапно вылезла ошибка нужна срочная помощь  ! !
В панели администратора в Joomla
Код
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/table.php on line 409  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/table.php on line 409

в MySQL.php
Код
	public static function splitSql($sql)
{
$start = 0;
$open = false;
$char = '';
$end = strlen($sql);
$queries = array();

for ($i = 0; $i < $end; $i++)
{
$current = substr($sql, $i, 1);
if (($current == '"' || $current == '\''))
{
$n = 2;

while (substr($sql, $i - $n + 1, 1) == '\\' && $n < $i)
{
$n++;
}

if ($n % 2 == 0)
{
if ($open)
{
if ($current == $char)
{
$open = false;
$char = '';
}
}
else
{
$open = true;
$char = $current;
}
}
}

if (($current == ';' && !$open) || $i == $end - 1)
{
$queries[] = substr($sql, $start, ($i - $start + 1));
$start = $i + 1;
}
}

return $queries;
}

строка 383
Код
$n++;
в table.php
Код
	public function reset()
{
// Get the default values for the class from the table.
foreach ($this->getFields() as $k => $v)
{
// If the property is not the primary key or private, reset it.
if ($k != $this->_tbl_key && (strpos($k, '_')!== 0))
{
$this->$k = $v->Default;
}
}
}
строка 409
Код
foreach ($this->getFields() as $k => $v)

в заказах в VirtueMart
Код
vmError: exeSortSearchListQuery Can't create/write to file '/tmpfs/#sql_ede_0.MYI' (Errcode: 13) 
SQL=SELECT SQL_CALC_FOUND_ROWS o.*, CONCAT_WS(' ',u.first_name,u.middle_name,u.last_name)
AS order_name , u.kontak_lic_no_rigistr, u.ww, u.dop_phone_no_rigistr, u.kontakn_pfone_no_rigistr,
u.name_no_rigistr, u.virtuemart_user_id, u.dataj, u.time20140310, u.last_name_2, u.ofis_ispolnitel,
u.email as order_email,pm.payment_name AS payment_method
FROM calcbook_virtuemart_orders as o LEFT JOIN calcbook_virtuemart_order_userinfos as u ON
u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type="BT" LEFT JOIN calcbook_virtuemart_paymentmethods_ru_ru as pm
ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id WHERE ( o.virtuemart_vendor_id = "1" ) ORDER BY ofis_ispolnitel ASC LIMIT 0, 200

в поле заказа где логин и пароль
Код
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/table.php on line 409

код там такой
Код
  <?php echo JFactory::getUser($order->virtuemart_user_id)->username;?> <br>
             <?php echo JFactory::getUser($order->virtuemart_user_id)->name;?><br>
             <?php echo $order->name_no_rigistr; ?><br>
              <?php echo $order->kontakn_pfone_no_rigistr; ?><br>
              <?php echo $order->dop_phone_no_rigistr; ?> <br>
              <?php echo $order->kontak_lic_no_rigistr; ?><br><hr>
              <?php echo $this->kontak_lic_no_rigistr;?>

при в ходе в сам заказ в верху страницы
Код
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383 
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/table.php on line 409  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/table.php on line 409  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/database/mysql.php on line 383  
Warning: Invalid argument supplied for foreach() in /libraries/joomla/database/table.php on line 409  
Warning: Invalid argument supplied for foreach() in /administrator/components/com_virtuemart/views/orders/view.html.php on line 106
в view.html.php
Код
			$_itemStatusUpdateFields = array();
$_itemAttributesUpdateFields = array();
foreach($order['items'] as $_item) {
$_itemStatusUpdateFields[$_item->virtuemart_order_item_id] = JHTML::_('select.genericlist', $orderStates, "item_id[".$_item->virtuemart_order_item_id."][order_status]", 'class="selectItemStatusCode"', 'order_status_code', 'order_status_name', $_item->order_status, 'order_item_status'.$_item->virtuemart_order_item_id,true);

}
строка 106
Код
foreach($order['items'] as $_item) {
при этом заказ отображается и внизу такая ошибка

Код
Warning: Invalid argument supplied for foreach() in /administrator/components/com_virtuemart/views/orders/tmpl/order.php on line 419 

419 строка у меня
Код
	<?php foreach ($this->orderdetails['items'] as $item) { ?>

с кодом не чего не делали с базой тоже ошибки начали вылезть сами по себе у нашего менеджера
доступа ftp у него нет доступ только в админку в заказы
заказы он оформляет через сайт

Помогите разобраться с данной ошибкой

« Последнее редактирование: 30.04.2014, 15:05:00 от Stasweb »
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Теперь стал вообще выдавать
Цитировать
Database connection error (2): Could not connect to MySQL.
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Вопрос остается не решен подскажите хотя бы где копать и что это за ошибка такая
Код
vmError: exeSortSearchListQuery Can't create/write to file '/tmpfs/#sql_67b1_0.MYI' (Errcode: 13) 
SQL=SELECT SQL_CALC_FOUND_ROWS o.*, CONCAT_WS(' ',u.first_name,u.middle_name,u.last_name)
AS order_name , u.kontak_lic_no_rigistr, u.ww, u.dop_phone_no_rigistr, u.kontakn_pfone_no_rigistr,
 u.name_no_rigistr, u.virtuemart_user_id, u.dataj, u.time20140310, u.last_name_2, u.ofis_ispolnitel,
 u.email as order_email,pm.payment_name AS payment_method FROM calcbook_virtuemart_orders as o LEFT JOIN
 calcbook_virtuemart_order_userinfos as u ON u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type="BT"
LEFT JOIN calcbook_virtuemart_paymentmethods_ru_ru as pm ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id
WHERE ( o.virtuemart_vendor_id = "1" ) ORDER BY ofis_ispolnitel DESC LIMIT 0, 50

и из за чего она возникла так как код и базу данных не трогали  
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
доступ к папке /tmpfs/ есть? Проверьте права. Антивирус может заблокировать доступ к папке.
https://dev.mysql.com/doc/refman/5.0/en/cannot-create.html
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
доступ к папке /tmpfs/ есть? Проверьте права. Антивирус может заблокировать доступ к папке.
https://dev.mysql.com/doc/refman/5.0/en/cannot-create.html

есть папка tmp а вот папки tmpfs нет
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
там по ссылке что я вам дал все написано, проверьте в настроечном файле MySQL my.ini, на какую папку ссылается опция tmpdir и доступ к ней. Еще там пишут что антивирус может блокировать эту папку.
интернет-блог: http://websiteprog.ru
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка mError: Could not find product with id 385, entries exists for language?

Автор sergspb

Ответов: 0
Просмотров: 3138
Последний ответ 11.03.2022, 14:00:28
от sergspb
Ошибка при экспорте категорий

Автор tmpnikl

Ответов: 3
Просмотров: 1203
Последний ответ 06.05.2021, 13:36:08
от tmpnikl
Ошибка "vmError: Имя пользователя занято" при попытке сохранить настройки магазина

Автор Cueball

Ответов: 7
Просмотров: 6457
Последний ответ 16.05.2020, 17:05:15
от d0ublezer0
Ошибка - plg_recaptcha_error_incorrect_captcha_sol

Автор tromba

Ответов: 3
Просмотров: 1889
Последний ответ 23.07.2019, 18:15:32
от gartes
При сохранении настроек магазина ошибка 1118 Row size too large

Автор artem_wrong

Ответов: 7
Просмотров: 1913
Последний ответ 15.04.2019, 07:31:31
от draff