Как добавить рекламный скрипт в топ-заголовок в Prestashop-1.6?

Как добавить рекламный скрипт в топ-заголовок в Prestashop-1.6?

01.09.2014 02:32:16 Просмотров 55 Источник

Я использую prestashop 1.6 . Я хочу добавить объявления google в верхней части заголовка и внизу в нижнем колонтитуле. Я пробовал много способов, но все они не увенчались успехом. Пожалуйста, как я могу добавить скрипт на мой сайт? Заранее спасибо.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/25603817/how-to-add-ad-script-in-top-header-in-prestashop-1-6#comment51419486_25603817
Это может быть полезно : gist.github.com/hereswhatidid/8c8edef106ee95138b03 " PrestaShop Media class переопределяет, чтобы позволить заставить некоторые встроенные JavaScripts оставаться встроенными."

Ответы - Как добавить рекламный скрипт в топ-заголовок в Prestashop-1.6? / How to add ad script in top- header in Prestashop - 1.6?

Prescol

10.11.2014 02:19:21

Правильным способом должно быть использование модуля. Также проверьте, блокирует ли функция htmlpurifier теги скриптов.

Johan Mendez

29.07.2015 09:45:10

Немного поздно, но это решается с помощью {literal} //script here {/literal}. Он должен использоваться только в том случае, если в вашем скрипте есть фигурные скобки, но он работает.

belford

31.07.2015 12:37:30

Вам нужно найти заголовок.TPL файл: https://github.com/PrestaShop/PrestaShop/blob/develop/themes/default-bootstrap/header.tpl

<head>
    {$HOOK_HEADER}
    <link rel="stylesheet" href="http{if Tools::usingSecureMode()}s{/if}://fonts.googleapis.com/css?family=Open+Sans:300,600&amp;subset=latin,latin-ext" type="text/css" media="all" />
    <!--AdWords Code-->
</head>

Не забудьте отключить параметры CCC для JS (особенно перемещение JavaScript в конец): enter image description here

Все, что находится {literal}{/literal}, не интерпретируется, а отображается как есть

{literal}
<script type="text/javascript">
// ...
</script>
{/literal}

{ldelim}и {rdelim}используются для экранирования разделителей шаблонов, по умолчанию {и }:

<script type="text/javascript">
function foo() {ldelim}
    // ...
{rdelim}
</script>

дает:

<script type="text/javascript">
function foo() {
    // ...
}
</script>

Если у вас все еще есть проблема, вы можете попробовать переопределить класс Media:

https://gist.github.com/hereswhatidid/8c8edef106ee95138b03

 <p>Some HTML goes here</p>
 <script type="text/javascript" data-keepinline="true">
 // this script will remain here when rendered
 alert( "hello!" );
 </script>
 <script type="text/javascript">
 // this script will be forced to the bottom of the page
 alert( "hello again!" );
 </script>

Средства массовой информации.РНР:

<?php
Class Media extends MediaCore
{
    public static function deferScript($matches)
    {
        if (!is_array($matches))
            return false;
        $inline = '';

        if (isset($matches[0]))
            $original = trim($matches[0]);

        if (isset($matches[1]))
            $inline = trim($matches[1]);

        /* This is an inline script, add its content to inline scripts stack then remove it from content */
        if (!empty($inline) && preg_match('/<\s*script(?!.*data-keepinline)[^>]*>/ims', $original) !== 0 && Media::$inline_script[] = $inline)
            return '';

        /* This is an external script, if it already belongs to js_files then remove it from content */

        preg_match('/src\s*=\s*["\']?([^"\']*)[^>]/ims', $original, $results);
        if (isset($results[1]) && (in_array($results[1], Context::getContext()->controller->js_files) 
            || in_array($results[1], Media::$inline_script_src)))
            return '';

        /* return original string because no match was found */
        return $original;
    }
}
Закрыть X