Новости Joomla

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

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Изменения в админке
« : 04.10.2012, 15:41:44 »
Решил создать поле "Описание" в значении атрибута (по аналогии с описанием атрибутов и характеристик). В базе данных таблице _jshopping_attr _values создал новое поле с именем description_ru-RU и значениями, аналогичными описания атрибутов. Добавил input в файле edit.php папке administrator/.../views/attributesvalues/tmpl. При вводе текста в поле он не сохраняется при нажатии "Сохранить".
Прошу подсказать, где копать.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Изменения в админке
« Ответ #1 : 04.10.2012, 18:11:15 »
какой name если не секрет у input нового?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #2 : 04.10.2012, 18:46:26 »
какой name если не секрет у input нового?
Имя description_ru-RU как в базе, а формируется выражением
Код
name = "<?php print $description?>"
, а значение
Код
value = "<?php echo $this->attributValue->$description?>"
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Изменения в админке
« Ответ #3 : 04.10.2012, 18:52:29 »
а $description до этого определен как "description_".$lang->language ?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #4 : 04.10.2012, 18:57:17 »
Все верно
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #5 : 04.10.2012, 19:09:53 »
В базе я поставил следующее:
Type - TEXT
Collation - utf8_general_ci
Null - no
Default - none
Field - description_ru-RU
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Изменения в админке
« Ответ #6 : 04.10.2012, 19:14:51 »
у меня этот код рабочий
Код
    <?php 
    foreach($this->languages as $lang){
    $field = "name_".$lang->language;
    $description = "description_".$lang->language;
    ?>
     <tr>
       <td class="key">
         <?php echo _JSHOP_NAME_ATTRIBUT_VALUE;?> <?php if ($this->multilang) print "(".$lang->lang.")";?>*
       </td>
       <td>
         <input type = "text" class = "inputbox" name = "<?php print $field?>" value = "<?php echo $this->attributValue->$field?>" />
       </td>
     </tr>
     <tr>
       <td class="key">
         <?php echo _JSHOP_NAME_ATTRIBUT_DESC;?> <?php if ($this->multilang) print "(".$lang->lang.")";?>*
       </td>
       <td>
         <input type = "text" class = "inputbox" name = "<?php print $description?>" value = "<?php echo $this->attributValue->$description?>" />
       </td>
     </tr>
  <?php } ?>

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

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #7 : 04.10.2012, 19:46:18 »
Отличий два, но мне кажется не влияющих:
1. Оператор перебора foreach у Вас добавляет ru-RU сразу двум переменным name и description, а у меня по отдельности (не стал тревожить существующий код, просто добавил новый foreach для description)
2. Ну и текст "Описание" у Вас задан _JSHOP_NAME_ATTRIBUT_DESC, у меня имеющееся _JSHOP_DESCRIPTION (чтобы в лэнге не дописывать)
Notepad++ ошибок не показывает, попробую Ваш проверенный скопировать и вставить и посмотреть. Неужели сработает. Отпишусь чуть позже.
« Последнее редактирование: 04.10.2012, 19:49:40 от pvi1 »
*

dmitry_stas

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

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #9 : 04.10.2012, 20:14:56 »
To dmitry_stas, получилось! Плюсую! Все-таки попробую найти свою ошибку. Теперь мне надо, как я представляю, лететь в Tables и ворошить два файла product и attributvalue, затем в product_default .
Наверное, все или еще куда-то надо заглянуть?
Еще в CSS, но это пустяки
« Последнее редактирование: 04.10.2012, 20:18:45 от pvi1 »
*

nevigen

  • Moderator
  • 10436
  • 863 / 25
  • http://n*****n.com
Re: Изменения в админке
« Ответ #10 : 04.10.2012, 20:24:18 »
Дмитрий да Вы кудесник ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #11 : 09.10.2012, 18:36:38 »
To dmitry_stas. Дмитрий, посмотрите правильно ли я прописал последовательность извлечения из базы данных (не получается до конца сказываются почти нулевые знания PHP).
1. В файле "attributvalue.php' прописываем функцию
Код
function getDescription($value_id){
        $db = JFactory::getDBO();
        $lang = JSFactory::getLang();
        $query = "SELECT `".$lang->get("description")."` as description FROM `#__jshopping_attr_values` WHERE value_id = '".$db->escape($value_id)."'";
        $db->setQuery($query);        
        return $db->loadResult();
    }
2. В функции getAllValues($attr_id) меняем строку
Код
$query = "SELECT value_id, image, `".$lang->get("name")."` as name, value_ordering, attr_id FROM `#__jshopping_attr_values` where attr_id='".$attr_id."' ORDER BY value_ordering, value_id";
на строку
Код
$query = "SELECT value_id, image, `".$lang->get("description")."` as description, attr_id, `".$lang->get("name")."` as name, value_ordering, attr_id FROM `#__jshopping_attr_values` where attr_id='".$attr_id."' ORDER BY value_ordering, value_id";
В функции getAllAttributeValues($resulttype=0)
соответственно
Код
$query = "SELECT value_id, image, `".$lang->get("name")."` as name, attr_id, value_ordering FROM `#__jshopping_attr_values` ORDER BY value_ordering, value_id";
на
Код
$query = "SELECT value_id, image, `".$lang->get("description")."` as description, attr_id, `".$lang->get("name")."` as name, attr_id, value_ordering FROM `#__jshopping_attr_values` ORDER BY value_ordering, value_id";
И ниже строки
Код
$rows[$v->value_id] = $v->name;
Добавляем
Код
$rows[$v->value_id] = $v->description;
Как я понял, из базы вытащили значения атрибутов

В файле "product.php" проблемы -не понял суть функции getAttribValue($attr_id, $other_attr = array(), $onlyExistProduct = 0), но на всякий случай добавил
Код
`".$lang->get("description")."` as value_description
А дальше, интуиция подсказывает, надо что-то делать в функции function getBuildSelectAttributes($attributeValues, $attributeActive), а что -стою на распутья. Не подтолкнете в правильном направлении?
« Последнее редактирование: 09.10.2012, 18:40:28 от pvi1 »
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #12 : 11.10.2012, 23:42:04 »
Ребята! кто за плату доведет это дело до ума?
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #13 : 20.10.2012, 10:24:13 »
Неужели нет желающих подзаработать?
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #14 : 05.11.2012, 11:00:21 »
Хочу снова обратить внимание к данной теме. Думаю, это нужно не только мне. Смысл в чем. Когда применяются зависимые атрибуты, при выборе значения очередного атрибута меняется общая цена товара. Но клиент не может сразу определить, насколько дорожает или дешевеет товар при применении той или иной опции, как например, в независимых атрибутах. Клиенту приходится брать калькулятор и вручную высчитывать разницу. это ведь понятно: насколько адекватно изменение цены при выборе опции. Считаю, что это одно из преимуществ интернет-магазина, когда клиент самостоятельно, в спокойной обстановке может выбрать подходящий из множества вариантов. Поэтому я посчитал, что самым простым способом будет следующее: каждому значению атрибута дать описание, по аналогии с описаниями самих атрибутов. В поле описания значения атрибута вводить + или минус стоимости этого  значения (примерно, как в админке мы делаем для независимых атрибутов).
И выводить описание значения атрибута в карточке товара, но не тултипом а простым текстом (во вложенном файле они обведены). И клиент при выборе того или иного значения атрибута сразу видит насколько меняется цена.
Часть этого вопроса уже сделана (см. выше).
Осталось вывести в карточку. У меня не получается. При запросе в базу делается, переменная выводится. А дальше ее надо вывести напротив каждого значения.Догадываюсь, что надо теребить функцию getBuildSelectAttributes в файле components\com_jshopping\tables\product.php, но чего-то недопонимаю. попытался вывести по аналогии с выводом картинок - выскакивают ошибки. Все-таки, кто-нибудь из профи подскажите - осталось совсем чуть-чуть.

[вложение удалено Администратором]
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #15 : 04.12.2012, 00:51:02 »
Наконец-то наполовину задача решилась. В радиобатонах вывод описания значений атрибутов сделан. В селектах вывод тоже сделан, но при выборе другой опции текст описания не изменяется. По всей видимости, надо писать какую-нибудь функцию. Пока все.
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #16 : 07.12.2012, 14:02:39 »
В продолжение предыдущего поста.
Пришла еще одна мысль, как вывести описания опций селектов в карточке: вывести их по аналогии с картинками в  селектах. Вывод картинок производится функцией getHtmlDisplayProdAttrImg, прописанной в следующей строке:
Код
 $selects[$attr_id]->selects = JHTML::_('select.genericlist', $options, 'jshop_attr_id['.$attr_id.']','class = "inputbox" size = "1" onchange="setAttrValue(\''.$attr_id.'\', this.value);"','val_id','value_name', $attributeActive[$attr_id])."<span class='prod_attr_img'>".$this->getHtmlDisplayProdAttrImg($attr_id, $attrimage[$attributeActive[$attr_id]])."</span>";
Сама функция формируется так:
Код
function getHtmlDisplayProdAttrImg($attr_id, $img){
        $jshopConfig = JSFactory::getConfig();
        if ($img){
            $path = $jshopConfig->image_attributes_live_path;
        }else{
            $path = $jshopConfig->live_path."images";
            $img = "blank.gif";
        }
        $urlimg = $path."/".$img;
       
        $html = '<img id="prod_attr_img_'.$attr_id.'" src="'.$urlimg.'" alt="" />';
        return $html;
    }
Прошу знатоков PHP подсказать, как применить аналогичную функцию для  вывода описания опций атрибутов. Сам пробовал -вывод получается, но при изменении значения селекта описание опции атоибута остается неизменным
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Изменения в админке
« Ответ #17 : 07.12.2012, 19:41:33 »
Сам пробовал -вывод получается, но при изменении значения селекта описание опции атоибута остается неизменным
Потому что смена картинки производится с помощью javascript, а не php, так что придется менять и его...
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #18 : 08.12.2012, 08:33:46 »
А где прописан javascript картинки?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Изменения в админке
« Ответ #19 : 08.12.2012, 09:13:37 »
Открываем исходный код страницы товара. Ищем элемент выбора атрибутов.
Код
<select id="jshop_attr_id1" name="jshop_attr_id[1]" class="inputbox" size="1" onchange="setAttrValue('1', this.value);">
<option value="1" selected="selected">Blue</option>
<option value="2">Red</option>
</select>
Обращаем внимание на onchange="setAttrValue('1', this.value);
Теперь мы знаем какая функция javascript обрабатывает смену картинки.
Все скрипты у нас находятся обычно в папке js, а значит не составит труда найти файл с этой функцией.
\components\com_jshopping\js\functions.js
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Изменения в админке
« Ответ #20 : 09.12.2012, 16:05:55 »
Посмотрел, спасибо. Будем эксперементировать. А функция getHtmlDisplayProdAttrImg, получается, только выводит результаты работы javascript?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пагинация на странице Характеристики в админке?

Автор ViktorMah

Ответов: 2
Просмотров: 1433
Последний ответ 09.09.2016, 18:40:36
от ExJTMaster
Изменить вывод характеристик в админке

Автор sergeosn

Ответов: 15
Просмотров: 1109
Последний ответ 18.08.2015, 23:17:54
от sergeosn
Сортировка атрибутов в админке и на сайте

Автор staticway

Ответов: 5
Просмотров: 2250
Последний ответ 25.11.2013, 23:26:03
от dmitry_stas
Добовление второй (дополнительной) вкладки "сопутствующий" в админке

Автор sifoz

Ответов: 0
Просмотров: 925
Последний ответ 18.09.2013, 17:04:39
от sifoz
Выбор характеристик и опций в админке для множества указанных товаров!

Автор chereushenko

Ответов: 10
Просмотров: 1711
Последний ответ 10.04.2013, 23:46:07
от chereushenko