Jump to content

Exception

Актив
  • Регистрация

Posts posted by Exception

  1. 6 часов назад, by_ix сказал:

    ну либо мне так везёт всегда, либо вам. 

    после каждой обновы и деф, и свой шаблон остаётся со старыми правками. 

    при обнове на 4.6 вообще всё вручную пришлось сносить в деф шаблоне, потому что из-за старых правок, некоторое новое криво оторбажалось. 😐

    сделай бэкап форума и разверни его на поддомене с новой бд, там и обновишься, и посмотришь, что слетит.

    я так понял, движок при обновлении добавляет\изменяет только не тронутые тобой шаблоны темы. Если хочешь чистую с правками по версии, то нужно создать новую дефолтную тему.

    20 часов назад, the.bunin сказал:

    потому что сыкотно обновляться, как послетает все 😂

    Я тебя умоляю, бахнул пиваса для храбрости или водочки как @SlawkA, сделал бэкап, да как накатил обнову!

  2. 14 минут назад, the.bunin сказал:

    Уже 4.6.3 🧐 кто что думает? Есть смысл уже обновляться, или по традиции ждём до 4.6.5? 😂

    А что тут думать? Вышла новая версия - значит обновляйся.

  3. Не нашел рабочего хайда под новую версию ips, пришлось писать самому. Как вам идея хайда под ранг пользователя? Так как ранг пользователя гибок к настройкам, а пользователь сам решает какими путями его получить, думаю это самый топ вариант.
    hide12.thumb.png.b7fc5dd5715643c3295aed5bd87851d5.png

  4. 7 часов назад, WaNted сказал:

    Глянь \IPS\Content\Search\Result::preDisplay

    там вроде везде уже отформатированный текст выводит. Я нашел обходной путь, так как в public function indexData() вызывается searchIndexContent(), я просто в IPS\Content в эту функцию запилил \IPS\Text\Parser::removeElements( $content, array( 'div[class=my_spoiler]' ) );

  5. я так понял это делается через public function indexData( \IPS\Content\Searchable $object ) в IPS\Content\Search\Index
    как правильно захукать код, чтобы добавить в него \IPS\Text\Parser::removeElements( $content, array( 'div[class=my_spoiler]' ) );

    ?

  6. Через truncated тоже удаляет только в приложении страниц

    /**
    	 * Removes HTML and optionally truncates content
    	 *
    	 * @param	bool		$oneLine	If TRUE, will use spaces instead of line breaks. Useful if using a single line display.
    	 * @param	int|null	$length		If supplied, and $oneLine is set to TRUE, the returned content will be truncated to this length
    	 * @return	string
    	 * @note	For now we are removing all HTML. If we decide to change this to remove specific tags in future, we can use \IPS\Text\Parser::removeElements( $this->content() )
    	 */
    	static public function truncate( $content, $oneLine=false, $length=500 )
    	{
    		$content = static::removeElements( $content, array( 'div[class=my_spoiler]' ) );
    		return parent::truncate( $content, $oneLine, $length );
    	}

    у меня уже мозг плавится, не понимаю как удалить в профиле и т.д.

  7. /**
    	 * Remove specific elements, useful for cleaning up content for display or truncating
    	 *
    	 * @param	string				$value			The value to parse
    	 * @param	array|string		$elements		Element to remove, or array of elements to remove. Can be in format "element[attribute=value]"
    	 * @return	string
    	 */
    	public static function removeElements( $value, $elements=array( 'blockquote', 'img', 'a' ) )
    	{
    		array_push($elements, 'div[class=my_spoiler]');
    		return parent::removeElements( $value, $elements );
    	}

    я попробовал добавить элемент глобально, он удаляет его в приложении страниц (главная страница со списком статей), но не удаляет в профиле, страниц с результатами поиска и т.д.

  8. ·

    Edited by ZIKURIK

    42 минуты назад, SlawkA сказал:

    Respected привет. сделал бы объявление о PHP 8

    что если будете обновляться, то 8 версия пыха все таки нужна.

    4.6 возможно еще не полностью поддерживает php 8, об этом говорят их постоянные фиксы кода для php 8

    1 минуту назад, Respected сказал:

    На php7 тоже работает корректно.

    +
    на php 7.4 работает все как надо

  9. 1 час назад, Adrg сказал:

    Все гораздо проще, мемберы должны грузить не думая, скины, видео, архивы, цель это архивы, обычно ставят простые пароли и задача что бы в них не покопались, также есть свой файлообмен,, как просто файлами, также отгрузка лицензий и много что представляет коммерческую ценность для рынка серого трафика, Амазон может взбрыкнуть и отказать в сервисе, что уже происходит на дружественных форумах. То есть вся "помойка " с громким названием S3, ведомая и неисполнительная, их соглашение говорит, что если у вас лицо не бритое, то уже нельзя такие фото грузить и они в праве отказать. Все про-пиндосовское одно большое Г-но. Маркетинг у них на высоте как всегда, но мы то с вами умные люди что бы на такую техническую реализацию вестись.

    В моем понимании, например, завести акк на _https://imgur.com и автоматом туда медиа отправлять с форума, как например делают XenForo.

    Кто такой плагин напишет неплохо заработает.

    в таком случае можно поднять собственный CDN сервер,

  10. 3 часа назад, Respected сказал:

    Так этой строкой и удаляет 

    
    $content = \IPS\Text\Parser::removeElements( $content, array( 'div[class=ipsSpoiler]' ) );

     

    что-то у меня локальный сервер развалился, контент не обновлялся и хук не срабатывал, а так все работает правильно.

  11. 3 минуты назад, Respected сказал:

    Движок указанной функцией обрезает теги, например здесь system/Content/Search/Index

    
    /* Strip spoilers */
    		$content = $object->searchIndexContent();
    		if ( preg_match( '#<div\s+?class=["\']ipsSpoiler["\']#', $content ) )
    		{
    			$content = \IPS\Text\Parser::removeElements( $content, array( 'div[class=ipsSpoiler]' ) );
    		}
    		
    		/* Take the HTML out of the content */
    		$content = trim( str_replace( \chr(0xC2) . \chr(0xA0), ' ', strip_tags( preg_replace( "/(<br(?: \/)?>|<\/p>)/i", ' ', preg_replace( "#<blockquote(?:[^>]+?)>.+?(?<!<blockquote)</blockquote>#s", " ", preg_replace( "#<script(.*?)>(.*)</script>#uis", "", ' ' . $content . ' ' ) ) ) ) ) );

     

    тогда какой он удаляет то, что находится в ipsSpoiler ?

  12. 43 минуты назад, Desti сказал:

    А как в одном плагине-приложении два языка в дистрибутив запихнуть? :)

    я пока смотрел нашел много вариантов, но это такое себе на самом деле, потому что средствами ips такого не сделать, например в js можно подтягивать разные ключи или собственные фразы в зависимости от например var language = $('html').attr('lang'); или при помощи php сделать собственную систему, но это будет зря потраченное время

  13. лол, я так понял достаточно добавить строку в jslang.php, после вызвать её через ips.getString и только после выгрузки и последующей установки плагина можно перевести эту строку в языках. Просто в dev режиме её нельзя перевести (ключа нету) это и вызвало мой затуп

  14. Posted

    Как правильно инициализировать кастомную языковую строку (Англ+Рус) в js? У меня есть допустим кастомная строка добавленная в язык ручным способом через Языки, и есть переводимое текстовое поле в плагине. 
    Например так я не могу сделать, js не подхватывает строку:

    ips.templates.set('core.editor.ultrahide', "\
    {{#lang}}editor_mycustomlangkey{{/lang}}\
    ");

    или я пытаюсь вывести строку через ips.getSetting('editor_mycustomlangkey') заранее добавив хук в диспетчер \IPS\Output::i()->jsVars но так выводится строка с двумя переводами через запятую, т.е. это явно не подходит.
    ips.getString('editor_mycustomlangkey') так-же не подхватывает языковые строки

  15. 1 час назад, SlawkA сказал:

    Nahimovets привет.

    мне интересно, а на скрине где я пометил это обязательно?

      Показать контент

    4343.thumb.png.39ce887bf0bf8194c0e0cb2e1dc1a1ca.png

    и нет в коде закрывающего тега внизу. я всего лишь предполагаю.

    https://invisioncommunity.com/developers/docs/development/plugins/code-hooks-r42/

  16. ·

    Edited by ZIKURIK

    8 часов назад, Riddick сказал:

    ZIKURIK  добавлю...

    Ошибки нет..., пересчет всем участникам  их сообщений сделан, но количество  после создания темы или ответа в тему не меняется.

    В общем  вернул все как было, будем ждать обновление.

    У меня после исправления и дополнительного перерасчета контента все работает как надо. С значками проблем не было, выдаются в зависимости от условий. Ранг пересчитывается моментально при добавлении контента (увеличение очков). Видимо проблема у вас индивидуальная.

  17. {{$record_id = 1; $db_id = 1; $db_class = '\IPS\cms\Records'.$db_id;}}
    {{$record_loaded = $db_class::load($record_id);}}
    {$record_loaded->customFieldDisplayByKey('base_conn', 'display')|raw}

    $record_id - id записи из нужной базы, откуда будет брать данные
    $db_id - id базы данных
    код на работоспособность не проверял

  18. Вроде нашел где ошибка, можно не делать действий которые выше, а делаем так:
    Идем по адресу: мойсайт\applications\forums\sources\Topic открываем файл ArchivedPost.php
    ищем строку 126: return \IPS\Db::i()->select( 'COUNT(*)', 'forums_posts', $where )->first();
    изменяем forums_posts на forums_archive_posts
    сохраняем. Пробуем пересчитать контент

  19. ·

    Edited by ZIKURIK

    1 час назад, Artemka сказал:

    Так и не исправили эту ошибку IPS-овцы

    Подтверждаю, ошибка имеется

    Если нету форумного архива с постами пользователей, можно временно выключить перерасчет постов из архива
    мойсайт\system\Member\ открываем файл Member.php
    ищем строку 3809
    public function recountContent()
    чуть ниже ищем строку 3812:
    foreach ( \IPS\Content::routedClasses( $this, TRUE, FALSE ) as $class )
    изменяем с TRUE на FALSE
    сохраняем
    Пробуем пересчитать контент

    это как временное решение, позже посмотрю в чем заключается ошибка если это прям кому то очень нужно