Jump to content

  • You cannot start a new topic
  • You cannot reply to this topic

Может мне кто-нибудь объяснить как пользоваться ХУКАМИ? Rate Topic   - - - - -

 
  • weranda
  • Member
  • Members
  • Join Date: 04-Dec 12
  • 20 posts

Posted 22 December 2012 - 10:46 AM #1

Приветствую.
Никак не могу понять, как пользоваться хуками для изменения шаблона. Может кто-нибудь мне пояснит на конкретном примере? Для примера возьмем внешний вид категории. Я кое что хочу убрать, кое что добавить и в исходном шаблоне я могу это сделать, но как гласит Справка к CS-Cart, для корректной работы CMS после обновления и во избежание конфликтов рекомендуется все изменения шаблона делать черех Хуки. Подскажите пожалуйста.

 
  • Alex_VP
  • Senior Member
  • Members
  • Join Date: 04-Jun 10
  • 1452 posts

Posted 24 December 2012 - 07:11 AM #2

смотрите сюда http://docs.cs-cart.com/design-changes

 
  • CS-Cart team
  • CS-Cart support team
  • Moderators
  • Join Date: 04-Apr 11
  • 3814 posts

Posted 24 December 2012 - 07:24 AM #3

Здравствуйте, weranda.

Спасибо за Ваше сообщение.

В CS-Cart для таких целей по умолчанию используется модуль My changes. Применять изменения в шаблонах через хуки можно только в определённых случаях, а конкретно только для тех файлов, в которых имеется возможность вставить так называемый хук. К примеру, в файле view.tpl, который находится в директории skins/basic/customer/views/categories Вашей установки CS-Cart (данный файл отвечает за внешний вид страницы категории в витрине магазина) есть такая часть кода:

{hook name="categories:view"}
<div id="category_products_{$block.block_id}">
{if $subcategories or $category_data.description || $category_data.main_pair}
{math equation="ceil(n/c)" assign="rows" n=$subcategories|count c=$columns|default:"2"}
{split data=$subcategories size=$rows assign="splitted_subcategories"}

{if $category_data.description && $category_data.description != ""}
	<div class="compact wysiwyg-content margin-bottom">{$category_data.description|unescape}</div>
{/if}


<div class="clearfix">
	{if $category_data.main_pair}
	<div class="cm-image-wrap image-border float-left margin-bottom">
		{include file="common_templates/image.tpl" show_detailed_link=true images=$category_data.main_pair object_type="detailed_category" no_ids=true rel="category_image" show_thumbnail="Y" image_width=$settings.Thumbnails.category_details_thumbnail_width image_height=$settings.Thumbnails.category_details_thumbnail_height hide_if_no_image=true}
	</div>

	{if $category_data.main_pair.detailed_id}
	{include file="common_templates/previewer.tpl" rel="category_image"}
	{/if}

	{/if}

	{if $subcategories}
	<div class="subcategories">
	{if $subcategories|@count < 6}
		<ul>
	{/if}
	{foreach from=$splitted_subcategories item="ssubcateg"}
		{if $subcategories|count >= 6}
			<div class="subcategories">
				<ul>
		{/if}
			{foreach from=$ssubcateg item=category name="ssubcateg"}
			{if $category.category_id}<li><a href="{"categories.view?category_id=`$category.category_id`"|fn_url}">{$category.category}</a></li>{/if}

		{/foreach}
		{if $subcategories|count >= 6}
				</ul>
			</div>
		{/if}
	{/foreach}
	{if $subcategories|count < 6}
	</ul>
	{/if}
	</div>
	{/if}
</div>
{/if}

{if $smarty.request.advanced_filter}
	{include file="views/products/components/product_filters_advanced_form.tpl" separate_form=true}
{/if}

{if $products}
{assign var="layouts" value=""|fn_get_products_views:false:0}
{if $category_data.product_columns}
	{assign var="product_columns" value=$category_data.product_columns}
{else}
	{assign var="product_columns" value=$settings.Appearance.columns_in_products_list}
{/if}

{if $layouts.$selected_layout.template}
	{include file="`$layouts.$selected_layout.template`" columns=`$product_columns`}
{/if}

{elseif !$subcategories}
<p class="no-items">{$lang.text_no_products}</p>
{/if}
<!--category_products_{$block.block_id}--></div>

{capture name="mainbox_title"}{$category_data.category}{/capture}
{/hook}

Если Вы захотите внести какие-либо изменения в файл view.tpl, то для этого Вам необходимо будет создать следующую директорию в Вашей установке CS-Cart:

skins/basic/customer/addons/my_changes/hooks/categories

В этой директории нужно создать файл со следующим названием:

view.override.tpl

Первая часть названия файла view, это, собственно, название самого хука, вторая часть названия файла override определяет, каким образом будет добавлен этот хук в файл view.tpl. К примеру:

view.override.tpl - перезапишет содержимое, находящееся между тэгами {hook name="categories:view"}{/hook} в файле view.tpl содержимым файла view.override.tpl;
view.pre.tpl - добавит содержимое файла view.pre.tpl перед кодом, который находится между тэгами {hook name="
categories:view"}{/hook} в файле view.tpl;
view.post.tpl - добавит содержимое файла view.post.tpl после кода, который находится между тэгами {hook name="
categories:view"}{/hook} в файле view.tpl.

Надеюсь, эти инструкции Вам помогут.

С наступающим Вас Новым годом и Рождеством.

Спасибо.

---
Pavel Zyukin
CS-Cart Support team

Sincerely yours, CS-Cart Support Team

 

User guide       |  Developer documentation  |  Core API documentation