Новости Joomla

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

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
->select($select_id.' as id,'.implode(',', $select))
код только учу, и думал что берется как в бд написано....на это не обратил внимание.

Ещё раз огромное спасибо. + поставил :-)
*

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
Обратил внимание, если в названии товара стоят кавычки, то алиас не генирируеться.
Это так, для справки
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
угу, есть такое. упустили. надо заменить
Код: php
$insertValue[] = $element->$name;
на
Код: php
$insertValue[] = $db->getEscaped($element->$name);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
Спасибо. ещё +
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
обновили на сайте плагин. добавили настройку касающуюся добавления id + исправлена ошибка экранирования кавычек
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
Ребята, подскажите, а можно ли как то через базу данный. сделать так, чтобы автоматом присвоился код товара? Сейчас у меня код товара формируется так, при сохранении товара присваиваться код товара, который берется с id товара, через 1с загрузил кучу товара, и чтобы теперь был код товара, приходиться в ручную, открывать и пересохранять товар, не совсем удобно. помогите пожалуйста.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
на примере покажите чего надо добиться
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
Например, загрузили мы в магазин 1000 товаров, но загрузились они без кода товара, задача: через БД сделать запрос, чтобы автоматом присваивался код товара (код товара присваиваться от id товара), например у меня id товара 300, то код товра присвоиваеться 00000300, но только после пересохранения в админке - данный метод не совсем удобен.
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
массовые операции с товрами в базе
в ФАКе есть примеры запросов.
надо только посмотреть поля и сделать под себя
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
массовые операции с товрами в базе
в ФАКе есть примеры запросов.
надо только посмотреть поля и сделать под себя
Спасибо, да посмотрел там есть, пример с удалением, но так и не разобрался, как сделать обратный эффект, какое поле нужно вставить? если подскажете, буду очень благодарен.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код: sql
update `#__jshopping_products` set product_ean=LPAD(product_id,8,'0') where product_ean='' and parent_id=0
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
Код: sql
update `#__jshopping_products` set product_ean=LPAD(product_id,8,'0') where product_ean='' and parent_id=0
#1046 - No database selected

вместо # вставил перфикс своей базы, та же ошибка, может быть такое. что для начало надо удалить "код товара" у продуктов, или без разницы?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну извините :) я предполагал что имея 170+ сообщений, вы понимаете, как должно выглядеть имя таблицы, и то, что после # есть два нижних подчеркивания, а не одно

Префикс_jshopping_products
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
ну извините :) я предполагал что имея 170+ сообщений, вы понимаете, как должно выглядеть имя таблицы, и то, что после # есть два нижних подчеркивания, а не одно

Префикс_jshopping_products
именно так я и делал
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
пробовал всяко, не получаться.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
как "всяко"?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
как "всяко"?
и так _ и так __
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
запрос покажите как вводите, а не черточки

не надо. http://forum.php-myadmin.ru/viewtopic.php?id=1058
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
UPDATE `t5h3r__jshopping_products` SET product_ean=LPAD(product_id,8,'0') WHERE product_ean='' AND parent_id=0
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
это я кому писал?

http://forum.php-myadmin.ru/viewtopic.php?id=1058
сорри, почитаю, разберусь, и отпишусь. Спасибо за помощь.
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Я тут на основании плагина auto_ean попытался плагинчик нарисовать со своими правилами генерации алиаса... и вобщем то всё работает, но есть два неочевидных момента...
Код
<?php
defined('_JEXEC') or die('Restricted access');

class plgJshoppingAdminAutoAlias extends JPlugin
{
    public function __construct(& $subject, $config)
{
parent::__construct($subject, $config);
}

function onAfterSaveProduct( $product ){
// if (алиас == '')
{
$db = JFactory::getDBO();
$query = 'UPDATE `#__jshopping_products` SET `alias_ru-RU` = "'.str_pad($product->product_id, 6, '0', STR_PAD_LEFT).'" WHERE `product_id` = '.$product->product_id;
$db->setQuery($query);
$db->query();
}
}
}

Моих познаний не хватает на то чтобы, проверить существование алиаса. Какую переменную туда подставить?
И ещё - алиасы пишутся в заданную колонку 'alias_ru-RU', а по хорошему надо как то определить текущий язык и задать что то типа `alias_`.lang

Помогите решить эти проблемки.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
1. логичнее это сделать до сохранения товара, а не после. а то получатся первый раз сохранили. а потом опять пересохраняем. используйте событие onBeforeDisplaySaveProduct.
2. исходя из 1 - в плагин передается массив $_POST, и соответственно $post['alias_ru-RU'] содержит алиас.
3. текущий язык - это текущий язык. но вам же надо не текущий, а все установленные? посмотрите, как это сделано в админке в контроллере products, там где $post['alias_'.$lang->language] = ...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
1. логичнее это сделать до сохранения товара, а не после. а то получатся первый раз сохранили. а потом опять пересохраняем. используйте событие onBeforeDisplaySaveProduct.

Тогда получается, что плагин прописывает свой алиас, а ЖШ сохраняет со своим.

2. исходя из 1 - в плагин передается массив $_POST, и соответственно $post['alias_ru-RU'] содержит алиас.

Не содержит, передаётся пустое значение.
« Последнее редактирование: 21.10.2014, 20:08:53 от jorevo »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
в плагине можно воздействовать на передаваемые элементы. для этого в параметрах функции перед $product надо & поставить
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Код
function onAfterSaveProduct(& $product ){

Так надо? Всё равно не передаёт. Ну и если поставить onBeforeDisplaySaveProduct - получается стандартный ЖШ алиас.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
так, только при этом использовать onBeforeDisplaySaveProduct (и в контроллере посмотреть какие параметры передаются, там не только $product)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
так, только при этом использовать onBeforeDisplaySaveProduct (и в контроллере посмотреть какие параметры передаются, там не только $product)

Сделал так:
Код
function onBeforeDisplaySaveProduct(&$post, &$product)

Теперь $post передаётся, но получается стандартный алиас от ЖШ, так как алиас от ЖШ генерируется после события onBeforeDisplaySaveProduct. Что делать?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Если посмотреть функцию save() в контроллере
administrator\components\com_jshopping\controllers\products.php
То видно что alias формируется до вызова функции плагина onBeforeDisplaySaveProduct(&$post, &$product) (Строка 565)
А значит в плагине можно вывести $post['alias_'.$lang->language] и посмотреть содержимое - Это и есть тот псевдоним, который сохраняется в базу.
Следовательно если в плагине в функции onBeforeDisplaySaveProduct(&$post, &$product) написать $post['alias_'.$lang->language] = "111", то после сохранения псевдоним будет 111.
Вроде логично и просто :)
А проверку на пустой псевдоним кстати сделать так не получится. Придется использовать проверку на совпадение со стандартным формированием алиаса.
Другими словами, если переменная $post['alias_'.$lang->language] совпадает с преобразованным названием в алиас, то значит алиас был пустой (при условии что все псевдонимы формируются не из названия).
Код: php
if($post['alias_'.$lang->language] == JApplication::stringURLSafe($post['name_'.$lang->language])){Alias в POST пришел пустой}
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
проверку на пустой псевдоним кстати сделать так не получится
можно проверить $_POST['alias_'.$lang->language]
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Условие для кол-ва товара больше нуля

Автор kik84

Ответов: 3
Просмотров: 260
Последний ответ 16.02.2024, 13:33:24
от kit2m2
WT On fly image handler изображения товара JoomShopping в webp на лету

Автор sergeytolkachyov

Ответов: 9
Просмотров: 1458
Последний ответ 17.10.2023, 12:40:19
от sergeytolkachyov
Убрать модуль в карточке товара JoomShopping

Автор alexkraym

Ответов: 35
Просмотров: 4411
Последний ответ 21.08.2023, 07:17:53
от delchev
Проблема с фото в карточке товара

Автор astapon

Ответов: 18
Просмотров: 1617
Последний ответ 24.04.2023, 12:37:50
от kit2m2
Убрать ссылку в названии товара

Автор Jinrou

Ответов: 12
Просмотров: 1558
Последний ответ 13.03.2023, 06:48:07
от kit2m2