Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 Ограничение доступа и скрытие картинок
Silverwolf
Новичок
Сообщений: 11
Регистрация: 18-08-2009


18-08-2009 19:16
Доброго времени суток всем.

Столкнулся с небольшой проблемой и не знаю как её решить.
А нужно сделать следующее:

В идеале необходимо чтобы простые посетители магазина не видели изображения товара в определённой категории. Тоесть чтобы во всех остальных категориях всё было как в стандартной Presta, а в определённой ограничение на просмотр изображения товара (Необходимо зарегистрироваться чтобы видеть изображения)

Возможный другой вариант, ограничить доступ к конкретной категории товаров для простых (не зарегистрировавшихся посетителей)

Если у вас есть какие нибудь соображения по данному вопросу пожалуйста отпишитесь в данной теме.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


19-08-2009 08:54
все это легко сделать через смарти, открываем темплейт каталога и добавляем перед выводом каталога if с проверкой на сущ. имя. и категория=ид_категории.
Все)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Silverwolf
Новичок
Сообщений: 11
Регистрация: 18-08-2009


19-08-2009 15:00
Можешь пример кода привести для наглядности.
прописываем условие через if (с проверкой на сущ. имя.) как сделать проверку на существующее имя? С id категории всё более менее ясно.

К слову сказать вышеописанный тобой способ скрывает изображения товара от незарегистрированных пользователей, или закрывает им доступ в определённую категорию?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


19-08-2009 17:27
Код:
{if $firstName AND $category->id == 1}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Silverwolf
Новичок
Сообщений: 11
Регистрация: 18-08-2009


20-08-2009 00:44
Спасибо, всё работает, но у меня происходит полное скрытие записи, то есть невидно изображения товара, но и сам товар.

Как сделать так чтобы были скрыты только изображения товара (для незарегистрировавшихся) а его описание и он сам были видны для всех.

У меня твоя сборка (0.3), так что если несложно напиши поточнее где именно нужно будет вставить код и в каком файле, в какой строчке.


Сообщение отредактировано Silverwolf 20-08-2009 01:54 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


20-08-2009 02:41
Файл, строчка это все муторно искать, делаем так. открываем нужную страницу в браузере, смотрим исходный код страницы находим информацию которую нужно убрать и по тегам ищем в темплайтах и там уже
Код:
{if $firstName AND $category->id == 1}

незабываем закрывать if.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Silverwolf
Новичок
Сообщений: 11
Регистрация: 18-08-2009


20-08-2009 03:36
Сделал так

Файл Product.tpl

// Images
{if $firstName AND $category->id == 5}
var img_prod_dir = '{$img_prod_dir}';
var combinationImages = new Array();
{foreach from=$combinationImages item='combination' key='combinationId' name='f_combinationImages'}
combinationImages[{$combinationId}] = new Array();
{foreach from=$combination item='image' name='f_combinationImage'}
combinationImages[{$combinationId}][{$smarty.foreach.f_combinationImage.index}] = {$image.id_image|intval};
{/foreach}
{/foreach}

combinationImages[0] = new Array();
{foreach from=$images item='image' name='f_defaultImages'}
combinationImages[0][{$smarty.foreach.f_defaultImages.index}] = {$image.id_image};
{/foreach}{/if}

Изображения действительно убираются, только почему то происходит это не сразу (проходит пара секунд) А главное изображение (Обложка) не убирается.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


20-08-2009 06:24
Сложно через код посмотреть где это все?
Код:
<div id="image-block">
        {if $have_image}
                <img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}" {if $jqZoomEnabled}class="jqzoom" alt="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox')}"{else} title="{$product->name|escape:'htmlall':'UTF-8'}" alt="{$product->name|escape:'htmlall':'UTF-8'}" {/if} id="bigpic"/>
        {else}
            <img src="{$img_prod_dir}{$lang_iso}-default-large.jpg" alt="" title="{$product->name|escape:'htmlall':'UTF-8'}" />
        {/if}
</div>
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Silverwolf
Новичок
Сообщений: 11
Регистрация: 18-08-2009


20-08-2009 15:50
Спасибо.

Сделал так:

<!-- product img-->
{if $firstName AND $category->id == 5}
<div id="image-block">
{if $have_image}
<img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}" {if $jqZoomEnabled}class="jqzoom" alt="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox')}"{else} title="{$product->name|escape:'htmlall':'UTF-8'}" alt="{$product->name|escape:'htmlall':'UTF-8'}" {/if} id="bigpic"/>
{else}
<img src="{$img_prod_dir}{$lang_iso}-default-large.jpg" alt="" title="{$product->name|escape:'htmlall':'UTF-8'}" />
{/if}
</div>
{/if}

Убрал обложку (вроде с кодом ничего не напутал)

<!-- thumbnails -->
{if $firstName AND $category->id == 5}
<div id="views_block" {if count($images) < 2}class="hidden"{/if}>
{if count($images) > 3}<span class="view_scroll_spacer"><a id="view_scroll_left" class="hidden" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Previous'}</a></span>{/if}
<div id="thumbs_list">
<ul style="width: {math equation="width * nbImages" width=80 nbImages=$images|@count}px" id="thumbs_list_frame">
{foreach from=$images item=image name=thumbnails}
{assign var=imageIds value=`$product->id`-`$image.id_image`}
<li id="thumbnail_{$image.id_image}">
<a href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox')}" rel="other-views" class="{if !$jqZoomEnabled}thickbox{/if} {if $smarty.foreach.thumbnails.first}shown{/if}" title="{$image.legend|htmlspecialchars}">
<img id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'medium')}" alt="{$image.legend|htmlspecialchars}" height="{$mediumSize.height}" width="{$mediumSize.width}" />
</a>
</li>
{/foreach}
</ul>
</div>
{if count($images) > 3}<a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Next'}</a>{/if}
</div>
{/if}
{if count($images) > 1}<p class="align_center clear"><a id="resetImages" href="{$link->getProductLink($product)}" onclick="return (false);">{l s='Display all pictures'}</a></p>{/if}
<!-- usefull links-->
<ul id="usefull_link_block">
{if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
<li><a href="javascript:print();">{l s='Print'}</a><br class="clear" /></li>
{if $have_image && !$jqZoomEnabled}
<li><span id="view_full_size" class="span_link">{l s='View full size'}</span></li>
{/if}
</ul>
</div>
{/if}

Убрал превью, вроде тоже всё правильно.


Сообщение отредактировано Silverwolf 20-08-2009 16:57 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Silverwolf
Новичок
Сообщений: 11
Регистрация: 18-08-2009


20-08-2009 16:04
Всё работает если я захожу через нужную категорию, но если через панель просмотренных товаров или скидок то изображения невидно даже если я зарегистрирован. Нужно править и другие файлы шаблона?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >