0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 334 Просмотров
*

IvanTopor

  • Новичок
  • 7
  • 0
Пара вопросов, не могу найти адекватных ответов в Google.

1. Как по-умному стоит получать шаблон для использования со sprintf?

  Я получаю по-идиотски:
    $SpoilerTemplate = file_get_contents('./plugins/content/bootstrap_spoilers/template.php');

2. Как умные люди передают переменные в функцию? Мне нужно подтянуть шаблон в переменную и объявить инкрементируемое $id нулем.

  У меня вот такой код, который работает на голом php:

      $text = preg_replace_callback(
         '#\{spoiler=([^\}]+)\}(.+?)\{/spoiler\}#m',
         function ($matches){
            global $id;
            global $SpoilerTemplate;
            ++$id;
            $Spoiler = sprintf($SpoilerTemplate, 'spoiler'.$id, $matches[1], 'spoiler'.$id, $matches[2]);
            return $Spoiler;
         },
         $text);

global $var; работало в голом php, здесь нет. Это моветон, да?

Спасибо за внимание. :)
« Последнее редактирование: 26.02.2016, 13:58:53 от IvanTopor »
*

robert

  • Профи
  • 4081
  • 376
Не уверен, что точно понимаю ваши вопросы, но могу посоветовать использовать буфер и сессию.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

IvanTopor

  • Новичок
  • 7
  • 0
Я подтягивал global'ом в функцию, которая вызывается callback'ом переменные, необходимые для работы функции (шаблон HTML блока, инкрементирующийся id для создания уникального ID).

В Joomla видимо использование global'а для получения переменной считается моветоном.

Вот я и сижу думаю, как мне не в каждой итерации (preg_replace_callback вызывает функцию каждый раз, когда находит то что я попросил) догружать шаблон из соседнего php файла в переменную для последующей работы с ней с помощью sprintf (заполнения плейсхолдеров заголовком, телом и ID).

Пока не получается передать эти переменные аргументом при запуске функции.

И пока еще не удается понять, почему в Joomla другие функции запускаются подобным образом:

  $this->function(),

Посмотрел буфер и сессию, это скорее не то, чем то. Но тоже интересный материал. Спасибо.
*

robert

  • Профи
  • 4081
  • 376
И пока еще не удается понять, почему в Joomla другие функции запускаются подобным образом:
  $this->function(),
Так вы не знакомы с ООП?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

IvanTopor

  • Новичок
  • 7
  • 0
В общем не знаю, корректно или нет, решил использовать вот так:

Будет в каждой итерации (при нахождении каждого спойлера) брать шаблон из файла. crazy!
Ужс. Но как нормально передать переменную в эту функцию колбэка я не выяснил.

   protected function makeSpoiler(&$text, &$params)
   {   
      $text = preg_replace_callback(
         '#\{spoiler=([^\}]+)\}(.+?)\{/spoiler\}#m',
         function ($matches){
            $SpoilerTemplate = file_get_contents('./plugins/content/bootstrap_spoilers/template.php');
            ++$id;
            $Spoiler = sprintf($SpoilerTemplate, 'spoiler'.$id, $matches[1], 'spoiler'.$id, $matches[2]);
            return $Spoiler;
         },
         $text);
      
      return true;
      
   }


Так вы не знакомы с ООП?

Детально нет, очень смутно - да.
« Последнее редактирование: 26.02.2016, 15:37:32 от IvanTopor »
*

robert

  • Профи
  • 4081
  • 376
Спойлер
[свернуть]
Подправил.
« Последнее редактирование: 26.02.2016, 19:24:08 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

IvanTopor

  • Новичок
  • 7
  • 0
Т.е. такой подход (использование буфера сессии для использования переменной в другой функции) рекомендован при создании простых плагинов обрабокти контента для Joomla?

Эхх. Еще немного непонятных действий с абстрактными объектами.

Буду изучать наверное, спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Объясните как работает MVC Override с помощью плагина Joomla!

Автор kens1n

Ответов: 8
Просмотров: 329
Последний ответ 09.10.2016, 11:00:25
от robert
Нужна помощь в написании плагина

Автор makslm

Ответов: 16
Просмотров: 362
Последний ответ 06.10.2016, 15:48:06
от makslm
[Решено] Создание контент плагина

Автор IvanTopor

Ответов: 4
Просмотров: 382
Последний ответ 26.02.2016, 13:10:37
от IvanTopor
Настройка удобного окружения для разработки расширений Joomla

Автор zaboich

Ответов: 7
Просмотров: 967
Последний ответ 14.08.2015, 16:45:14
от zomby6888
Как из плагина получить параметры пагинации для контента?

Автор Kostushko

Ответов: 1
Просмотров: 362
Последний ответ 31.03.2015, 10:16:31
от b2z