[Mod] Выкладываю готовое решение "Watermark" для Shop Script

Тема в разделе "Shop-script", создана пользователем baltazor-vova, 5 дек 2009.

Статус темы:
Закрыта.
  1. baltazor-vova

    baltazor-vova Постоялец

    Регистр.:
    4 авг 2009
    Сообщения:
    79
    Симпатии:
    18
    Благодаря разработкам в этому посту http://www.nulled.ws/showthread.php?p=969750&highlight=watermark#post969750 удалось реализовать накладку надписи на ваши картинки, так как в том посту зделали накладку надписи на картинку только для product_detailed и тока при ее увеличении здесь я детально опишу как зделать накладку надписи на все фото включая: (product_brief.tpl.html product_detailed.tpl.html и естественно на "новинки" "спецпредложения" )
    1) распаковуем архив и бросаем в корень сайта
    2) в файле архива image.php - меняем название своей надписи на фото которое будет у вас в дальнейшем...
    3) открываем файл шаблона product_brief.tpl.html
    ищем
    PHP:
    {if $product_info.thumbnail}
            <
    class="olive" href="index.php?productID={$product_info.productID}">
                <
    img src="products_pictures/{$product_info.thumbnail}
                    
    alt="{$product_info.name}
                    
    border=0><br>
                {
    $smarty.const.MORE_INFO_ON_PRODUCT}
            </
    a><br><br>
        {else} 
            {if 
    $product_info.picture}
                <
    class="olive" href="index.php?productID={$product_info.productID}">
                    <
    img src="products_pictures/{$product_info.picture}
                        
    alt="{$product_info.name}
                        
    border=0>
                    {
    $smarty.const.MORE_INFO_ON_PRODUCT}
                </
    a><br><br>
            {/if}
        {/if}
    заменяем
    PHP:
    {if $product_info.thumbnail}
            <
    class="olive" href="index.php?productID={$product_info.productID}">
                <
    img src="image.php?main=products_pictures/{$product_info.thumbnail}
                    
    alt="{$product_info.name}
                    
    border=0><br>
                {
    $smarty.const.MORE_INFO_ON_PRODUCT}
            </
    a><br><br>
        {else} 
            {if 
    $product_info.picture}
                <
    class="olive" href="index.php?productID={$product_info.productID}">
                    <
    img src="image.php?main=products_pictures/{$product_info.picture}
                        
    alt="{$product_info.name}
                        
    border=0>
                    {
    $smarty.const.MORE_INFO_ON_PRODUCT}
                </
    a><br><br>
            {/if}
        {/if}
    4) открываем файл шаблона product_detailed.tpl.html - здесь намного сложнее так как много кто использует "highslide, lightbox" для увелечения картинки в моем случаи стоит "highslide" вот код который нада записать в файл вашего шаблона
    ищем
    PHP:
    {if $product_info.picture}
                    {if 
    $product_info.big_picture}
                        {if !
    $printable_version}<class="olive" href="/products_pictures/{$product_info.big_picture}class="highslide" onclick="return hs.expand(this, {literal}{captionId: 'caption1'}{/literal})"><img id="thumb1" border="0" src="/products_pictures/{$product_info.picture}alt="{$product_info.name}"></a>{/if}
                            {if !
    $printable_version}<br>
    заменяем
    PHP:
    {if $product_info.picture}
                    {if 
    $product_info.big_picture}
                        {if !
    $printable_version}<class="olive" href="image.php?main=products_pictures/{$product_info.big_picture}class="highslide" onclick="return hs.expand(this, {literal}{captionId: 'caption1'}{/literal})"><img id="thumb1" border="0" src="image.php?main=products_pictures/{$product_info.picture}alt="{$product_info.name}"></a>{/if}
                            {if !
    $printable_version}<br>
    ищем
    PHP:
    <class="olive" href="/products_pictures/{$product_info.big_picture}onclick="return hs.expand(this, {literal}{thumbnailId: 'thumb1',captionId: 'caption1'}{/literal})" style="font-size: 90%;"><center>{$smarty.const.ENLARGE_PICTURE}</center></a> <class='highslide-caption' id='caption1'><b>{$product_info.name}</b><br>{$smarty.const.CLOSE_WINDOW}</a>
    заменяем
    PHP:
    <class="olive" href="image.php?main=products_pictures/{$product_info.big_picture}onclick="return hs.expand(this, {literal}{thumbnailId: 'thumb1',captionId: 'caption1'}{/literal})" style="font-size: 90%;"><center>{$smarty.const.ENLARGE_PICTURE}</center></a> <class='highslide-caption' id='caption1'><b>{$product_info.name}</b><br>{$smarty.const.CLOSE_WINDOW}</a>
    ищем
    PHP:
    </td></tr></table>
                        {/if}
                    {else}
                        <
    img src="/products_pictures/{$product_info.picture}border=0 alt="{$product_info.name|escape:'html'}">
                    {/if}
                {else}
                    {if 
    $product_info.thumbnail}
                        {if 
    $product_info.big_picture}
                            {if !
    $printable_version}<a href="/products_pictures/{$product_info.big_picture}class="highslide" onclick="return hs.expand(this, {literal}{captionId: 'caption1'}{/literal})"><img id="thumb1" border="0" src="/products_pictures/{$product_info.thumbnail}alt="{$product_info.name}class="spacel"></a><br>
                                {/if}
                            <
    img border=0 src="/products_pictures/{$product_info.thumbnail}alt="{$product_info.name}"></a>
                                {if !
    $printable_version}<br>
                                <
    table class="voting"><tr><td><img src="images/enlarge.gif"></td><td>
                                <
    class="olive" href="/products_pictures/{$product_info.big_picture}onclick="return hs.expand(this, {literal}{thumbnailId: 'thumb1',captionId: 'caption1'}{/literal})" style="font-size: 90%;"><center>{$smarty.const.ENLARGE_PICTURE}</center></a> <class='highslide-caption' id='caption1'><b>{$product_info.name}</b><br>{$smarty.const.CLOSE_WINDOW}</a>
                            </
    td></tr></table>
                            {/if}
                        {else}
                              <
    img border=0 src="/products_pictures/{$product_info.thumbnail}alt="{$product_info.name}">
                        {/if}
                    {/if}
                {/if}
    заменяем
    PHP:
    </td></tr></table>
                        {/if}
                    {else}
                        <
    img src="image.php?main=products_pictures/{$product_info.picture}border=0 alt="{$product_info.name|escape:'html'}">
                    {/if}
                {else}
                    {if 
    $product_info.thumbnail}
                        {if 
    $product_info.big_picture}
                            {if !
    $printable_version}<a href="image.php?main=products_pictures/{$product_info.big_picture}class="highslide" onclick="return hs.expand(this, {literal}{captionId: 'caption1'}{/literal})"><img id="thumb1" border="0" src="image.php?main=products_pictures/{$product_info.thumbnail}alt="{$product_info.name}class="spacel"></a><br>
                                {/if}
                            <
    img border=0 src="image.php?main=products_pictures/{$product_info.thumbnail}alt="{$product_info.name}"></a>
                                {if !
    $printable_version}<br>
                                <
    table class="voting"><tr><td><img src="images/enlarge.gif"></td><td>
                                <
    class="olive" href="image.php?main=products_pictures/{$product_info.big_picture}onclick="return hs.expand(this, {literal}{thumbnailId: 'thumb1',captionId: 'caption1'}{/literal})" style="font-size: 90%;"><center>{$smarty.const.ENLARGE_PICTURE}</center></a> <class='highslide-caption' id='caption1'><b>{$product_info.name}</b><br>{$smarty.const.CLOSE_WINDOW}</a>
                            </
    td></tr></table>
                            {/if}
                        {else}
                              <
    img border=0 src="image.php?main=products_pictures/{$product_info.thumbnail}alt="{$product_info.name}">
                        {/if}
                    {/if}
                {/if}
    5) ну а если у Вас стоит по стандарту увеличение фото без всяких "highslide, lightbox" в product_detailed тогда вот этот код
    ищем
    PHP:
    {* product detailed information view *}
    {if 
    $product_info ne NULL}
    <
    table width=95border=0 cellspacing=1 cellpadding=class="voting">
        <
    tr>
            <
    td width=1align=center valign=top border=0>
    {if 
    $product_info.picture}
                    {if 
    $product_info.big_picture}
                        {if !
    $printable_version}<a href="javascript:open_window('products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{/if}<img border=0 src="products_pictures/{$product_info.picture}alt="{$product_info.name}"></a>
                            {if !
    $printable_version}<br>
                            <
    table class="voting"><tr><td><img src="images/enlarge.gif"></td><td>
                                <
    class="olive" href="javascript:open_window('products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{$smarty.const.ENLARGE_PICTURE}</a>
                            </
    td></tr></table>
                        {/if}
                    {else}
                        <
    img src="products_pictures/{$product_info.picture}border=0 alt="{$product_info.name}">
                    {/if}
                {else}
                    {if 
    $product_info.thumbnail}
                        {if 
    $product_info.big_picture}
                            {if !
    $printable_version}<a href="javascript:open_window('products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{/if}<img border=0 src="products_pictures/{$product_info.thumbnail}alt="{$product_info.name}"></a>{if !$printable_version}<br>
                                <
    table class="voting"><tr><td><img src="images/enlarge.gif"></td><td>
                                <
    class="olive" href="javascript:open_window('products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{$smarty.const.ENLARGE_PICTURE}</a>
                            </
    td></tr></table>
                            {/if}
                        {else}
                              <
    img border=0 src="products_pictures/{$product_info.thumbnail}alt="{$product_info.name}">
                        {/if}
                    {/if}
                {/if}
    заменяем
    PHP:
    {* product detailed information view *}
    {if 
    $product_info ne NULL}
    <
    table width=95border=0 cellspacing=1 cellpadding=class="voting">
        <
    tr>
            <
    td width=1align=center valign=top border=0>
    {if 
    $product_info.picture}
                    {if 
    $product_info.big_picture}
                        {if !
    $printable_version}<a href="javascript:open_window('image.php?main=products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{/if}<img border=0 src="image.php?main=products_pictures/{$product_info.picture}alt="{$product_info.name}"></a>
                            {if !
    $printable_version}<br>
                            <
    table class="voting"><tr><td><img src="images/enlarge.gif"></td><td>
                                <
    class="olive" href="javascript:open_window('image.php?main=products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{$smarty.const.ENLARGE_PICTURE}</a>
                            </
    td></tr></table>
                        {/if}
                    {else}
                        <
    img src="image.php?main=products_pictures/{$product_info.picture}border=0 alt="{$product_info.name}">
                    {/if}
                {else}
                    {if 
    $product_info.thumbnail}
                        {if 
    $product_info.big_picture}
                            {if !
    $printable_version}<a href="javascript:open_window('image.php?main=products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{/if}<img border=0 src="image.php?main=products_pictures/{$product_info.thumbnail}alt="{$product_info.name}"></a>{if !$printable_version}<br>
                                <
    table class="voting"><tr><td><img src="images/enlarge.gif"></td><td>
                                <
    class="olive" href="javascript:open_window('image.php?main=products_pictures/{$product_info.big_picture}',{$product_info[16]},{$product_info[17]});">{$smarty.const.ENLARGE_PICTURE}</a>
                            </
    td></tr></table>
                            {/if}
                        {else}
                              <
    img border=0 src="image.php?main=products_pictures/{$product_info.thumbnail}alt="{$product_info.name}">
                        {/if}
                    {/if}
                {/if}
    1) Новинки
    Новинки могут быть у Вас отдельной страничкой или же идти в шаблоне home.tpl.html, index.tpl.html
    собственно реализация ишем в файлах шаблона (home.tpl.html index.tpl.html или же отдельный файл шаблона для новинок)ищем для "Новинок" код:
    PHP:
    <a href="index.php?productID={$new_product[i][2]}target="_blank"><img border="0" width="150" src="/products_pictures/{$new_product[i][0]}border=0></a>
    заменяем:
    PHP:
    <a href="index.php?productID={$new_product[i][2]}target="_blank"><img border="0" width="150" src="image.php?main=products_pictures/{$new_product[i][0]}border=0></a>
    2) Реализация на "Спецпредложения"
    Открываем файл шаблона home.tmpl.html ищем код:
    PHP:
    {* now show special offers *}
    <
    p>
    <
    center>
    <
    table border=0 width="464" cellspacing=1 cellpadding=5>
    {
    section name=i loop=$special_offers} {if $smarty.section.i.index is div by 2}<tr>{/if}
    <
    td valign=top>
     <
    table border=0 width=100bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0 cellspacing=1>
     
    <tr><td>
      <
    div align="left">
      <
    table border=0 bgcolor=white width=100%>
       <
    tr>
       <
    td colspan=2><a href="index.php?productID={$special_offers[i][0]}"><img src="products_pictures/{$special_offers[i][2]}border=0></a></td>
       </
    tr>
       <
    tr>
       <
    td align=center class="product"><a href="index.php?productID={$special_offers[i][0]}">
        {
    $special_offers[i][1]}</a></td>
       </
    tr>
       <
    tr>
       <
    td align=center class="product_price"><b>{$special_offers[i][3]}</b></td>
       </
    tr>
      </
    table>
         </
    div>
     </
    td></tr>
     </
    table>
    </
    td>
    {if (
    $smarty.section.i.index+1is div by 3}</tr>{/if}
    {/
    section}
    заменяем
    PHP:
    {* now show special offers *}
    <
    p>
    <
    center>
    <
    table border=0 width="464" cellspacing=1 cellpadding=5>
    {
    section name=i loop=$special_offers} {if $smarty.section.i.index is div by 2}<tr>{/if}
    <
    td valign=top>
     <
    table border=0 width=100bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0 cellspacing=1>
     
    <tr><td>
      <
    div align="left">
      <
    table border=0 bgcolor=white width=100%>
       <
    tr>
       <
    td colspan=2><a href="index.php?productID={$special_offers[i][0]}"><img src="image.php?main=products_pictures/{$special_offers[i][2]}border=0></a></td>
       </
    tr>
       <
    tr>
       <
    td align=center class="product"><a href="index.php?productID={$special_offers[i][0]}">
        {
    $special_offers[i][1]}</a></td>
       </
    tr>
       <
    tr>
       <
    td align=center class="product_price"><b>{$special_offers[i][3]}</b></td>
       </
    tr>
      </
    table>
         </
    div>
     </
    td></tr>
     </
    table>
    </
    td>
    {if (
    $smarty.section.i.index+1is div by 3}</tr>{/if}
    {/
    section}
    Вот собственно и все, если понравилась моя идея не забываем сказать спасибо........:yahoo::yahoo:
     

    Вложения:

    • Watermark.rar
      Размер файла:
      38,2 КБ
      Просмотров:
      107
    Кувшинчик, Tonio, taas и 5 другим нравится это.
  2. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.126
    Симпатии:
    668
    проблема в том, что при каждом таком наложении, будет обращение к серверу, что может существенно увеличить нагрузку, если много товаров и большая посещаемость.
     
  3. baltazor-vova

    baltazor-vova Постоялец

    Регистр.:
    4 авг 2009
    Сообщения:
    79
    Симпатии:
    18
    З технической стороны я согласен, но лично у меня база из 8000 продуктов, и вот что скажу, магазин работает отлично, как таких заторможений нет, если внимательно смотреть код то за наложение надписи идет эта функция
    PHP:
    image.php?main=
    а дальше путь где лежат картинки товара /product_pictures, может быть и не так вас понял но там нет такого как "при каждом наложении...." наложение идет мертво на все картинки продуктов.....
    уверенно скажу глюков магазина не вижу......
     
  4. Crazy_Serg

    Crazy_Serg Постоялец

    Регистр.:
    13 сен 2009
    Сообщения:
    83
    Симпатии:
    16
    Оно каждый раз генерит фотку на лету, поэтому нагрузка увеличивается, как по мне наложить 1 раз правильнее:
    1. при загрузке,
    2. запускаемым периодически скриптом (но надо проверять уже обработванные фото)
    3. На локальной машине, и только потом заливать
     
  5. baltazor-vova

    baltazor-vova Постоялец

    Регистр.:
    4 авг 2009
    Сообщения:
    79
    Симпатии:
    18
    я в этом спорить не буду , а судить из того что например ты не тестил я думаю ты не можешь, я выкинул это из проверенного мною источника, магазин работает стабильно и быстро, лично я не наблюдаю там как такую нагрузку....
    Да из твоих слов:"На локальной машине, и только потом заливать" тестил я и на локальной машине, а щас з большим удовольствием пользуюсь у себя в магазине....
    - "но надо проверять уже обработванные фото" - фото которые у меня раньше заливались, после подключения скрипта автоматом накладываютя "waremarkerom"
    "Оно каждый раз генерит фотку на лету, поэтому нагрузка увеличивается" - это вполне спорный вопрос, если ты внимательно смотрел код так по стандарту путь к файлу рисунка продукта идет
    PHP:
    href="/products_pictures/{$product_info.big_picture}"
    а скрипт который накладывает надпись на фото продукта имеет код такого вида
    PHP:
    href="image.php?main=products_pictures/{$product_info.big_picture}"
    . Так что думаю тебе лучше посмотреть и потестить даный метод, ну а если у тебя есть лучшее предложения которое к сожелению я здесь не нашел выложи пожалуста и мы все будем говорить тебе Большое спасибо......
     
  6. Welho®

    Welho® Предвестник пьянки

    Регистр.:
    4 дек 2007
    Сообщения:
    855
    Симпатии:
    330
    ну чего вы спорите?
    есть метод наложения "на лету"
    есть метод выборочного наложения(намертво) при загрузке изображения

    кому что нравится, тем и пользуйтесь
    ссылки не просите, все есть на форуме
    за флуд и оффтоп последствия будут предсказуемы
     
  7. alexmar

    alexmar Постоялец

    Регистр.:
    16 авг 2008
    Сообщения:
    51
    Симпатии:
    5
    при установке данного скрипта который накладывает надпись на фото продукта имеет код такого вида
    PHP:
    href="image.php?main=products_pictures/{$product_info.big_picture}"
    Сделал как всё описано выше и картинки не показываются (не грузятся:(nezn:
     
  8. baltazor-vova

    baltazor-vova Постоялец

    Регистр.:
    4 авг 2009
    Сообщения:
    79
    Симпатии:
    18
    Кинь свой код я посмотрю....:)
     
Статус темы:
Закрыта.