powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Поиск и замена части тела страницы
5 сообщений из 5, страница 1 из 1
Поиск и замена части тела страницы
    #39295156
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь сделать плагин (первый раз). Необходимо в определенное место страницы вывести определенный текст.
Но что-то не получается... Может кто подсказать?

В этом участке кода страницы:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<input type="hidden" name="Itemid" value="101"/>      </form>

   </div>


-= вставить текст сюда =-
      
       </div>
   </div>
   <div class="clear"></div>


    </div>

   
   
<div class="customer-reviews">   <h4>Рецензии</h4>



необходимо вставить определенное сообщение.

Пытаюсь так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
class plgSystemVMInstallment extends JPlugin
{
//   public function onContentPrepare($context, &$article, &$params, $page = 0)
    function onContentAfterDisplay()
    {
       // Проверка на админку
//       $app = JFactory::getApplication();
//       if ($app->getName()!= 'site') {
//          return true;
//       }

       // Получаем кодовое слово из параметров
       $varname = '<input type="hidden" name="Itemid" value="101"/>      </form>

   </div>


      
       </div>
   </div>
   <div class="clear"></div>


    </div>

   
   
<div class="customer-reviews">   <h4>Рецензии</h4>';

       // Получаем тело сайта
       $html = JResponse::getBody();

       // Если тегов нет
//       if (strpos($html, $varname) === false)
//       {
//          return true;
//       }

       // Задаем шаблон поиска
       $pattern = '#\{' . $varname . ' ([a-zA-Z0-9]+)\}#i';

//       $search = preg_replace('/(\s\s+)/g', '', $varname);

       $repl = '<input type="hidden" name="Itemid" value="101"/></form></div><p>Работает !</p></div></div><div class="clear"></div></div><div class="customer-reviews"><h4>Рецензии</h4>';
//       $html = str_replace($search,$repl,$html);

          if (preg_match_all($pattern, $html, $matches))
          {
             foreach ($matches[0] as $i => $match)
             {
                //Выделяем из найденного шаблона имя переменной
                $var = $matches[1][$i];
                //Заменяем найденный шаблон на значение одноименной переменной
                $html = str_replace($matches[0][$i], $repl, $html);
             }
             //Запихиваем всё обратно в тело
             JResponse::setBody($html);
          }
echo '-' . $matches[0][1] . '-';
    }
}



------------------------------
С уважением, StasK
...
Рейтинг: 0 / 0
Поиск и замена части тела страницы
    #39295180
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, регекспом можно отловить точку вставки и выполнить замену в preg_replace. Только паттерн получится довольно-таки развесистым.
Однако, на мой взгляд, такой подход не сулит ничего хорошего. А ну как в шаблоне что-то изменится - добавится див, например, или в инпуте перед закрывающим тегом формы окажется другое значение или класс добавится или там будет не инпут... Почему нельзя обозначить место вывода непосредственно в шаблоне?
...
Рейтинг: 0 / 0
Поиск и замена части тела страницы
    #39295188
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
судя по всему, так и придется(((

или может есть какие варианты?
...
Рейтинг: 0 / 0
Поиск и замена части тела страницы
    #39295191
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема в том, что нужный кусок формируется другим компонентом, а не темой
...
Рейтинг: 0 / 0
Поиск и замена части тела страницы
    #39295195
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так перенесите требуемый функциоал туда, где он будет обрабатываться без вырезания гланд через одно место.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Поиск и замена части тела страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]