v.1.0.5
Шаблоны лежат по пути
{Профиль_пользователя}\Local Settings\Application Data\ARSoft\S3PackageViewer\data (для Windows XP)
Порядок создания страницы
1) грузится общая секция:
- common.htm - общий шаблон страницы
- *.js - библиотеки функций на java-script
2) по расширению файла в конфиге (config.ini) в секции [Templates] ищется соответствующее имя шаблона, при этом:
- для папок используется параметр folder (папка без просмотра) или foldershow (папка с просмотром содержимого);
- для неизвестных расширений файлов используется секция [Unknown]
- переменная $F.Template заменяется на имя секции шаблона;
3) загражается шаблон [Секция_шаблона].Template вместо переменной $F.View;
4) обрабатывается файл по шаблону
5) заменяются:
- $F.FullName - полный путь и имя файла, при этом:
-- обратые слэши "\" заменяются на прямые "/";
-- прямые апстрофы "'" заменяются на наклонные "´";
- $F.Path - путь к файлу, при этом:
-- для папок $F.Path\$F.Name не то же самое, что $F.FullName;
-- обратые слэши "\" заменяются на прямые "/";
- $F.Name - имя файла или папки;
- $F.Size - размер файла в байтах, для не файлов равен 0;
- $S.Blank - пустое изображение "../data/res/blank.png";
- $S.Locale - локаль выбранная в настройках программы (она же [Common].Locale в ini) в формате 0x%.2X;
- $S.CSS - каскадная таблица стилей выбранная в настройках программы (она же [Common].CSS в ini) в формате %s;
--------------------------------------------------------------------------------
Обработка файла Package по шаблону
1) при DEBG.Show=1 обрабатывается отладочная секция по шаблону DEBG.Template
2) обрабатываются превью по шаблону THUM.Template
при обработке каждой записи превью автоматически увеличивается внутренняя переменная col, в начале обаботки секции col всегда равна 0;
при достижении col>=THUM.PerLine, col=0, увеличивается переменная row, в текст вставляется разделитель строк THUM.LineSeparator;
переменные col и row неявно используются при создании чередования стилей с использованием переменных $R.ColOdd и $R.RowOdd;
3) обрабатываются CASPart по шаблогу CASP.Template
при обработке каждой записи caspart автоматически увеличивается внутренняя переменная row;
4) заменается
* $V.Version - версия файла DBPF в формате %d.%d
Для шаблона записи доступны переменные
- $R.TGIName, Format('%.8X-%.8X-%.8X%.8X', [ResourceType, ResourceGroup, InstanceHi, InstanceLo]);
- $R.TGI, Format('0x%.8X, 0x%.8X, 0x%.8X, 0x%.8X', [ResourceType, ResourceGroup, InstanceHi, InstanceLo]);
- $R.Info, Format('0x%.6X, 0x%.6X, 0x%.6X, %d', [Offset, PackedSize, MemSize, Iff(Compressed=0, 0, 1)]);
- $R.ColOdd, Iff((col mod 2)<>0, '1', '0');
- $R.RowOdd, Iff((row mod 2)<>0, '1', '0');
- $C.Id, Format('i%.3X', [Row]);
--------------------------------------------------------------------------------
Для записи типа CASPart дополнительно доступны переменные:
- $R.PartType, Format('0x%.2X', [cp.PartType])):
Код:
диапазон ['', 'Прическа', 'Скальп', 'Лицо',
'Одежда/тело', 'Одежда/верх', 'Одежда/низ', 'Обувь',
'Аксессуар', 'Ожерелье', 'Кольцо в нос', 'Серьги',
'Очки', 'Браслеты', 'Кольцо/лев.', 'Кольцо/прав.',
'Борода', 'Губная помада', 'Тени для век', 'Подводка для глаз',
'Румяна', 'Грим', 'Бровь', 'Цвет глаз',
'Перчатки', 'Носки', 'Тушь для ресниц', 'Оспины',
'Веснушки', 'Обветренность', 'Серьга/лев.', 'Серьша/прав.',
'Нарукавная повязка', 'Татуировка', 'Шаблон тату', 'Зубы',
'Подвязка/лев.', 'Подвязка/прав.', 'Родинка', 'Волосы на теле/грудь',
'Волосы на теле/живот', 'Волосы на теле/зад', 'Волосы на теле/лопатки', 'Волосы на теле/спина',
'Волосы на теле/предплечья', 'Волосы на теле/голени', 'Волосы на теле/стопы', 'Питомцы/тело',
'Хвост', 'Уши', 'Грива', 'Ошейник/уздечка',
'Седло', 'Слой шерсти', 'Подшерсток', 'Копыта',
'Рога', 'Попона', 'Нагрудный знак', 'Борода',
'a_pti:60', 'a_pti:61', 'a_pti:62', 'a_pti:63'
]; // 00..63
- $R.AgeGenderFlags', Format('0x%.8X', [cp.AgeGenderFlags])):
Код:
битовая маска ['для младенцев', 'для малышей', 'для детей', 'для подростков',
'для молодых', 'для взрослых', 'для пожилых'
]; // 0x0001..0x0040
диапазон [' ', 'для людей', 'для лошадей', 'для котов',
'для собак', 'для маленьк. собак', 'для оленей', 'для енотов'
]; // 0x0100..0x0700
битовая маска ['для мужчин', 'для женщин'
]; // 0x1000..0x2000
- $R.CategoryFlags', Format('0x%.8X', [cp.CategoryFlags])):
Код:
битовая маска ['без одежды', 'повседневная одежда', 'официальный костюм', 'ночное белье',
'купальные костюмы', 'спортивная одежда', 'обгоревшая одежда', 'для боевых искусств',
'карьерная одежда', 'пожарная одежда', 'переделываемая одежда', 'для обнаженного купания',
'для скачек', 'для прыжков', 'уздечки'
]; // 0x0001..0x4000
битовая маска ['доступно для беременных', 'доступно для случайного выбора', 'головной убор', 'откровенно',
'скрыто в CAS'
]; // 0x00100000..0x01000000
Преобрабование чисел в их значение производится через фунции на java-script описанные в r_casp.js
--------------------------------------------------------------------------------