Новости Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

👩‍💻 Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla.v.6.1.0 Что нового?Модуль корзины. Отображение корзины в виде offcanvas-элемента.Кнопка выхода в панели управления пользователя. Что тут сказать, просто добавили. Отправка писем только для заказов, оплаченных определёнными способами. Это удобно для рассылки сообщений, привязанных к региону или провайдеру (например, инструкции по банковскому переводу только для заказов, оплаченных банковским переводом).Листинг выплат по партнерской системе. В разделе управления партнёрскими программами появилось новое подменю «Выплаты», в котором перечислены выплаты партнёрам (упрощённое отслеживание и сверка). Добавлены настройки, благодаря которым можно определить категории товаров, на которые начисляется партнёрская комиссия с продаж.Список комплектов товаров. Система комплектов позволяет отслеживать остатки товаров, продаваемых в комплекте.Подробнее в блоге Hikashop.Поскольку мы не сообщали ранее о Hikashop 6.0, то вкратце скажем, что он вышел в июне 2025г. В новой версии было:- 13 исправлений ошибок- 17 улучшений. В частности:- - Hikashop теперь проверяет UserAgent пользователя перед добавлением товара в корзину, чтобы отсечь ботов. Ведь компонент хранит корзины в базе данных.- - улучшен роутинг компонента, позволяющий использовать в названии товара даже слеши.- - улучшения фильтра товаров - ускорение загрузки категорий/брендов/характеристик.- 4 новых функции:- - добавлена поддержка Joomla 6.0.- - Улучшена возможность адаптации форм HikaShop на фронтенде к шаблонам, не использующим стандартные классы Joomla.- - Плагин внутреннего баланса: возможность исключить уцененные товары из начисленных баллов.- - Теперь можно выбирать склады для вариантов товаров.Подробнее в Changelog Hikashop.Также при работе с Hikashop стоит учитывать, что один и тот же код поддерживает версии Joomla от 3.х до 5.х, а в таблице сравнения версий заявлена и Joomla 2.5. Беглый просмотр кода показал, что компонент как был, так и остался старым и для совместимости с Joomla 4+ просто добавлен плагин.@joomlafeed#joomla #расширения #hikashop

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста...

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста...

На сколько актуально делать сайт в 2025 году? Битва с нейросетями и выбор CMSНовый выпуск подкаста "Просто о Digital"Гость:🎙 Владимир Сергеенко ( https://t.me/aixman ) • Интернет-маркетолог с 14-летним опытом• Соавтор книги «Нетворкинг»• Спикер конференции Ассоциации директоров по развитиюВедущий:💻 Игорь Филипенко ( https://t.me/igorleee )• Программист и предприниматель с 16-летним опытом в digital• Основатель подкаста "Просто о Digital"• Специалист по автоматизации бизнес-процессовВ этом выпуске вы узнаете:🔥 Актуальность сайтов в эпоху нейросетей• Актуален ли сайт сейчас и будет ли актуален в будущем?• Зачем нужен сайт? Есть ли иные инструменты привлечения клиентов?🤖 Нейросети vs Поисковики vs Сайты• Почему нейросети не заменят сайты в B2B-сегменте• Как Google и Яндекс меняют алгоритмы из-за AI-конкуренции📊 Сайт как центр вселенной вашего трафика• Почему без сайта вы сливаете 40% маркетингового бюджета впустую?🛡 Безопасность и Joomla 6.0• Как отфильтровать 99% ботов и сэкономить на трафике• Почему Joomla теперь обходит WordPress в безопасности и скорости⚖️ Выбор платформы: битва CMS• WordPress: 50% рынка но 80% уязвимостей• Joomla: профессиональная CMS для сложных проектов• Drupal: почему его похоронили в 2023 году• Tilda: когда конструктор выгоднее CMSПриятного просмотра/прослушивания!RSS: https://cloud.mave.digital/61930Mave: https://igorfilipenko.mave.digitalЯндекс Музыка: https://music.yandex.ru/album/35840190Telegram Mave: https://t.me/mavestreambot/app?startapp=igorfilipenkoApple Podcasts: https://podcasts.apple.com/us/podcast/просто-о-digital-и-бизнесе/id1801903450ВКонтакте: https://vk.com/podcasts-12488584Youtube: https://www.youtube.com/playlist?list=PLfR6jTpnkohDDco32xZ-KyMyWi_S5Xdy2=========================Видео-формат подкаста:Rutube: https://rutube.ru/video/b5762754f9d3e0dc382f32f3034be0a2/Youtube: https://youtu.be/nu1XF2jNbxY#подкаст #podcast

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Имею логин, пароль и email. Как программно создать/добавить пользователя, в группе Registered, сразу разблокированным, установив ему получение системный писем и не требовать сброс пароля при первом входе? Это нужно для синхронизации пользователей с 1С (в 1С добавляют нового, потом выгружают его на сайт), при импорте данных из XML.
*

varX

  • Живу я здесь
  • 2465
  • 141 / 5
  • разработка компонентов
Создаете объект
$user = new JUser;

Создаете массив данных
$data = array();
$data['email'] ='email';
$data['password'] ='password';
и т.д.

Дальше, если очень упрощенно:
$user->bind($data);
$user->save();
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Спс, попробую. Другие поля - аналогично, это понятно, а с группой доступа как?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Не пробовал но возможно:
Код: php
JUserHelper::addUserToGroup('userid', 2);

Сработало вроде:
Код: php
$user = new JUser('id');
$user->sendEmail = 1;
$user->requireReset = 1;
$user->save();
JUserHelper::addUserToGroup('id', 2);
« Последнее редактирование: 13.11.2014, 01:59:09 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

varX

  • Живу я здесь
  • 2465
  • 141 / 5
  • разработка компонентов
Спс, попробую. Другие поля - аналогично, это понятно, а с группой доступа как?
Аналогично. По памяти, не глядя (мож изменилось уже что-то)
$data['groups'] =array($group);
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Аналогично. По памяти, не глядя (мож изменилось уже что-то)
$data['groups'] =array($group);
$data['groups'] =array(2); - пойдет?
*

varX

  • Живу я здесь
  • 2465
  • 141 / 5
  • разработка компонентов
$data['groups'] =array(2); - пойдет?
Попробуйте, должно.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Сработало вроде:
Код: php
$user = new JUser('id');
$user->sendEmail = 1;
$user->requireReset = 1;
$user->save();
JUserHelper::addUserToGroup('id', 2);
Спс, попробую.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
requireReset возможно наоборот в 0 надо установить..
интернет-блог: http://websiteprog.ru
*

varX

  • Живу я здесь
  • 2465
  • 141 / 5
  • разработка компонентов
Не пробовал но возможно:
Код: php
JUserHelper::addUserToGroup('userid', 2);

Сработало вроде:
Код: php
$user = new JUser('id');
$user->sendEmail = 1;
$user->requireReset = 1;
$user->save();
JUserHelper::addUserToGroup('id', 2);
Речь, насколько я понял, идет о создании нового пользователя. У него нет id. Впрочем, если не ошибаюсь, $user->save(); возвращает id созданного пользователя, поэтому можно и так приспособиться.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Ну да, если нового создавать то как-то так:
Код: php
$user = new JUser;
$user->sendEmail = 1;
$user->requireReset = 0;
$user->name = 'Вася';
$user->username = 'vasya';
$user->password = 'password';
$user->email = 'test@test.ru';
$user->save();
JUserHelper::addUserToGroup($user->id, 2);


Можно его еще авторизовать и залогинить для прикола)
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А как быстро (без запроса) проверить, существует ли пользователь с указанным логином, и если да - вернуть его id? Чтобы гарантированно добавлять только несуществующего.
С запросом - не проблема, но хотелось бы по максимуму с использованием имеющихся встроенных средств api J.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Мне кажется что никак, только запрос. Встроенные средства это лишние данные и более медленная обработка, в таких ситуациях гораздо полезнее ими пренебречь
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Пичально, но все же, как? протестирую скорость заодно )
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
А что тут тестировать прямой запрос всегда быстрее будет это же очевидно. Как будто методы api для получения данных не используют запросы. Что может быть быстрее чем:
Код: php
$db = JFactory::getDBO();
$query = "SELECT id FROM #__users WHERE username = ".$db->quote('vasya');
$db->setQuery($query);
if($id = $db->loadResult())
{
//делаем что -то с $id
}
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
ок, спс.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Код: php
$user = new JUser;
$user->sendEmail = 1;
$user->requireReset = 0;
$user->name = 'Vasya';
$user->username = 'vasya';
$user->password = 'password';
$user->email = 'test@test.ru';
$user->save();
JUserHelper::addUserToGroup($user->id, 2);
Это, к сожалению, не прокатило.

Код: php
          $user = new JUser;
          $data = array();
          $data['username'] = $item_login;
          $data['name'] = $item_name;
          $data['password'] = $item_pss;
          $data['email'] = $item_email;
          $data['sendEmail'] = 1;
          $data['requireReset'] = 0;
          $data['params'] = '{"admin_style":"","admin_language":"","language":"","editor":"","helpsite":"","timezone":""}';
          $user->bind($data);
          $user->save();
          JUserHelper::addUserToGroup($user->id, 2);
Это добавило пользователя и послало ему на почту письмо с логином и паролем, вот только пароль в базу не записался...
$item_pss содержит строку из латинских символов и цифр, 11 знаков, без пробелов и прочих знаков препинания.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Пробовал указать $data['password'] = md5($item_pss); - пароль в базу записался, однако авторизация не проходит
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
может надо подтверждение пароля указать? var_dump($user->getErrors()) что выводит?
« Последнее редактирование: 14.11.2014, 11:53:47 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
посмотрел bind() в JUser, там действительно идет проверка:
Код: php
			if (isset($array['password2']) && $array['password'] != $array['password2'])
{
JFactory::getApplication()->enqueueMessage(JText::_('JLIB_USER_ERROR_PASSWORD_NOT_MATCH'), 'error');

return false;
}


ок.
указываю:
Код: php
          $data['password'] = $item_pss;
          $data['password2'] = $item_pss;
а вот фигвам: в базе пустое поле
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Warning: password_hash(): Password must be a string in F:\home\inform.local\www\libraries\compat\password\lib\password.php on line 30

а у меня в data['password'] == object(SimpleXMLElement)#375 (1) {
  • => string(11) "mfo20140206" }

ппц
« Последнее редактирование: 14.11.2014, 12:01:40 от AlekVolsk »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
)) Поэтому наверное и не работал первый вариант. У меня он срабатывал..
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
У меня же импорт из XML идет в цикле ))) так работает:
Код: php
          $data['password'] = (string)$item_pss;
          $data['password2'] = $data['password'];

И ошибку не сразу видел, поскольку контроллер редирект делал обратно на вьюху
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Окончательный рабочий вариант:
          $user = new JUser;
          
$data = array();
          
$data['username'] = (string)$item_login;
          
$data['name'] = (string)$item_name;
          
$data['password'] = (string)$item_pss;
          
$data['password2'] = $data['password'];
          
$data['email'] = (string)$item_email;
          
$data['sendEmail'] = 1;
          
$data['requireReset'] = 0;
          
var_dump($data['password']);
          
$user->bind($data);
          
$user->save();
          
JUserHelper::addUserToGroup($user->id2);
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Окончательный рабочий вариант:
Так лучше:
Код: php
$user = new JUser;
$userData = array( 'name' => (string)$item_name,
'username' => (string)$item_login,
'password' => (string)$item_pss,
'password2' => $data['password'],
'email' => (string)$item_email,
'sendEmail' => 1,
'requireReset' => 0,
'groups' => array( 2 )
);
$user->bind( $userData );
if ( $user->save() ) {
echo 'Пользователь ' . $user->username . ' успешно зарегестрирован!';
}
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
При добавлении более 250 пользователей (импорт данных из XML, в цикле):
Fatal error: Maximum execution time of 30 seconds exceeded in F:\home\inform.local\www\libraries\compat\password\lib\password.php on line 127

Можно этого избежать, делая паузу в выполнении цикла после, скажеи так, каждых 100 интераций цикла, чтобы избежать появления ошибки?
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
set_time_limit(0);
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В цикле или перед ним?
+ перед циклом вставил, работает, спс

+
При регистрации пользователя пишу:
$user = new JUser;
$userData = array( 'name' => (string)$item_name,
   'username' => (string)$item_login,
   'password' => (string)$item_pss,
   'password2' => (string)$item_pss,
   'email' => (string)$item_email,
   'sendEmail' => 0,
   'requireReset' => 0,
   'groups' => array( 2 )
);
$user->bind( $userData );
В настройках менеджера пользователей: Отсылать пароль    Нет
А письмо с паролем при регистрации все равно отсылается, как избежать?
« Последнее редактирование: 20.11.2014, 19:32:12 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Если пользователь не добавился, как отловить ошибку, почему не добавился? А именно: отловить совпадающий email и некорректный логин
Код: php
$user->bind($userData);
if (!$user->save()) {
  // ?
}
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В общем-то вышел из положения, выводя $user->_errors[0], но это системное сообщение, а хотелось бы свое.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Условия вывода блока div, поля пользователя?

Автор warlocksp

Ответов: 28
Просмотров: 902
Последний ответ 10.12.2020, 14:05:36
от gartes
Выбор группы пользователя при регистрации (аутентификации)

Автор Bartleby

Ответов: 10
Просмотров: 2015
Последний ответ 05.06.2013, 14:20:36
от Bartleby