Доработки и дополнения для Shop Script

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
в index.tpl.html если хотите чтобы случайный товар был на всех страницах сайта
или в home.tpl.html если только на главной
в нужное место вставьте код:
Код:
{* show one of special offers *}
{counter name='special_offers_count' start=0 skip=1 print=false}
{section name=i loop=$special_offers}
{counter name=special_offers_count print=false}
{/section}
{counter name=special_offers_count assign="special_offers_count"}
{if $special_offers_count > 1}
{math equation="rand() % (maximum-1)" maximum=$special_offers_count assign="special_offers_random_index"}
<table border="0" cellpadding="0" cellspacing="0" width=90% height=100%>
<tr>
<td width=100% height=100%>
<a href="index.php?productID={$special_offers[$special_offers_random_index][0]}">{$special_offers[$special_offers_random_index][1]}</a><p>
<b><font class=cat color=red>{$special_offers[$special_offers_random_index][3]}</b></font><p>
<a href="index.php?productID={$special_offers[$special_offers_random_index][0]}"><img align=left src="products_pictures/{$special_offers[$special_offers_random_index][2]}" border=0 alt="{$special_offers[$special_offers_random_index][1]}"></a>
</tr>
</table>
{/if}
{* end of special offers*}
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Как можно изменить счётчик нумерации заказов?

Откройте phpMyAdmin, выберите в ней базу данных, с которой Вы работаете, нажмите на ссылку SQL и выполните следующий запрос:

ALTER TABLE SS_orders AUTO_INCREMENT = число

где "число" - это номер, с которого будет продолжаться нумерация заказов.

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

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Вставка визуального редактора в новости:
/templates/backend/news.admin_list.tpl.html

Ищем:
<textarea name='DATA[textToPublication]' cols=40 rows=10>{$NewsInfo.textToPublication}</textarea>
Заменяем на:
Код:
<div>
<input type="hidden" id="DATA[textToPublication]" name="DATA[textToPublication]" value="{$NewsInfo.textToPublication}" style="display:none" /><input type="hidden" id="DATA[textToPublication]___Config" value="" style="display:none" /><iframe id="DATA[textToPublication]___Frame" src="FCKeditor/editor/fckeditor.html?InstanceName=DATA[textToPublication]&amp;Toolbar=Default" width="500" height="300" frameborder="0" scrolling="no"></iframe></div>
Ищем:
<input type=hidden name="DATA[NID]" value="{$NewsInfo.NID}" />
<table>
Заменяем на:
<input type=hidden name="DATA[NID]" value="{$NewsInfo.NID}" />
<table width="100%">
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Как можно поменять текст писем-уведомлений, уходящих клиенту на почту после оформления заказа?

Для изменения текста email-уведомления, Вам необходимо изменить один или оба из нижеуказанных файлов:

Шаблон уведомительного письма, который состоит из констант Smarty (например, $smarty.const.EMAIL_SINCERELY) и переменных из базы данных Вашего магазина (например, $order_id).
В магазинах Shop-Script FREE это письмо находится в папке templates/tmpl1/mail, в директории, где установлен Shop-Script.
В магазинах Shop-Script PRO и Shop-Script PREMIUM уведомительное письмо (order_notification.txt) находится в папке templates/email, в директории, где установлен Shop-Script.
Текст констант Smarty, используемый в сообщении о заказе, находится в языковом файле (languages/russian.php, если интерфейс Вашего магазина установлен на русском языке). Вы можете добавить в шаблон новые константы Smarty и переменные базы данных, удалить существующие и изменить их месторасположение в тексте шаблона.


Языковой файл (languages/russian.php). В этом файле Вы можете изменить текст констант Smarty или добавить новые константы и соответствующий им текст. Например, Вы можете изменить текст константы $smarty.const.EMAIL_OUR_MANAGER_WILL_CONTACT_YOU с “Наш менеджер свяжется Вами в ближайшее время” на “Наш менеджер свяжется Вами как только Ваш заказ будет готов к отправке”.
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Как убрать копейки:
\core_functions\functions.php
замени это:

Код:
function _formatPrice($price)
{
    $price = (string)$price;
    if ( !strstr($price,".") )
        $price .= ".00";
    $oldPrice = $price;      
    $res = "";
    $i = 0;
    for( $i=strlen($price)-1; $i>=0; $i-- )
    {
        if ( $price[$i] == "." )
            break;
        else

на это:
Код:
function _formatPrice($n)
{
    $n=(int)$n;
    return trim(substr($n,0,strlen($n)%3).preg_replace("/(\d{3})/"," \\1",substr($n,strlen($n)%3)));
}
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Вывод новинок в блоке:

1) вставить этот код в includes/home.php

Код:
$new_p = array();
$n = db_query("SELECT productID, name, default_picture, Price, brief_description FROM ".PRODUCTS_TABLE." WHERE enabled=1 AND date_added >='".date("Y-m-d H:i:s", time()-10*86400)."' ORDER BY productID DESC LIMIT 0,3");
while ($row = db_fetch_row($n))
{
$p = db_query("SELECT filename, thumbnail FROM ".PRODUCT_PICTURES." where photoID=".$row[2]);
$p_row = db_fetch_row( $p );
if ( $p_row )
{
if ( file_exists( "./products_pictures/".$p_row[0] ) )
{
$row1[0] = $p_row[0];
$row1[1] = $p_row[1];
$row1[2] = $row[0];
$row1[3] = $row[1];
$row1[4] = $row[3];
$row1[5] = $row[4];
$new_p[] = $row1;
}
}
}
$smarty->assign("new_product", $new_p);

-10* значит, за какой период 30, 40, сколько угодно дней.
productID DESC LIMIT 0,3 значит выводить 3 новинок, можно сколько угодно.

2) этот код вставить в index.tpl.html шаблона вставляйте в нужное место.

Код:
<table border="0" align="center" cellpadding="5" cellspacing="1">
      {section name=i loop=$new_product}
      {if $smarty.section.i.index is div by 1}
          <tr>
            <td valign="top"><center>
              <a href="index.php?productID={$new_product[i][2]}">{$new_product[i][3]}</a>
            </center>            </td>
          </tr>
        <tr>{/if}
        <td valign="top"><table border="0" width="100%" bgcolor="#{$smarty.const.CONF_MIDDLE_COLOR}" cellpadding="0" cellspacing="1">
                    <tr>
                      <td><table border="0" bgcolor="white" width="100%">
                          <tr>
                            <td colspan="2"><div align="center"><a href="index.php?productID={$new_product[i][2]}"><img src="./products_pictures/{$new_product[i][0]}" alt="{$new_product[i][4]} руб." border="0"></a></div></td>
                          </tr>
                      </table></td>
                    </tr>
                </table></td>
    
        {if ($smarty.section.i.index+1) is div by 1}</tr>
      {/if}
      {/section}
    </table>
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Как сделать что бы новость на главной выводилось не заголовком а короткий текст а потом уже все новости...

в нужное место в news.frontend.shortlist.tpl.html твоего шаблона вставь
{$news_array.textToPublication|truncate:150}
где 150 - количество символов, которое нужно выводить...можно ставить сколько угодно, это нужно, что б длинна сообщений была одинаковая.
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Как увеличить количество символов в Артикуле товара:

В товарах в окне "Внутренний код (артикул)" помещается только 25 символов.
Если необходимо расширить доступное число символов в окне Артикул.

Решение:
Сменить в бд длину поля product_code с VARCHAR(25) на VARCHAR(255) (таблица SS_products)