Перейти к содержанию

Dmitriy427

Пользователи
  • Постов

    160
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Сообщения, опубликованные Dmitriy427

  1. Хук для класса \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. Функцию удалять или комментировать не нужно, будут ошибки JS при обращении к ней, достаточно закомментировать её содержимое и добавить строку 'return;'. При компиляции файла скрипта в дисковый кэш комменты удаляются автоматически.

  3. 2 часа назад, Desti сказал:

    preg_match на весь вывод, шаблон в коде..  А если там на пару-тройку строк фрагмент в неуникальных селекторах? Не, не наш метод.

    Очевидно, это не Ваш метод, поскольку регулярные выражения Вам изучать влом. Но это метод использующийся IPS, в том же sendOutput весь вывод прогняетяся через регулярки методами parseOutputForDisplay, parseFileObjectUrls, replaceEmojiWithImages. К тому же это только пример, делайте замены с нужным шаблоном - \IPS\Theme\Template, никто против не будет.

  4. Заменить что угодно в выводе ничто не мешает и штатными средствами 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 )
    	}

     

  5. Ну, вот тоже действие не сложно осуществить хуком плагина, расширяющим каласс \IPS\nexus\Gateway, но если сделать правку предлагаемую fortek, то вы не сможете разместить обработчик шлюза в папке плагина, только по фиксированному пути.

  6. 1 час назад, Respected сказал:

    Такая правка имеет место быть, но проживёт до первого обновления форума. А там придётся вспоминать что и где правил.

    Очевидно вы имеете ввиду разные правки. Добавление своей пары ключ-значение, в массив возвращаемый функцией gateways(), ничего не ломает, в отличии от правки fortek .

  7. Зависит от того - что за массив вы хотите получить:

    $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;
    }

     

  8. Человеку, похоже, хочется вставить в шаблон готовый спагетти-код и совершенно не хочется заморачиваться с ООП, и разделением логики и представления. Вобщем-то, логично будет посоветовать подойти к вопросу кардинально и пересмотреть свой выбор движка. Например в тройке инклюды в шаблон возможны.

     

    40 минут назад, WaNted сказал:

    dev/setup/install.php можете там намудрить с созданием своего php-файла. Чтобы во время установки создавался файл с нужным содержимым.

    Кстати, многие разработчики, используя возможности класса ips_plugins_setup_install, даже не подозревают о возможности, а часто и необходимости удаления созданных с его помощью ресурсов (файлов, таблиц, полей, строк...), при деинсталяции плагина.  Я и сам далеко не сразу узнал о файле uninstall.php создаваемом в корневой папке плагина.

  9. Это работает на странице форума, с большим количеством тем, в артиклес на страницах категорий, в блогах, клубах и т.д.

    Впрочем, Вам похоже важно не это. Впредь самоутверждаться Вы будете без моей помощи.

  10. Вы спросили - как отключить скрол, при использовании пагинации ровно на это я Вам и ответил. Ни на каких страницах отключить скролл, ни о том, что нужно его не отключить, а позицию изменить не спрашивали. Формулируйте вопросы точнее, будут точнее ответы.

×
×
  • Создать...