Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


SEO Metadata
composedTitleTemplates sync — Script DSSL

Templates sync - Скрипт предназначен для синхронизации шаблонов между серверами или клиентом и сервером.

Основные функции

Скрипт предназначен для синхронизации шаблонов между серверами или клиентом и сервером.

Установка

  • Перейти в автоматизацию, нажать «Загрузить пример» и выбрать «Из файла», указав путь к скрипту.
  • Снять галочку «Включить скрипт» и нажать сохранить.
  • Выполнить настройку и нажать "Сохранить и запустить"

Скрипт не умеет создавать новые шаблоны, поэтому предварительно необходимо создать шаблоны с одинаковыми именами на обоих рабочих местах.

Возможные “направления” синхронизации:

  • скрипт установлен на сервере:
  1. сервер - сервер.
  • скрипт установлен на клиенте:
  1. сервер - клиент.
  2. клиент - сервер.

Настройка

  • Выберите необходимые шаблоны для синхронизации, а также источник и цель.
  • По желанию можно изменить временной интервал между синхронизациями.


Раскрыть
titlecode


Блок кода
languagepy
# TRASSIR Templates sync
#
#0.1 release
'''
<parameters>
	<company>AAT</company>
	<title>templates_sync</title>
	<version>0.1</version>
	<parameter>
		<type>objects</type>
		<name>Шаблоны, для синхронизации</name>
		<id>TEMPLATES</id>
	</parameter>
	<parameter>
		<type>integer</type>
		<name>Период синхронизации, мин</name>
		<id>DELAY</id>
		<value>10</value>
		<min>1</min>
		<max>99999999</max>
	</parameter>
	<parameter>
		<type>caption</type>
		<name>Источник</name>
	</parameter>
	<parameter>
		<type>server</type>
		<name>Выберите или используйте текущий</name>
		<id>SOURCE</id>
	</parameter>
	<parameter>
		<type>boolean</type>
		<name>Текущий сервер/клиент</name>
		<id>SOURCE_CURRENT</id>
		<value>0</value>
	</parameter>
	<parameter>
		<type>caption</type>
		<name>Цель</name>
	</parameter>
	<parameter>
		<type>server</type>
		<name>Выберите или используйте текущий</name>
		<id>TARGET</id>
	</parameter>
	<parameter>
		<type>boolean</type>
		<name>Текущий сервер/клиент</name>
		<id>TARGET_CURRENT</id>
		<value>1</value>
	</parameter>
</parameters>
'''




class TmplSync():
	def __init__(self, templates, source, target):
		self.templates = templates
		self.source = source
		self.target = target
		self.content = {}
		self.check_values()

	def check_values(self):
		if not self.templates:
			raise ValueError('Шаблоны не выбраны')
		if not self.source:
			raise ValueError('Выберите источник')
		if not self.target:
			raise ValueError('Выберите цель')
		if self.source == self.target:
			raise ValueError('Источник и цель не могут совпадать!')

	def sync_loop(self, relax):
		try:
			for tmpl in settings("/%s/templates" %self.source).ls():
				if tmpl.type == 'Template' and tmpl['name'] in self.templates:
					self.content.update({tmpl['name']: tmpl['content']})
		except KeyError as e:
			error(e)
		if self.content:
			try:
				for tmpl in settings("/%s/templates" %self.target).ls():
					if tmpl.type == 'Template' and tmpl['name'] in self.templates:
						content = self.content.get(tmpl['name'], None)
						if content: tmpl['content'] = content
			except KeyError as e:
				error(e)
			finally:
				self.content.clear()
				timeout(1000*60*relax, lambda: self.sync_loop(relax))

if SOURCE_CURRENT:
	SOURCE = settings("").path[1:]
if TARGET_CURRENT:
	TARGET = settings("").path[1:]

tmpl = TmplSync(TEMPLATES.split(','), SOURCE, TARGET)
tmpl.sync_loop(DELAY)




Image ModifiedСкачать