1 Отредактировано absorber (17-01-2018 08:52:18)

Тема: Вставка виджета прямо в текст страницы

Вот тут добавил соответсвтующий материал - https://docs.google.com/document/d/1Fac … QmnE/edit#

Зачем нужно?
Представьте, нам надо вывести альбом изображений или форму обратного звонка прямо в тексте страницы.
На полном содержимом пишем вывод модуля в нужном месте: {widget('widget_name')}

Новое решение по ссылке

Старое решение:
Идем в page_full.tpl и вместо вывода $page.full_text пишем следующее:

{$null = preg_match_all("/widget\('(.*)'\)/U", $page.full_text, $widgets)}
{if !empty($widgets[1])}
   {$page.full_text = preg_replace("/widget\('(.*)'\)/U", "widget", $page.full_text)}
   {$current_widget = current($widgets[1])}
   {$text_widgets = explode('{literal}{widget}{/literal}', $page.full_text)}

   {foreach $text_widgets as $key => $t}
       {if empty(trim($t))}
           {widget($current_widget)}
       {else:}
           {$t}
           {if $current_widget}
               {widget($current_widget)}
           {/if}
       {/if}
       {$current_widget = next($widgets[1])}
   {/foreach}
{else:}
   {$page.full_text}
{/if}

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

Разработка продающих сайтов. Портфолио тут - pulse.studio. Скайп - absorberex

2

Re: Вставка виджета прямо в текст страницы

Всем привет.
Подскажите, кто знает - как сверстать в тексте кнопку, формой ромба, зеленого цвета?

Thumbs up −1 Thumbs down

3

Re: Вставка виджета прямо в текст страницы

Тебя в гугле забанили что ли?

Ну вот откуда такие берутся...

Когда то разрабатывал модули для ImageCMS Corporate

Re: Вставка виджета прямо в текст страницы

Добрый день! Можно ли такое реализовать чтоб модуль в текст можно было вставить?
К примеру {include_tpl('widgets/main_dashboard')}

Thumbs up Thumbs down

5 Отредактировано absorber (13-01-2018 06:40:56)

Re: Вставка виджета прямо в текст страницы

Формула пишет:

Добрый день! Можно ли такое реализовать чтоб модуль в текст можно было вставить?
К примеру {include_tpl('widgets/main_dashboard')}

можно.

Для виджетов можно сделать таким способом:
1. Заходим в шаблон сайта, открываем functions.php
2. Вставляем туда этот код:

function full_page_extract($full_text) {

    // Подключаем виджет
    preg_match_all("/widget\('(.*)'\)/U", $full_text, $widgets);

    if(!empty($widgets[1])) {

        $full_text = preg_replace_callback("/{widget\('(.*)'\)}/U",
            function ($matches) {
                return widget($matches[1]);
            }, $full_text);
    }

    return $full_text;
}

3. Выводимый текст, например в page_full.tpl, выводим так: {full_page_extract($page.full_text)}

Для обработки include_tpl надо переписать функцию

Разработка продающих сайтов. Портфолио тут - pulse.studio. Скайп - absorberex

6 Отредактировано Формула (12-01-2018 13:38:26)

Re: Вставка виджета прямо в текст страницы

function.php

functions.php?

Thumbs up Thumbs down

Re: Вставка виджета прямо в текст страницы

absorber пишет:
Формула пишет:

Добрый день! Можно ли такое реализовать чтоб модуль в текст можно было вставить?
К примеру {include_tpl('widgets/main_dashboard')}

можно.

Для виджетов можно сделать таким способом:
1. Заходим в шаблон сайта, открываем functions.php
2. Вставляем туда этот код:

function full_page_extract($full_text) {

    // Подключаем виджет
    preg_match_all("/widget\('(.*)'\)/U", $full_text, $widgets);

    if(!empty($widgets[1])) {

        $full_text = preg_replace_callback("/{widget\('(.*)'\)}/U",
            function ($matches) {
                return widget($matches[1]);
            }, $full_text);
    }

    return $full_text;
}

3. Выводимый текст, например в page_full.tpl, выводим так: {full_page_extract($page.full_text)}

Для обработки include_tpl надо переписать функцию

Перепишешь и выкинешь на форум за 500 руб?

Thumbs up Thumbs down