<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://docs.deansoffice.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ibragim</id>
		<title>DOF - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://docs.deansoffice.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ibragim"/>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Ibragim"/>
		<updated>2026-04-12T20:29:58Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.2</generator>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2756</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2756"/>
				<updated>2014-03-20T17:49:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций. В справочник сохраняются значения дополнительных полей для существующих плагинов.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id - уникальный идентификатор записи&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2755</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2755"/>
				<updated>2014-03-20T17:49:15Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* get_option($plugintype, $plugincode, $objectid, $code, $substorage=null) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций. В справочник сохраняются значения дополнительных полей для существующих плагинов.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id - уникальный идентификатор записи&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2754</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2754"/>
				<updated>2014-03-20T17:49:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций. В справочник сохраняются значения дополнительных полей для существующих плагинов.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id - уникальный идентификатор записи&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2753</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2753"/>
				<updated>2014-03-20T17:48:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций. В справочник сохраняются значения дополнительных полей для существующих плагинов.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id - уникальный идентификатор записи&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2752</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2752"/>
				<updated>2014-03-20T17:46:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Подробный формат полей в таблице: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций. В справочник сохраняются значения дополнительных полей для существующих плагинов.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id - уникальный идентификатор записи&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2751</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2751"/>
				<updated>2014-03-20T17:46:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Таблица в базе данных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций. В справочник сохраняются значения дополнительных полей для существующих плагинов.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2750</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2750"/>
				<updated>2014-03-20T17:45:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Подробный формат полей в таблице: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций.&lt;br /&gt;
Описание настройки всех плагинов должно записываться в языковой файл в виде - config:код настройки.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''save_option($plugintype, $plugincode, $objectid, $code, $value=null, $substorage=null)'''====&lt;br /&gt;
Метод сохраняет настройку в справочник.&lt;br /&gt;
Создает запись, если с такими параметрами записи еще нет.&lt;br /&gt;
Обновляет запись, если она есть с такими параметрами, и переданный $value !== NULL&lt;br /&gt;
Если запись с переданными параметрами есть, а в качестве $value передали NULL, то запись будет удалена&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $value - значение дополнительной опции&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
&lt;br /&gt;
===='''get_option($plugintype, $plugincode, $objectid, $code, $substorage=null)'''====&lt;br /&gt;
Метод возвращает одно значение из таблицы настроек по переданным параметрам.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $code - код дополнительной переменной (имя поля)&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed: NULL - если значение не найдено|string значение - если найдено&lt;br /&gt;
&lt;br /&gt;
===='''add_options_to_custom_object($plugintype, $plugincode, $objectid, stdClass $customobj=null, $substorage=null)'''====&lt;br /&gt;
Метод получает из справочника опции по переданным параметрам и добавляет их в качестве свойств к переданному объекту $customobj. Если не передали объект $customobj, полученные значения будут присоединены к новому stdClass(). Метод возвращает получившийся $customobj.&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $plugintype - тип плагина, к объекту которого привязана дополнительная опция(почти всегда - storage)&lt;br /&gt;
* $plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* $objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* $customobj - объект, к которому будут присоединены полученные из справочника опции.&lt;br /&gt;
* $substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* stdClass - переданные в метод объект, дополненный дополнительными опциями из справочника&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2749</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2749"/>
				<updated>2014-03-20T17:34:12Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Подробный формат полей в таблице: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций.&lt;br /&gt;
Описание настройки всех плагинов должно записываться в языковой файл в виде - config:код настройки.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/config&amp;diff=2748</id>
		<title>Разработка:storages/config</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/config&amp;diff=2748"/>
				<updated>2014-03-20T17:33:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Таблица в базе данных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = config&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''config'' - таблица настроек.&lt;br /&gt;
Описание настройки всех плагинов должно записываться в языковой файл в виде - config:код настройки.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* id - номер записи &lt;br /&gt;
* departmentid - номер записи в таблице [[Разработка:storages/departments | departments ]]&lt;br /&gt;
* code - кодовое обозначение&lt;br /&gt;
* type - тип настройки. Задается как тип элемента quickform. Возможные значения&lt;br /&gt;
** checkbox&lt;br /&gt;
** password&lt;br /&gt;
** passwordunmask&lt;br /&gt;
** text&lt;br /&gt;
** textarea&lt;br /&gt;
** date_selector&lt;br /&gt;
** date_time_selector&lt;br /&gt;
** selectyesno&lt;br /&gt;
** advcheckbox&lt;br /&gt;
** file&lt;br /&gt;
** radio&lt;br /&gt;
** select&lt;br /&gt;
** htmleditor&lt;br /&gt;
** dof_duration&lt;br /&gt;
* value - значения настройки&lt;br /&gt;
* plugintype - тип плагина (im, storage, workflow, sync, modlib)&lt;br /&gt;
* plugincode - код плагина&lt;br /&gt;
* noextend -  запретить наследование настройки (принимает или 0 или 1)&lt;br /&gt;
* personid - персона из  [[Разработка:storages/persons | persons ]], для которго действует настройка(0 для всех)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2747</id>
		<title>Разработка:storages/cov</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/cov&amp;diff=2747"/>
				<updated>2014-03-20T17:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: Новая страница: «===Таблица в базе данных=== ''cov'' - Custom Options Values - Значения Дополнительных Опций. Описание настр...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Таблица в базе данных===&lt;br /&gt;
''cov'' - Custom Options Values - Значения Дополнительных Опций.&lt;br /&gt;
Описание настройки всех плагинов должно записываться в языковой файл в виде - config:код настройки.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
&lt;br /&gt;
* id&lt;br /&gt;
* plugintype - тип плагина, к объекту которого привязана дополнительная опция (почти всегда - storage)&lt;br /&gt;
* plugincode - код плагина, к объекту которого привязана дополнительная опция&lt;br /&gt;
* substorage - код подхранилища: не актуально для storage, поэтому почти всегда пустая строка, но в перспективе, может понадобится (аналогично похожему полю в реестре синхронизаций)&lt;br /&gt;
* objectid - id объекта, к которому привязывается дополнительная опция&lt;br /&gt;
* code - код дополнительной переменной (имя поля). Пока подчиняется такому же правилу, как и имена полей в БД. Потом с помощью слешей добавим возможность добавлять вложенные поля (пока не реализуем).&lt;br /&gt;
* value - значение дополнительной опции&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/agroups&amp;diff=2602</id>
		<title>Разработка:im/agroups</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/agroups&amp;diff=2602"/>
				<updated>2012-11-08T16:13:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* im/agroups - Группы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = agroups&lt;br /&gt;
| type = im&lt;br /&gt;
}}&lt;br /&gt;
=im/agroups - Группы=&lt;br /&gt;
Модуль редактирования параметров академической группы, (или класса в средней школе).&lt;br /&gt;
Работает в паре с модулем storage/agroups.&lt;br /&gt;
Позволяет создавать и редактировать различные атрибуты группы - название, код и т.п.&lt;br /&gt;
==Список групп==&lt;br /&gt;
На этой странице можно просмотреть список всех групп учебного заведения либо групп, отобранных по определенным критериям или их комбинации. Критериями отбора могут быть: отдел учебного заведения, программа обучения, статус группы. Просмотр отобранных групп возможен лишь при наличии соответствующих полномочий.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них.&lt;br /&gt;
&lt;br /&gt;
Кроме того на этой странице присутствует форма поиска группы. Искать можно по названию или по коду группы. В первом случае в поле поиска можно ввести только часть имени.&lt;br /&gt;
&lt;br /&gt;
С этой страницы можно перейти на страницу создания группы или редактирования ее параметров.&lt;br /&gt;
&lt;br /&gt;
На страницу могут передаваться в качестве входных параметров id учебной программы, id подразделения, код статуса группы в любой комбинации. Или не передаваться ничего. Если значения в бд найдены, то выводится соответствующий список. Если какой-то параметр неправильного типа - он не учитывается при формировании списка групп. Если он правильного типа, но такого значения нет в таблице, то выводится сообщение&lt;br /&gt;
    ''(Не найдено ни одной группы с такими параметрами)''&lt;br /&gt;
Например, такое сообщение будет выведено, если во входных параметрах будет передан id программы 999999999999, или статус группы &amp;quot;букадырур&amp;quot;. Если же переданный id программы будет иметь значение &amp;quot;дывларыда&amp;quot;, а статус равен 9999, то они будут исключены из критериев отбора групп.&lt;br /&gt;
&lt;br /&gt;
==Страница группы==&lt;br /&gt;
На этой странице выводится одна строка таблицы списка групп. Отсюда можно перейти на страницу редактирования параметров группы или на страницу списка групп.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице возможно &lt;br /&gt;
* получить список группы для распечатки экзаменационной или зачетной ведомости&lt;br /&gt;
* Просмотреть информацию о программе группы&lt;br /&gt;
* Просмотреть все предметы изучаемой программы&lt;br /&gt;
&lt;br /&gt;
==Создание/изменение параметров группы==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры группы. Это название группы, код группы, программа обучения группы, отдел, к которому приписана группа. Поле &amp;quot;статус&amp;quot;  менять нельзя, потому что он меняется автоматически при наступлении определенных событий.&lt;br /&gt;
Поле &amp;quot;параллель&amp;quot; можно задать только при формировании группы. Как только группа начала обучение параллель менять нельзя.&lt;br /&gt;
&lt;br /&gt;
При заполнении полей следует учитывать набор символов, который можно использовать:&lt;br /&gt;
* название группы - цифры, русские и латинские буквы в любом регистре, тире.&lt;br /&gt;
* код группы - цифры, русские и латинские буквы в нижнем регистре, тире. Если вы введете буквы в верхнем регистре, то они будут автоматически преобразованы к нижнему. &lt;br /&gt;
&lt;br /&gt;
Код группы должен быть уникален среди всех групп.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования группы содержит обязательный параметр agroupid.&lt;br /&gt;
* Если он передан - то редактируется группа с переданным id&lt;br /&gt;
* Если он не передан (или передана строка), то будет создана новая группа с указанными параметрами&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
===show($obj)===&lt;br /&gt;
Возвращает html-код отображения информации об учебной группе в виде таблицы.&lt;br /&gt;
* Входные параметры:&lt;br /&gt;
** $obj - объект, запись из таблицы agoups&lt;br /&gt;
*Возвращаемые значения:&lt;br /&gt;
** html-код таблицы или &lt;br /&gt;
** false в случае ошибки.&lt;br /&gt;
&lt;br /&gt;
===show_id($id)===&lt;br /&gt;
Возвращает html-код отображения информации об учебной группе в виде таблицы&lt;br /&gt;
* Входные параметры:&lt;br /&gt;
** $id - id записи из таблицы agroups;&lt;br /&gt;
* Возвращаемые значения:&lt;br /&gt;
** html-код таблицы или &lt;br /&gt;
** false в случае ошибки&lt;br /&gt;
&lt;br /&gt;
===showlist($list)===&lt;br /&gt;
Возвращает html-код отображения информации о нескольких группах в виде таблицы.&lt;br /&gt;
* Входные параметры:&lt;br /&gt;
** $list - массив объектов. Каждый объект - это запись из таблицы agroups.&lt;br /&gt;
* Возвращаемые значения:&lt;br /&gt;
** html-код таблицы или &lt;br /&gt;
** false в случае ошибки.&lt;br /&gt;
&lt;br /&gt;
===form($id=NULL)===&lt;br /&gt;
Возвращает html-код формы создания новой или редактирования существующей группы.&lt;br /&gt;
* Входные переменные:&lt;br /&gt;
** $id - id записи из таблицы agroups (по умолчанию NULL). Значения этой записи будут использованы для заполнения полей формы значениями по умолчанию. Если $id = NULL, то поля формы остаются пустыми.&lt;br /&gt;
* Возвращаемые значения:&lt;br /&gt;
** html-код или &lt;br /&gt;
** false в случае ошибки.&lt;br /&gt;
&lt;br /&gt;
===get_listing($limitfrom, $limitnum, $conds)===&lt;br /&gt;
Возвращает список учебных групп, выбранных по заданным критериям.&lt;br /&gt;
* Входные переменные:&lt;br /&gt;
** $limitfrom - порядковый номер записи в общем списке записей, удовлетворяющих критериям выборки. Эта запись будет первой в возвращаемом списке.&lt;br /&gt;
** $limitnum - количество записей, которые нужно вернуть.&lt;br /&gt;
** $conds - объект - список параметров для выборки записей. Название свойства объекта - это название поля в таблице agroups.&lt;br /&gt;
* Выходные значения:&lt;br /&gt;
** массив записей из таблицы agroups или &lt;br /&gt;
** false в случае ошибки.&lt;br /&gt;
&lt;br /&gt;
===get_select_listing($inputconds)===&lt;br /&gt;
Возвращает фрагмент sql-запроса после слова WHERE. &lt;br /&gt;
* Входные переменные:&lt;br /&gt;
** $inputconds - объект. Содержит критерии выборки для формирования запроса. Свойство объекта - название поля в таблице agroups.&lt;br /&gt;
* Возвращаемые значения:&lt;br /&gt;
** фрагмент строки запроса, который будет вставлен в запрос после слова WHERE.&lt;br /&gt;
&lt;br /&gt;
===metacontracts_autocomplete_handler($agroup,$metaautocompleteid,$metaautocompletetext,$departmentid)===&lt;br /&gt;
Обрабатывает данные из автокомплит-поля &amp;quot;метаконтракт&amp;quot;&lt;br /&gt;
* Входные переменные:&lt;br /&gt;
** $agroup-группа&lt;br /&gt;
** $metaautocompleteid - id обьекта из поля &amp;quot;metacontract&amp;quot;&lt;br /&gt;
** $metaautocompletetext - текст из поля &amp;quot;metacontract&amp;quot;&lt;br /&gt;
** $departmentid - id подразделения&lt;br /&gt;
* Возвращаемые значения&lt;br /&gt;
** Объект группы с добавленным полем &amp;quot;метаконтракт&amp;quot;|false&lt;br /&gt;
&lt;br /&gt;
===Список карточек:===&lt;br /&gt;
* Инициализация плагина&lt;br /&gt;
* Редактирование страницы просмотра одного класса&lt;br /&gt;
* Редактирование страницы просмотра списка&lt;br /&gt;
** добавляется фильтрация по программе и подразделению&lt;br /&gt;
* Редактирование интерфейса формы&lt;br /&gt;
* Редактирование обработчика формы&lt;br /&gt;
* Вставка на страницу списка классов меню поиска&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/workplaces&amp;diff=2600</id>
		<title>Разработка:storages/workplaces</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/workplaces&amp;diff=2600"/>
				<updated>2012-11-03T17:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* update_and_normalize($personid, $organizationid = null, $post = null) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = workplaces&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''workplaces'' &lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* personid - id персоны в таблице [[Разработка:storages/persons | persons ]]&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
* statuswork - рабочий статус (основное место работы/совместитель/не известно/уволен)&lt;br /&gt;
* post - должность&lt;br /&gt;
* receptiondate - дата приема&lt;br /&gt;
* dismissaldate - дата увольнения&lt;br /&gt;
* phonework - рабочий телефон&lt;br /&gt;
* addnumber - добавочный номер&lt;br /&gt;
* comment - коментарий&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''widgets_field_variants_list($querytype, $depid, $data)'''====&lt;br /&gt;
&lt;br /&gt;
Обработка AJAX-запросов из форм.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $querytype(string) - тип запроса&lt;br /&gt;
* $depid(int) - подразделение, в котором ищутся должности&lt;br /&gt;
* $data(array) - дополнительные данные пришедшие из json-запроса&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.&lt;br /&gt;
# Возвращаем массив вида array(0 =&amp;gt; $this-&amp;gt;dof-&amp;gt;modlib('ig')-&amp;gt;igs('choose')), если такого типа запроса нет.&lt;br /&gt;
&lt;br /&gt;
===='''widgets_workplaces_list($departmentid, $fullname)'''====&lt;br /&gt;
&lt;br /&gt;
Получить список должностей по первым буквам названия должности(post)&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $departmentid(int) - подразделение, в котором ищутся должности&lt;br /&gt;
* $post(string) - первые несколько букв поля post&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Формируем SQL запрос на получение похожих на строку $post данных по полю post&lt;br /&gt;
# Отправляем запрос базе.&lt;br /&gt;
# Формируем полученные из базы данные в массив объектов для возвращения в форму.&lt;br /&gt;
&lt;br /&gt;
===='''update_and_normalize($personid, $organizationid = null, $post = null)'''====&lt;br /&gt;
Реализация увольнения и назначения на должность, смены должности. &lt;br /&gt;
*Если существует активная привязка: &lt;br /&gt;
*1) Если мы меняем органимзацию: &lt;br /&gt;
переносим старую привязку в архивный статус и создаем новую привязку с новой организацией&lt;br /&gt;
*2) Если организация не меняется-только обновляем запись&lt;br /&gt;
Если активной привязки не существует: создать новую привязку в активном статусе&lt;br /&gt;
При создании привязки заносится дата принятия на работу, при перемещении в архивный статус-&lt;br /&gt;
дата увольнения&lt;br /&gt;
*Если привязка не существует-создаем привязку в активном статусе&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $personid(int) - id персоны&lt;br /&gt;
* $organizationid(int) - id организации&lt;br /&gt;
* $post(string) - название должности&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* bool true|false &lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Проверяем, существует ли для данного пользователя активная привязка(если не существует-создаем активную привязку)&lt;br /&gt;
# Если активная привязка существует: проверяем, совпадает ли переданный id организации, с тем что записан в привязке&lt;br /&gt;
# В зависимости от этого совпадения, либо переводим текущую привязку в архивный статус и создаем новую в активном статусе, либо просто обновляем текущую привязку&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу workplaces.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице workplaces.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы workplaces.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/workplaces&amp;diff=2599</id>
		<title>Разработка:storages/workplaces</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/workplaces&amp;diff=2599"/>
				<updated>2012-11-03T17:29:10Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Дополнительные методы: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = workplaces&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''workplaces'' &lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* personid - id персоны в таблице [[Разработка:storages/persons | persons ]]&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
* statuswork - рабочий статус (основное место работы/совместитель/не известно/уволен)&lt;br /&gt;
* post - должность&lt;br /&gt;
* receptiondate - дата приема&lt;br /&gt;
* dismissaldate - дата увольнения&lt;br /&gt;
* phonework - рабочий телефон&lt;br /&gt;
* addnumber - добавочный номер&lt;br /&gt;
* comment - коментарий&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''widgets_field_variants_list($querytype, $depid, $data)'''====&lt;br /&gt;
&lt;br /&gt;
Обработка AJAX-запросов из форм.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $querytype(string) - тип запроса&lt;br /&gt;
* $depid(int) - подразделение, в котором ищутся должности&lt;br /&gt;
* $data(array) - дополнительные данные пришедшие из json-запроса&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.&lt;br /&gt;
# Возвращаем массив вида array(0 =&amp;gt; $this-&amp;gt;dof-&amp;gt;modlib('ig')-&amp;gt;igs('choose')), если такого типа запроса нет.&lt;br /&gt;
&lt;br /&gt;
===='''widgets_workplaces_list($departmentid, $fullname)'''====&lt;br /&gt;
&lt;br /&gt;
Получить список должностей по первым буквам названия должности(post)&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $departmentid(int) - подразделение, в котором ищутся должности&lt;br /&gt;
* $post(string) - первые несколько букв поля post&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Формируем SQL запрос на получение похожих на строку $post данных по полю post&lt;br /&gt;
# Отправляем запрос базе.&lt;br /&gt;
# Формируем полученные из базы данные в массив объектов для возвращения в форму.&lt;br /&gt;
&lt;br /&gt;
===='''update_and_normalize($personid, $organizationid = null, $post = null)'''====&lt;br /&gt;
Реализация увольнения и назначения на должность, смены должности. &lt;br /&gt;
Если существует активная привязка: &lt;br /&gt;
*1) Если мы меняем органимзацию: &lt;br /&gt;
переносим старую привязку в архивный статус и создаем новую привязку с новой организацией&lt;br /&gt;
*2) Если организация не меняется-только обновляем запись&lt;br /&gt;
Если активной привязки не существует: создать новую привязку в активном статусе&lt;br /&gt;
При создании привязки заносится дата принятия на работу, при перемещении в архивный статус-&lt;br /&gt;
дата увольнения&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $personid(int) - id персоны&lt;br /&gt;
* $organizationid(int) - id организации&lt;br /&gt;
* $post(string) - название должности&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* bool true|false &lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Проверяем, существует ли для данного пользователя активная привязка(если не существует-создаем активную привязку)&lt;br /&gt;
# Если активная привязка существует: проверяем, совпадает ли переданный id организации, с тем что записан в привязке&lt;br /&gt;
# В зависимости от этого совпадения, либо переводим текущую привязку в архивный статус и создаем новую в активном статусе, либо просто обновляем текущую привязку&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу workplaces.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице workplaces.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы workplaces.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/employees&amp;diff=2598</id>
		<title>Разработка:im/employees</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/employees&amp;diff=2598"/>
				<updated>2012-11-03T17:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = employees&lt;br /&gt;
| type = im&lt;br /&gt;
}}&lt;br /&gt;
=im/employees - Сотрудники=&lt;br /&gt;
Интерфейс Для работы с сотрудниками организации, назначений на должности.&lt;br /&gt;
Работает вместе с модулями storage/eagreements, storage/appointments, storage/schpositions, storage/positions и storage/teachers.&lt;br /&gt;
Позволяет создавать и редактировать должности и вакансии, договора с сотрудниками и назначения на должности, а также создавать связи для учителей с предметами.&lt;br /&gt;
&lt;br /&gt;
== Список возможных действий и список сотрудников (list.php)==&lt;br /&gt;
Здесь находится список все сотрудиников, с которыми заключены договора. Список сотрудников выводится в виде таблицы, с полями:&lt;br /&gt;
* ФИО сотрудника (ссылается на сотрудника в таблице persons)&lt;br /&gt;
* подразделение&lt;br /&gt;
* Договор&lt;br /&gt;
* Дата начала работы&lt;br /&gt;
* инструменты (ссылка на страницу просмотра договора)&lt;br /&gt;
&lt;br /&gt;
Также на этой странице отображается список возможных операций для назначения сотрудника на должность.&lt;br /&gt;
* Список должностей&lt;br /&gt;
** Создание новой должности&lt;br /&gt;
* Список вакансий&lt;br /&gt;
** Создание новой вакансии&lt;br /&gt;
* Список назначений&lt;br /&gt;
** Создание договора с сотрудником и назначения на должность&lt;br /&gt;
** Создание новой должности&lt;br /&gt;
** Увольнение сотрудника (пока нет)&lt;br /&gt;
&lt;br /&gt;
== Список должностей ==&lt;br /&gt;
На странице отображается список всех должностей.&lt;br /&gt;
Дополнительными параметрами являются departmentid (подразделение), name (название должности), code (кодовое название должности). Также можно указать дополнительный параметр status, который отображает должности с указанным статусом. При отсутствии должности с данными параметрами выводится сообщение, что должности не найдены. При отсутствии всех параметров выводится общий список должностей.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание новой должности. Также со страницы можно перейти на страницу просмотра или редактирования должности.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование должности ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры должности.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Название - наименование должности.&lt;br /&gt;
* Код - кодовое наименование должности. Указывается латинскими буквами в нижнем регистре. Должно быть уникальным.&lt;br /&gt;
* Подразделение - подразделение, для которого создается должность.&lt;br /&gt;
Ниже стоит галочка, если необходимо автоматически создать вакансии и поле с указанием количества создаваемых вакансий и количеством часов для каждой вакансии. По умолчанию все вакансии создаются на 36 часов. Количество часов можно задать от 1 до 40.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования должности содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется должность с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания новой должности.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр должности ==&lt;br /&gt;
На этой странице выводится вся информация об указанной должности. Отсюда можно перейти на страницу редактирования должности, на страницу со списком должностей, просмотреть список вакансий на должности, или создать новую вакансию на данную должность.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице возможно изменить статус должности. Список статусов должности указан в плагине [[Разработка:workflows/positions | workflows/positions ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список вакансий ==&lt;br /&gt;
На странице отображается список всех вакансий.&lt;br /&gt;
Дополнительными параметрами фильтрации являются &lt;br /&gt;
* departmentid (подразделение), &lt;br /&gt;
* positionid (должность)&lt;br /&gt;
* ststus (статус) &lt;br /&gt;
&lt;br /&gt;
Также можно указать дополнительный параметр status, который отображает вакансии с указанным статусом. При отсутствии вакансий с данными параметрами выводится сообщение, что вакансии не найдены. При отсутствии всех параметров выводится общий список вакансий.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание новой вакансии. Также со страницы можно перейти на страницу просмотра или редактирования вакансии.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование вакансии ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры вакансии.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Подразделение - подразделение, для которого создается вакансия.&lt;br /&gt;
* Должность - выбор должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Ставка - указывается время в часах в неделю, которая занимает данная вакансия. Обязательно для заполнения.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования темы содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется вакансия с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания новой вакансии.&lt;br /&gt;
* Если он не передан или передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр вакансии ==&lt;br /&gt;
На этой странице выводится вся информация об указанной вакансии. Отсюда можно перейти на страницу редактирования вакансии или на страницу со списком вакансий. &lt;br /&gt;
На этой странице также проискходит изменение статуса вакансии. Список статусов вакакнсии указан в плагине [[Разработка:workflows/schpositions | workflows/schpositions ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список должностных назначений ==&lt;br /&gt;
На странице отображается список всех назначений на должности с договорами сотрудников.&lt;br /&gt;
Дополнительными параметрами являются departmentid (подразделение), personid (имя сотрудника, заключившего договор), worktime (ставка) и schposition (вакансия). Также можно указать дополнительный параметр status, который отображает назначения с указанным статусом. При отсутствии назначений с данными параметрами выводится сообщение, что назначения не найдены. При отсутствии всех параметров выводится общий список назначений на должности.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание нового назначения и договора с назначением. Также со страницы можно перейти на страницу просмотра или редактирования назначения и договора.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование назначения на должность ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры назначения на должность.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Сотрудник - выбор сотрудника из списка, с которыми заключен договор.&lt;br /&gt;
* Должность - выбор вакансии по должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Табельный номер - табельный номер сотрудника. Уникальный.&lt;br /&gt;
* Ставка - ставка в часах в неделю, которую сотрудник занимает по данной вакансии. Не должна превышать количество свободных часов ставки вакансии.&lt;br /&gt;
* Дата - дата назначения сотрудника на должность.&lt;br /&gt;
* Подразделение - подразделения, которому назначается сотрудник на должность.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования должности содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется назначение на должность с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания нового назначения.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование договора с сотрудником ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры договора с сотрудником и назначения на должность.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Тип сотрудника - какой сотрудник будет выбран: пользователь moodle или персона деканата. Если будет выбран пользователь Moodle, то для него автоматически будет создана персона деканата.&lt;br /&gt;
* Сотрудник - выбор сотрудника из существующих пользователей, в зависимости от выбранного в первом меню типа.&lt;br /&gt;
* Должность - выбор вакансии по должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Заметки - какие либо заметки по данному сотруднику.&lt;br /&gt;
* Табельный номер - табельный номер сотрудника. Уникальный.&lt;br /&gt;
* Ставка - ставка в часах в неделю, которую сотрудник занимает по данной вакансии. Не должна превышать количество свободных часов ставки вакансии.&lt;br /&gt;
* Дата - дата назначения сотрудника на должность.&lt;br /&gt;
* Подразделение - подразделения, которому назначается сотрудник на должность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Увольнение сотрудника:'''&lt;br /&gt;
&lt;br /&gt;
Ниже отображается форма увольнения сотрудника со всеми занятыми им вакансиями и кнопкой &amp;quot;Уволить&amp;quot;, если сотрудник еще не уволен.&lt;br /&gt;
&lt;br /&gt;
Загружается форма, где отображаются все занятые сотрудником вакансии. Напротив каждой ставится отображается галочка &amp;quot;Освободить&amp;quot;. Ниже кнопка &amp;quot;Освободить с должностей&amp;quot;. Для увольнения сотрудника снизу располагается галочка подтверждающая увольнение сотрудника и кнопка &amp;quot;Уволить&amp;quot;. При увольнении сотрудник автоматически освобождается от всех занятых им должностей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования темы содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется назначение на должность с переданным id и договор приписанный к назначению.&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания нового назначения с договором.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр назначения на должность ==&lt;br /&gt;
На этой странице выводится вся информация об указанном назначении на должность. Отсюда можно перейти на страницу редактирования назначения на должность и/или договора с сотрудником, а также на страницу просмотра договора с сотрудником или на страницу со списком назначений на должности.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице находится форма добавления и удаления предметов в список преподаваемых. Предметы сгруппированы по программам. Справа находится список предметов, которые учитель может преподавать, а слева - которые он будет преподавать. Предметы в левой колонке отмечены разными цветами:&lt;br /&gt;
* Серым отмечены предметы которые учитель планирует преподавать&lt;br /&gt;
* Черным отмечены предметы, которые учитель уже преподает&lt;br /&gt;
&lt;br /&gt;
Если назначение на должность находится в статусе &amp;quot;черновик&amp;quot;, то предметы в список преподаваемых можно перенести только как &amp;quot;планируемые&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
При переходе назначения на должность в статус &amp;quot;используется&amp;quot; все запланированные к преподаванию предметы переходят в статус &amp;quot;активные&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
При переходе назначения на должность в статус &amp;quot;завершена&amp;quot; все активные преподаваемые учителем предметы переходят в статус &amp;quot;завершенные&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
Чтобы таблица с доступными и преподаваемыми дисциплинами не вылезала за ширину экрана, названия и коды дисциплин и программ обрезаются в соответствии с конфигурационными переменными.&lt;br /&gt;
&lt;br /&gt;
Если название было обрезано, в конец добавляется многоточие. Обрезку выполняет метод cut_item_fullname(im/employees)&lt;br /&gt;
&lt;br /&gt;
По умолчанию были приняты следующие значения конфигурационных переменных:&lt;br /&gt;
&lt;br /&gt;
//максимальная длина названия дисциплины&lt;br /&gt;
&lt;br /&gt;
$maxpitemnamelength = 65;&lt;br /&gt;
&lt;br /&gt;
//максимальная длина кода дисциплины&lt;br /&gt;
&lt;br /&gt;
$maxpitemcodelength = 30;&lt;br /&gt;
&lt;br /&gt;
//максимальная длина названия программы&lt;br /&gt;
&lt;br /&gt;
$maxprogrammnamelength = 45;&lt;br /&gt;
&lt;br /&gt;
//максимальная длина кода программы&lt;br /&gt;
&lt;br /&gt;
$maxprogrammcodelength = 30;&lt;br /&gt;
&lt;br /&gt;
== Просмотр договора с сотрудником ==&lt;br /&gt;
На этой странице выводится вся информация об указанном договоре с сотрудником. Отсюда можно перейти на страницу со списком назначений на должности. На этой странице также происходит изменение статуса договора. Список статусов договора указан в плагине [[Разработка:workflows/eagreements | workflows/eagreements ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список преподавателей дисциплины ==&lt;br /&gt;
На этой странице выводится кратная информация о дисциплине: &lt;br /&gt;
* Подразделение (ссылка на просмотр подразделения),&lt;br /&gt;
* Программа (ссылка на просмотр программы),&lt;br /&gt;
* Дисциплина (ссылка на просмотр дисциплины) &lt;br /&gt;
А также количество часов, отведенное на преподавание этой дисциплины.&lt;br /&gt;
&lt;br /&gt;
Далее идет список преподавателей, которые ведут эту дисциплину. Преподаватели выводятся в алфавитном порядке, и сортируются по фамилии. Таблица с преподавателями содержит поля:&lt;br /&gt;
* порядковый номер&lt;br /&gt;
* ФИО (ссылка на данные пользователя в таблице persons)&lt;br /&gt;
* табельный номер (ссылка на запись в appointments).&lt;br /&gt;
* номер договора (ссылка на договор с сотрудником).&lt;br /&gt;
==API==&lt;br /&gt;
&lt;br /&gt;
Здесь описаны функции для работы с сотрудниками.&lt;br /&gt;
===== cut_item_fullname() =====&lt;br /&gt;
Обрезает переданные строки в соответствии с переданными лимитами и добавляет окончания к строкам. Затем соединяет их в одну(в формате $str1 [$str2])&lt;br /&gt;
''Параметры:''&lt;br /&gt;
* $str1 - первая часть строки&lt;br /&gt;
* $len1 - лимит первой части строки&lt;br /&gt;
* $str2 - вторая часть строки&lt;br /&gt;
* $len2 - лимит второй части строки&lt;br /&gt;
* $appendix - окончание&lt;br /&gt;
&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (string) - обрезанная строка $str1 [$str2]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/employees&amp;diff=2597</id>
		<title>Разработка:im/employees</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/employees&amp;diff=2597"/>
				<updated>2012-11-03T16:58:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Просмотр назначения на должность */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = employees&lt;br /&gt;
| type = im&lt;br /&gt;
}}&lt;br /&gt;
=im/employees - Сотрудники=&lt;br /&gt;
Интерфейс Для работы с сотрудниками организации, назначений на должности.&lt;br /&gt;
Работает вместе с модулями storage/eagreements, storage/appointments, storage/schpositions, storage/positions и storage/teachers.&lt;br /&gt;
Позволяет создавать и редактировать должности и вакансии, договора с сотрудниками и назначения на должности, а также создавать связи для учителей с предметами.&lt;br /&gt;
&lt;br /&gt;
== Список возможных действий и список сотрудников (list.php)==&lt;br /&gt;
Здесь находится список все сотрудиников, с которыми заключены договора. Список сотрудников выводится в виде таблицы, с полями:&lt;br /&gt;
* ФИО сотрудника (ссылается на сотрудника в таблице persons)&lt;br /&gt;
* подразделение&lt;br /&gt;
* Договор&lt;br /&gt;
* Дата начала работы&lt;br /&gt;
* инструменты (ссылка на страницу просмотра договора)&lt;br /&gt;
&lt;br /&gt;
Также на этой странице отображается список возможных операций для назначения сотрудника на должность.&lt;br /&gt;
* Список должностей&lt;br /&gt;
** Создание новой должности&lt;br /&gt;
* Список вакансий&lt;br /&gt;
** Создание новой вакансии&lt;br /&gt;
* Список назначений&lt;br /&gt;
** Создание договора с сотрудником и назначения на должность&lt;br /&gt;
** Создание новой должности&lt;br /&gt;
** Увольнение сотрудника (пока нет)&lt;br /&gt;
&lt;br /&gt;
== Список должностей ==&lt;br /&gt;
На странице отображается список всех должностей.&lt;br /&gt;
Дополнительными параметрами являются departmentid (подразделение), name (название должности), code (кодовое название должности). Также можно указать дополнительный параметр status, который отображает должности с указанным статусом. При отсутствии должности с данными параметрами выводится сообщение, что должности не найдены. При отсутствии всех параметров выводится общий список должностей.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание новой должности. Также со страницы можно перейти на страницу просмотра или редактирования должности.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование должности ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры должности.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Название - наименование должности.&lt;br /&gt;
* Код - кодовое наименование должности. Указывается латинскими буквами в нижнем регистре. Должно быть уникальным.&lt;br /&gt;
* Подразделение - подразделение, для которого создается должность.&lt;br /&gt;
Ниже стоит галочка, если необходимо автоматически создать вакансии и поле с указанием количества создаваемых вакансий и количеством часов для каждой вакансии. По умолчанию все вакансии создаются на 36 часов. Количество часов можно задать от 1 до 40.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования должности содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется должность с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания новой должности.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр должности ==&lt;br /&gt;
На этой странице выводится вся информация об указанной должности. Отсюда можно перейти на страницу редактирования должности, на страницу со списком должностей, просмотреть список вакансий на должности, или создать новую вакансию на данную должность.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице возможно изменить статус должности. Список статусов должности указан в плагине [[Разработка:workflows/positions | workflows/positions ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список вакансий ==&lt;br /&gt;
На странице отображается список всех вакансий.&lt;br /&gt;
Дополнительными параметрами фильтрации являются &lt;br /&gt;
* departmentid (подразделение), &lt;br /&gt;
* positionid (должность)&lt;br /&gt;
* ststus (статус) &lt;br /&gt;
&lt;br /&gt;
Также можно указать дополнительный параметр status, который отображает вакансии с указанным статусом. При отсутствии вакансий с данными параметрами выводится сообщение, что вакансии не найдены. При отсутствии всех параметров выводится общий список вакансий.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание новой вакансии. Также со страницы можно перейти на страницу просмотра или редактирования вакансии.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование вакансии ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры вакансии.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Подразделение - подразделение, для которого создается вакансия.&lt;br /&gt;
* Должность - выбор должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Ставка - указывается время в часах в неделю, которая занимает данная вакансия. Обязательно для заполнения.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования темы содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется вакансия с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания новой вакансии.&lt;br /&gt;
* Если он не передан или передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр вакансии ==&lt;br /&gt;
На этой странице выводится вся информация об указанной вакансии. Отсюда можно перейти на страницу редактирования вакансии или на страницу со списком вакансий. &lt;br /&gt;
На этой странице также проискходит изменение статуса вакансии. Список статусов вакакнсии указан в плагине [[Разработка:workflows/schpositions | workflows/schpositions ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список должностных назначений ==&lt;br /&gt;
На странице отображается список всех назначений на должности с договорами сотрудников.&lt;br /&gt;
Дополнительными параметрами являются departmentid (подразделение), personid (имя сотрудника, заключившего договор), worktime (ставка) и schposition (вакансия). Также можно указать дополнительный параметр status, который отображает назначения с указанным статусом. При отсутствии назначений с данными параметрами выводится сообщение, что назначения не найдены. При отсутствии всех параметров выводится общий список назначений на должности.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание нового назначения и договора с назначением. Также со страницы можно перейти на страницу просмотра или редактирования назначения и договора.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование назначения на должность ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры назначения на должность.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Сотрудник - выбор сотрудника из списка, с которыми заключен договор.&lt;br /&gt;
* Должность - выбор вакансии по должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Табельный номер - табельный номер сотрудника. Уникальный.&lt;br /&gt;
* Ставка - ставка в часах в неделю, которую сотрудник занимает по данной вакансии. Не должна превышать количество свободных часов ставки вакансии.&lt;br /&gt;
* Дата - дата назначения сотрудника на должность.&lt;br /&gt;
* Подразделение - подразделения, которому назначается сотрудник на должность.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования должности содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется назначение на должность с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания нового назначения.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование договора с сотрудником ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры договора с сотрудником и назначения на должность.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Тип сотрудника - какой сотрудник будет выбран: пользователь moodle или персона деканата. Если будет выбран пользователь Moodle, то для него автоматически будет создана персона деканата.&lt;br /&gt;
* Сотрудник - выбор сотрудника из существующих пользователей, в зависимости от выбранного в первом меню типа.&lt;br /&gt;
* Должность - выбор вакансии по должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Заметки - какие либо заметки по данному сотруднику.&lt;br /&gt;
* Табельный номер - табельный номер сотрудника. Уникальный.&lt;br /&gt;
* Ставка - ставка в часах в неделю, которую сотрудник занимает по данной вакансии. Не должна превышать количество свободных часов ставки вакансии.&lt;br /&gt;
* Дата - дата назначения сотрудника на должность.&lt;br /&gt;
* Подразделение - подразделения, которому назначается сотрудник на должность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Увольнение сотрудника:'''&lt;br /&gt;
&lt;br /&gt;
Ниже отображается форма увольнения сотрудника со всеми занятыми им вакансиями и кнопкой &amp;quot;Уволить&amp;quot;, если сотрудник еще не уволен.&lt;br /&gt;
&lt;br /&gt;
Загружается форма, где отображаются все занятые сотрудником вакансии. Напротив каждой ставится отображается галочка &amp;quot;Освободить&amp;quot;. Ниже кнопка &amp;quot;Освободить с должностей&amp;quot;. Для увольнения сотрудника снизу располагается галочка подтверждающая увольнение сотрудника и кнопка &amp;quot;Уволить&amp;quot;. При увольнении сотрудник автоматически освобождается от всех занятых им должностей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования темы содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется назначение на должность с переданным id и договор приписанный к назначению.&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания нового назначения с договором.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр назначения на должность ==&lt;br /&gt;
На этой странице выводится вся информация об указанном назначении на должность. Отсюда можно перейти на страницу редактирования назначения на должность и/или договора с сотрудником, а также на страницу просмотра договора с сотрудником или на страницу со списком назначений на должности.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице находится форма добавления и удаления предметов в список преподаваемых. Предметы сгруппированы по программам. Справа находится список предметов, которые учитель может преподавать, а слева - которые он будет преподавать. Предметы в левой колонке отмечены разными цветами:&lt;br /&gt;
* Серым отмечены предметы которые учитель планирует преподавать&lt;br /&gt;
* Черным отмечены предметы, которые учитель уже преподает&lt;br /&gt;
&lt;br /&gt;
Если назначение на должность находится в статусе &amp;quot;черновик&amp;quot;, то предметы в список преподаваемых можно перенести только как &amp;quot;планируемые&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
При переходе назначения на должность в статус &amp;quot;используется&amp;quot; все запланированные к преподаванию предметы переходят в статус &amp;quot;активные&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
При переходе назначения на должность в статус &amp;quot;завершена&amp;quot; все активные преподаваемые учителем предметы переходят в статус &amp;quot;завершенные&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
Чтобы таблица с доступными и преподаваемыми дисциплинами не вылезала за ширину экрана, названия и коды дисциплин и программ обрезаются в соответствии с конфигурационными переменными.&lt;br /&gt;
&lt;br /&gt;
Если название было обрезано, в конец добавляется многоточие. Обрезку выполняет метод cut_item_fullname(im/employees)&lt;br /&gt;
&lt;br /&gt;
По умолчанию были приняты следующие значения конфигурационных переменных:&lt;br /&gt;
&lt;br /&gt;
//максимальная длина названия дисциплины&lt;br /&gt;
&lt;br /&gt;
$maxpitemnamelength = 65;&lt;br /&gt;
&lt;br /&gt;
//максимальная длина кода дисциплины&lt;br /&gt;
&lt;br /&gt;
$maxpitemcodelength = 30;&lt;br /&gt;
&lt;br /&gt;
//максимальная длина названия программы&lt;br /&gt;
&lt;br /&gt;
$maxprogrammnamelength = 45;&lt;br /&gt;
&lt;br /&gt;
//максимальная длина кода программы&lt;br /&gt;
&lt;br /&gt;
$maxprogrammcodelength = 30;&lt;br /&gt;
&lt;br /&gt;
== Просмотр договора с сотрудником ==&lt;br /&gt;
На этой странице выводится вся информация об указанном договоре с сотрудником. Отсюда можно перейти на страницу со списком назначений на должности. На этой странице также происходит изменение статуса договора. Список статусов договора указан в плагине [[Разработка:workflows/eagreements | workflows/eagreements ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список преподавателей дисциплины ==&lt;br /&gt;
На этой странице выводится кратная информация о дисциплине: &lt;br /&gt;
* Подразделение (ссылка на просмотр подразделения),&lt;br /&gt;
* Программа (ссылка на просмотр программы),&lt;br /&gt;
* Дисциплина (ссылка на просмотр дисциплины) &lt;br /&gt;
А также количество часов, отведенное на преподавание этой дисциплины.&lt;br /&gt;
&lt;br /&gt;
Далее идет список преподавателей, которые ведут эту дисциплину. Преподаватели выводятся в алфавитном порядке, и сортируются по фамилии. Таблица с преподавателями содержит поля:&lt;br /&gt;
* порядковый номер&lt;br /&gt;
* ФИО (ссылка на данные пользователя в таблице persons)&lt;br /&gt;
* табельный номер (ссылка на запись в appointments).&lt;br /&gt;
* номер договора (ссылка на договор с сотрудником).&lt;br /&gt;
==API==&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/employees&amp;diff=2596</id>
		<title>Разработка:im/employees</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:im/employees&amp;diff=2596"/>
				<updated>2012-11-03T16:57:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Просмотр назначения на должность */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = employees&lt;br /&gt;
| type = im&lt;br /&gt;
}}&lt;br /&gt;
=im/employees - Сотрудники=&lt;br /&gt;
Интерфейс Для работы с сотрудниками организации, назначений на должности.&lt;br /&gt;
Работает вместе с модулями storage/eagreements, storage/appointments, storage/schpositions, storage/positions и storage/teachers.&lt;br /&gt;
Позволяет создавать и редактировать должности и вакансии, договора с сотрудниками и назначения на должности, а также создавать связи для учителей с предметами.&lt;br /&gt;
&lt;br /&gt;
== Список возможных действий и список сотрудников (list.php)==&lt;br /&gt;
Здесь находится список все сотрудиников, с которыми заключены договора. Список сотрудников выводится в виде таблицы, с полями:&lt;br /&gt;
* ФИО сотрудника (ссылается на сотрудника в таблице persons)&lt;br /&gt;
* подразделение&lt;br /&gt;
* Договор&lt;br /&gt;
* Дата начала работы&lt;br /&gt;
* инструменты (ссылка на страницу просмотра договора)&lt;br /&gt;
&lt;br /&gt;
Также на этой странице отображается список возможных операций для назначения сотрудника на должность.&lt;br /&gt;
* Список должностей&lt;br /&gt;
** Создание новой должности&lt;br /&gt;
* Список вакансий&lt;br /&gt;
** Создание новой вакансии&lt;br /&gt;
* Список назначений&lt;br /&gt;
** Создание договора с сотрудником и назначения на должность&lt;br /&gt;
** Создание новой должности&lt;br /&gt;
** Увольнение сотрудника (пока нет)&lt;br /&gt;
&lt;br /&gt;
== Список должностей ==&lt;br /&gt;
На странице отображается список всех должностей.&lt;br /&gt;
Дополнительными параметрами являются departmentid (подразделение), name (название должности), code (кодовое название должности). Также можно указать дополнительный параметр status, который отображает должности с указанным статусом. При отсутствии должности с данными параметрами выводится сообщение, что должности не найдены. При отсутствии всех параметров выводится общий список должностей.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание новой должности. Также со страницы можно перейти на страницу просмотра или редактирования должности.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование должности ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры должности.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Название - наименование должности.&lt;br /&gt;
* Код - кодовое наименование должности. Указывается латинскими буквами в нижнем регистре. Должно быть уникальным.&lt;br /&gt;
* Подразделение - подразделение, для которого создается должность.&lt;br /&gt;
Ниже стоит галочка, если необходимо автоматически создать вакансии и поле с указанием количества создаваемых вакансий и количеством часов для каждой вакансии. По умолчанию все вакансии создаются на 36 часов. Количество часов можно задать от 1 до 40.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования должности содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется должность с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания новой должности.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр должности ==&lt;br /&gt;
На этой странице выводится вся информация об указанной должности. Отсюда можно перейти на страницу редактирования должности, на страницу со списком должностей, просмотреть список вакансий на должности, или создать новую вакансию на данную должность.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице возможно изменить статус должности. Список статусов должности указан в плагине [[Разработка:workflows/positions | workflows/positions ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список вакансий ==&lt;br /&gt;
На странице отображается список всех вакансий.&lt;br /&gt;
Дополнительными параметрами фильтрации являются &lt;br /&gt;
* departmentid (подразделение), &lt;br /&gt;
* positionid (должность)&lt;br /&gt;
* ststus (статус) &lt;br /&gt;
&lt;br /&gt;
Также можно указать дополнительный параметр status, который отображает вакансии с указанным статусом. При отсутствии вакансий с данными параметрами выводится сообщение, что вакансии не найдены. При отсутствии всех параметров выводится общий список вакансий.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание новой вакансии. Также со страницы можно перейти на страницу просмотра или редактирования вакансии.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование вакансии ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры вакансии.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Подразделение - подразделение, для которого создается вакансия.&lt;br /&gt;
* Должность - выбор должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Ставка - указывается время в часах в неделю, которая занимает данная вакансия. Обязательно для заполнения.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования темы содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется вакансия с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания новой вакансии.&lt;br /&gt;
* Если он не передан или передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр вакансии ==&lt;br /&gt;
На этой странице выводится вся информация об указанной вакансии. Отсюда можно перейти на страницу редактирования вакансии или на страницу со списком вакансий. &lt;br /&gt;
На этой странице также проискходит изменение статуса вакансии. Список статусов вакакнсии указан в плагине [[Разработка:workflows/schpositions | workflows/schpositions ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список должностных назначений ==&lt;br /&gt;
На странице отображается список всех назначений на должности с договорами сотрудников.&lt;br /&gt;
Дополнительными параметрами являются departmentid (подразделение), personid (имя сотрудника, заключившего договор), worktime (ставка) и schposition (вакансия). Также можно указать дополнительный параметр status, который отображает назначения с указанным статусом. При отсутствии назначений с данными параметрами выводится сообщение, что назначения не найдены. При отсутствии всех параметров выводится общий список назначений на должности.&lt;br /&gt;
&lt;br /&gt;
Список выводится в виде таблицы. Количество строк таблицы выводимых на одну страницу настраивается в параметрах конфигурации. Если список слишком длинный, то он разбивается на страницы и появляется список ссылок на них. &lt;br /&gt;
&lt;br /&gt;
Вверху списка отображается ссылка на создание нового назначения и договора с назначением. Также со страницы можно перейти на страницу просмотра или редактирования назначения и договора.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование назначения на должность ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры назначения на должность.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Сотрудник - выбор сотрудника из списка, с которыми заключен договор.&lt;br /&gt;
* Должность - выбор вакансии по должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Табельный номер - табельный номер сотрудника. Уникальный.&lt;br /&gt;
* Ставка - ставка в часах в неделю, которую сотрудник занимает по данной вакансии. Не должна превышать количество свободных часов ставки вакансии.&lt;br /&gt;
* Дата - дата назначения сотрудника на должность.&lt;br /&gt;
* Подразделение - подразделения, которому назначается сотрудник на должность.&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования должности содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется назначение на должность с переданным id&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания нового назначения.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Создание/редактирование договора с сотрудником ==&lt;br /&gt;
На этой странице отображается форма, в которой можно определить параметры договора с сотрудником и назначения на должность.&lt;br /&gt;
&lt;br /&gt;
'''Назначение полей:'''&lt;br /&gt;
* Тип сотрудника - какой сотрудник будет выбран: пользователь moodle или персона деканата. Если будет выбран пользователь Moodle, то для него автоматически будет создана персона деканата.&lt;br /&gt;
* Сотрудник - выбор сотрудника из существующих пользователей, в зависимости от выбранного в первом меню типа.&lt;br /&gt;
* Должность - выбор вакансии по должности из списка уже существующих и не отмененных.&lt;br /&gt;
* Заметки - какие либо заметки по данному сотруднику.&lt;br /&gt;
* Табельный номер - табельный номер сотрудника. Уникальный.&lt;br /&gt;
* Ставка - ставка в часах в неделю, которую сотрудник занимает по данной вакансии. Не должна превышать количество свободных часов ставки вакансии.&lt;br /&gt;
* Дата - дата назначения сотрудника на должность.&lt;br /&gt;
* Подразделение - подразделения, которому назначается сотрудник на должность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Увольнение сотрудника:'''&lt;br /&gt;
&lt;br /&gt;
Ниже отображается форма увольнения сотрудника со всеми занятыми им вакансиями и кнопкой &amp;quot;Уволить&amp;quot;, если сотрудник еще не уволен.&lt;br /&gt;
&lt;br /&gt;
Загружается форма, где отображаются все занятые сотрудником вакансии. Напротив каждой ставится отображается галочка &amp;quot;Освободить&amp;quot;. Ниже кнопка &amp;quot;Освободить с должностей&amp;quot;. Для увольнения сотрудника снизу располагается галочка подтверждающая увольнение сотрудника и кнопка &amp;quot;Уволить&amp;quot;. При увольнении сотрудник автоматически освобождается от всех занятых им должностей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Страница создания и редактирования темы содержит обязательный параметр id.&lt;br /&gt;
* Если он передан - то редактируется назначение на должность с переданным id и договор приписанный к назначению.&lt;br /&gt;
* Если он равен 0 (или передана строка), то будет загружена форма создания нового назначения с договором.&lt;br /&gt;
* Если передан номер не существующей в БД записи - то будет выведено сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Просмотр назначения на должность ==&lt;br /&gt;
На этой странице выводится вся информация об указанном назначении на должность. Отсюда можно перейти на страницу редактирования назначения на должность и/или договора с сотрудником, а также на страницу просмотра договора с сотрудником или на страницу со списком назначений на должности.&lt;br /&gt;
&lt;br /&gt;
Также на этой странице находится форма добавления и удаления предметов в список преподаваемых. Предметы сгруппированы по программам. Справа находится список предметов, которые учитель может преподавать, а слева - которые он будет преподавать. Предметы в левой колонке отмечены разными цветами:&lt;br /&gt;
* Серым отмечены предметы которые учитель планирует преподавать&lt;br /&gt;
* Черным отмечены предметы, которые учитель уже преподает&lt;br /&gt;
&lt;br /&gt;
Если назначение на должность находится в статусе &amp;quot;черновик&amp;quot;, то предметы в список преподаваемых можно перенести только как &amp;quot;планируемые&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
При переходе назначения на должность в статус &amp;quot;используется&amp;quot; все запланированные к преподаванию предметы переходят в статус &amp;quot;активные&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
При переходе назначения на должность в статус &amp;quot;завершена&amp;quot; все активные преподаваемые учителем предметы переходят в статус &amp;quot;завершенные&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
Чтобы таблица с доступными и преподаваемыми дисциплинами не вылезала за ширину экрана, названия и коды дисциплин и программ обрезаются в соответствии с конфигурационными переменными.&amp;lt;br/&amp;gt;&lt;br /&gt;
Если название было обрезано, в конец добавляется многоточие. Обрезку выполняет метод cut_item_fullname(im/employees)&lt;br /&gt;
По умолчанию были приняты следующие значения конфигурационных переменных&lt;br /&gt;
//максимальная длина названия дисциплины&lt;br /&gt;
$maxpitemnamelength = 65;&lt;br /&gt;
//максимальная длина кода дисциплины&lt;br /&gt;
$maxpitemcodelength = 30;&lt;br /&gt;
//максимальная длина названия программы&lt;br /&gt;
$maxprogrammnamelength = 45;&lt;br /&gt;
//максимальная длина кода программы&lt;br /&gt;
$maxprogrammcodelength = 30;&lt;br /&gt;
&lt;br /&gt;
== Просмотр договора с сотрудником ==&lt;br /&gt;
На этой странице выводится вся информация об указанном договоре с сотрудником. Отсюда можно перейти на страницу со списком назначений на должности. На этой странице также происходит изменение статуса договора. Список статусов договора указан в плагине [[Разработка:workflows/eagreements | workflows/eagreements ]]&lt;br /&gt;
&lt;br /&gt;
Содержит обязательный параметр id. Если не указан, или указан неверно - выводится сообщение об ошибке.&lt;br /&gt;
&lt;br /&gt;
== Список преподавателей дисциплины ==&lt;br /&gt;
На этой странице выводится кратная информация о дисциплине: &lt;br /&gt;
* Подразделение (ссылка на просмотр подразделения),&lt;br /&gt;
* Программа (ссылка на просмотр программы),&lt;br /&gt;
* Дисциплина (ссылка на просмотр дисциплины) &lt;br /&gt;
А также количество часов, отведенное на преподавание этой дисциплины.&lt;br /&gt;
&lt;br /&gt;
Далее идет список преподавателей, которые ведут эту дисциплину. Преподаватели выводятся в алфавитном порядке, и сортируются по фамилии. Таблица с преподавателями содержит поля:&lt;br /&gt;
* порядковый номер&lt;br /&gt;
* ФИО (ссылка на данные пользователя в таблице persons)&lt;br /&gt;
* табельный номер (ссылка на запись в appointments).&lt;br /&gt;
* номер договора (ссылка на договор с сотрудником).&lt;br /&gt;
==API==&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/persons&amp;diff=2595</id>
		<title>Разработка:storages/persons</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/persons&amp;diff=2595"/>
				<updated>2012-10-31T18:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Подробный формат полей в таблице: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = persons&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''persons'' - адресная книга, в которую включены все участники учебного процесса: учащиеся, законные представители, сотрудники, преподаватели и т. д.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
*firstname - имя&lt;br /&gt;
*middlename - отчество&lt;br /&gt;
*lastname - фамилия&lt;br /&gt;
*sortname - ФИО для сортировки по умолчанию (нужно ли оно?)&lt;br /&gt;
*preferredname - префикс для имения (Mr. Dr. Г-н, Г-а)&lt;br /&gt;
*dateofbirth - дата рождения у UTS&lt;br /&gt;
*gender - пол  (male, female, unknown)&lt;br /&gt;
*email - основной адрес электронной почты&lt;br /&gt;
*phonehome - домашний телефон&lt;br /&gt;
*phonework - рабочий телефон&lt;br /&gt;
*phonecell - сотовый телефон&lt;br /&gt;
*passtypeid - тип удостоверения личности (1 - свидетельство о рождение, 2 - паспорт гражданина РФ, 3 - загранпасспорт, 4 - разрешение на временное проживание лица без гражданства, 5 - вид на жительство, 6 - военный билет, 7 - водительсткое удостоверение пластиковое, 8 - вод. удостоверение форма 1, 9 - вод. удостоверение международное)&lt;br /&gt;
*passportserial - серия удостоверения личности (если предусмотрена типом документа)&lt;br /&gt;
*passportnum - номер удостоверения личности&lt;br /&gt;
*passportdate - дата выдачи удостоверения личности&lt;br /&gt;
*passportem - название организации, выдавшей удостоверение личности&lt;br /&gt;
*citizenship - гражданство&lt;br /&gt;
*passportaddrid - адрес прописки по паспорту&lt;br /&gt;
*mdluser - id пользователя в moodle (если есть)&lt;br /&gt;
*sync2moodle - признак синхронизации с moodle&lt;br /&gt;
** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle)&lt;br /&gt;
** 0 - не синхронизирован и по идее не должен иметь mdluser&lt;br /&gt;
*addressid - текущий адрес&lt;br /&gt;
*status - Статусы персоны (normal, deleted, archived)&lt;br /&gt;
*adddate - дата добавления&lt;br /&gt;
*departmentid - основной отдел, к которому приписан человек (может редактировать его данные в persons)&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_bu($userid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $userid - id пользователя в moodle, по умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - данные персоны&lt;br /&gt;
&lt;br /&gt;
===='''get_by_moodleid($muserid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $muserid - id пользователя в moodle, по умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - данные персоны&lt;br /&gt;
&lt;br /&gt;
===='''get_by_moodleid_id($muserid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $muserid - id пользователя в moodle,если не указан берется $USER-&amp;gt;id. По умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed (int) id персоны или (bool) - false&lt;br /&gt;
&lt;br /&gt;
===='''get_list_synced()'''====&lt;br /&gt;
&lt;br /&gt;
Получает список синхронизируемых персон.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
нет&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон, требующих синхронизации.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_normal()'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка неудаленных персон.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
нет&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список неудаленных персон.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_search_lastname($query)'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка персон по запрашиваемой фамилии&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $query - фамилия, которую ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_search($query)'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка персон по запрашиваемой фамилии&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $query - фамилия, или отчество, или имя, или $mail, или usermoodle, которые ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон.&lt;br /&gt;
&lt;br /&gt;
===='''is_email_unique($email)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, если другие персоны с указанным email.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $email - электронный адрес, который ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) true - нет, false - да.&lt;br /&gt;
&lt;br /&gt;
===='''reg_moodleuser($USER)'''====&lt;br /&gt;
&lt;br /&gt;
Регестрирует персону для переданного пользователя Moodle&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (obj) $USER - пользователь Moodle.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (int) id созданной персоны в таблице [[Разработка:storages/persons | persons ]]&lt;br /&gt;
* (bool) false если запись не удалась.&lt;br /&gt;
&lt;br /&gt;
===='''get_fullname($id)'''====&lt;br /&gt;
&lt;br /&gt;
Возвращает полное имя пользователя в формате ФИО.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $id - id записи пользователя, чье имя необходимо&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (str) - полное имя пользователя или пустая строка, если пользователь не найден.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Планы:===&lt;br /&gt;
====Дополнительные методы:====&lt;br /&gt;
*Получить запись вместе с адресом&lt;br /&gt;
*Сохранить (добавить или обновить) запись вместе с адресом&lt;br /&gt;
*Найти список людей, относящихся к структурному подразделению&lt;br /&gt;
*Удалить (изменить статус на &amp;quot;удален&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу persons.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице persons.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы persons.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2584</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2584"/>
				<updated>2012-10-17T13:34:10Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = metacontracts&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''metacontracts'' - таблица для хранения данных [[Разработка:storages/metacontracts | метаконтрактов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
* num - номер метаконтракта&lt;br /&gt;
* departmentid -  id подразделения&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''widgets_field_variants_list($querytype, $depid, $data)'''====&lt;br /&gt;
&lt;br /&gt;
Обработка AJAX-запросов из форм.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $querytype(string) - тип запроса&lt;br /&gt;
* $depid(int) - подразделение, в котором ищутся организации&lt;br /&gt;
* $data(array) - дополнительные данные пришедшие из json-запроса&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.&lt;br /&gt;
# Возвращаем массив вида array(0 =&amp;gt; $this-&amp;gt;dof-&amp;gt;modlib('ig')-&amp;gt;igs('choose')), если такого типа запроса нет.&lt;br /&gt;
&lt;br /&gt;
===='''widgets_metacontracts_list($departmentid, $fullname)'''====&lt;br /&gt;
&lt;br /&gt;
Получить список метаконтрактов по первым буквам номера метаконтракта, айди метаконтракта&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $departmentid(int) - подразделение, в котором ищутся метаконтракты&lt;br /&gt;
* $fullname(string) - первые несколько букв какого либо поля&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Формируем SQL запрос на получение похожих на строку $fullname данных по нескольким полям&lt;br /&gt;
# Отправляем запрос базе.&lt;br /&gt;
# Формируем полученные из базы данные в массив объектов для возвращения в форму.&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/organizations&amp;diff=2583</id>
		<title>Разработка:storages/organizations</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/organizations&amp;diff=2583"/>
				<updated>2012-10-17T13:32:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = organizations&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''organizations'' &lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* fullname - полное наименование&lt;br /&gt;
* shortname - краткое наименование&lt;br /&gt;
* inn - идентификационный номер налогоплательщика&lt;br /&gt;
* kpp - код причины поставки на учет&lt;br /&gt;
* ogrn - основной государственный регистрационный номер&lt;br /&gt;
* bankrequisites - банковские реквизиты&lt;br /&gt;
* legaladdressid - юридический адрес&lt;br /&gt;
* currentaddressid - физический адрес&lt;br /&gt;
* mailingaddressid - почтовый адрес&lt;br /&gt;
* phone - телефон&lt;br /&gt;
* fax - факс&lt;br /&gt;
* additionalrequisites - дополнительные реквизиты&lt;br /&gt;
* head - ФИО руководителя&lt;br /&gt;
* posthead - должность руководителя&lt;br /&gt;
* actionhead - основание действия руководителя&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''widgets_field_variants_list($querytype, $depid, $data)'''====&lt;br /&gt;
&lt;br /&gt;
Обработка AJAX-запросов из форм.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $querytype(string) - тип запроса&lt;br /&gt;
* $depid(int) - подразделение, в котором ищутся организации&lt;br /&gt;
* $data(array) - дополнительные данные пришедшие из json-запроса&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.&lt;br /&gt;
# Возвращаем массив вида array(0 =&amp;gt; $this-&amp;gt;dof-&amp;gt;modlib('ig')-&amp;gt;igs('choose')), если такого типа запроса нет.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''widgets_organizations_list($departmentid, $fullname)'''====&lt;br /&gt;
&lt;br /&gt;
Получить список организаций по первым буквам полного имени, короткого имени,ИНН,ОГРН,телефонного номера и айди&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $departmentid(int) - подразделение, в котором ищутся организации&lt;br /&gt;
* $fullname(string) - первые несколько букв какого либо поля&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Формируем SQL запрос на получение похожих на строку $fullname данных по нескольким полям&lt;br /&gt;
# Отправляем запрос базе.&lt;br /&gt;
# Формируем полученные из базы данные в массив объектов для возвращения в форму.&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |organizations&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу organizations.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |organizations&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице organizations.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |organizations&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы organizations.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/workplaces&amp;diff=2582</id>
		<title>Разработка:storages/workplaces</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/workplaces&amp;diff=2582"/>
				<updated>2012-10-17T13:24:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = workplaces&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''workplaces'' &lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* personid - id персоны в таблице [[Разработка:storages/persons | persons ]]&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
* statuswork - рабочий статус (основное место работы/совместитель/не известно/уволен)&lt;br /&gt;
* post - должность&lt;br /&gt;
* receptiondate - дата приема&lt;br /&gt;
* dismissaldate - дата увольнения&lt;br /&gt;
* phonework - рабочий телефон&lt;br /&gt;
* addnumber - добавочный номер&lt;br /&gt;
* comment - коментарий&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''widgets_field_variants_list($querytype, $depid, $data)'''====&lt;br /&gt;
&lt;br /&gt;
Обработка AJAX-запросов из форм.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $querytype(string) - тип запроса&lt;br /&gt;
* $depid(int) - подразделение, в котором ищутся должности&lt;br /&gt;
* $data(array) - дополнительные данные пришедшие из json-запроса&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.&lt;br /&gt;
# Возвращаем массив вида array(0 =&amp;gt; $this-&amp;gt;dof-&amp;gt;modlib('ig')-&amp;gt;igs('choose')), если такого типа запроса нет.&lt;br /&gt;
&lt;br /&gt;
===='''widgets_workplaces_list($departmentid, $fullname)'''====&lt;br /&gt;
&lt;br /&gt;
Получить список должностей по первым буквам названия должности(post)&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $departmentid(int) - подразделение, в котором ищутся должности&lt;br /&gt;
* $post(string) - первые несколько букв поля post&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Формируем SQL запрос на получение похожих на строку $post данных по полю post&lt;br /&gt;
# Отправляем запрос базе.&lt;br /&gt;
# Формируем полученные из базы данные в массив объектов для возвращения в форму.&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу workplaces.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице workplaces.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |workplaces&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы workplaces.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/persons&amp;diff=2581</id>
		<title>Разработка:storages/persons</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/persons&amp;diff=2581"/>
				<updated>2012-10-17T13:20:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = persons&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''persons'' - адресная книга, в которую включены все участники учебного процесса: учащиеся, законные представители, сотрудники, преподаватели и т. д.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
*firstname - имя&lt;br /&gt;
*middlename - отчество&lt;br /&gt;
*lastname - фамилия&lt;br /&gt;
*sortname - ФИО для сортировки по умолчанию (нужно ли оно?)&lt;br /&gt;
*preferredname - префикс для имения (Mr. Dr. Г-н, Г-а)&lt;br /&gt;
*dateofbirth - дата рождения у UTS&lt;br /&gt;
*gender - пол  (male, female, unknown)&lt;br /&gt;
*email - основной адрес электронной почты&lt;br /&gt;
*phonehome - домашний телефон&lt;br /&gt;
*phonework - рабочий телефон&lt;br /&gt;
*phonecell - сотовый телефон&lt;br /&gt;
*passtypeid - тип удостоверения личности (1 - свидетельство о рождение, 2 - паспорт гражданина РФ, 3 - загранпасспорт, 4 - разрешение на временное проживание лица без гражданства, 5 - вид на жительство, 6 - военный билет, 7 - водительсткое удостоверение пластиковое, 8 - вод. удостоверение форма 1, 9 - вод. удостоверение международное)&lt;br /&gt;
*passportserial - серия удостоверения личности (если предусмотрена типом документа)&lt;br /&gt;
*passportnum - номер удостоверения личности&lt;br /&gt;
*passportdate - дата выдачи удостоверения личности&lt;br /&gt;
*passportem - название организации, выдавшей удостоверение личности&lt;br /&gt;
*citizenship - гражданство&lt;br /&gt;
*passportaddrid - адрес прописки по паспорту&lt;br /&gt;
*mdluser - id пользователя в moodle (если есть)&lt;br /&gt;
*sync2moodle - признак синхронизации с moodle&lt;br /&gt;
** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle)&lt;br /&gt;
** 0 - не синхронизирован и по идее не должен иметь mdluser&lt;br /&gt;
*addressid - текущий адрес&lt;br /&gt;
*status - Статусы персоны (normal, deleted, archived)&lt;br /&gt;
*adddate - дата добавления&lt;br /&gt;
*organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
*workplaceid - id объекта в таблице [[Разработка:storages/workplaces | workplaces ]]&lt;br /&gt;
*departmentid - основной отдел, к которому приписан человек (может редактировать его данные в persons)&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_bu($userid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $userid - id пользователя в moodle, по умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - данные персоны&lt;br /&gt;
&lt;br /&gt;
===='''get_by_moodleid($muserid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $muserid - id пользователя в moodle, по умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - данные персоны&lt;br /&gt;
&lt;br /&gt;
===='''get_by_moodleid_id($muserid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $muserid - id пользователя в moodle,если не указан берется $USER-&amp;gt;id. По умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed (int) id персоны или (bool) - false&lt;br /&gt;
&lt;br /&gt;
===='''get_list_synced()'''====&lt;br /&gt;
&lt;br /&gt;
Получает список синхронизируемых персон.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
нет&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон, требующих синхронизации.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_normal()'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка неудаленных персон.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
нет&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список неудаленных персон.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_search_lastname($query)'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка персон по запрашиваемой фамилии&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $query - фамилия, которую ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_search($query)'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка персон по запрашиваемой фамилии&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $query - фамилия, или отчество, или имя, или $mail, или usermoodle, которые ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон.&lt;br /&gt;
&lt;br /&gt;
===='''is_email_unique($email)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, если другие персоны с указанным email.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $email - электронный адрес, который ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) true - нет, false - да.&lt;br /&gt;
&lt;br /&gt;
===='''reg_moodleuser($USER)'''====&lt;br /&gt;
&lt;br /&gt;
Регестрирует персону для переданного пользователя Moodle&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (obj) $USER - пользователь Moodle.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (int) id созданной персоны в таблице [[Разработка:storages/persons | persons ]]&lt;br /&gt;
* (bool) false если запись не удалась.&lt;br /&gt;
&lt;br /&gt;
===='''get_fullname($id)'''====&lt;br /&gt;
&lt;br /&gt;
Возвращает полное имя пользователя в формате ФИО.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $id - id записи пользователя, чье имя необходимо&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (str) - полное имя пользователя или пустая строка, если пользователь не найден.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Планы:===&lt;br /&gt;
====Дополнительные методы:====&lt;br /&gt;
*Получить запись вместе с адресом&lt;br /&gt;
*Сохранить (добавить или обновить) запись вместе с адресом&lt;br /&gt;
*Найти список людей, относящихся к структурному подразделению&lt;br /&gt;
*Удалить (изменить статус на &amp;quot;удален&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу persons.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице persons.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы persons.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/persons&amp;diff=2580</id>
		<title>Разработка:storages/persons</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/persons&amp;diff=2580"/>
				<updated>2012-10-17T13:05:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = persons&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''persons'' - адресная книга, в которую включены все участники учебного процесса: учащиеся, законные представители, сотрудники, преподаватели и т. д.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
*firstname - имя&lt;br /&gt;
*middlename - отчество&lt;br /&gt;
*lastname - фамилия&lt;br /&gt;
*sortname - ФИО для сортировки по умолчанию (нужно ли оно?)&lt;br /&gt;
*preferredname - префикс для имения (Mr. Dr. Г-н, Г-а)&lt;br /&gt;
*dateofbirth - дата рождения у UTS&lt;br /&gt;
*gender - пол  (male, female, unknown)&lt;br /&gt;
*email - основной адрес электронной почты&lt;br /&gt;
*phonehome - домашний телефон&lt;br /&gt;
*phonework - рабочий телефон&lt;br /&gt;
*phonecell - сотовый телефон&lt;br /&gt;
*passtypeid - тип удостоверения личности (1 - свидетельство о рождение, 2 - паспорт гражданина РФ, 3 - загранпасспорт, 4 - разрешение на временное проживание лица без гражданства, 5 - вид на жительство, 6 - военный билет, 7 - водительсткое удостоверение пластиковое, 8 - вод. удостоверение форма 1, 9 - вод. удостоверение международное)&lt;br /&gt;
*passportserial - серия удостоверения личности (если предусмотрена типом документа)&lt;br /&gt;
*passportnum - номер удостоверения личности&lt;br /&gt;
*passportdate - дата выдачи удостоверения личности&lt;br /&gt;
*passportem - название организации, выдавшей удостоверение личности&lt;br /&gt;
*citizenship - гражданство&lt;br /&gt;
*passportaddrid - адрес прописки по паспорту&lt;br /&gt;
*mdluser - id пользователя в moodle (если есть)&lt;br /&gt;
*sync2moodle - признак синхронизации с moodle&lt;br /&gt;
** 1 - синхронизирован и имеет mdluser (id пользователя в Moodle)&lt;br /&gt;
** 0 - не синхронизирован и по идее не должен иметь mdluser&lt;br /&gt;
*addressid - текущий адрес&lt;br /&gt;
*status - Статусы персоны (normal, deleted, archived)&lt;br /&gt;
*adddate - дата добавления&lt;br /&gt;
*organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
*workplaceid - id объекта в таблице [[Разработка:storages/workplaces | workplaces ]]&lt;br /&gt;
*departmentid - основной отдел, к которому приписан человек (может редактировать его данные в persons)&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_bu($userid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $userid - id пользователя в moodle, по умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - данные персоны&lt;br /&gt;
&lt;br /&gt;
===='''get_by_moodleid($muserid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $muserid - id пользователя в moodle, по умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - данные персоны&lt;br /&gt;
&lt;br /&gt;
===='''get_by_moodleid_id($muserid = NULL,$create=false)'''====&lt;br /&gt;
&lt;br /&gt;
Получение объект по moodleid&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $muserid - id пользователя в moodle,если не указан берется $USER-&amp;gt;id. По умолчанию null&lt;br /&gt;
* (bool) $create создание персоны по текущему пользователю, по умолчанию false, &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* mixed (int) id персоны или (bool) - false&lt;br /&gt;
&lt;br /&gt;
===='''get_list_synced()'''====&lt;br /&gt;
&lt;br /&gt;
Получает список синхронизируемых персон.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
нет&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон, требующих синхронизации.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_normal()'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка неудаленных персон.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
нет&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список неудаленных персон.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_search_lastname($query)'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка персон по запрашиваемой фамилии&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $query - фамилия, которую ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон.&lt;br /&gt;
&lt;br /&gt;
===='''get_list_search($query)'''====&lt;br /&gt;
&lt;br /&gt;
Получение списка персон по запрашиваемой фамилии&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $query - фамилия, или отчество, или имя, или $mail, или usermoodle, которые ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) список персон.&lt;br /&gt;
&lt;br /&gt;
===='''is_email_unique($email)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, если другие персоны с указанным email.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* (str) $email - электронный адрес, который ищем.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) true - нет, false - да.&lt;br /&gt;
&lt;br /&gt;
===='''reg_moodleuser($USER)'''====&lt;br /&gt;
&lt;br /&gt;
Регестрирует персону для переданного пользователя Moodle&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (obj) $USER - пользователь Moodle.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (int) id созданной персоны в таблице [[Разработка:storages/persons | persons ]]&lt;br /&gt;
* (bool) false если запись не удалась.&lt;br /&gt;
&lt;br /&gt;
===='''get_fullname($id)'''====&lt;br /&gt;
&lt;br /&gt;
Возвращает полное имя пользователя в формате ФИО.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* (int) $id - id записи пользователя, чье имя необходимо&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (str) - полное имя пользователя или пустая строка, если пользователь не найден.&lt;br /&gt;
&lt;br /&gt;
===Планы:===&lt;br /&gt;
====Дополнительные методы:====&lt;br /&gt;
*Получить запись вместе с адресом&lt;br /&gt;
*Сохранить (добавить или обновить) запись вместе с адресом&lt;br /&gt;
*Найти список людей, относящихся к структурному подразделению&lt;br /&gt;
*Удалить (изменить статус на &amp;quot;удален&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу persons.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице persons.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |persons&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы persons.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/organizations&amp;diff=2579</id>
		<title>Разработка:storages/organizations</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/organizations&amp;diff=2579"/>
				<updated>2012-10-17T12:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Дополнительные методы: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = organizations&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''organizations'' &lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* fullname - полное наименование&lt;br /&gt;
* shortname - краткое наименование&lt;br /&gt;
* inn - идентификационный номер налогоплательщика&lt;br /&gt;
* kpp - код причины поставки на учет&lt;br /&gt;
* ogrn - основной государственный регистрационный номер&lt;br /&gt;
* bankrequisites - банковские реквизиты&lt;br /&gt;
* legaladdressid - юридический адрес&lt;br /&gt;
* currentaddressid - физический адрес&lt;br /&gt;
* mailingaddressid - почтовый адрес&lt;br /&gt;
* phone - телефон&lt;br /&gt;
* fax - факс&lt;br /&gt;
* additionalrequisites - дополнительные реквизиты&lt;br /&gt;
* head - ФИО руководителя&lt;br /&gt;
* posthead - должность руководителя&lt;br /&gt;
* actionhead - основание действия руководителя&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
===='''widgets_field_variants_list($querytype, $depid, $data)'''====&lt;br /&gt;
&lt;br /&gt;
Обработка AJAX-запросов из форм.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $querytype(string) - тип запроса&lt;br /&gt;
* $depid(int) - подразделение, в котором ищутся организации&lt;br /&gt;
* $data(array) - дополнительные данные пришедшие из json-запроса&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Через case перебираем тип запроса и в зависимости от этого вызываем нужный метод.&lt;br /&gt;
# Возвращаем массив вида array(0 =&amp;gt; $this-&amp;gt;dof-&amp;gt;modlib('ig')-&amp;gt;igs('choose')), если такого типа запроса нет.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''widgets_organizations_list($departmentid, $fullname)'''====&lt;br /&gt;
&lt;br /&gt;
Получить список организация по первым буквам полного имени, короткого имени,ИНН,ОГРН,телефонного номера и айди&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $departmentid(int) - подразделение, в котором ищутся организации&lt;br /&gt;
* $fullname(string) - первые несколько букв какого либо поля&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - массив полученных обьектов.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# Формируем SQL запрос на получение похожих на строку $fullname данных по нескольким полям&lt;br /&gt;
# Отправляем запрос базе.&lt;br /&gt;
# Формируем полученные из базы данные в массив объектов для возвращения в форму.&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |organizations&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу organizations.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |organizations&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице organizations.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |organizations&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы organizations.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/contracts&amp;diff=2578</id>
		<title>Разработка:storages/contracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/contracts&amp;diff=2578"/>
				<updated>2012-10-17T12:32:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = contracts&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''contracts'' - договор учащегося с учебным заведением. Отношения учащегося с учебного заведения начинаются с явного или подразумеваемого заключения договора на оказание образовательных услуг, выражающегося в виде записи в таблице contracts, связывающей учащегося, куратора и законного представителя.&lt;br /&gt;
&lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* typeid - тип договора, если у учебного заведения предусмотрено несколько разных типов договоров &lt;br /&gt;
* num - номер договора&lt;br /&gt;
* numpass - номер пропуска, студенческого билета и т.п.&lt;br /&gt;
* date - дата заключения&lt;br /&gt;
* sellerid - менеджер по работе с клиентами (приемная комиссия, партнер) - добавляет договор, меняет статус до &amp;quot;подписан клиентом&amp;quot;, отслеживает статус договора и ход обучения (id по таблице [[Разработка:storages/persons | persons ]])&lt;br /&gt;
* clientid - клиент, оплачивающий обучение (законный представитель, сам совершеннолетний ученик или куратор от организации, может принимать значение 0 или null, если клиент создается, а контракт имеет черновой вариант) (по таблице [[Разработка:storages/persons | persons ]])&lt;br /&gt;
* studentid - ученик ( может принимать значение 0, если ученик создается, а контракт имеет черновой вариант) (по таблице [[Разработка:storages/persons | persons ]])&lt;br /&gt;
* adddate - дата добавления в БД&lt;br /&gt;
* notes - заметки&lt;br /&gt;
* departmentid - подразделение в таблице [[Разработка:storages/departments | departments ]], к которому приписан контракт на обучение (например,  принявшее ученика)&lt;br /&gt;
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/contracts | contracts ]]&lt;br /&gt;
* contractform - форма договора (шаблон)&lt;br /&gt;
* organizationid - юридическое лицо в таблице [[Разработка:storages/organizations | organizations ]], оплачивающее  договор, если ученик платит за себя сам - то не указывается.&lt;br /&gt;
* curatorid - куратор или классный руководитель данного ученика (по таблице [[Разработка:storages/persons | persons ]] или не указан), отслеживает учебный процесс, держит связь с учеником, является посредником между учеником и системой, может быть внешней персоной.&lt;br /&gt;
* enddate - дата окончания договора&lt;br /&gt;
* metacontractid - id метаконтракта, к которому привязан контракт, в таблице [[Разработка:storages/metacontracts | metacontracts ]]&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
===='''insert($dataobject,$quiet=NULL)'''====&lt;br /&gt;
&lt;br /&gt;
Вставляет запись в таблицу(ы) плагина.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* dataobject(object) - запись.&lt;br /&gt;
* $quiet(bool) - определяет, создавать ли события, по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* int - id вставленной записи.&lt;br /&gt;
* bool - false, если операция не удалась.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_list_by_seller($pid = NULL)'''====&lt;br /&gt;
&lt;br /&gt;
Ищет список действующих контрактов для куратора.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $pid(int) - id персоны-куратора в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список контрактов.&lt;br /&gt;
* (bool) - false, если контракты не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# если id персоны не указано, устанавливаем id текущего пользователя.&lt;br /&gt;
# по SQL-запросу находим список необходимых контрактов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_list_by_client($pid = NULL)'''====&lt;br /&gt;
 &lt;br /&gt;
Ищет список действующих контрактов, заключенных данным клиентом.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $pid(int) - id персоны-клиента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список контрактов.&lt;br /&gt;
* (bool) - false, если контракты не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# если id персоны не указано, устанавливаем id текущего пользователя.&lt;br /&gt;
# по SQL-запросу находим список необходимых контрактов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_list_by_student($pid = NULL)'''====&lt;br /&gt;
&lt;br /&gt;
Ищет список действующих контрактов для студента.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $pid(int) - id персоны-студента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список контрактов.&lt;br /&gt;
* (bool) - fals, если контракты не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# если id персоны не указано, устанавливаем id текущего пользователя.&lt;br /&gt;
# по SQL-запросу находим список необходимых контрактов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_list_by_status($status)'''====&lt;br /&gt;
&lt;br /&gt;
Ищет список контрактов по статусу.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $status(string) - статус контракта.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список контрактов.&lt;br /&gt;
* (bool) - false, если контракты не найдены.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''is_person_used($pid,$except=null)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет есть ли другие активные договора, где используется учетная запись.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $pid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]].&lt;br /&gt;
* $except(int) - id контракта, который следует исключить, по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) - true, если контракты были найдены и false, если их нет.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
# формируем SQL-запрос.&lt;br /&gt;
# если задан контракт, который слудует исключить, исключаем его из поиска.&lt;br /&gt;
# находим конракты и возвращаем результат.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''is_seller($contractid = null,$personid = null)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, является ли персона куратором по контракту.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $contractid(int) - id контракта, по умолчанию - null.&lt;br /&gt;
* $personid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) - true, если да и false, если нет.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''is_student($contractid = null,$personid = null)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, является ли персона студентом.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $contractid(int) - id контракта, по умолчанию - null.&lt;br /&gt;
* $personid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) - true, если да и false, если нет.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''is_client($contractid = null,$personid = null)'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, является ли персона клиентом.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $contractid(int) - id контракта, по умолчанию - null.&lt;br /&gt;
* $personid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) - true, если да и false, если нет.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''is_personel($userid, $except=null, $where = 'moodle')'''====&lt;br /&gt;
&lt;br /&gt;
Проверяет, упомянута ли данная персона в данном контракте.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $mdluser(int) - id пользователя в moodle&lt;br /&gt;
* $except(bool) - id контракта, который надо исключить из поиска&lt;br /&gt;
* $where(string) - идентификатор происхождения id пользователя: mоodle - id из таблицы mdl_user, fdo - из таблицы [[Разработка:storages/persons | persons ]] &lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (bool) - true, если да и false, если нет.&lt;br /&gt;
&lt;br /&gt;
===='''get_seller($id)'''====&lt;br /&gt;
&lt;br /&gt;
Находит ФИО продавца и его id по id контракта&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $id(int) - id контракта.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (object) - ФИО продовца и его id.&lt;br /&gt;
* (bool) - false, если произошла ошибка.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_contracts_for_person($pid = NULL)'''====&lt;br /&gt;
&lt;br /&gt;
Находит список договоров для конкретной персоны.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:''&lt;br /&gt;
* $pid(int) - id персоны, по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список контрактов.&lt;br /&gt;
&lt;br /&gt;
===Планы:===&lt;br /&gt;
====Дополнительные методы:====&lt;br /&gt;
* Сгенерировать номер контракта&lt;br /&gt;
* Найти контракт по номеру&lt;br /&gt;
* Найти контракт по номеру пропуска&lt;br /&gt;
* Найти список действующих контрактов, относящихся к структурному подразделению&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |contracts&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу contracts.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |contracts&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице contracts.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |contracts&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы contracts.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/agroups&amp;diff=2577</id>
		<title>Разработка:storages/agroups</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/agroups&amp;diff=2577"/>
				<updated>2012-10-17T12:19:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = agroups&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''agroups'' - классы/академические группы. Связывают контракты на обучение и учебные программы при групповой форме обучения.&lt;br /&gt;
 &lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* name - название академической группы/класса&lt;br /&gt;
* code - кодовое обозначение группы (текстовое поле, обязательное, уникальное)&lt;br /&gt;
* programmid - id учебной программы в таблице [[Разработка:storages/programms | programms ]], которую реализует академическая группа&lt;br /&gt;
* departmentid - отдел в таблице [[Разработка:storages/departments | departments ]], ответственный за группу&lt;br /&gt;
* agenum - порядковый номер текущего учебного периода (изменяется приказом по контингенту). Параллель группы может быти изменена только если группа находится в статусе &amp;quot;формируется&amp;quot;.&lt;br /&gt;
* status - список статусов указан в одноименном плагине рабочих процессов  [[Разработка:workflows/agroups | agroups ]]&lt;br /&gt;
* metacontractid - id заключенного с группой метаконтракта в таблице [[Разработка:storages/metacontracts | metacontracts ]]&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''insert($dataobject,$quiet=NULL)'''====&lt;br /&gt;
&lt;br /&gt;
Вставляет запись в таблицу(ы) плагина &lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $dataobject(object) - данные записи.&lt;br /&gt;
* $quiet(bool) - генерировать или нет события, по умолчанию null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* int - id вставленной записи.&lt;br /&gt;
* bool - false, если операция не удалась.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''search_group_code($code)'''====&lt;br /&gt;
&lt;br /&gt;
находит группу по коду&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $code - код группы.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - объект группы.&lt;br /&gt;
* bool - false, если группа не найдена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_groups_programm($prid, $status = 'learn', $agenum = null, $dpid = null)'''====&lt;br /&gt;
&lt;br /&gt;
находит все группы, обучающиеся по учебной программе.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $prid(int) - id программы  в таблице [[Разработка:storages/programms | programms ]].&lt;br /&gt;
* $status(string) - статус группы, по умолчанию - 'learn'.&lt;br /&gt;
* $agenum(int) - номер периода, по умолчанию - null.&lt;br /&gt;
* $dpid(int) - id структурного подразделения, по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* array - список групп.&lt;br /&gt;
* bool - false, если группы не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
* формируем SQL-запрос и возвращаем список групп:&lt;br /&gt;
** если указывается статус - группы с указанным статусом,&lt;br /&gt;
** если статус указывается null - группы с любым статусом,&lt;br /&gt;
** если статус не указывается - группы со статусом learn.&lt;br /&gt;
** если указывается номер периода - группы с указанным периодом,&lt;br /&gt;
** если номер периода указывается null или не указывается - группы с любым периодом.&lt;br /&gt;
** если указывается id подразделения - группы указанного подразделения,&lt;br /&gt;
** если id подразделения указывается null или не указывается - группы любого подразделения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_group_department($dpid, $prid = null, $status = 'learn')'''====&lt;br /&gt;
&lt;br /&gt;
Получает все группы, относящиеся к структурному подразделению и обучающиеся по программе&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $dpid(int) - id структурного подразделения в таблице [[Разработка:storages/departments | departments ]].&lt;br /&gt;
* $prid(int) - id программы в таблице [[Разработка:storages/programms | programms ]], по умолчанию - все(null).&lt;br /&gt;
* $status(string) - статус группы, по умолчанию - 'learn'.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* array - список групп.&lt;br /&gt;
* bool - false, если группы не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
* формируем SQL-запрос и возвращаем список групп:&lt;br /&gt;
** если указывается id программы - группы с указанным id,&lt;br /&gt;
** если id программы не указывается или указывается как null- группы с любым id.&lt;br /&gt;
** если указывается статус - группы с указанным статусом,&lt;br /&gt;
** если статус указывается null - группы с любым статусом,&lt;br /&gt;
** если статус не указывается - группы со статусом learn.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_group_cstream($csid)'''====&lt;br /&gt;
&lt;br /&gt;
Получить все группы, подписанные на учебный процесс с данным id. &lt;br /&gt;
 &lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $csid(int) - id учебного процесса  в таблице [[Разработка:storages/cstreams | cstreams ]].&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список групп.&lt;br /&gt;
* (bool) - false, если группы не найдены.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_numberof_agroups($select)'''====&lt;br /&gt;
&lt;br /&gt;
находит количество групп&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $select(string) - критерии отбора записей.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* int - количество найденных записей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_group_nocstream($csid)'''====&lt;br /&gt;
&lt;br /&gt;
находит список групп, не связаных с данным потоком&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $csid(int) - id учебного процесса.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* array - список групп.&lt;br /&gt;
* bool - false, если произошла ошибка.&lt;br /&gt;
&lt;br /&gt;
===Планы:===&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |agroups&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу agroups.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |agroups&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице agroups.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |agroups&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы agroups.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2576</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2576"/>
				<updated>2012-10-17T12:18:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = metacontracts&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''metacontracts'' - таблица для хранения данных [[Разработка:storages/metacontracts | метаконтрактов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/organizations | organizations ]]&lt;br /&gt;
* num - номер метаконтракта&lt;br /&gt;
* departmentid -  id подразделения&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2575</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2575"/>
				<updated>2012-10-17T12:18:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = metacontracts&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''metacontracts'' - таблица для хранения данных [[Разработка:storages/metacontracts | метаконтрактов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/metacontracts | metacontracts ]]&lt;br /&gt;
* num - номер метаконтракта&lt;br /&gt;
* departmentid -  id подразделения&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2574</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2574"/>
				<updated>2012-10-17T12:17:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = metacontracts&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''metacontracts'' - таблица для хранения данных [[Разработка:storages/metacontracts | метаконтрактов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* organizationid - id организации в таблице [[Разработка:storages/orders | orders ]]&lt;br /&gt;
* num - номер метаконтракта&lt;br /&gt;
* departmentid -  id подразделения&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2573</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2573"/>
				<updated>2012-10-17T12:15:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = metacontracts&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''metacontracts'' - таблица для хранения данных [[Разработка:storages/metacontracts | метаконтрактов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* organizationid - id организации&lt;br /&gt;
* num - номер метаконтракта&lt;br /&gt;
* departmentid -  id подразделения&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2572</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2572"/>
				<updated>2012-10-17T12:08:55Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = orderdata&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''orderdata'' - таблица для хранения данных [[Разработка:storages/metacontracts | метаконтрактов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* orderid - id приказа, которому принадлежат данные в таблице [[Разработка:storages/orders | orders ]]&lt;br /&gt;
* firstlvlname - имя переменной первого уровня в данных приказа&lt;br /&gt;
* varnum -  номер переменной в данных приказа&lt;br /&gt;
* scalar - скалярная ли переменная или нет&lt;br /&gt;
* data - значение переменной первого уровня&lt;br /&gt;
* ind - проиндексированное поле со значениями&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2571</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2571"/>
				<updated>2012-10-17T12:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = orderdata&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Таблица в базе данных==&lt;br /&gt;
''orderdata'' - таблица для хранения данных [[Разработка:storages/orders | приказов]].&lt;br /&gt;
&lt;br /&gt;
===Подробный формат полей в таблице:===&lt;br /&gt;
* orderid - id приказа, которому принадлежат данные в таблице [[Разработка:storages/orders | orders ]]&lt;br /&gt;
* firstlvlname - имя переменной первого уровня в данных приказа&lt;br /&gt;
* varnum -  номер переменной в данных приказа&lt;br /&gt;
* scalar - скалярная ли переменная или нет&lt;br /&gt;
* data - значение переменной первого уровня&lt;br /&gt;
* ind - проиндексированное поле со значениями&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2570</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2570"/>
				<updated>2012-10-16T12:54:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: Удалено содержимое страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2569</id>
		<title>Разработка:storages/metacontracts</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/metacontracts&amp;diff=2569"/>
				<updated>2012-10-16T12:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: Новая страница: «1»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	<entry>
		<id>http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/agroups&amp;diff=2568</id>
		<title>Разработка:storages/agroups</title>
		<link rel="alternate" type="text/html" href="http://docs.deansoffice.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0:storages/agroups&amp;diff=2568"/>
				<updated>2012-10-16T09:06:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ibragim: /* Подробный формат полей в таблице: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Plugin&lt;br /&gt;
| name = agroups&lt;br /&gt;
| type = storages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Таблица в базе данных===&lt;br /&gt;
''agroups'' - классы/академические группы. Связывают контракты на обучение и учебные программы при групповой форме обучения.&lt;br /&gt;
 &lt;br /&gt;
====Подробный формат полей в таблице:====&lt;br /&gt;
* name - название академической группы/класса&lt;br /&gt;
* code - кодовое обозначение группы (текстовое поле, обязательное, уникальное)&lt;br /&gt;
* programmid - id учебной программы в таблице [[Разработка:storages/programms | programms ]], которую реализует академическая группа&lt;br /&gt;
* departmentid - отдел в таблице [[Разработка:storages/departments | departments ]], ответственный за группу&lt;br /&gt;
* agenum - порядковый номер текущего учебного периода (изменяется приказом по контингенту). Параллель группы может быти изменена только если группа находится в статусе &amp;quot;формируется&amp;quot;.&lt;br /&gt;
* status - список статусов указан в одноименном плагине рабочих процессов  [[Разработка:workflows/agroups | agroups ]]&lt;br /&gt;
*  metacontractid - id метаконтракта в таблице [[Разработка:storages/metacontracts | metacontracts ]]&lt;br /&gt;
&lt;br /&gt;
===Дополнительные методы:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''insert($dataobject,$quiet=NULL)'''====&lt;br /&gt;
&lt;br /&gt;
Вставляет запись в таблицу(ы) плагина &lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $dataobject(object) - данные записи.&lt;br /&gt;
* $quiet(bool) - генерировать или нет события, по умолчанию null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* int - id вставленной записи.&lt;br /&gt;
* bool - false, если операция не удалась.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''search_group_code($code)'''====&lt;br /&gt;
&lt;br /&gt;
находит группу по коду&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $code - код группы.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* object - объект группы.&lt;br /&gt;
* bool - false, если группа не найдена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_groups_programm($prid, $status = 'learn', $agenum = null, $dpid = null)'''====&lt;br /&gt;
&lt;br /&gt;
находит все группы, обучающиеся по учебной программе.&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $prid(int) - id программы  в таблице [[Разработка:storages/programms | programms ]].&lt;br /&gt;
* $status(string) - статус группы, по умолчанию - 'learn'.&lt;br /&gt;
* $agenum(int) - номер периода, по умолчанию - null.&lt;br /&gt;
* $dpid(int) - id структурного подразделения, по умолчанию - null.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* array - список групп.&lt;br /&gt;
* bool - false, если группы не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
* формируем SQL-запрос и возвращаем список групп:&lt;br /&gt;
** если указывается статус - группы с указанным статусом,&lt;br /&gt;
** если статус указывается null - группы с любым статусом,&lt;br /&gt;
** если статус не указывается - группы со статусом learn.&lt;br /&gt;
** если указывается номер периода - группы с указанным периодом,&lt;br /&gt;
** если номер периода указывается null или не указывается - группы с любым периодом.&lt;br /&gt;
** если указывается id подразделения - группы указанного подразделения,&lt;br /&gt;
** если id подразделения указывается null или не указывается - группы любого подразделения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_group_department($dpid, $prid = null, $status = 'learn')'''====&lt;br /&gt;
&lt;br /&gt;
Получает все группы, относящиеся к структурному подразделению и обучающиеся по программе&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $dpid(int) - id структурного подразделения в таблице [[Разработка:storages/departments | departments ]].&lt;br /&gt;
* $prid(int) - id программы в таблице [[Разработка:storages/programms | programms ]], по умолчанию - все(null).&lt;br /&gt;
* $status(string) - статус группы, по умолчанию - 'learn'.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* array - список групп.&lt;br /&gt;
* bool - false, если группы не найдены.&lt;br /&gt;
''Структура работы:''&lt;br /&gt;
* формируем SQL-запрос и возвращаем список групп:&lt;br /&gt;
** если указывается id программы - группы с указанным id,&lt;br /&gt;
** если id программы не указывается или указывается как null- группы с любым id.&lt;br /&gt;
** если указывается статус - группы с указанным статусом,&lt;br /&gt;
** если статус указывается null - группы с любым статусом,&lt;br /&gt;
** если статус не указывается - группы со статусом learn.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_group_cstream($csid)'''====&lt;br /&gt;
&lt;br /&gt;
Получить все группы, подписанные на учебный процесс с данным id. &lt;br /&gt;
 &lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $csid(int) - id учебного процесса  в таблице [[Разработка:storages/cstreams | cstreams ]].&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* (array) - список групп.&lt;br /&gt;
* (bool) - false, если группы не найдены.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_numberof_agroups($select)'''====&lt;br /&gt;
&lt;br /&gt;
находит количество групп&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $select(string) - критерии отбора записей.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* int - количество найденных записей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''get_group_nocstream($csid)'''====&lt;br /&gt;
&lt;br /&gt;
находит список групп, не связаных с данным потоком&lt;br /&gt;
&lt;br /&gt;
''Аргументы:'' &lt;br /&gt;
* $csid(int) - id учебного процесса.&lt;br /&gt;
''Возвращаемые значения:''&lt;br /&gt;
* array - список групп.&lt;br /&gt;
* bool - false, если произошла ошибка.&lt;br /&gt;
&lt;br /&gt;
===Планы:===&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.&lt;br /&gt;
====Перехватываемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые перехватывает этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''&lt;br /&gt;
 |}&lt;br /&gt;
====Генерируемые события====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |+ Таблица событий, которые генерирует этот плагин&lt;br /&gt;
 ! Тип плагина&lt;br /&gt;
 ! Код плагина&lt;br /&gt;
 ! Код события&lt;br /&gt;
 ! Доп. данные&lt;br /&gt;
 ! Пояснение&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |agroups&lt;br /&gt;
 |insert&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; объект с данными для вставки в таблицу.&lt;br /&gt;
''Пример:'' array('new' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при вставке новой записи в таблицу agroups.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |agroups&lt;br /&gt;
 |update&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;new&amp;quot; обновленный объект, и в поле &amp;quot;old&amp;quot; объект со старыми данными, до обновления записи.&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject_old, 'new' =&amp;gt; $dataobject_new)&lt;br /&gt;
 |Генерируется каждый раз при обновлении записи в таблице agroups.&lt;br /&gt;
 |-&lt;br /&gt;
 |storage&lt;br /&gt;
 |agroups&lt;br /&gt;
 |delete&lt;br /&gt;
 |Массив, содержащий в поле &amp;quot;old&amp;quot; объект с данными, которые удаляются из таблицы&lt;br /&gt;
''Пример:'' array('old' =&amp;gt; $dataobject)&lt;br /&gt;
 |Генерируется каждый раз при удалении записи из таблицы agroups.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Плагины_storages]]&lt;/div&gt;</summary>
		<author><name>Ibragim</name></author>	</entry>

	</feed>