Jump to content
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Доработка хука для IPB 3.3.х

Изначально нужно было добавить подсветку синтаксиса для кодов 1С. Был найден рабочий хук BBкодов для подсветки синтаксиса, в котором для каждого языка создан отдельный файл с описанием синтаксиса. Вроде бы задача сводилась к тому чтобы по образу и подобию добавить файл для 1С, но столкнулся с тем, что символы русской раскладки игнорируются. Основные алгоритмы работы описаны в файле ядра хука, который запакован. В папке src он распакован, и после его анализа вызвал подозрение кусок кода:

function parseParams(str)
{
       var match, 
	result = {},
	arrayRegex = new XRegExp("^\\[(?<values>(.*?))\\]$"),
	regex = new XRegExp(
		"(?<name>[\\w-]+)" +
		"\\s*:\\s*" +
		"(?<value>" +
			"[\\w-%#]+|" +		// word			
			"\\[.*?\\]|" +		// [] array
			'".*?"|' +			// "" string
			"'.*?'" +			// '' string
		")\\s*;?",
		"g"
	)
	;

где захотелось заменить

		"(?<name>[\\w-]+)" +

на

		"(?<name>[a-zA-Zа-яА-Я-]+)" +

и

			"[\\w-%#]+|" +		// word			

на

			"[a-zA-Zа-яА-Я-%#]+|" +		// word

 

Но после внесения изменений получить рабочий запакованный файл ядра не удалось. Перепробовал несколько онлайн сервисов для упаковки JS. Самый лучший результат дал http://dean.edwards.name/packer/ (для сравнения паковал исходный файл и сравнивал с запакованным родным), но все же отличия присутствуют - даже упакованный таким образом оригинальный файл исходника не работает под IPB.

Как внести изменения в хук и правильно его запаковать?

Edited by samtron76

Featured Replies

Что мешает использовать распакованный вариант? Обфусцировать его обратно не обязательно вовсе.

  • Author

Когда подкладывал распакованный модуль, хук переставал работать.

Заменил скрипты на предыдущую версию, проблема ушла.

Edited by samtron76

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.