GenoPro Logo Оболочки программы - SDK создать Ваши личные шаблоны

Эта страница содержит информацию о том, как настроить Ваши собственные шаблоны.


Анатомия Тега

Каждый тег в шаблоне заключается в  @[ ]@ и его параметры (если они есть) заключаются в круглые скобки( ).

Пример: @[*tag_name(tag_parameters)]@

где * это модификатор тега.

Модификатор тега Имя модификатора тега Пример
# Начало цикла @[#i.picture.count]@
  ... повторяет этот код для каждой иллюстрации
@[.i.picture.count]@
? Условный переход @[?i.picture.count(>0)]@
  ... показать этот код, если число иллюстраций больше нуля
@[.i.picture.count]@
$ Начало секции @[$PrintIndividualInfo]@ - Секция похожа на программу на системном языке. Секция может иметь параметры, переданные ссылкой или значением.
= Включить секцию @[=PrintIndividualInfo]@ - Включить секцию $PrintIndividualInto
. (dot) Конец цикла/ Условие/ Секция Все циклы, условия или секции должны быть уничтожены сопоставительным тегом, начинающимся с точки.

Вы можете указать кодировку в параметрах тега. Кодировка контролирует формат для вывода данного тега.

кодировка Тега Описание Кодировки Описание / Пример
/H Кодировать в HTML
Узнать больше
переводит кодировку строки в HTML.
Пример: "Муж & Жена" => "Муж & Жена"
/R  

Кодировать в RTF

переводит кодировку строки в RTF.
Пример: "Привет {Ваше имя}" => "Привет \{Ваше имя\}"
/T Кодировать в простой текст Нет кодировкиЭтот параметр может быть очень удобным, когда тег находится внутри скрипта.
/J Кодировать в  JavaScript кодировать строку в JavaScript.
Пример: "Муж & Жена" => "Муж \x26 Жена"
Пример кода: название.документа='@[название.страницы(/J)]@'
/E Выход Вызов программу выхода ()  в JavaScript
Пример:
"Муж & Жена" => "Муж%20%26%20Жена"
"Муж + Жена" => "Муж%20%+%20Жена"
/E+ Выход с  + кодировкой Вызов программы выхода ( , 1) routine в JavaScript.  Символ  + кодируется как %2B.
Пример: "Муж + Жена" => "Муж%20%2B%20Жена"
/U кодировать URL Это похоже на выход (), но кодирует пробелы в %20. Если найдена  обратная косая черта /, она заменяется на прямую черту. Кавычки и другие специальные символы также изменяются
Пример: "http://www.genopro.com/my family/" => "http://www.genopro.com/my%20family/"

Циклы

Пример к списку всех супружеских пар:
@[#i.spouse.count]@                           <-- Начало цикла
Spouse @[loop.nElement]@: @[i.spouse.name]@   <-- Теги внутри цикла (тело цикла)
@[.i.spouse.count]@                           <-- Конец цикла
 

Если Вы хотите создать цикл внутри таблицы, Вы должны определить # как параметр, чтобы указать, что цикл содержит два тела.

Пример к списку всех супружеских пар внутри таблицы:

@[#i.spouse.count(#)]@Spouse @[loop.nElement]@ @[i.spouse.name]@
@[.i.spouse.count]@Spouse @[loop.nElement]@ @[i.spouse.name]@

Цикл может быть также использован, чтобы вызывать программы с параметрами. В примере ниже цикл будет повторяться для каждой супружеской пары вызыванием секции  PrintFamilyInfo и передачей ссылки к семье как параметра.
@[#i.marriage.count]@            <-- Начало цикла
@[=PrintFamilyInfo(i.family)]@   <--
Тег внутри цикла (тело цикла). Параметр i.family
@[.i.marriage.count]@            <-- конец цикла

Сортировка цикла:

Вы можете определить сортировку содержимого цикла. Например, Вы можете вывести на экран список людей, отсортированный по отчеству, а не по фамилии. Вы можете указать параметр sort= и с сортивкой.

@[#i.count(sort=MLF)]@

Сортировка MLF устанавливается для сортировки по Отчеству, Фамилии и ИмениДругими словами, если два отчества совпадают, тогда сравнить их фамилии. Если фамилии совпадают, тогда сравнить имена.

Параметры сортировки для тега @[#i.count]@
FML Сортировать по имени, отчеству и фамилии.  
FLM Сортировать по имени, фамилии и отчеству.  
MFL Сортировать по отчеству, имени и фамилии.  
MLF Сортировать по отчеству, фамилии и имени. Пример
LFM Сортировать по фамилии, имени и отчествуЭто сортировка по умолчанию, если параметр sort= не задан.  
LMF Сортировать по фамилии, отчеству и имени.  

сортировка семей с помощью тега @[#f.count]@ почти идентична сортировке @[#i.count]@, но должны быть указаны муж или жена Например, если Вы хотите сортировать Вашу семью по отчеству жены, Вы задаете параметр sort=wMLFСортировка по умолчанию - по фамилии мужа (sort=hLFM).  Нажмите сюда, чтобы посмотреть примеры сортировки.

Условия

Условие - это тег, начинающийся с вопроса (?) и принимающий какое-либо значение - Истина или ЛожьЕсли значение - Истина, то код внутри тела условия выводится в составленные сведения. В любом случае, Вы можете использовать оператор не (!), чтобы инвертировать значение..

Условные Операторы

= Сравнение Равно (без учета регистра) Пример
!= Сравнение Не Равно (без учета регистра) Пример
== Сравнение Равно (с учетом регистра) Пример
!== Сравнение Не Равно (с учетом регистра) Пример
< Сравнение Меньше Чем Пример
<= Сравнение Меньше или Равно  
<== Сравнение Меньше или Равно  (с учетом регистра)  
> Сравнение Больше Чем  
>= Сравнение Больше или Равно  
>== Сравнение больше или равно (с учетом регистра)  
~= Содержит Пример
~== Содержит (с учетом регистра)  
*= Сопоставление шаблонов (подстановочные символы ? и *) Пример
*== Сопоставление шаблонов (с учетом регистра)  
E Пустой Пример
!E Не пустой  
D Определенный Пример
!D Не определенный.  
# Группировка циклов. Это условие оценивается как Истина, если значение тега отлично от его предыдущего повторения. Пример

Пример условия:
@[?i.picture.count(>0)]@        <-- Начало условия
@[i.name.first]@'s Picture Album 
    @[#i.picture.count]@           <-- начало цикла
    @[i.picture.image(100x100)]@   <-- Показать иллюстрацию
    @[.i.picture.count]@           <-- конец цикла
@[.i.picture.count]@            <-- Конец условия

В этом примере условие тестирует субъекта на наличие пристегнутых к нему иллюстраций. Если иллюстраций больше нуля, тело условия показывает имя и потом каждую иллюстрациюПараметр (100x100) ограничивает размер иллюстрации до 100 на 100 пикселей Любая большая иллюстрация сокращается до 100 пикселей.

Секции

Секция похожа на программу на системном языкеСекция начинается с символа ($) и заканчивается сопоставительным тегом, предваренным точкойПараметры могут передаваться настройкой с помощью префикса @ или значением с помощью префикса * .

@[$PrintIndividualInfo]@        <-- Начало секции
@[i.name.full]@
@[?i.birth.date(!E)]@Born: @[i.birth.date]@@[.i.birth.date]@
@[?i.is_dead]@Died: @[i.death.date]@   @[i.death.comment]@@[.i.is_dead]@
@[?i.homepage(!E)]@Homepage: @[i.homepage(target="_top")]@@[.i.homepage]@
@[?i.occupation(!E)]@Occupation: @[i.occupation]@@[.i.occupation]@
@[?i.comment(!E)]@Comments: @[i.comment]@@[.i.comment]@
@[.PrintIndividualInfo]@        <-- Конец секции

Особые случаи


Доступные Теги

Этот список будет увеличиваться в дальнейшем.

Составитель отчетов использует динамическое пространство имен, чтобы порождать значения тегов. Например, если Вам нужна иллюстрация Вашего деда, Вы используете следующий тег: @[i.father.father.picture.primary.image]@Чтобы получить описание иллюстрации Вашего деда, Вы используете этот тег: @[i.father.father.picture.primary.description]@Чтобы вывести на экран год рождения вашего прапрапрапрадеда, Вы используете следующий тег: @[i.father.father.father.father.father.father.birth.date.year]@Как Вы можете видеть, количество возможных тегов виртуально не ограничено.

Динамическое пространство имен

* представляет соединительную точку для комбинирования с еще одним тегом в пространстве имен.

i.* Ссылка на субъекта
*.father.* Ссылка на субъекта (отца человека)
*.mother.* Ссылка на субъекта (мать человека)
f.* Ссылка на семью
*.picture.primary.* Ссылка на иллюстрацию (главную иллюстрацию )
*.picture.* ссылка на иллюстрацию
*.date.* Ссылка на дату.
*.id Неизменный уникальный ИН субъекта. Пример: "ind00001", "fam00002"
*.href Отсылка на HTML страницу субъектаПример: "ind00001.htm", "fam00002.htm"

Человек

i.count Общее число людей. Обычно этот тег используется, чтобы запустить цикл для всех людей в фамильном деревеПо умолчанию, все субъекты сортируются по фамилии, но Вы указываете, как Вы хотите сортировать субъектов в цикле
i* Ссылка на субъекта
i.father* Ссылка на отца субъекта
i.mother* Ссылка на мать субъекта
i.id Неизменный уникальный ИН субъектаЭтот ИН также используется для экспорта Gedcom файла.
i.name Полное имя субъекта (автоматическая гиперссылка)
i.name.first Имя субъекта (автоматическая гиперссылка)
i.name.middle Отчество субъекта (автоматическая гиперссылка)
i.name.first_middle Имя + отчество субъекта (автоматическая гиперссылка)
i.name.first_last Имя + фамилия субъекта (автоматическая гиперссылка)
i.name.last Фамилия субъекта
i.name.full Полное имя субъектаИдентично i.name (автоматическая гиперссылка)
i.name.full.reversed Полное имя субъекта, но отображаемое в порядке: "фамилия, имя + отчество" (гиперссылка)
i.name.display Имя субъекта, как оно показывается на генеалогическом дереве (автоматическая гиперссылка)
i.gender Пол. M=Мужской, F=Женский, P=Домашнее животное, ?=неизвестный
i.birth.date* Дата рожденияЧтобы получить дату рождения, используйте i.birth.date.year.
i.is_dead Субъект умер?  T=Истина, F=Ложь
i.death.date* Дата смертиЭтот тег имеет ту же структуру, что и i.birth.date
i.death.date* Дата смертиЭтот тег имеет ту же структуру, что и i.birth.date
i.death.comment Комментарии по обстоятельствам смерти
i.occupation профессия субъекта
i.comment Это комментарий скопированный из диалогового окна свойства.
i.homepage Создать автоматическую гиперссылку на домашнюю страницу субъектаЭтот тег непустой, если поле гиперссылки начинается с http://
i.homepage.href Возвращает строку домашней страницы без создания автоматической гиперссылки.
Точно так же, как @[i.homepage(/H)]@
i.parents.names имена родителей субъекта
i.siblings.names Имена братьев/сестер, у которых те же родители, что и у данного субъекта, включая любых приемных братьев/сестер.
i.siblings.half.names Имена сводных братьев/сестер. У сводных братьев/сестер один общий родитель с данным субъектом.
i.siblings.all.names Имена всех братьев/сестер субъектаЛюбые братья/сестры, у которых общий родитель с данным субъектом, включая сводных и приемных братьев/сестер. Это союзi.siblings.names и i.siblings.half.names.
i.siblings.step.names Братья/сестры по браку, сроднены виртуально через брак родителя с субъектом, у которого есть дети от предыдущего брака или отношений.
i.siblings.other.names Братья/сестры, не родные по крови или по браку. Пример, приемные дети. Чтобы посмотреть такой пример, посетите эту ссылку.
i.children.count Число детей субъектаСортировка от старшего к младшему.
i.children.names Имена всех детей субъекта
i.marriage.count Число браков субъекта (или число жен)Сортировка от первого брака к последнему, определяемая по дате бракосочетания.
i.spouse.count Число супружеских пар субъекта (идентично числу браков)
i.spouse* Ссылка на супруга/у (если используется внутри цикла i.spouse.count)
i.spouse.name Имя супруга/и для данного брака
i.spouse.other.names Имена всех супруг(ов),исключая текущий брак
i.children.other.names Имена всех детей, исключая детей от текущего брака
i.picture* Ссылка на иллюстрацию субъекта
i.picture.primary* Ссылка на главную иллюстрацию субъекта
i.picture.count Число иллюстраций субъекта

Семья

f.count Общее число семейОбычно этот тег используется, чтобы запустить цикл для всех семей генограммы. Вы также можете определить параметр для сортировки семей в цикле
f* Ссылка на семью
f.father* Ссылка на отца семьи
f.mother* Ссылка на мать семьи
f.id Permanent unique ID of the family.  This ID is also used to export Gedcom.
f.parents.names Имена родителей семьи
f.marriage.relation Отношения между двумя субъектами (женаты, разведены, живут раздельно, встречаются, и т.д.)
f.marriage.relation_with_date Добавить дату бракосочетания к отношениям (например: поженились 12-Июл-1972)Составитель сведений использует тег dic.strRelationMarriedDate из Skin.dic как форматирующий шаблон.
f.marriage.relation.is_married Истина => два субъекта женаты
f.marriage.relation.is_divoerced Истина => два субъекта разведены. Это значит, что эти люди были женаты.
f.marriage.comment Описание семьи / супружеской пары.
f.marriage.date* Дата бракосочетания

Иллюстрация

pic.count Возвращает число иллюстраций. На данный момент сортировка отсутствует, так что иллюстрации появляются в том порядке, как они идут в диалоговом окне иллюстрации.
image Изображение иллюстрации (.bmp или .jpeg).  Вы можете определить размер изображения, появляющегося в сведениях. Пример: @[i.picture.primary.image(150x300)]@
description Описание иллюстрации
date* Дата снимка

Автоматическая гиперссылка
При составлении HTML сведений тег, имеющий автоматическую гиперссылку (напр: @[i.name]@), создаст гиперссылку в сведенияхЧтобы предотвратить создание гиперссылки, Вы используете кодировку /H (HTML).

Пример, как вывести имена всех супруг(ов) без автоматической гиперссылки:
@[#i.spouse.count]@
@[i.spouse.name.first(/H)]@   <--  /H force кодировка как простой HTML
@[.i.spouse.count]@
 

Еще одни пример, как предотвратить автоматическую гиперссылку - Испанская оболочка. Шаблон  home.htm выводит полный список всех отчеств, найденных в фамильном дереве. Первый шаг - сортировать по отчеству (sort=MLF) и затем использовать тег @[i.name.middle]@, чтобы вывести отчествоПроблема использования этого тега без  /H - создание автоматической гиперссылки на домашнюю страницу человека. Чтобы предотвратить это. кодировка /H используется, чтобы заставить составитель сведений сгенерировать отчество в  HTML, вместо создания гиперссылкиВторой параметр ?E=dic.strLastNameUnknown дает составителю сведений команду  заменить содержимое переменной dic.strLastNameUnknown, если @[i.name.middle]@ пуст.

@[#i.count(sort=MLF)]@
@[?#i.name.middle]@@[i.name.middle(/H,?E=dic.strLastNameUnknown)]@
@[.i.name.middle]@
@[.i.count]@


HTML Шаблоны

Чтобы иметь корректную HTML оболочку, у Вас должны быть следующие файлы:

Вы можете добавлять сколько угодно файлов, включая Java classes, если хотите.


RTF Шаблоны

Доступно только два шаблона в RTF формате:

 У Вас должен быть установлен Microsoft Word, чтобы редактировать или распечатывать RTF файлыЕсли Вы не хотите создавать собственные RTF отчеты, просто сотрите файлы RTF, используя обозреватель окон (проводник).