Регистрация
Вход через соцсети
Восстановление пароля

Netshop :( help plz

Новый топик
02.06.2010, 18:05
Ответить | Цитировать
sail
БизнесТелеСистемы

Зарегистрирован:
2010-03-30
Сообщений: 55

Здравствуйте!
Суть проблемы:
Есть компонент Магазин: Товар, в нем есть картинки для товарных позиций, эти картинки я грузятся отдельным компонентом созданным с нуля. Подключены они к компоненту Магазин: Товар с помощью
".s_list_class(212, 288, "recNum=20")." - большая картинка
".s_list_class(212, 289, "recNum=20")." - маленькая.
Все бы отлично, все грузится, работает. НО! Когда я начинаю менять картинки, всмысле менять мне не понравившуюся, то старая исчезает, а новой нет, запись в файл есть, права на всякий поставил 777, картинки всё нет. Тоже самое если я меняю что-то в коде, стили там, или теги компонента самописного (288). Решается проблема выдергиванием ".s_list_class(212, 288, "recNum=20")." из компонента Магазин: Товар, сохранением, перезагрузкой браузера и опять вставкой, сохранением, но это не дело...

Может ли как-то влиять на ситуацию ".s_list_class(212, 288, "recNum=20")." вставленный в другой компонент? Получается, что компонент в компоненте, да еще в одном разделе 212?
Подозрение у меня, что это что-то с хешом.
Как решить мне такую проблему?
02.06.2010, 18:05
Ответить | Цитировать
sail
БизнесТелеСистемы

Зарегистрирован:
2010-03-30
Сообщений: 55

Объект в списке компонента Магазин: Товар

Код:
<div class='catalogue'>	


".( !($RowNum%$NumCols) && $RowNum ? "" : NULL )."
";
// если мы в режиме редактирования, то далее следует формирование элементов управление товарами
if($admin_mode)
{
// формируем ссылку на добавление дочернего объекта
$add_child_link = $SUB_FOLDER.$HTTP_ROOT_PATH."add.php?catalogue=$catalogue&sub=$sub&cc=$cc&f_Parent_Message_ID=$f_RowID&curPos=$curPos";

// создаем строки таблицы дочерних товаров если они существуют
$f_this_item_variants = listQuery("SELECT * FROM Message$classID WHERE Parent_Message_ID=$f_RowID ORDER BY Priority DESC",'


&nbsp; &nbsp; &nbsp;
<img src=\''.$ADMIN_PATH.'images/arrow_sec.gif\' width=\'14\' height=\'10\' alt=\'\'>
<b>$data[Message_ID].</b>
<a href=\''.$SUB_FOLDER.$HTTP_ROOT_PATH.'full.php?catalogue=$GLOBALS[catalogue]&sub=$GLOBALS[sub]&cc=$GLOBALS[cc]&message=$data[Message_ID]\'>$data[Name]</a>


<nobr>
".($data[$GLOBALS["shop"]->PriceColumn]
? $GLOBALS["shop"]->FormatCurrency($data[$GLOBALS["shop"]->PriceColumn], $data[$GLOBALS["shop"]->CurrencyColumn])
: "цена не указана")."
</nobr>



<nobr>
<a

href=\''.$SUB_FOLDER.$HTTP_ROOT_PATH.'message.php?catalogue=$GLOBALS[catalogue]&sub=$GLOBALS[sub]&cc=$GLOBALS[cc]&message=$data[Message_ID]&curPos=$GLOBALS[curPos

]\'>
<img src=\''.$ADMIN_PATH.'skins/default/img/i_obj_edit.gif\' border=\'0\' width=\'16\' height=\'16\' alt=\''.NETCAT_MODERATION_CHANGE.'\'></a>

<a

href=\''.$SUB_FOLDER.$HTTP_ROOT_PATH.'message.php?catalogue=$GLOBALS[catalogue]&sub=$GLOBALS[sub]&cc=$GLOBALS[cc]&message=$data[Message_ID]&delete=1&curPos=$GLOBA

LS[curPos]\'>
<img src=\''.$ADMIN_PATH.'skins/default/img/i_obj_delete.gif\' border=\'0\' width=\'16\' height=\'16\' alt=\''.NETCAT_MODERATION_DELETE.'\'></a>

<a

href=\''.$SUB_FOLDER.$HTTP_ROOT_PATH.'message.php?catalogue=$GLOBALS[catalogue]&sub=$GLOBALS[sub]&cc=$GLOBALS[cc]&message=$data[Message_ID]&admin_mode=1&posting=1

&curPos=$GLOBALS[curPos]&checked=".($data["Checked"] ? 1 : 2)."\'>
<img src=\''.$ADMIN_PATH.'skins/default/img/i_obj_turn".($data[Checked] ? "on" : "off").".gif\' border=\'0\' width=\'16\' height=\'16\' alt=\'".($data["Checked"] ?

NETCAT_MODERATION_TURNTOON : NETCAT_MODERATION_TURNTOOFF )."\'></a>
</nobr>
<
');
}

// далее идёт непосредственно вывод для фрон-фейса

$result .="
$f_AdminButtons
<form method=post action='".$SUB_FOLDER.$HTTP_ROOT_PATH."modules/netshop/post.php' style='margin:0'>


<!--<a href='$fullLink'></a>-->
<h2>$f_Name</h2>


<div id='photos' class='galleryview'>
".s_list_class(212, 288, "recNum=20")."

<div class='podem'>
".s_list_class(212, 289, "recNum=20")."
</div>
</div>
<div class='service'>
Цена:
<span class='cena'>
".$shop->FormatCurrency($Price, $Currency, true)."
</span>
<div class='ico_service'>
<div class='button'>
<button type='submit'>
<img src='/img/ico_korz.jpg' />
<a href=''>Добавить в корзину</a>
</button>
</div>
<p style='clear: both;'></p>
<img src='/img/ico_zakaz.jpg' />
<a href='/Netshop/add_Order.html'>Oформить заказ</a>
<p style='clear: both;'></p>
<img src='/img/ico_pdf.jpg' />
<a href='$f_file'>Скачать описание</a>
<p style='clear: both;'></p>
<img src='/img/ico_print.jpg' />
<a href='?template=84'>Печать</a>
</div>
</div>

<!--".opt($f_Image, "<img src='$f_Image_url' alt='$f_Name' style='margin-right:10px'>")."-->



".(!$admin_mode? (($db->get_var("SELECT COUNT(*) as n FROM Message$classID WHERE Parent_Message_ID=$f_RowID AND Checked=1") >> 0)?"<a

href='$fullLink'><b>Подробнее...</b></a>":"
<input type='hidden' name='redirect_url' value='$GLOBALS[uri_path]'>
<input type='hidden' name='cart_mode' value='add'>
<input type='hidden' name='cart[$classID][$f_RowID]' value='1'>
<!--<button type='submit'><img src='".$SUB_FOLDER."/images/i_cart.gif'></button>")."-->
": NULL)."
<br>
<!--".opt($f_Description, "<div style='padding:10px 0px; text-align:justify'>$f_Description<div>")."-->



</form>
".
/*если мы в режиме редактирования, то далее едёт список дочерних товаров сформированный*/
($admin_mode? " выше.
<div style='margin:14px 0px 6px;'>
<img src='".$ADMIN_PATH."skins/default/img/i_obj_add.gif' width='16' height='16' style='vertical-align:middle' border='0' alt='Добавить вариант товара'>
<a href='$add_child_link'>Добавить вариант товара</a>
</b>
</div>

$f_this_item_variants
" : NULL)."


".opt($RowNum++, "")."
</div>
07.06.2010, 16:34
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Чтобы вникнуть в то как у вас там всё сделано - надо задать вам кучу вопросов... лень.

Опишу как я такие задачки решаю. Задачка у вас типа - организовать связь "один ко многим" между 2мя компонентами.

1. Компонент товара есть
2. Создаете компонент Картинки с полями: ИД_товара (Tovar_ID), Картинка маленькая (ImgSmall), Картинка большая (ImgBig)(надеюсь что у вас картинки парные)
3. Создаете раздел, которому назначаете компонент картинок.
4. Чтобы товару добавить картинки - надо сначала добавить сам товар, затем зайти в его подброный просмотр и оттуда добавлять картинки. Для этого в компоненте товара в поле подробного отображения объекта вставляете куда-нить ".s_list_class(xxx,yyy,"&Tovar_ID=$message",true)."
После этого в форме подробного просмотра (в режиме админа) у вас появятся кнопочки добавления и удаления картинок.
5. В компоненте картинок делаете альтернативные формы добавления, редактирования, удаления. Там ключевым моментом является автоматическое заполнение поля ИД_Товара (Tovar_ID), значение которого я беру из урл адреса (HTTP_REFERER), с которого пришли на форму. Пример кода для альтернативной формы добавления:
Код:

";
$parsed_url = parse_url($_SERVER['HTTP_REFERER']);
preg_match_all("/([sub|catalogue|cc|message]+)=([0-9]+)&?/", $parsed_url['query'],$matches,PREG_SET_ORDER);
foreach ($matches as $match) $mm[$match[1]]=$match[2];

echo "

....
<input name='f_Tovar_ID' type='hidden' value='{$mm[message]}'>
<input name='redirect' value='{$_SERVER['HTTP_REFERER']}' type='hidden'>
....


далее в поле "Действие после добавления объекта" чтобы после добавления картинки вы вернулись на окно товара пишите:
Код:
".(isset($_REQUEST['redirect'])?"<a href='{$_REQUEST['redirect']}'>Вернуться назад</a>":$goBack)."


по аналогии делаете альтернативные формы редактирования и удаления.

6. В компоненте картинок в поле системных настроек дописываете:
Код:

if ($Tovar_ID) {
$ignore_sub = true;
$ignore_cc = true;
$query_where = "a.Tovar_ID = ".(int)$Tovar_ID;
}


вроде всё

Temet nosce...
09.06.2010, 11:36
Ответить | Цитировать
sail
БизнесТелеСистемы

Зарегистрирован:
2010-03-30
Сообщений: 55

Спасибо за помощь! Но я решил проблемку другим способом, подключил к разделу компонент фотогалерея, и позиционированием в css "подтянул" к каталогу.
198 196 2010-06-09 11:36:23 10491
Описание проекта