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

Exception

Актив
  • Постов

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

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

    82

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

  1. Есть например функция в \applications\downloads\sources\File
    public static function formElements( $item=NULL, \IPS\Node\Model $container=NULL, $bulkKey = '' )
    В ней редактор это 

    /* Description */
    $return['description'] = new \IPS\Helpers\Form\Editor( "{$bulkKey}file_desc", $item ? $item->desc : NULL, TRUE, array( 'app' => 'downloads', 'key' => 'Downloads', 'autoSaveKey' => ( $item ? "downloads-file-{$item->id}" : "{$bulkKey}downloads-new-file" ), 'attachIds' => ( $item === NULL ? NULL : array( $item->id, NULL, 'desc' ) ) ), '\IPS\Helpers\Form::floodCheck' );

    То где тогда редактор в одноименной функции в \applications\cms\sources\Records ? Я смог получить только переменную, это $formElements['field_2'] но что в неё создает редактор? Я могу переписать эту переменную, но мне нужно знать хотя бы нужные опции создаваемого редактора.
    Я добавляю собственную валидацию в параметр $customValidationCode редактора. Но в приложении cms не получается.

    Так же пытался добавить в \IPS\Content\Item

    $return['content'] = new \IPS\Helpers\Form\Editor( static::$formLangPrefix . 'content', $item ? $commentObj->mapped('content') : NULL, TRUE, array(
    				'app'			=> static::$application,
    				'key'			=> mb_ucfirst( static::$module ),
    				'autoSaveKey'	=> ( $item === NULL ? ( 'newContentItem-' . static::$application . '/' . static::$module . '-' . ( $container ? $container->_id : 0 ) ) : ( 'contentEdit-' . static::$application . '/' . static::$module . '-' . $item->$idColumn ) ),
    				'attachIds'		=> ( $item === NULL ? NULL : array( $item->$idColumn, $commentObj->$commentIdColumn ) )
    			), '\IPS\Helpers\Form::floodCheck', NULL, NULL, static::$formLangPrefix . 'content_editor' );

    Но в приложениях это не учитывается, либо поле/переменная заменяется на другое из класса приложения. Моя функция валидации полностью рабочая, и работает например в public function commentFormElements()

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

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

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

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

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

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

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

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

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

  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. Через 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 );
    	}

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

  6. /**
    	 * 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 );
    	}

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

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

    Вы знаете, действительно ли они устранили проблему в последней версии?

    в файлах версии 4.6.2 вижу изменения которые я предлагал выше 🙂 Думаю проблема решена

  8. 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. 54 минуты назад, Desti сказал:

    вот и я к этому пришел.. 

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

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

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

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

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

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

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

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

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

    Nahimovets привет.

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

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

    4343.thumb.png.39ce887bf0bf8194c0e0cb2e1dc1a1ca.png

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

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

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

    ZIKURIK  добавлю...

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

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

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

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