Posts posted by Dmitriy427
-
-
Хук для класса \IPS\Theme:
public function getTemplate( $group, $app=NULL, $location=NULL ) { if( $group == 'my_group' and $app == 'my_app' and $location == 'my_location' ) { $template = parent::getTemplate( $group, $app, $location ); $search = preg_match( 'my_pattern', $template, $match ) ? $match[1] : false; if( $search ) { $replace = '<!--my_replece_code-->'; $template = str_replace( $search, $replace, $template ); } return $template; } return parent::getTemplate( $group, $app, $location ); }
-
-
2 часа назад, Desti сказал:
preg_match на весь вывод, шаблон в коде.. А если там на пару-тройку строк фрагмент в неуникальных селекторах? Не, не наш метод.
Очевидно, это не Ваш метод, поскольку регулярные выражения Вам изучать влом. Но это метод использующийся IPS, в том же sendOutput весь вывод прогняетяся через регулярки методами parseOutputForDisplay, parseFileObjectUrls, replaceEmojiWithImages. К тому же это только пример, делайте замены с нужным шаблоном - \IPS\Theme\Template, никто против не будет.
-
-
-
Заменить что угодно в выводе ничто не мешает и штатными средствами PHP. Например хуком для класса \IPS\Output:
public function sendOutput( $output='', $httpStatusCode=200, $contentType='text/html', $httpHeaders=array(), $cacheThisPage=TRUE, $pageIsCached=FALSE, $parseFileObjects=TRUE, $parseEmoji=TRUE ) { if( preg_match( '#<div\sclass="zzz"><h1\sclass="www">Title</h1></div>\n?\r?(<a[^<>]*</a>)#s', $output, $match ) ) { $replace = '<!--my_replece_code-->'; $output = str_replace( $match[1], $replace, $output ); } parent::sendOutput( $output, $httpStatusCode, $contentType, $httpHeaders, $cacheThisPage, $pageIsCached, $parseFileObjects, $parseEmoji ) }
-
-
-
1 час назад, Respected сказал:
Такая правка имеет место быть, но проживёт до первого обновления форума. А там придётся вспоминать что и где правил.
Очевидно вы имеете ввиду разные правки. Добавление своей пары ключ-значение, в массив возвращаемый функцией gateways(), ничего не ломает, в отличии от правки fortek .
-
-
-
-
-
Зависит от того - что за массив вы хотите получить:
$select = array(); foreach( \IPS\Db::i()->select('image_id', 'gallery_images', array('image_updated>?', '1538300099'),'image_id DESC', array( 0, 10 ) ) as $row ) { //$select[] = $row; $select[ $row['image_id'] ] = $row['gallery_images']; }
Сори, за копипастом не уследил. Правильно в Вашем случае так:
$select = array(); foreach( \IPS\Db::i()->select('image_id', 'gallery_images', array('image_updated>?', '1538300099'),'image_id DESC', array( 0, 10 ) ) as $row ) { $select[] = $row; }
-
-
Человеку, похоже, хочется вставить в шаблон готовый спагетти-код и совершенно не хочется заморачиваться с ООП, и разделением логики и представления. Вобщем-то, логично будет посоветовать подойти к вопросу кардинально и пересмотреть свой выбор движка. Например в тройке инклюды в шаблон возможны.
40 минут назад, WaNted сказал:dev/setup/install.php можете там намудрить с созданием своего php-файла. Чтобы во время установки создавался файл с нужным содержимым.
Кстати, многие разработчики, используя возможности класса ips_plugins_setup_install, даже не подозревают о возможности, а часто и необходимости удаления созданных с его помощью ресурсов (файлов, таблиц, полей, строк...), при деинсталяции плагина. Я и сам далеко не сразу узнал о файле uninstall.php создаваемом в корневой папке плагина.
-
-
-
-
-
-
-
-
Theme plugins
in Техническая поддержка IP.Board
Да, не вопрос. Я просто забыл, что сталкивался уже с Вашим примечательным ЧСВ и обещал не мешать самовыражаться.