'; //вывод описания текущей категории if (! empty($result["text"])) { echo '
'.$result["text"].'
'; } //вывод изображений текущей категории if (! empty($result["img"])) { echo '
'; foreach ($result["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } //вывод подкатегории if (! empty($result["children"])) { foreach ($result["children"] as $child) { echo ''; } } //вывод сортировки товаров if (! empty($result["link_sort"]) && ! empty($result["rows"])) { echo '
'.$this->_('ORDER_BY').': '.$this->_('PRICE').' '; if ($result["link_sort"][1]) { echo ''; } else { echo ''; } if ($result["link_sort"][2]) { echo ' '; } else { echo ' '; } echo $this->_('NAME_GOOD'); if ($result["link_sort"][3]) { echo ' '; } else { echo ' '; } if ($result["link_sort"][4]) { echo ' '; } else { echo ' '; } echo '
'; } //вывод списка товаров if (! empty($result["rows"])) { //мои правки echo "
"; $nnn=1; foreach ($result["rows"] as $row) { echo ''; echo '
'; //вывод названия и ссылки на товара echo '
'; echo ''.$row["name"].''; //рейтинг товара if (! empty($row["show_rating"])) echo ' '.$row["show_rating"]; echo '
'; //вывод артикула if (! empty($row["article"])) { echo '
'; echo $this->_('ARTICLE').':'; //вывод слова "Артикул" из языковой переменной echo ''.$row["article"].''; echo '
'; } echo '
'; //вывод изображений товара if (! empty($row["img"])) { echo '
'; foreach ($row["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } echo '
'; //вывод параметров товара if (! empty($row["param"])) { self::param($row["param"]); } //вывод скидки на товар if (! empty($row["discount"])) { echo '
'.$this->_('DISCOUNT').': '.$row["discount"].' %'.($row["discount_finish"]?' (до '.$row["discount_finish"].')':'').'
'; } //вывод краткого описания товара if (! empty($row["anons"])) { echo '
'.$row["anons"].'
'; } //цена на товар if (empty($row["depend"]) && ! empty($row["price"])) { echo '
'.$this->_('PRICE').': '.$row["price"].' '.$result["currency"].'
'; if (! empty($row["old_price"])) { echo '
'.$this->_('OLD_PRICE').': '.$row["old_price"].'' .' '.$result["currency"].'
'; } } //вывод кнопки "Купить" self::form($row, $result); echo '
'; //мои правки if ($nnn%3==0) echo "
"; else echo ""; $nnn++; } echo '
'; //мои правки echo "
"; } //вывод комментариев ко всей категории товаров (комментарии к конкретному товару в функции id()) if (! empty($result["comments"])) { echo $result["comments"]; } //постраничная навигация if (! empty($result["paginator"])) { echo $result["paginator"]; } //ссылки на предыдущую и последующую категории if (! empty($result["previous"]) || ! empty($result["next"])) { echo ''; } echo ''; return TRUE; } /** * Функция вывода первой страницы магазина, где все категории и несколько товаров из каждой категории * * @param array $result сгенерированные в моделе данные * @return boolean */ public function first_page($result) { if (empty($result["categories"])) return FALSE; //начало большого цикла, вывод категорий и товаров в них foreach ($result["categories"] as $cat_id => $cat) { echo '
'; //вывод названия категории echo '

'.$cat["name"].'

'; //вывод изображений категории if (! empty($cat["img"])) { echo '
'; foreach ($cat["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } //краткое описание категории if (! empty($cat["anons"])) { echo '
'.$cat["anons"].'
'; } //подкатегории if (! empty($cat["children"])) { foreach ($cat["children"] as $child) { echo ''; } } //вывод товаров в категории if (! empty($cat["rows"])) { foreach ($cat["rows"] as $row) { echo ''; echo '
'; //вывод названия и ссылки на товар echo '
'; echo ''.$row["name"].''; //рейтинг товара if (! empty($row["show_rating"])) echo ' '.$row["show_rating"]; echo '
'; //вывод артикула товара if (! empty($row["article"])) { echo '
'; echo $this->_('ARTICLE').':'; //вывод слова "Артикул" из языковой переменной echo ''.$row["article"].''; echo '
'; } echo '
'; //вывод изображений товара if (! empty($row["img"])) { echo '
'; foreach ($row["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } echo '
'; //вывод параметров товара if (! empty($row["param"])) { self::param($row["param"]); } //вывод скидки на товар if (! empty($row["discount"])) { echo '
'.$this->_('DISCOUNT').': '.$row["discount"].' %'.($row["discount_finish"]?' (до '.$row["discount_finish"].')':'').'
'; } //вывод краткого описания товара if (! empty($row["anons"])) { echo '
'.$row["anons"].'
'; } //вывод цены на товар if (empty($row["depend"]) && ! empty($row["price"])) { echo '
'.$this->_('PRICE').': '.$row["price"].' '.$result["currency"].'
'; if (! empty($row["old_price"])) { echo '
'.$this->_('OLD_PRICE').': '.$row["old_price"].'' .' '.$result["currency"].'
'; } } //вывод кнопки "Купить" self::form($row, $result); echo '
'; } } //ссылка на все товары в категории if ($cat["link_all"]) { echo '
' .$this->_('SHOW_ALL_GOODS_IN_CATEGORY').' '.$this->_('LQUOT').$cat["name"].$this->_('RQUOT') .'
'; } echo '
'; } return TRUE; } /** * Функция оформления страницы отдельного товара * * @param array $row данные о товаре * @return boolean true */ public function id($row) { echo '
'; //вывод артикула if (! empty($row["article"])) { echo '
'.$this->_('ARTICLE').': '.$row["article"].'
'; } //вывод изображений товара if (! empty($row["img"])) { echo '
'; foreach ($row["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } //вывод рейтинга товара if (! empty($row["show_rating"])) { echo "Рейтинг: "; echo $row["show_rating"]; echo '

'; } //вывод формы оценки товара if (! empty($row["add_rating"])) { echo $row["add_rating"]; } echo '
'; //вывод цены товара if (empty($row["depend"]) && ! empty($row["price"])) { echo '
'.$this->_('PRICE').': '.$row["price"].' '.$row["currency"].'
'; if (! empty($row["old_price"])) { echo '
'.$this->_('OLD_PRICE').': '.$row["old_price"].'' .' '.$row["currency"].'
'; } } //скидка на товар if (! empty($row["discount"])) { echo '
'.$this->_('DISCOUNT').': '.$row["discount"].' %'.($row["discount_finish"]?' (до '.$row["discount_finish"].')':'').'
'; } //кнопка "Купить" self::form($row, $row); //параметры товара if (! empty($row["param"])) { self::param($row["param"]); } //краткое описание товара if ($row['anons']) { echo '
'.$row['anons'].'
'; } //полное описание товара echo '
'.$row['text'].'
'; //теги товара if (! empty($row["tags"])) { echo $row["tags"]; } echo '
'; //комментарии к товару if (! empty($row["comments"])) { echo $row["comments"]; } //ссылки на предыдущий и последующий товар if (! empty($row["previous"]) || ! empty($row["next"])) { echo ''; } //похожие товары if (! empty($row["rel_goods"])) { echo '

'.$this->_('REL_GOODS').'

'; foreach ($row["rel_goods"] as $rel_row) { echo ''; echo '
'; //вывод названия и ссылки на товара echo '
'; echo ''.$rel_row["name"].''; //рейтинг товара if (! empty($rel_row["show_rating"])) echo ' '.$rel_row["show_rating"]; echo '
'; //вывод артикула if (! empty($rel_row["article"])) { echo '
'; echo $this->_('ARTICLE').':'; //вывод слова "Артикул" из языковой переменной echo ''.$rel_row["article"].''; echo '
'; } echo '
'; //изображения товара if (! empty($rel_row["img"])) { echo '
'; foreach ($rel_row["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } echo '
'; // параметры товара if (! empty($rel_row["param"])) { self::param($rel_row["param"]); } //скидка на товар if (! empty($rel_row["discount"]) && !empty($row['discount'])) { echo '
'.$this->_('DISCOUNT').': '.$row["discount"].' %'.($row["discount_finish"]?' (до '.$row["discount_finish"].')':'').'
'; } //краткое описание товара if (! empty($rel_row["anons"])) { echo '
'.$rel_row["anons"].'
'; } //цена на товар if (empty($rel_row["depend"]) && ! empty($rel_row["price"])) { echo '
'.$this->_('PRICE').': '.$rel_row["price"].' '.$row["currency"].'
'; if (! empty($rel_row["old_price"])) { echo '
'.$this->_('OLD_PRICE').': '.$rel_row["old_price"].'' .' '.$row["currency"].'
'; } } //кнопка "Купить" self::form($rel_row, $row); echo '
'; } echo '
'; } return TRUE; } /** * Оформление блока товаров, выводимых тегом show_block module=shop * * @param array $result сгенерированные в моделе данные * @return boolean */ public function show_block($result) { if (empty($result["rows"])) { return FALSE; } echo '
'; //заголовок блока if (! empty($result["name"])) { echo '

'.$result["name"].'

'; } //товары в разделе if (! empty($result["rows"])) { foreach ($result["rows"] as $row) { echo '
'; //название и ссылка товара echo ''; //изображения товара if (! empty($row["img"])) { echo '
'; foreach ($row["img"] as $img) { switch($img["type"]) { case 'animation': echo ''; break; case 'big_image': echo ''; break; default: echo ''; break; } echo ''.$img[' .' '; } echo '
'; } //артикул if (! empty($row["article"])) { echo '
'.$this->_('ARTICLE').': '.$row["article"].'
'; } // параметры товара if (! empty($row["param"])) { self::param($row["param"]); } //краткое описание товара if (! empty($row["anons"])) { echo '
'.$row["anons"].'
'; } //цена на товар if (empty($row["depend"]) && ! empty($row["price"])) { echo '
'.$this->_('PRICE').': '.$row["price"].' '.$result["currency"].'
'; if (! empty($row["old_price"])) { echo '
'.$this->_('OLD_PRICE').': '.$row["old_price"].'' .' '.$result["currency"].'
'; } } //скидка на товар if (! empty($row["discount"])) { echo '
'.$this->_('DISCOUNT').': '.$row["discount"].' %'.($row["discount_finish"]?' (до '.$row["discount_finish"].')':'').'
'; } //кнопка "Купить" self::form($row, $result); echo '
'; } } //ссылка на все товары if (! empty($result["link_all"])) { echo '
'; if ($result["category"]) { echo $this->_('SHOW_ALL_GOODS_IN_CATEGORY').' '.$this->_('LQUOT').$result["name"].$this->_('RQUOT'); } else { echo $this->_('ALL_GOODS'); } echo '
'; } echo '
'; return TRUE; } /** * Шаблонная функция: форма поиска по товарам * * @param array $result сгенерированные в моделе данные * @return boolean true */ public function show_search($result) { echo '
'; echo ''; echo '
'; return TRUE; } /** * Шаблон вывода кнопки "Купить", в котором характеристики, влияющие на цену выводятся в виде выпадающего списка * * @param integer $row данные о товаре * @param array $result сгенерированные в моделе данные * @return boolean */ private function form($row, $result) { if (!$result["buy"]) return FALSE; if(empty($row['price']) && empty($row['depend'])) return FALSE; if ($row["no_buy"] || !$row["count"] && !$row["depend"]) { echo '
' . $this->_('NO_BUY') . '
'; return FALSE; } echo '
'; if (!empty($row["param_select_buy"])) { foreach ($row["param_select_buy"] as $id => $rows) { $depends = $result["depends"][$id]; echo '
' . $depends["name"] . ':
'; } } if ($row["depend"]) { $depends = $result["depends"][$row["depend"]["param_id"]]; echo $depends["name"] . ': '; $hide=0; foreach ($row["depend"]["rows"] as $r) { echo '
'; if (!empty($r["old_price"])) { echo '
' . $this->_('OLD_PRICE') . ': ' . $r["old_price"] . '' . ' ' . $result["currency"] . '
'; } echo '
' . $this->_('PRICE') . ': ' . $r["price"] . ' ' . $result["currency"] . '
'; if (!$r["count"]) { echo '' . $this->_('NO_BUY') . ''; } echo '
'; } echo '' . ($row["price"] ? $row["price"] . ' ' . $result["currency"] : '') . ''; } echo ' '; echo '
'; if (!empty($r["count_in_basket"])) { echo sprintf($this->_('GOOD_IN_BASKET'), BASE_PATH_HREF . $result["basket_link"], $r["count_in_basket"]); } echo '
'; echo '
'; return TRUE; } /** * Шаблон вывода кнопки "Купить", в котором каждой характеристике, влияющей на цену выведена отдельная кнопка "Купить" * * @param integer $row данные о товаре * @param array $result сгенерированные в моделе данные * @return boolean */ private function form_($row, $result) { if (! $result["buy"]) return FALSE; if ($row["no_buy"] || ! $row["count"] && ! $row["depend"]) { echo '
'.$this->_('NO_BUY').'
'; return FALSE; } //print_r($result); //print_r($row); if ($row["depend"]) { $depends = $result["depends"][$row["depend"]["param_id"]]; foreach ($row["depend"]["rows"] as $r) { echo '
'; echo '
'.$depends["name"].': '.$depends["values"][$r["value"]].'
'; if (! empty($row["param_select_buy"])) { foreach ($row["param_select_buy"] as $id => $rows) { $deps = $result["depends"][$id]; echo '
'.$deps["name"].':
'; } } if (! empty($r["old_price"])) { echo '
'.$this->_('OLD_PRICE').': '.$r["old_price"].'' .' '.$result["currency"].'
'; } echo '
'.$this->_('PRICE').': '.$r["price"].' '.$result["currency"].'
'; if ($r["count"]) { echo ' '; } else { echo ''.$this->_('NO_BUY').''; } echo '
'; if (! empty($r["count_in_basket"])) { echo sprintf($this->_('GOOD_IN_BASKET'), BASE_PATH_HREF.$result["basket_link"], $r["count_in_basket"]); } echo '
'; } } else { echo '
'; if (! empty($row["param_select_buy"])) { foreach ($row["param_select_buy"] as $id => $rows) { $depends = $result["depends"][$id]; echo '
'.$depends["name"].':
'; } } echo '
'; if (! empty($row["count_in_basket"])) { echo sprintf($this->_('GOOD_IN_BASKET'), BASE_PATH_HREF.$result["basket_link"], $row["count_in_basket"]); } echo '
'; } return TRUE; } /** * Шаблон вывода параметров товара * * @param array $params параметры * @return boolean true */ private function param($params) { foreach ($params as $param) { echo '
'.$param["name"]; if ($param["value"]) { echo ': '; if (! empty($param["link"])) { echo ''.$param["value"].''; } elseif (is_array($param["value"])) { foreach ($param["value"] as $p) { if ($param["value"][0] != $p) { echo ', '; } if (is_array($p)) { if ($p["link"]) { echo ''.$p["name"].''; } else { echo $p["name"]; } } else { echo $p; } } } else { echo $param["value"]; } echo ''; } echo '
'; } return TRUE; } }