Главная » Шпаргалка » PHP MYSQL javascript » PHP » Полезные заметки vamshop

Данный матерьял взят из http://www.molodezky.pp.ua, многое из етого я делал другими методами многое также. Добавил полезные моменты как шпаргалку.

Показываем информацию для определенной группы покупателей (VAMshop)

Иногда нужно показать ту или иную информацию, только для определенной группы пользователей. Например, вставить приглашение зарегистрироваться для посетителей и не показывать его, если клиент уже зашел под своим логином ,т.е. перешел в группу покупателей, либо скрывать какие-то боксы и т.п.

Делаем это следующим образом, нужную нам информацию в файлах шаблона заворачиваем в следующее условие:

{if $smarty.session.customers_status.customers_status_id == 1}
Ваш текст или метка
{/if}

Нужная нам группа обозначена status_id == 1, где 1 — ID группы. В данном случае это группа «Посетитель».

 

Как правильно добавить ссылку в главное меню VAM shop

Казалось бы особых проблем при добавлении ссылки в главное меню магазина возникнуть не должно, но есть один нюанс. давайте посмотрим на код:

<div id="menu">
<ul>
<li{$1}><a href="{$mainpage}"><span>{#text_mainpage#}</span></a></li>
{if $account}{if $smarty.session.customer_id}
<li{$2}><a href="{$account}"><span>{#link_account#}</span></a></li>
{/if}{/if}
<li{$3}><a href="{$cart}"><span>{#link_cart#}</span></a></li>
<li{$4}><a href="{$checkout}"><span>{#link_checkout#}</span></a></li>
{if $smarty.session.customer_id}
<li{$5}><a href="{$logoff}"><span>{#link_logoff#}</span></a></li>
{else}
<li{$6}><a href="{$login}"><span>{#link_login#}</span></a></li>
{/if}
</ul>
</div>

Каждая строка списка имеет свою переменную — li{$1}, li{$2} и так далее. Эти переменные служат для того, чтобы определять текущую страницу и применять к ней стиль current. Другими словами, выделять кнопку со ссылкой на страницу, если мы на ней же и находимся.
Эти переменные записаны в файле includes/header.php в самом конце файла, начиная с:

// Метки для закладок
 
if (strstr($PHP_SELF, FILENAME_DEFAULT)) {
$vamTemplate->assign('1',' class="current"');
}
....................

Для того, чтобы выделение работало и для добавленных ссылок, создадим переменные также и для этих страниц. Делается это по аналогии с теми, которые уже имеются. Например, для страницы с отзывами нужно добавить:

if (strstr($PHP_SELF, FILENAME_REVIEWS)) {
$vamTemplate->assign('9',' class="current"');
}

FILENAME_REVIEWS — в данном случае, метка нужной нам страницы, посмотреть которые можно в файле includes/filenames.php. Цифра 9 в конструкции assign ('9',' class="current"') — новая переменная {$9} в шаблоне.
И еще один пример, для более сложной страницы, например, для страницы «Контакт».

if (strstr($PHP_SELF, FILENAME_CONTENT) && $_GET['coID'] == 7) {
$vamTemplate->assign('10',' class="current"');
}

Как видите, мы добавили && $_GET['coID'] == 7, где 7 — соответствующий айди информационной страницы.
Ну, а в меню шаблона, добавляем:

<li{$9}><a href="reviews.php"><span>{#link_reviews#}</span></a></li>
<li{$10}><a href="shop_content.php?coID=7" class="last">
<span>{#link_contact_us#}</span></a></li>

И не забудьте добавить link_reviews и link_contact_us в языковые файлы. Хотя если, язык у Вас только один, то можно просто написать текстом, не используя языковые метки.

 

Выводим в шаблон контактные данные магазина (VAM shop)

Часто нужно вывести название и контактные данные магазина на страницах шаблона. Название магазина выводится меткой {$store_name}. Для остальных же данных меток нет.

Но их можно легко вывести, вставляя в нужные места следующие константы:

  • {$smarty.const.STORE_TELEPHONE} — телефон;
  • {$smarty.const.STORE_OWNER} — владелец;
  • {$smarty.const.STORE_OWNER_EMAIL_ADDRESS} — E-Mail адрес;
  • {$smarty.const.STORE_ICQ} — ICQ;
  • {$smarty.const.STORE_SKYPE} — Skype;
  • {$smarty.const.EMAIL_FROM} — E-Mail от;
  • {$smarty.const.STORE_NAME_ADDRESS} — адрес и телефон магазина.

 

Индикатор статуса ICQ и Skype в боксе контент (VAM shop)

В VAM shop боксе «Контент» кроме ссылок на соответствующие статьи выводятся телефон, icq и Skype, если Вы их указали в админке Настройки — Мой магазин. Немного улучшим функциональность, разместив индикаторы статуса.

 

Меняем код в боксе templates/ваш шаблон/boxes/box_content.html

{if $smarty.const.STORE_ICQ}
<p>
{#text_icq#} {$smarty.const.STORE_ICQ}
</p>
{/if}
{if $smarty.const.STORE_SKYPE}
<p>
{#text_skype#} {$smarty.const.STORE_SKYPE}
</p>
{/if}

на следующий:

{if $smarty.const.STORE_ICQ}
<p>
<img src="http://status.icq.com/online.gif?icq={$smarty.const.STORE_ICQ}&img=5">
{$smarty.const.STORE_ICQ}
</p>
{/if}
{if $smarty.const.STORE_SKYPE}
<script type="text/javascript" src="http://download.skype.com/share/
kypebuttons/js/skypeCheck.js"></script>
<p><a href="skype:{$smarty.const.STORE_SKYPE}?call">
<img src="http://mystatus.skype.com/smallicon/
{$smarty.const.STORE_SKYPE}" style="border: none;" width="16"
height="16" alt="Мой статус" /></a>
{$smarty.const.STORE_SKYPE}</p>{/if}

Теперь слева от номерков будут отображаться иконки статуса.

 

Корзина вида «В корзине Х товаров» для VAM Shop

Мне приходится часто натягивать «монстровские» шаблоны. А в них бокс корзины выглядит вот так: «now in your cart 5 items». По умолчанию в VAM Shop'е совсем другой текст — перечисление товара с общей суммой. Бокс меняется довольно просто.

Меняем код бокса templates/ваш шаблон/boxes/box_cart.html на такой:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{config_load file="$language/lang_$language.conf" section="boxes"}
{config_load file="$language/lang_$language.conf" section="index"}
{if $deny_cart neq 'true'}
<!-- Бокс корзина -->
<div id="divShoppingCart">
<div id="boxCart">
<div class="boxheader">
<p><a href="{$LINK_CART}">{#heading_cart#}:</a></p>
</div>
<div class="boxcontent">
{if $empty=='false'}
<p>В Вашей корзине {php}echo $_SESSION['cart']->count_contents();{/php} товаров</p>
{else}
<p>
{#text_empty_cart#}
</p>
{/if}
</div>
</div>
{/if}

Если нужно вывести не только сумму товаров, но и количество, то добавляем

1
на сумму {$TOTAL}

Как видите, это не сложно.

 

Вывод в зависимости от текущего языка (VAMshop)

Иногда нужно вывести определный код в зависимости от того, какой язык в данный момент активен. Например, показ банеров в зависимости от языка.

Делаем это, используя следующее условие в соответствующем файле шаблона:

{if $smarty.session.language == 'russian'}
нужный код для русского языка
{/if}
Pages:   1 | 2  Next