Помощь после обновления 9.4->10.5 не могу вернуть самописный хак

Тема в разделе "DLE", создана пользователем Tarasishe, 26 июл 2015.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. Tarasishe

    Tarasishe

    Регистр.:
    26 апр 2008
    Сообщения:
    190
    Симпатии:
    142
    Собственно оочень давно не обновлялся двиг, пришло время...

    Есть модуль корзины, самописный, вставлялся так:

    1. Открываем index.php и находим:

    Код:
    $tpl->compile ( 'main' );
    
    ниже вставляем:

    Код:
    /** * Basket template tag hook **/
    
    $tpl->result['main'] = preg_replace_callback('#\[basket\s+price=[\'|"](.*?)[\'|"]\s+view=[\'|"](.*?)[\'|"]\](.*?)\[/basket\]#is', 'Basket_Hook', $tpl->result['main']);
    
    function Basket_Hook($matches) {
    
        $price = (float) $matches[1];
        $name  = htmlspecialchars($matches[3], ENT_QUOTES);
    
        return '<a href="#" onclick="Basket.addToBasket(\''.$price.'\', \''.$name.'\')">'.$matches[2].'</a>';
    }
    
    /** * Basket END **/
    
    Теперь в любое место сайта вставляем (например в fullstory.tpl вот так) :
    Код:
    [basket price="[xfvalue_price]" view="добавить в корзину"]{title}[/basket]
    
    На выходе у нас готовая ссылка уже.


    Собственно, после обновления не могу вернуть.... как то изменилось в DLE многое :) ... нашел, "$tpl->compile ( 'main' );" в "engine/modules/main.php" , но вставив там код все равно не работает ...


    Подскажите, как побороть... вечер потратил, не одолел...
     
  2. Gameer

    Gameer Постоялец

    Регистр.:
    25 апр 2014
    Сообщения:
    129
    Симпатии:
    82
    А вы можете написать что именно не работает ?
     
    Горбушка нравится это.
  3. Tarasishe

    Tarasishe

    Регистр.:
    26 апр 2008
    Сообщения:
    190
    Симпатии:
    142
  4. Gameer

    Gameer Постоялец

    Регистр.:
    25 апр 2014
    Сообщения:
    129
    Симпатии:
    82
    После
    PHP:
    $tpl->set '{info}',  $tpl->result['info'] );
    вставь
    PHP:
    $tpl->result['content'] = preg_replace_callback('#\[basket\s+price=[\'|"](.*?)[\'|"]\s+view=[\'|"](.*?)[\'|"]\](.*?)\[/basket\]#is''Basket_Hook'$tpl->result['content']);

    function 
    Basket_Hook($matches)
    {
        
    $price = (float) $matches[1];
        
    $name  htmlspecialchars($matches[3], ENT_QUOTES);
        return 
    '<a href="#" onclick="Basket.addToBasket(\''.$price.'\', \''.$name.'\')">'.$matches[2].'</a>';
    }