закрытие ссылок от индексации с помощью jqeury в смs prestashop

leaderdm

Гуру форума
Регистрация
21 Мар 2014
Сообщения
214
Реакции
55
Добрый день, дамы и господа, прошу помощи и мнения. Необходимо закрыть от индексации ссылки. Впервую очередь мне надо закрыть их дублирование на одной странице. Интересует действенный способ закрытие в Престашоп с помощью библиотеки jquery.
Насколько я понял, в корне уже находится эти библиотеки. Достаточно вызвать скрипт и применить.
Я напишу о одном способе, который по идеи должен работать, но у меня к сожалению это не так.
Допустим мне надо закрыть индексацию ссылок слайдов на главной странице. Я захожу в модуль слайдов в своей теме престашопа. Далее в приведенном коде ( пример) я выделил строчки которые добавил и редактировал., а именно - подключил скрипт, использвал тег "спан" для ссылки, и вызвал.
Код:
{if $page_name =='index'}
<!-- Module HomeSlider -->
    {if isset($homeslider_slides)}
    <script type="text/javascript" src="/js/jquery/jquery-1.11.0.min.js"></script>
        <div id="homepage-slider">
            {if isset($homeslider_slides.0) && isset($homeslider_slides.0.sizes.1)}{capture name='height'}{$homeslider_slides.0.sizes.1}{/capture}{/if}
            <ul id="homeslider"{if isset($smarty.capture.height) && $smarty.capture.height} style="max-height:{$smarty.capture.height}px;"{/if}>
                {foreach from=$homeslider_slides item=slide}
                    {if $slide.active}
                        <li class="homeslider-container">
                            <span class="hidden link" data-link="{$slide.url|escape:'html':'UTF-8'}" title="{$slide.legend|escape:'html':'UTF-8'}">
                                <img src="{$link->getMediaLink("`$smarty.const._MODULE_DIR_`homeslider/images/`$slide.image|escape:'htmlall':'UTF-8'`")}"{if isset($slide.size) && $slide.size} {$slide.size}{else} width="100%" height="100%"{/if} alt="{$slide.legend|escape:'htmlall':'UTF-8'}" />
                            </span>
                            {if isset($slide.description) && trim($slide.description) != ''}
                                <div class="homeslider-description">{$slide.description}</div>
                            {/if}
                        </li>
                    {/if}
                {/foreach}
            </ul>
        </div>
        <script>$('.hidden-link').click(function(){window.open($(this).data('link'));return false;});</script>
    {/if}
<!-- /Module HomeSlider -->
По результатам, сайт вообще не запускается. Редактировал все в одном файле. Ничего больше не трогал.
Какие ошибки, и правильно ли я делаю...возможно есть другой способ...Спасибо.
 
Для просмотра ссылки Войди или Зарегистрируйся модуль не поможет?
спасибо, но дорого уж. Мне надо закрыть несколько ссылок для одного сайта. Там все и ручками быстро решается, просто что-то я делаю неправльно, но не знаю почему...Если люди закрывают для опенкарта, джумлы и делают это быстро и просто, то и для престы должно аналогично...хотелось бы узнать что я делаю не так....возможно есть пример
 
На jQuery ничего не выйдет. Так так закрывать от индексирования надо для ботов (Yandex Bot, Google Bot и тд), а боты javascript не выполняют. Для них страница это просто текст. Это только исходный PHP код менять можно
 
На jQuery ничего не выйдет. Так так закрывать от индексирования надо для ботов (Yandex Bot, Google Bot и тд), а боты javascript не выполняют. Для них страница это просто текст. Это только исходный PHP код менять можно
а как тогда решать этот вопрос, если к примеру ссылка формируется во внешнем модуле? Может есть иной способ. Просто у меня на сайте идет дубляж ссылок, в том числе внешних ( к примеру на соц. сети дублирование). Я таким методом хотел закрыть индексирование. Может тогда можно сразу блок запретить. Что первое в голову приходит - запретить через робот.тхт полностью папку с необходимым модулем. Еще слышал что как то перенаправлят с использование .htasses. Что скажите, спасибо..?
 
а как тогда решать этот вопрос, если к примеру ссылка формируется во внешнем модуле? Может есть иной способ. Просто у меня на сайте идет дубляж ссылок, в том числе внешних ( к примеру на соц. сети дублирование). Я таким методом хотел закрыть индексирование. Может тогда можно сразу блок запретить. Что первое в голову приходит - запретить через робот.тхт полностью папку с необходимым модулем. Еще слышал что как то перенаправлят с использование .htasses. Что скажите, спасибо..?
Можно при генерации <head></head> условие ставить. Я не работал с этим движком, но как-то так можно сделать:
PHP:
$no_index = array(
    '/users/',
    '/no_index_derectory/'
);
if(in_array($_SERVER['REQUEST_URI'], $no_index)){
    echo '<meta name="robots" content="noindex,nofollow" />';
}
 
Лично я ручками в шаблоне все позакрывал отдельно, чтобы не гемороится.
 
Лично я ручками в шаблоне все позакрывал отдельно, чтобы не гемороится.
скажите, пожалуйста, как , на небольшом примере...где именно править и как. Я вот приводил выше файл отображения слайдов. и там хотел закрыть ссылки. Изначальный вид кода таков:
Код:
{if $page_name =='index'}
<!-- Module HomeSlider -->
    {if isset($homeslider_slides)}
        <div id="homepage-slider">
            {if isset($homeslider_slides.0) && isset($homeslider_slides.0.sizes.1)}{capture name='height'}{$homeslider_slides.0.sizes.1}{/capture}{/if}
            <ul id="homeslider"{if isset($smarty.capture.height) && $smarty.capture.height} style="max-height:{$smarty.capture.height}px;"{/if}>
                {foreach from=$homeslider_slides item=slide}
                    {if $slide.active}
                        <li class="homeslider-container">
                            <a href="{$slide.url|escape:'html':'UTF-8'}" title="{$slide.legend|escape:'html':'UTF-8'}">
                                <img src="{$link->getMediaLink("`$smarty.const._MODULE_DIR_`homeslider/images/`$slide.image|escape:'htmlall':'UTF-8'`")}"{if isset($slide.size) && $slide.size} {$slide.size}{else} width="100%" height="100%"{/if} alt="{$slide.legend|escape:'htmlall':'UTF-8'}" />
                            </a>
                            {if isset($slide.description) && trim($slide.description) != ''}
                                <div class="homeslider-description">{$slide.description}</div>
                            {/if}
                        </li>
                    {/if}
                {/foreach}
            </ul>
        </div>
    {/if}
<!-- /Module HomeSlider -->
 
Назад
Сверху