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

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Собственно кто как добавлял свои поля или списки. Например список с выбором:

Во что упаковать все товары?
-Полиэтилен
-Фольга
-Картон

Можете привести пример с сохранением в базе данных для использования в письме и отображения в админке. Наряду с другими стандартными данными.
Не обязательно для страницы "Завершить заказ".
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Разобрался!
очень помогла статья.

Более того, осуществил возможность "упаковывания" в зависимости от пользователя и указание на тип упаковки в письме для администратора.

1. Подготовка базы данных.
В это поле будет записываться тип упаковки.
Идем в таблицу jos_vm_orders и добавляем поле upakovka, тип - TEXT

2. Наводим информацию о пользователе.
Чтобы показывать возможность выбора упаковки для определенного пользователя.
Нам нужен ID конкретного пользователя. Поэтому идем в базу данных в таблицу jos_users. Ищем нашего пользователя. Допустим - Алексей Пупкин. Смотрим его ID - (допустим) 55

3. Подготовим фразы.
Чтобы выводить различные слова на русском языке по стандартам Joomla нужно их добавить особым образом в языковый файл.
Идем в ВАШ_САЙТ/administrator/components/com_virtuemart/languages/common/ и открываем russian.php
Сразу после $langvars = array ( начинаем добавлять фразы по принципу 'CHTO_TO' => 'Что-то',
Конкретно, добавьте это:
Код
'UVAZAEM' => 'Уважаемый',
'UPAKOVKA' => 'выберите упаковку из выпадающего списка',
'POLIETILEN' => 'Полиэтилен',
'FOLGA' => 'Фольга',
'KARTON' => 'Картон',
'TIP_UPAKOVKI' => 'Тип упаковки',

4. Оформляем страницу.
Добавим выпадающий список с выбором упаковки.
Идем в ВАШ_САЙТ/components/com_virtuemart/themes/default/templates/checkout/ и открываем get_final_confirmation.tpl.php
Выше мы условились, что пользователь будет выбирать упаковку на "последней странице", там где кнопка "подтвердить заказ".
Добавим код перед фразой "Пожалуйста, проверьте введенные данные и подтвердите заказ!".
То есть перед вот этим кодом:
Код
echo '<br />';
$varname = 'PHPSHOP_CHECKOUT_MSG_' . CHECK_OUT_GET_FINAL_CONFIRMATION;
echo '<h5>'. $VM_LANG->_($varname). '</h5>';
Добавим:
Код
echo '<br />';
// Приветствуем пользователя фразой "Уважаемый Алексей Пупкин, выберите упаковку из выпадающего списка:"
echo "<strong>".$VM_LANG->_('UVAZAEM')." ".$auth["first_name"].", ".$VM_LANG->_('UPAKOVKA').":</strong>";
echo '<br />';
// Если значение массива соответствует 55...
if ($auth["user_id"] == '55') {
// ..то "сооружаем" форму с выпадающим списком
echo "<form name='upakovkaform'>";
echo "<select name='upakovka'>";
// где значения списка ($VM_LANG->_('POLIETILEN') - фразы добавленные в языковый файл
echo "<option value='".$VM_LANG->_('POLIETILEN')."'>".$VM_LANG->_('POLIETILEN')."</option>";
echo "<option value='".$VM_LANG->_('FOLGA')."'>".$VM_LANG->_('FOLGA')."</option>";
echo "<option value='".$VM_LANG->_('KARTON')."'>".$VM_LANG->_('KARTON')."</option>";
echo "</select></form>";
}
Что такое $auth["user_id"] и $auth["first_name"] ? Просто таким образом мы можем получить текущие значения, если пользователь зашел под своим логином и паролем. Соответственно эти два значения - ID авторизировавшегося пользователя и его же имя. Если вам нужны другие значения то советую заглянуть сюда. Довольно таки интересно. А вот тут более подробно.
Также незабываем, что вы можете применить стили и прочие рюшечки.

5. Запись в базу данных
Чтобы видеть, что заказ должен быть упакован - нужно сделать запись в базу прямо к заказу. Далее мы сможем прочитать ее (или использовать иначе).
В первом пункте мы добавили поле в таблицу jos_vm_orders. Эта таблица содержит список заказов. Поле upakovka и будет содержать тип упаковки. Чтобы произошла запись в это поле - пройдемте сюда:
ВАШ_САЙТ/administrator/components/com_virtuemart/classes/
Нам нужен файл ps_checkout.php
Открываем и ищем строку:
Код
// Collect all fields and values to store them!
Что переводится как: "Соберем все поля и значения для их хранения!"
Добавим после:
Код
'ip_address' => $ip,
Свое созданное ранее поле:
Код
// Добавляем в коллекцию данные по упаковке из get_final_confirmation.tpl.php
'upakovka' => $d["upakovka"]
Замечу, что вот это: $d["upakovka"] позволяет получить значение (option value) при помощи функции add, но это уже другая история
Если вы сейчас сделаете тестовый заказ - вы увидите, что в поле upakovka в базе данных благополучно добавляется тип упаковки.

6. Вывод в админку.
Администратор должен знать - во что заказ должен быть упакован.
Если зайти в админку Joomla, затем в компонент VirtueMart, затем в список заказов и выбрать заказ, то мы сможем увидеть информацию о нем. Нам бы хотелось видеть среди ФИО, адреса и т.п. еще и тип упаковки. Для этого нужно вытащить из базы данных значение и вставить на эту страницу.
Страница формируется тут:
ВАШ_МАГАЗИН/administrator/components/com_virtuemart/html/ в файле order.order_print.php
Можете выбрать где вам отображать эту упаковку. Я вставил ее сразу после "купонов". Нашел код:
Код
if( PSHOP_COUPONS_ENABLE == '1') { ?>
<tr>
<td><strong><?php echo $VM_LANG->_('PHPSHOP_COUPON_COUPON_HEADER')?>:</strong></td>
<td><?php if( $db->f("coupon_code") ) $db->p("coupon_code"); else echo '-'; ?></td>
</tr>
 <?php
} ?>
И ниже вставил еще одну строку (tr), то есть вот этот код:
Код
<!-- Вставляем еще одну строку. Вставляем столбец. -->
<tr><td><strong><!-- Пишем жирным -->
<!-- Фразу - Тип Упаковки - берем из языкового файла (см. пункт 3) -->
<?php echo $VM_LANG->_('TIP_UPAKOVKI')?>:</strong>
</td><td><!-- Закрываем столбец, открываем следующий -->
<?php
// Если существует данное утверждение (то есть, если данные есть в поле upakovka)..
if ($db->f("upakovka")) {
// ..вытаскиваем и выводим данные
$db->p("prodavec");
}
// В противном случае - выводим тире (-)
else {
echo '-';
}
?>
</td></tr><!-- Закрыли столбец, закрыли строку -->

7. Добавляем информацию в письмо
Наряду с другими данными, мы можем получать информацию о типе упаковки прямо в письме с заказом.
За формирование письма отвечает все тот же файл, в который мы уже "ныряли" - ps_checkout.php. Откроем его снова и найдем:
Код
$adm_message .= "\n\n";
В общем ищем часть кода где в столбик перечисляются строки начинающиеся с $adm_message .=
Этой переменной мы формируем "тело" письма. Если посмотреть внимательно - там вы увидите и вставку телефона, и адреса и др. информацию.
Так вот... вот это - "\n" является переводом строки. Две "\n\n" - перевод строки два раза соответственно.
После какого-либо перевода строки добавьте:
(как будет логичнее расположение в письме - решать вам)
Код
$adm_message .= $VM_LANG->_('TIP_UPAKOVKI').": ".$db->f("upakovka");
$adm_message .= "\n\n";
Если Алексей Пупкин выбрал фольгу в качестве упаковки, то это выведет в письме такое предложение:
Тип упаковки: Фольга

Вот и все. Естественно по аналогии можно сделать множество различных вещей и задач.
Если есть вопросы или замечания - милости просим.
« Последнее редактирование: 28.02.2014, 00:51:07 от xaocbozzz »
*

Nikitich

  • Новичок
  • 2
  • 0 / 0
Пробовал сделать точно по описанию, но при нажатии на кнопку подтвердить заказ ничего не происходит...
Без добавления поля в get_final_confirmation.tpl.php процесс покупки проходит нормально, идет добавление в базу.
Сам в PHP не силен, поэтому объяснить причину не могу...
*

Nikitich

  • Новичок
  • 2
  • 0 / 0
Хочу понять алгоритм работы. Необходимо добавить в страницу заказа несколько редактируемых полей <input> с их последующим выводом в базу и письмо администратору.
Буду признателен за помощь.
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Сначала верните все "как было" - удалите лишний код, удалите поля в таблицах и т.п.
Ну а теперь давайте по шагам... Итак вам надо добавить текстовые поля на страницу завершения заказа? Допустим, таких поля - 2 штуки.
Сначала надо выбрать место, где их увидит клиент. Допустим, вы также хотите их поместить перед "Пожалуйста, проверьте введенные данные и подтвердите заказ!"
Тогда перед (get_final_confirmation.tpl.php):
Код
echo '<br />';
$varname = 'PHPSHOP_CHECKOUT_MSG_' . CHECK_OUT_GET_FINAL_CONFIRMATION;
echo '<h5>'. $VM_LANG->_($varname). '</h5>';
Вы вписываете:
Код
echo '<form name="opros">';
echo '<br>Vvedite zhelaemiy cvet: <input type="text" name="color" value="Серо-буро-малиновый">';
echo '<br>Vashe otnoshenie k lisim: <input type="text" name="racism" value="По-барабану">';
echo '</form>';
Теперь сохраните и сделайте пробный заказ. Причем на последней странице с кнопкой "подтвердить" вы увидите эти два поля.
Если все в порядке - отпишитесь, пойдем дальше.
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Внимательно проверяйте код. Одна маленькая забытая точка - и код не будет работать. Я сам в начале ОЧЕНЬ ЧАСТО допускал такие ошибки.
*

SolopoV

  • Давно я тут
  • 576
  • 16 / 0
  • зеленею...
Торопился автор видимо:

Код
<!-- Вставляем еще одну строку. Вставляем столбец. -->
<tr><td><strong><!-- Пишем жирным -->
<!-- Фразу - Тип Упаковки - берем из языкового файла (см. пункт 3) -->
<?php echo $VM_LANG->_('TIP_UPAKOVKI')?>:</strong>
</td><td><!-- Закрываем столбец, открываем следующий -->
<?php
// Если существует данное утверждение (то есть, если данные есть в поле upakovka)..
if ($db->f("upakovka")) {
// ..вытаскиваем и выводим данные
$db->p("prodavec");
}
// В противном случае - выводим тире (-)
else {
echo '-';
?>
</td></tr><!-- Закрыли столбец, закрыли строку -->

Поправим?
Код
<!-- Вставляем еще одну строку. Вставляем столбец. -->
<tr><td><strong><!-- Пишем жирным -->
<!-- Фразу - Тип Упаковки - берем из языкового файла (см. пункт 3) -->
<?php echo $VM_LANG->_('TIP_UPAKOVKI')?>:</strong>
</td><td><!-- Закрываем столбец, открываем следующий -->
<?php
// Если существует данное утверждение (то есть, если данные есть в поле upakovka)..
if ($db->f("upakovka")) {
// ..вытаскиваем и выводим данные
$db->p("upakovka");
}
// В противном случае - выводим тире (-)
else {
echo '-';
}
?>
</td></tr><!-- Закрыли столбец, закрыли строку -->
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сумма корзины на главной странице

Автор andreylc

Ответов: 6
Просмотров: 1028
Последний ответ 30.05.2018, 11:13:43
от andreylc
Не могу убрать форму "Задайте вопрос..." на странице товара

Автор abrodski

Ответов: 1
Просмотров: 1778
Последний ответ 20.05.2014, 14:30:44
от abrodski
Свое поле ввода количества для свойств товара

Автор Batyabest

Ответов: 5
Просмотров: 1568
Последний ответ 12.12.2013, 17:28:41
от Batyabest
Ключевые слова на странице

Автор katjuha6

Ответов: 10
Просмотров: 1555
Последний ответ 10.09.2013, 13:08:32
от fsv
не работает кнопка ПОДТВЕРДИТЬ ЗАКАЗ и не отображается Адрес доставки

Автор negas

Ответов: 2
Просмотров: 2147
Последний ответ 21.08.2013, 19:23:58
от ZAIRA