Джако Крузо
02.04.2017Дорген

Обновления JakoDorgen PRO

06.06.2018 - 4.5.2
Добавлен continue; для пропуска оставшейся части текущей итерации цикла.
Добавлены функции setsecurityprotocoltype() и getsecurityprotocoltype(), которые устанавливают и возвращают протокол безопасности. Чтобы WebRequest работал через Tls12 надо вызвать функцию setsecurityprotocoltype('tls12'); . Также улучшена работа WebRequest.

Надо заменить файл JakoDorgen_PRO.exe

23.01.2018 - 4.5.1
Убрана строка кода, из-за которой Avira принимала дорген за вирус.
Убрана MSScriptControl.dll, которая обрабатывала java-скрипты внутри [JAVASCRIPT][/JAVASCRIPT] и [JAVASCRIPT_P][/JAVASCRIPT_P].

Надо заменить файл JakoDorgen_PRO.exe

19.01.2018 - 4.5.0
Исправлен баг, возникавший в режиме "Сателлит" при создании сайта без категорий.
Включена обработка исключений, которая по ошибке была отключена в версии 4.4.9.

Надо заменить файл JakoDorgen_PRO.exe

11.01.2018 - 4.4.9
Дорген стал бесплатным. Исправлены мелкие баги.
В скрипт добалены функции fopen, fwrite, fclose для записи в файл по частям. Добавлена функция webrequest (аналогичная httpclient_open) для загрузки страниц через HttpWebRequest.

Надо заменить файл JakoDorgen_PRO.exe

07.06.2015 - 4.4.8

Исправлен баг с выводом контента по частям макросом [ARTICLE_TEXT-x%] (иногда текст в конце повторялся). Теперь можно задавать процент контента в интервале: [ARTICLE_TEXT-20-40%]. Если знак % не ставить, то значение будет браться в символах. Например, вывести текст длиной около (не менее) 200 символов: [ARTICLE_TEXT-200]. Или от 200 до 500 символов: [ARTICLE_TEXT-200-500]. Текст берётся целыми предложениями.

Исправлен баг с опцией "В многословниках брать случайную часть ключевика.". Она не работала, если метод вставки ключевика был не замена существительных.

Добавлен блок [PASTEKEYWORD-5%-ключевик]текст[/PASTEKEYWORD]. Он вставляет с указанной плотностью ключевики в текст взятый в него. Если знак % не писать, то будет вставляться точное кол-во ключевиков. Если ключевик не писать, то будет вставлен ключевик текущей страницы. Если плотность не писать, будет использоваться плотность из настроек.
Примеры:
Добавляем ключевик в текст статьи:
[PASTEKEYWORD-3%-пластиковые окна]
[ARTICLE_TEXT]
[/PASTEKEYWORD]


Вставка делается согласно настройкам простановки ключевиков (расположение, метод, выделение) в профиле настроек.

Если надо случайный процент, то:
[PASTEKEYWORD-[RAND-3-5]%-пластиковые окна]
[ARTICLE_TEXT]
[/PASTEKEYWORD]



Добавляем текущий ключевик в динамический текст:
[PASTEKEYWORD-3%]
[DTEXT-20-40]
[/PASTEKEYWORD]


Добавляем ровно 7 ключевиков:

[PASTEKEYWORD-7]
[DTEXT-20-40]
[/PASTEKEYWORD]


Добавляем ключевики с плотностью из профиля настроек:
[PASTEKEYWORD]
[DTEXT-20-40]
[/PASTEKEYWORD]


Это для примера потому, что, напомню, для вывода динамического текста со вставленными ключевиками есть макрос: [DTEXTK-20-40-5%] - случайный текст с со вставкой ключевика (20-40 - кол-во слов, а 5% - это плотность ключевика).


С помощью этого блока теперь можно затачивать страницу под несколько ключевиков. Пример добавления в текст ключевика помимо основного ключа страницы, предварительно запомнив его через [COPY-x][/COPY] (для того, например, чтобы в тайтл и h1 добавить):

Второй кей: <h1>[EVAL-1][COPY-key2][RANDBKEYWORD][/COPY][/EVAL]</h1><br><br>
[PASTEKEYWORD-3%-[EVAL-1][PASTE-key2][/EVAL]]
[ARTICLE_TEXT]
[/PASTEKEYWORD]

Добавляем два дополнительных кея:

Второй кей: <h1>[EVAL-1][COPY-key2][RANDBKEYWORD][/COPY][/EVAL]</h1><br><br>
Третий кей: <h1>[EVAL-1][COPY-key3][RANDBKEYWORD][/COPY][/EVAL]</h1><br><br>

[PASTEKEYWORD-3%-[EVAL-1][PASTE-key2][/EVAL]]
[EVAL-2]
[PASTEKEYWORD-3%-[EVAL-1][PASTE-key3][/EVAL]]
[ARTICLE_TEXT]
[/PASTEKEYWORD]
[/EVAL]
[/PASTEKEYWORD]


Т.к. второй PASTEKEYWORD является вложенным, то я взял его в [EVAL-2][/EVAL]. Сначала будут обработаны COPY и PASTE (которые в [EVAL-1][/EVAL]), потом вставлен третий кей (вложенный PASTEKEYWORD), а потом второй кей.


Так же блок PASTEKEYWORD пригодится тем, кто пользуется моим методом, чтобы вставлять ключевики в контент выводимый через SCRIPT. Обёртываем второй блок SCRIPT:
[PASTEKEYWORD]
[SCRIPT]
...
[/SCRIPT]
[/PASTEKEYWORD]



Также сделал функцию PasteText(куда вставляем, что вставляем) для вставки в текст слов (ключевиков) так, чтобы они внутрь других тегов не попадали. Например, один пользователь спрашивал, как вставить в текст статьи ключевик, но не целиком, а разбитый по словам. Пример:

[SCRIPT_P]
text=[ESTRING][ARTICLE_TEXT][/ESTRING]; // записываем текст статьи в переменную text
c=explode(' ',$page_keyword,words)-1; // разбиваем ключевик на слова
wordstopaste=rand(4,7); // сколько раз втавить в текст (от 4 до 7)
for(a=1;a<=wordstopaste;a=a+1){
text=PasteText(text,'<b>'+words[rand(0,c)]+'</b>'); // вставка слова
}
[/SCRIPT_P]


Надо заменить файл JakoDorgen_PRO.exe.


30.10.2014 - 4.4.7

Блок [PAGESNAV] теперь работает и в сайтах с отложенной публикацией.

В связи с тем, что при генерировании больших сайтов с отложенной публикацией файлы с анонсами alist-категория.txt получаются большого размера, добавлена возможность разбивать их на несколько частей. Для этого надо в конце options.txt указать кол-во анонсов в одном файле. Например:
<alists_split>5000</alists_split>

В качестве файла с текcтовкой можно указывать gzip архив или папку с txt или gz файлами. Если папку, то указывать со звёздочной на конце: D:\mytext\*

Для скриптов добавлена возможность, чтобы в случае ошибки выполнение кода продолжалось со следующей команды. Для этого в начало скрипта надо вписать: %^On_Error_Resume_Next^%

Надо заменить файлы JakoDorgen_PRO.exe, dyn\op_cat.php, dyn\op_upd.php.

15.05.2014 - 4.4.6

Макрос KEYPART теперь может выводить подключи не только по ключевику, но и по его номеру: [KEYPART-2-номер]. Пример:
[RANDLINKS-3-5-c-1]
<a href="[A_URL]"><div class="pry">[KEYPART-8-[A_NUM]] руб.</div><img src="[KEYPART-7-[A_NUM]]" /><h3>[KEYPART-1-[A_NUM]] [KEYPART-2-[A_NUM]] [A_ANCHOR]</h3></a>
[/RANDLINKS]


Как и раньше можно задавать сам ключевик: [KEYPART-2-(купить пластиковые окна)] .

Оптимизирована работа ahttpclient-а, для предотвращения утечки памяти. Потоки загрузок создаются один раз и используются многократно. Ф-цию ahttpclient_clear() следует использовать только, когда использование ahttpclient-а больше не требуется (например по завершении генерирования в событии on_Generation_Complete).

Надо заменить файл JakoDorgen_PRO.exe

02.05.2014 - 4.4.5

C помощью макроса RANDLIST_FROM_FILE теперь можно выводить строки, в которых есть слова из ключевика. Для этого надо дописать параметр REL:
[RANDLIST_FROM_FILE-(файл)-REL]
Можно также указать сколько строк выводить: [RANDLIST_FROM_FILE-(файл)-REL-3-5]. В этом примере будут выведены от 3 до 5 строк.
Если таких макросов несколько на странице выводимые строки повторятся не будут (аналогично [RANDLIST_FROM_FILE-файл-UNIC]).
Чтобы выводимые строки не повторялись на всём сайте, параметр REL надо изменить так: [RANDLIST_FROM_FILE-(файл)-REL&UNIC!-3-5].
Если не испотльзовать параметр REL (чтобы вывести любые строки как обычно), нужно указать так: [RANDLIST_FROM_FILE-(файл)-UNIC!-3-5]. Так же можно и для RANDLIST: [RANDLIST-UNIC!] . Т.е. [RANDLIST-UNIC] - чтобы строки не повторялись в пределах одной страницы, а [RANDLIST-UNIC!] - в пределах всего сайта.
К параметру REL можно добавить две цифры: первая - стравнение (0-нестрогое, 1-среднее, 2-строгое), а вторая - сколько слов из ключевика должно повториться в строке (как в макросе SIMILARLINKS). Если их не указывать, то стравнение будет среднее, а слов должно повториться - 1. Примеры:
[RANDLIST_FROM_FILE-(C:\Jako\list.txt)-REL01] - выведет одну строку. Параметры поиска: стравнение - нестрогое, слов должно повториться - 1.
[RANDLIST_FROM_FILE-(C:\Jako\list.txt)-REL11-5] - выведет пять строк. Параметры поиска: стравнение - среднее, слов должно повториться - 1.
[RANDLIST_FROM_FILE-(C:\Jako\list.txt)-REL12&UNIC!-5-10] - выведет от пяти до десяти строк. Параметры поиска: стравнение - среднее, слов должно повториться - 2. Строки не будут повторятся на всём сайте.
[RANDLIST_FROM_FILE-(C:\Jako\list.txt)-REL21&UNIC!-5-10] - выведет от пяти до десяти строк. Параметры поиска: стравнение - строгое, слов должно повториться - 1. Строки не будут повторятся на всём сайте.


Исправлен баг, который вызывал подвисание в конце генерирования сайтов с отложенной публикацией при использовании большого кол-ва макросов в анонсах.

В events.txt добавлено событие on_Generation_Stop, которое будет выполняться при остановке генерирования. Раньше выполнялось on_Generation_Complete.

В функции httpclient_open теперь можно указать кодировку "auto" и кодировка будет подбираться автоматически:
$h="GET / HTTP/1.0\r\nHost: www.google.ru\r\n\r\n";
$r=httpclient_open('http://www.google.ru/',$h,'','auto');
print($r);



В скрипт добавлены функции для многопоточной загрузки страниц из интернета:
ahttpclient_open(id загрузки,url,http-заголовок,прокси,кодировка,таймаут) - вызывает httpclient_open в асинхронном режиме. Первым аргументом идёт идентификатор загрузки.

ahttpclient_status(id загрузки) - вернёт статус загрузки (0-работает, 1-выполнена, 2-считана).
ahttpclient_finished() - вернёт 0, если ещё есть несчитанные (работающие и выполненные) загрузки, и 1 если нет.
ahttpclient_ready() - вернёт 1 если есть выполненные, но несчитанные загрузки, и 0 если нет.
ahttpclient_running() - вырнёт сколько страници сейчас загружается.
ahttpclient_runninglist() - вернёт список идентификаторов загрузок, которые сейчас загружается.
ahttpclient_readylist() - вернёт список идентификаторов загрузок, которые выполненные, но несчитанные.
ahttpclient_data(id загрузки) - вернёт загруженные данные. После вызова функции статус загрузки станет 2 - считана.
ahttpclient_clear() - прекратит все загрузки и очистит память.

Пример одновременной загрузки нескольких страниц:
h="GET / HTTP/1.0\r\nHost: www.google.ru\r\n\r\n";
ahttpclient_open('1','http://www.google.ru/',h,'','auto');
h="GET / HTTP/1.0\r\nHost: www.yandex.ru\r\n\r\n";
ahttpclient_open('2','http://www.yandex.ru/',h,'','auto');
h="GET / HTTP/1.0\r\nHost: mail.ru\r\n\r\n";
ahttpclient_open('3','http://mail.ru/',h,'','auto');

do{
usleep(10);

if(ahttpclient_ready()>0){
explode("\r\n",ahttpclient_readylist(),t); c=count(t)-1;
for(i=0;i<=c;i=i+1){print("********Загрузка "+t[i]+"********\r\n"+ahttpclient_data(t[i])+"\r\n\r\n");}
}

statusbox_show("Загружаются:"+ahttpclient_running());
}while(ahttpclient_finished()==0);

statusbox_show("Готово!");



Появилась функция statusbox_set для настройки отображения statusbox-а:
statusbox_set('Заголовок окошка','ширина,высота','Кнопка');
Примеры:
statusbox_set('Статус генерирования','350,150','Остановить,Закрыть'); - изменит заголовок окошка statusbox-а на "Статус генерирования", ширину на 350, высоту на 150, добавит кнопки "Остановить" и "Закрыть". Всего можно делать до трёх кнопок.
Считать нажатую кнопку можно функцией statusbox_button(). После считывания значение нажатой кнопки обнуляется.
Пример:

statusbox_set('Тест','350,150','Да,Нет,Закрыть');
do{
usleep(10);
statusbox_show('Нажмите любую кнопку.');
b=statusbox_button();
if(b!=''){alert('Вы нажали кнопку '+b);}
}while(b!='Закрыть');
statusbox_close();


В скрипте можно использовать событие on_error, которое будет выполняться при возникновении ошибки:
function on_error(){
alert('Ошибочка!');
}


Надо заменить файл JakoDorgen_PRO.exe

17.03.2014 - 4.4.4
Добавлена возможность удаления из файла ключевиков использованных ключевиков (галочка "Удалять использованные ключевики" под галочками "Перемешивать ключевики" и "Ограничить кол-во ключевиков").
Изменён алгоритм загрузки ключевиков для загрузки их большого количества.
Добавлена предварительная обработка макросов в полях "Title сайта" и "Надпись в шапке" для всех проектов в самом начале генерирования. При использовании перелинковки, при необходимости рандомизировать Title сайта, следует использовать макросы не зависящие от загрузки ключевиков. Например для вывода случайного ключевика в поле "Title сайта" надо указать не [RANDKEYWORD], а [RANDLIST_FROM_FILE-Путь к файлу ключевиков].

Надо заменить файл JakoDorgen_PRO.exe и папки интерфейсов interface и interface2011.

06.03.2014 - 4.4.3
В настройках после поля "Свои названия категорий (анкоры):" появилась возможность отключить перемешивание анкоров категорий.
Возле поля "Ссылок в тексте на др. статьи:" появились галочки "Ссылки на похожие статьи" и "Ссылки на статьи из той же категории". При установке галочки "Ссылки на похожие статьи" в текст статьи будут вставляться ссылки только на статьи с похожим ключевиком. При установке галочки "Ссылки на статьи из той же категории" будут ставиться ссылки только на статьи из той же категории, к которой относится страница.
Для блоков [MENU] [/MENU], [CATEGORIES] [/CATEGORIES], [RANDLINKS-x1-x2] [/RANDLINKS] стал необязателен вложенный блок [ITEM] [/ITEM].
В блоке [RANDLINKS-x1-x2] [/RANDLINKS] появились доболнительные макросы: [A_NUM] - номер статьи, [A_DATE] - дата статьи, [A_IMG] - картинка статьи.
Также макрос RANDLINKS теперь может содержать доболнительные параметры: [RANDLINKS-x1-x2-категория-сортировка]. Параметр категория может быть номером категории. Тогда будут выбираться ссылки только из указанной категории. Если вместо номера категории указать "c" (латинская си), то будут выбираться ссылки из текущей категории (т.е. из той же категории, что и сама страница). Если указать "n" то категория не будет учитываться при выборе (так по уполномочию). Примеры:
[RANDLINKS-3-5-c][A][/RANDLINKS] - выведет от 3 до 5 ссылок из текущей категории.
[RANDLINKS-3-5-n][A][/RANDLINKS] - выведет от 3 до 5 ссылок из любых категорий.
[RANDLINKS-3-5-2][A][/RANDLINKS] - выведет от 3 до 5 ссылок из второй категории.

Параметр сортировка может принимать три значения: 0 - без сортировки (по умолчанию), 1 - сортировать по возростанию даты, 2 - сортировать по убыванию даты. Примеры:
[RANDLINKS-3-5-c-0][A][/RANDLINKS] - выведет от 3 до 5 ссылок из текущей категории, без сортировки.
[RANDLINKS-3-5-n-1][A][/RANDLINKS] - выведет от 3 до 5 ссылок из любых категорий, отсортированные по возростанию даты.
[RANDLINKS-3-5-2-2][A][/RANDLINKS] - выведет от 3 до 5 ссылок из второй категории, отсортированные по убыванию даты.

Блок RAND_PRE_ARTICLES, который выводит случайные анонсы теперь тоже может содержать такие же параметры. Примеры:
[RAND_PRE_ARTICLES-3-5-n-1]...[/RAND_PRE_ARTICLES] выведет анонсы из любых категорий сортировав по возростанию даты.
[RAND_PRE_ARTICLES-3-5-с-2]...[/RAND_PRE_ARTICLES] выведет анонсы из текущей категории отсортировав по убыванию даты.
[RAND_PRE_ARTICLES-3-5-4-2]...[/RAND_PRE_ARTICLES] выведет анонсы из четвёртой категории отсортировав по убыванию даты.

Добавлены макросы [SIMILARLINKS-x1-x2] [/SIMILARLINKS], который выводит ссылки с ключевиком похожим на ключевик страницы, и [SIMILAR_PRE_ARTICLES-x1-x2] [/SIMILAR_PRE_ARTICLES], который выводит анонсы с похожим ключевиком. По сути, SIMILAR_PRE_ARTICLES является расширенной версией SIMILARLINKS, как и RAND_PRE_ARTICLES является расширенной версией RANDLINKS.
Блок SIMILARLINKS может содержать те же макросы, что и RANDLINKS: [A], [A_URL], [A_ANCHOR], [A_DATE], [A_NUM], [A_IMG]. Он также может содержать дополнительные параметры: [SIMILARLINKS-x1-x2-категория-сортировка-сравнение-слов-ключевик]. Параметры "категория" и "сортировка" такие же как в RANDLINKS и RAND_PRE_ARTICLES. Параметр сравнение может иметь значения: 0-нестрогое, 1-среднее, 2-строгое. От этого параметра зависит как будут искаться похожие ссылки. По умолчанию используется среднее. Параметр "слов" указывает сколько слов из ключевика должно повториться в ключевике искомой ссылки. Последний параметр "ключевик" указывается, если надо найти похожие ссылки не для ключевика текущей страницы, а для другого ключевика. Примеры:
[SIMILARLINKS-5-10-c] [A] [/SIMILARLINKS] - выведет от 5 до 10 ссылок из текщей категории. Без сортировки. Соотвествие по умолчанию среднее.
[SIMILARLINKS-5-10-c-2] [A] [/SIMILARLINKS] - выведет ссылки из текщей категории отсортировав по убыванию даты. Соотвествие по умолчанию среднее.
[SIMILARLINKS-5-10-c-2-2] [A] [/SIMILARLINKS] - выведет ссылки из текщей категории отсортировав по убыванию даты. Соответсвие строгое (слова из ключевика должны находиться в искомой ссылке полностью). В ссылке должно быть как минимум одно слово из ключевика.
[SIMILARLINKS-5-10-c-2-2-2] [A] [/SIMILARLINKS] - тоже самое, что и предыдущее, только в ссылке должно быть как минимум два слова из ключевика.
[SIMILARLINKS-5-10-c-2-2-2-(пластиковые окна)] [A] [/SIMILARLINKS] - тоже самое, что и предыдущее, только ссылки будут искаться для ключевика "пластиковые окна". Т.е. искомые ссылки должны содержать слова "пластиковые" и "окна". Чтобы слова искались не полностью, а без учёта окончания, то надо изменить уровень соответствия на 0 (нестрогое). Пример:
[SIMILARLINKS-5-10-n-1-0-1-(пластиковые окна)] - выведет ссылки похожие на ключевик "пластиковые окна" из любых категорий, отсортировав по возрастанию даты, соответствие - нестрогое, должно быть как минимум одно слово из ключевика.

Те же параметры можно использовать и в блоке [SIMILAR_PRE_ARTICLES-x1-x2] [/SIMILAR_PRE_ARTICLES]:
[SIMILAR_PRE_ARTICLES-x1-x2-категория-сортировка-сравнение-слов-ключевик] ... [/SIMILAR_PRE_ARTICLES].
В блоке SIMILAR_PRE_ARTICLES используются макросы аналогичные макросам блока RAND_PRE_ARTICLES (просто без RAND_ в начале):
[PRE_ARTICLE_SHORT_TEXT-x] - анонс, где x - кол-во симоволов в анонсе;
[PRE_ARTICLE_TITLE] - заголовок анонса;
[PRE_ARTICLE_DATE] - дата статьи. Также [PRE_ARTICLE_DATE_D] - день, [PRE_ARTICLE_DATE_M] - месяц, [PRE_ARTICLE_DATE_Y] - год, [PRE_ARTICLE_DATE_DD] - день (две цифры), [PRE_ARTICLE_DATE_MM] - месяц (две цифры), [PRE_ARTICLE_DATE_YY] - год (две цифры), [PRE_ARTICLE_DATE_MNR] - название месяца даты на русском, [PRE_ARTICLE_DATE_MNSR] - название месяца даты на русском (три буквы), [PRE_ARTICLE_DATE_MNE] - название месяца даты на английском, [PRE_ARTICLE_DATE_MNSE] - название месяца даты на английском (три буквы);
[PRE_ARTICLE_CATEGORY_NAME] - имя категории, [PRE_ARTICLE_CATEGORY_URL] - url категории, [PRE_ARTICLE_URL] - url полной статьй, [PRE_ARTICLE_NUM] - порядковый номер анонса;
Картинка анонса выводится блоком [PRE_ARTICLE_IMG] [/PRE_ARTICLE_IMG], который содержит следующие вложенные макросы: [PRE_ARTICLE_IMG_URL] - url картинки, [PRE_ARTICLE_IMG_ALT] - alt картинки.

Эти же макросы теперь можно использовать и в блоке RAND_PRE_ARTICLES вместо [RAND_PRE_ARTICLE_TITLE], [RAND_PRE_ARTICLE_DATE] и т.д. Т.е. тоже самое, только без RAND_.
Также теперь можно использовать вложенный блок [PRE_ARTICLE] [/PRE_ARTICLE] для отделения начала и конца ссылки в блоке (аналогично блоку [ITEM][/ITEM]).

Если делаете сайт с отложенной публикацией, то блоки RANDLINKS, RAND_PRE_ARTICLES, SIMILARLINKS, SIMILAR_PRE_ARTICLES выводят ссылки только на те статьи, даты которых меньше текущей даты. Но можно сделать так, чтобы в них включались и ссылки на статьи с датой больше текущей, и чтобы они появлялись на сайте соответственно их дате. Для этого добавьте @ в название макроса: [RANDLINKS@-3-5] ... [/RANDLINKS@], [RAND_PRE_ARTICLES@-3-5]...[/RAND_PRE_ARTICLES@], [SIMILARLINKS@-5-10]...[/SIMILARLINKS@], [SIMILAR_PRE_ARTICLES@-7-10]...[/SIMILAR_PRE_ARTICLES@].
Так каждая ссылка будет при обработке макросов автоматом взята в блок [SHOW_DATE-дата][/SHOW_DATE].

Процент отложенных статей теперь можно задавать дробный. Например: 99.5.
В скрипт добавлена функция strip_tags, которая удаляет теги из текста. Функция httpclient_open теперь поддерживает HTTPS.

Надо заменить файл JakoDorgen_PRO.exe и папки интерфейсов interface и interface2011.

11.02.2014 - 4.4.2
Исправлены некоторые баги.
Теперь вместо файла текстовки можно указать папку с файлами, из которой будет браться случайная текстовка.
В скрипт добавлена функция webbrowser(url), которая загружает страницу из интерета. В отличие от httpclient_open и httpclient_getcontent загрузка происходит через IE и с его настройками: t=webbrowser('http://www.yandex.ru/'); .

Надо заменить файл JakoDorgen_PRO.exe.

06.02.2014 - 4.4.1
Исправлен баг с утечкой памяти в скриптовом языке.
Добавлены макросы [CATNAME-x], который выводит имя категории x и [CATURL-x], который выводит URL категории x. Пример: <a href="[CATURL-3]">[CATNAME-3]</a>.
В скрипт добавлена функция datetostr(дата), которая возвращает из даты в виде количества дней, прошедших после полуночи 30 декабря 1899 г. дату в привычном виде: 05.02.2014.
Добавлена возможность скрыть отображение ошибок в [SCRIPT] [/SCRIPT]. Для этого надо в options.txt указать <hide_script_errors>1</hide_script_errors>.

Надо заменить файл JakoDorgen_PRO.exe.

04.02.2014 - 4.4.0
Добавлена вложенность для макроса [[текст1|текст2|текст3]]. Теперь можно делать так: [[[[Привет!|Бла-бла-бла]]|Текст|[[Тест1|Тест2:[[Трам пам пам!|На-на-на]]|Тест3]]]] .
В блок [PRE_ARTICLE] добавлен макрос [ARTICLE_KEYWORD], который выводит ключевик анонса.
Улучшена работа макроса [KEYPART-x].

Надо заменить файл JakoDorgen_PRO.exe.

27.01.2014 - 4.3.9
Добавлена возможность использовать мультикеи. Мультикей - ключевик с прикреплёнными к нему данными (подключами). Пример файла ключевиков в формате мультикеев:
Свадебное платье;Белый;45-50;Есть в наличии;5000руб
Вечернее платье;Белый;50-55;Нет;5350руб
Короткое платье;Красный;45-50;На складе;10000руб
Концертное платье;Синий;45-50;Есть;55000руб

В данном примере для каждого платья записаны его цвет, размер, наличие и цена. Данные разделяются точкой с запятой, но могут разделяться и другим символом. Откройте файл options.txt и найдите в самом низу <multikey_separator>;</multikey_separator> (если нету то допишите) и впишите нужный символ: <multikey_separator>|</multikey_separator>

Вставляются подключи макросом [KEYPART-x] , где x - номер подключа. Т.е. [KEYPART-1] выведет цвет платья, [KEYPART-2] - размер платья, [KEYPART-3] - наличие, а [KEYPART-4] - цену платья. Чтобы вывести случайный подключ нужно использовать [KEYPART-RANDOM].
Можно также выводить подключи не только для ключевика страницы, но и для любого другого ключевика добавив его в макрос. Пример: [KEYPART-3-Короткое платье]. Если в ключевиках встречаются тире (минус), то берите его в скобки: [KEYPART-3-(Короткое платье)].
Пример, как вывести все подключи для случайного ключевика:
Платье: [EVAL-1][COPY-key][RANDKEYWORD][/COPY][/EVAL]
Цвет: [KEYPART-1-([EVAL-1][PASTE-key][/EVAL])]
Размер: [KEYPART-2-([EVAL-1][PASTE-key][/EVAL])]
Наличие: [KEYPART-3-([EVAL-1][PASTE-key][/EVAL])]
Цена: [KEYPART-4-([EVAL-1][PASTE-key][/EVAL])]

Макросы COPY и PASTE имеют особый приоритет, поэтому в данном случае их нужно взять в [EVAL-1] [/EVAL], чтобы они выполнялись первыми.

Чтобы включить режим мультикеев, нужно в проекте поставить галочку "Мультикеи" справа от поля "Ключевики".
При массовом добавлении проектов, для того, чтобы включить мультикеи нужно добавить к файлу ключевиков *MULTI:
www.site.ru|Пластиковые окна|Всё о пластиковых окнах|C:\ключевики-окна.txt*MULTI|C:\текстовка-окна.txt|C:\статьи|MyProfile1|ftp.test.ru|mylogin|mypass|/


Исправлены разные мелкие баги.

Надо заменить файл JakoDorgen_PRO.exe и папки интерфейсов interface и interface2011.


05.03.2013 - 4.3.8
Исправлен баг с количеством символов в [RAND_PRE_ARTICLE_SHORT_TEXT-x].

Надо заменить файл JakoDorgen_PRO.exe.

01.03.2013 - 4.3.7
Пофиксены найденные баги.
Изменён синтаксис блока RAND_PRE_ARTICLES, который выводит случайные анонсы (это потребовалось во избежание накладок, связанных с совпадением названий макросов с макросами блока [PRE_ARTICLE][/PRE_ARTICLE]).
Теперь его внутренние макросы такие:
[RAND_PRE_ARTICLE_SHORT_TEXT-x] - анонс, где x - кол-во симоволов в анонсе;
[RAND_PRE_ARTICLE_TITLE] - заголовок анонса;
[RAND_PRE_ARTICLE_DATE] - дата статьи. Также [RAND_PRE_ARTICLE_DATE_D] - день, [RAND_PRE_ARTICLE_DATE_M] - месяц, [RAND_PRE_ARTICLE_DATE_Y] - год, [RAND_PRE_ARTICLE_DATE_DD] - день (две цифры), [RAND_PRE_ARTICLE_DATE_MM] - месяц (две цифры), [RAND_PRE_ARTICLE_DATE_YY] - год (две цифры), [RAND_PRE_ARTICLE_DATE_MNR] - название месяца даты на русском, [RAND_PRE_ARTICLE_DATE_MNSR] - название месяца даты на русском (три буквы), [RAND_PRE_ARTICLE_DATE_MNE] - название месяца даты на английском, [RAND_PRE_ARTICLE_DATE_MNSE] - название месяца даты на английском (три буквы), [RAND_PRE_ARTICLE_CATEGORY_NAME] - имя категории, [RAND_PRE_ARTICLE_CATEGORY_URL] - url категории, [RAND_PRE_ARTICLE_URL] - url полной статьй, [RAND_PRE_ARTICLE_NUM] - порядковый номер анонса;
Картинка анонса выводится блоком [RAND_PRE_ARTICLE_IMG] [/RAND_PRE_ARTICLE_IMG], который содержит следующие вложенные макросы:
[RAND_PRE_ARTICLE_IMG_URL] - url картинки, [RAND_PRE_ARTICLE_IMG_ALT] - alt картинки.
Чтобы выводились только анонсы из той же категории, что и текущая страница, надо дописать в макрос параметр "CATEGORY": [RAND_PRE_ARTICLES-x-y-CATEGORY].
Также теперь анонсы выводятся по убыванию даты.

Появился макрос [RANDLIST-UNIC], который как и [RANDLIST] выводит случайную строку из файла, но так, чтобы одна и та же строка не бралась более одного раза.
Аналогично марос [RANDLIST_FROM_FILE-файл-UNIC].

Чтобы выводить ссылки на предыдущую и следующую статьи теперь можно использовать эти макросы:
[PREVIOUS_ARTICLE_URL] - url предыдущей статьи;
[NEXT_ARTICLE_URL] - url следующей статьи;
[PREVIOUS_ARTICLE_KEYWORD] - название предыдущей статьи;
[NEXT_ARTICLE_KEYWORD]] - название следующей статьи;
[PREVIOUS_ARTICLE_DATE] - дата предыдущей статьи;
[NEXT_ARTICLE_DATE] - дата следующей статьи;
Чтобы эти ссылки делались только на статьи из текущей категории, надо добавить в нужный макрос параметр "CATEGORY": [PREVIOUS_ARTICLE_URL-CATEGORY], [NEXT_ARTICLE_URL-CATEGORY], [PREVIOUS_ARTICLE_KEYWORD-CATEGORY], [NEXT_ARTICLE_KEYWORD-CATEGORY], [PREVIOUS_ARTICLE_DATE-CATEGORY], [NEXT_ARTICLE_DATE-CATEGORY].
Пример использования:
<a href="[PREVIOUS_ARTICLE_URL]">[PREVIOUS_ARTICLE_KEYWORD] «</a> <u>[BKEYWORD]</u> <a href="[NEXT_ARTICLE_URL]">» [NEXT_ARTICLE_KEYWORD]</a>
Если вы делаете дор с отлеженной публикацией, чтобы избежать вывода ссылок на статьи, которые ещё не опубликованы, следует брать всю ссылку на предыдущую статью (более свежую) в блок [SHOW_DATE-[PREVIOUS_ARTICLE_DATE]] [/SHOW_DATE]:
[SHOW_DATE-[PREVIOUS_ARTICLE_DATE]]<a href="[PREVIOUS_ARTICLE_URL]">[PREVIOUS_ARTICLE_KEYWORD] «</a>[/SHOW_DATE] <u>[BKEYWORD]</u> [SHOW_DATE-[NEXT_ARTICLE_DATE]]<a href="[NEXT_ARTICLE_URL]">» [NEXT_ARTICLE_KEYWORD]</a>[/SHOW_DATE]. Ссылку на следующую страницу можно взять в [SHOW_DATE-[NEXT_ARTICLE_DATE]][/SHOW_DATE], но необязательно потому, что её дата более ранняя и не может быть больше текущей. Т.е. страницы идут как в категориях, от новых к старым.
Таким образом, ссылки будут отображаться, только если их дата больше или равна текущей.

Добавлена возможность детализировать вывод ссылок в MENU, CATEGORIES, RANDLINKS, и FRIENDLINKS:
[A_URL] - выводит url ссылки;
[A_ANCHOR] - выводит текст ссылки;
Пример:
[MENU]
[ITEM]<A href="[A_URL]" class="myclass">[A_ANCHOR]</A><br> [/ITEM]
[/MENU]

В скрипте появилась переменная $template_file, которая возвращает используемый при текущем генерировании шаблон (полный путь). Она нужна в тех случаях, когда шаблон не задан точно, а выбирается рандомно. В таких случаях getprojectinfo(num,'template') не будет работать.

reloadevents(); - перезагружает events.txt.

Появилась возможность подачи команд в дорген через порт. Подробнее.

Надо заменить файл JakoDorgen_PRO.exe.

03.10.2012 - 4.3.6
Исправлены некоторые баги скрипта (в частности событие function on_Programm_Start() теперь выполняется после полной загрузки программы). Добавлена функция updateprojects(); которая обновляет информацию о загруженных проектах.
Исправлен баг с переполнением памяти при использовании множества макросов DTEXT_COPY_FROM_FILE и DTEXT_COPYRAND_FROM_FILE. Также теперь можно сделать, чтобы тексты загруженные этими макросами не сохранялись в памяти после их использования. Для этого надо дописать к путю файла *NOT_CACHE. Пример: [DTEXT_COPY_FROM_FILE-D:\text\mytext.txt*NOT_CACHE-3-5].
При генерировании статических сайтов при включённой опции "Делать имена страниц категорий из их названий", опции "Делать имена страниц со статьями из их ключ. слов" и при выключенной опции "Вкладывать статьи в папки их категорий" к именам страниц категорий теперь добавляется случайное трёхзначное число. Это надо, чтобы имя страницы категории, которое делается из случайного ключевика, не совпадало с именем страницы со статьёй по этому ключевику.
Надо заменить файл JakoDorgen_PRO.exe.

17.09.2012 - 4.3.5
Исправлены некоторые баги.
Надо заменить файл JakoDorgen_PRO.exe.

25.06.2012 - 4.3.4
Появился макрос [RKEYWORD-скачать,загрузить], который выводит ключевик без слов, которые вы в нём укажите (т.е. без "скачать" и "загрузить"). И макрос [BRKEYWORD-скачать,загрузить] - то же, только с большой буквы.
Добавлена ф-ция str_ireplace() , которая заменяет без учёта регистра.
Блок [TRANSLIT][/TRANSLIT] который транслитирует всё, что внутри.
Добавлена функция preg_match(pattern, subject, var) для регулярных выражений (стандарт .NET). Пример использования:
preg_match('<(.*?)>',"<p>Это <a href='http://site.ru'>пример</a> <b>поиска</b></p>",$b);
$c=count($b)-1;
for($i=0;$i<=$c;$i=$i+1){
echo($b[$i]+"\r\n");
}

Функция count - возвращает кол-во элементов в массиве.
Функция explode( delimiter , string, var ) - возвращает массив строк, полученных разбиением строки string с использованием delimiter в качестве разделителя. Пример:
$a='test1|test2|test3';
explode('|',$a,$b);
$c=count($b)-1;
for($i=0;$i<=$c;$i=$i+1){
echo($b[$i]+"\r\n");
}

Функция idate - возвращает текущую дату (значение даты OLE-автоматизации - количество дней, прошедших после полуночи 30 декабря 1899 г.).
Массивы $articlespage_idate[] и $articlespage_date[], в которых хранятся даты статей. В $articlespage_idate[] - в формате количества дней, прошедших после полуночи 30 декабря 1899 г., а $articlespage_date[] - в обычном формате, т.е. "25.06.2012".
Появился блок для вывода случайных анонсов:
[RAND_PRE_ARTICLES-2-4][ARTICLE_DATE] - [ARTICLE_TITLE]<br>
[ARTICLE_IMG]<img src="[IMG_URL]" border="0" align="left" alt="[IMG_ALT]">[/ARTICLE_IMG] [ARTICLE_SHORT_TEXT-200]<br><a href="[ARTICLE_URL]"><br>Подробнее</a><br><br>
[/RAND_PRE_ARTICLES]
Этот блок может содержать все те же макросы, что и блок [PRE_ARTICLE][/PRE_ARTICLE], который выводит анонсы на страницах категорий. В этом примере будут выведены 2-4 анонса. Кол-во символов в тексте анонса указывается в макросе [ARTICLE_SHORT_TEXT-200]. Для сателлитных статей, для которых заданы анонсы (отделены <!--more-->), будут браться эти анонсы без учёта кол-ва символов. Но можно сделать, чтобы для них, как и для дорвейных, краткое описание делалось из полного без тегов и переносов. Для этого надо добавить после кол-ва символов букву S: [ARTICLE_SHORT_TEXT-200S].
Появились функции getadt(номер статьи, кол-во символов); и getiadt, которые возвращают анонсы статей. Т.е. getadt как [ARTICLE_SHORT_TEXT-200], а getiadt как [ARTICLE_SHORT_TEXT-200S].
Изменён порядок обработки [COPY-x] и [PASTE-x], чтобы не как раньше сначала все COPY далались, а потом все PASTE, а чтобы по порядку, сверху вниз обрабатывались.

Теперь можно сделать, чтобы в текст вставлялись рандомные ключевики (с морфологией тоже). В настройках, где "Простановка случайных ключевиков" , надо указать кол-во ключевиков для вставки.
Ещё теперь можно сделать, чтобы в текст вставлялось определённое кол-во ключевиков. Где "Плотность ключевых слов (%):" пишите, сколько раз ключевик должен повторяться в тексте, и ставьте галочку "Не в процентах, а в штуках".
Появилась возможность задавать шаблон для статьи при генерировании под Zerber. Шаблон содержится в файле zerber_template.txt. В нём работают все те же макросы, что и при обычном генерировании.
Появился макрос:
[UPD_CONTENT-5]
Контент-1
[*]
Контент-2
[*]
Контент-3
[/UPD_CONTENT]

В этом примере этот блок будет выводить контент так - 5 дней "Контент-1", потом 5 дней "Контент-2", потом 5 дней "Контент-3", а потом снова "Контент-1" и так по кругу. Дата, от которой будет идти отчёт (дата создания дора), будет добавлена в макрос автоматически при генерировании страниц: [UPD_CONTENT-5-25.06.2012]. Этот блок как и [SHOW_DATE-x][/SHOW_DATE] обрабатывается в dmcr.php на сервере во время вывода страницы. Для статических сайтов он не работает.

Надо полностью заменить папку с программой.

15.03.2012 - 4.3.2
Исправлена важная ошибка со вставкой картинок в статьи.

Надо заменить файл JakoDorgen_PRO.exe.

15.03.2012 - 4.3.3
Исправлена важная ошибка, также связанная со вставкой картинок.

Надо заменить файл JakoDorgen_PRO.exe.

15.03.2012 - 4.3.2
Исправлена важная ошибка со вставкой картинок в статьи.

Надо заменить файл JakoDorgen_PRO.exe.

15.03.2012 - 4.3.1
Можно делать разную текстовку, ключи, картинки для каждой категории. В проекте укажите вместо файла с ключевиками папку. В этой папке для каждой категории делаете 3 файла: имя-категории.txt, имя-категории-text.txt (опционально), имя-категории-images.txt (опционально). Первый файл для ключевиков. Во втором - тектовка, из которой будут генериться статьи данной категории. Если этого файла не делать, то статьи будут генериться из общей тектовки, указанной в проекте. В третьем файле вписываете путь к папке из которой брать картинки. Если его не делать, то картинки будут браться из общей папки.
Например, в папке лежат файлы:
Браузеры.txt, Браузеры-text.txt, Браузеры-images.txt
Программы для офиса.txt, Программы для офиса-text.txt, Программы для офиса-images.txt
Игры.txt, Игры-text.txt, Игры-images.txt.

Будут созданы 3 категории: Браузеры, Программы для офиса, Игры. В категории Браузеры будут ключевики из файла Браузеры.txt, текстовка будет браться из файла Браузеры-text.txt, а картинки к статьям будут браться из папки указанной в Браузеры-images.txt. Аналогично для других категорий.
Если вы хотите для всех категорий использовать общую тектовку и картинки, то делайте только файлы с ключевиками. Например: Браузеры.txt, Программы для офиса.txt, Игры.txt.

Tеперь в php-дорах php работает везде на странице.

Исправлена ошибка с использованием макросов внутри php-кода.

Появился блок [DYN-x-y][/DYN], который в php-дорах делает динамическим всё, что внутри него. Например, нужно чтобы макрос [RANDLINK] выводился каждый раз разный при обновлении страницы, далаем его так: [DYN-10-20][RANDLINK][/DYN]. Если взять в блок [DYN-x-y][/DYN] любой макрос (или кусок текста с html-тегами и макросами), то будут запомнены x-y значений макроса внутри него. Например: [DYN-5-10][NICK][/DYN]. В результате макрос [NICK] будет высчитываться допустим 7 раз. Его значения будут записаны в массив и весь блок будет заменён на: <? $array = array("Jack", "Tom", "Joe", "Bill", "Sam", "David", "Joseph"); echo $array[rand(0, count($array)-1)]; ?> Этот php-скрипт будет рандомом выводить значения из массива.
Можно указывать точное кол-во вариантов вывода: [DYN-9][NICK][/DYN].
Если нужно использовать блок [DYN-x-y][/DYN] внутри блока [REPEAT-x-y][/REPEAT], то вместо него делайте [DYNP-x-y][/DYNP].

Появился особый блок приоритетной обработки макросов - [EVAL-x][/EVAL]. x - порядок обработки. Пример:
[EVAL-2][RAND-1-100][/EVAL]
[EVAL-1][RANDLINK][/EVAL]

Сначало будет заменён макрос [RANDLINK], а макрос [RAND-1-100] потом.
Этот блок будет полезен в случаях, когда нужна дополнительная поддержка вложенности макросов. Например макрос [[Текст1|Текст2|Текст3]] не поддерживает вложенности. Т.е. это:
[[Текст1|[[Hello-1|Hello-2]]|Текст3]]
будет обработано неправильно!
Чтобы вложенный макрос [[Hello-1|Hello-2]] обрабатывался до макроса, в который он вложен, возьмём его в [EVAL-1][/EVAL]:
[[Текст1|[EVAL-1][[Hello-1|Hello-2]][/EVAL]|Текст3]]
Так всё будет работать правильно.

Кстати, макрос [[Текст1|Текст2|Текст3]] теперь может содержать внутри макросы.

Появилась функция date("формат"), которая возвращает текущую дату в заданом формате. Примеры:
date("DD.MM.Y") - 05.03.2012
date("D.M.Y") - 5.3.2012
date("D.M.YY") - 5.3.12

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

Теперь можно добавлять в файл htaccess свои комманды. Для этого впишите их в файл htaccess_top.txt в папке dyn. Его содержимое будет вставляться в начало htaccess.

Надо заменить файл JakoDorgen_PRO.exe, папку dyn и папки interface, interface2011.


29.02.2012 - 4.3.0
Исправлены некоторые мелкие баги, а так же баг с относительными путями в макросах RANDFILE_FROM_FOLDER, FILE_FROM_FOLDER, RANDIMG_FROM_FOLDER, COPYRANDIMG_FROM_FOLDER. Теперь при указании относительного пути в этих и других макросах можно перед путём ставить звёздочку *, и тогда путь будет браться не относительно папки с программой, а относительно папки с дорвеем. Пример: [RANDFILE_FROM_FOLDER-*pics].

Надо заменить файл JakoDorgen_PRO.exe.


24.02.2012 - 4.2.9
Теперь для доров с отложенной публикацией права доступа на нужные файлы (udt.txt, alist-*.txt, sitemaplist.txt, sitemap.xml, rss*.xml) ставятся автоматом при первом обращении к сайту.
В блоках [HTML][/HTML] и [ESTRING][/ESTRING] добавлено экранирование слэшей, чтобы не было накладок. Пример: путь C:\rojer , но \r это символ табуляции, поэтому слэш должен быть экранирован \\.
В дорах со статьями вложенными в папки их категорий (http://www.site.ru/biznes/art.php?n=klip-ranetok), если обратиться к папке категории (http://www.site.ru/biznes/), то отображалось всё содержимое папки. Я сделал, чтобы делался редирект на первую страницу категории. Ещё в .htaccess добавил Options -Indexes (эта команда запрещает листинг каталогов).
В скрипт добавлены функции создания и удаления папки: createfolder(имя папки) и deletefolder(имя папки).

Надо заменить файл JakoDorgen_PRO.exe и папку dyn.


15.02.2012 - 4.2.8
Исправлена ошибка из-за которой в дорах с ЧПУ и опцией "Делать имена страниц категорий из их названий" не работала отложенная публикация.
Блоки [MENU] и [CATEGORIES] теперь можно ставить везде.
В скрипте теперь строки в одинарных кавычках могут содержать кавычки: $a='Сырок "Дружба"';
Внутри скриптов можно вставлять html-код в блоке [HTML][/HTML]:
[SCRIPT]
$a=1;
if($a==1){
[HTML]
<font color="#009900"><b>OK</b></font>
[/HTML]
}
[/SCRIPT]
Перед обработкой скрипта данный блок будет преобразовываться в print с экранированием кавычек и слэшей: print("<font color=\"#009900\"><b>OK</b></font>");
Вывести переменную внутри [HTML][/HTML] можно макросом [VAR-имя переменной]. Пример:
[SCRIPT]
$a='Привет!';
[HTML]
<font color="#009900"><b>[VAR-$a]</b></font>
[/HTML]
[/SCRIPT]
Кроме [HTML][/HTML] ещё можно заключать html-код в [ESTRING][/ESTRING]. Как и [HTML][/HTML] этот блок преобразовывается с экранированием кавычек и слэшей, но без print, т.е. просто в строку в кавычках. Например:
[ESTRING]
<font color="#009900"><b>OK</b></font>
[/ESTRING]
будет преобразован в: "<font color=\"#009900\"><b>OK</b></font>".
С помощью этого блока можно записывать в переменные значения, выводимые макросами, для дальнейшей обработки. Например:
[SCRIPT_P]
$a=[ESTRING][ARTICLE_TEXT][/ESTRING];
[/SCRIPT_P]
В этом примере в переменную $a будет записан текст статьи, выводимый макросом [ARTICLE_TEXT].

Если вы уже пользуетесь версией 4.2.7, то заменить надо только файл JakoDorgen_PRO.exe и папки interface, interface2011, а также папку dyn.

03.02.2012 - 4.2.7
Исправлена ошибка из-за которой в версии 4.2.6 неправильно работали некоторые макросы.
В настройках рядом с галочкой "Вкладывать статьи в папки их категорий" появилась галочка "Вставлять в head шаблона тег <BASE href="http://[SITE_NAME]">". Этот тег нужен, если статьи лежат в папках их категорий, чтобы были корректными пути в ссылках сайта, картинках и файлах стилей. Без него страницы будут отображаться неправильно.

Если вы уже пользуетесь версией 4.2.6, то заменить надо только файл JakoDorgen_PRO.exe и папки interface, interface2011.

02.02.2012 - 4.2.6
Появилась вставка ключевиков с учётом морфологии. Ключевик вставляется в падеже и числе существительного, вместо которого он вставляется. Также для замены берутся только существительные того же рода, что и ключевик.
Галочка для режима с морфологией - "В многословниках сокращать случайное кол-во слов до и после главного существительного".
Галочка "В многословниках брать случайную часть ключевика".
Вероятность вставки картинки теперь можно задавать в диапазоне.
Появилась линковка "Перелинковать один (первый) на всех".
Чтобы макросы DTEXT, STEXT, DTEXTK выводили текст с большой буквы можно к их переменным добавить единичку: [DTEXT-20-30-1].
Для макросов, требующих загрузки данных из файлов (например [RANDLIST_FROM_FILE-Путь к файлу]), загрузка, если она не была произведена во время загрузки шаблона, теперь производится при первом вызове. Это, чтобы макросы работали при их задании из скрипта: print('[RANDLIST_FROM_FILE-'+$filepath+']');
Макрос [NICK] выводит ник из nicks.txt.
[SAFILE] выводит имя файла (без пути и расширения) из которого берётся статья для страницы (для сателлитов).
В настройках появились галочки "Вкладывать статьи в папки их категорий" и "Делать имена страниц категорий из их названий".
В скрипте появилась функция StartProcess(path,arg,windowstyle,waitforexit); ,в которой path - путь к запускаемой программе; arg - аргументы, которые передаются ей; windowstyle - стиль окна, 0 -обычное; 1- невидимое; 2-свёрнутое; 3-развёрнутое; waitforexit - 1 или 0, ждать окончания работы программы или нет.
В readfile и writefile можно указывать кодировку: $a=readfile('D:\test.txt','windows-1251');
В скипте ещё появились:
httpclient_getcontent(url) - функция для получения страницы из интернета.
statusbox_show(text) - функция выводит маленькое окошко с текстом. Для закрытия - statusbox_close();
ftp_connect(host,login,pass) - соединение с фтп-сервером.
ftp_upload(soursefile,targetfile) - закачать файл на сервер.
ftp_createfolder(folder) - создать папку на сервере.
ftp_deletefile(file) - удалить файл на сервере.
ftp_close() - закрыть фтп-соединение.
getfiles(folder) - возвращает список файлов в указанной папке.
getdirectories(folder) - возвращает список папок в указанной папке.
app('path') - путь к программе, app('version') - версия программы, app('sites_folder') - папка для сохранения сайтов.
projectscount() - кол-во проектов.

getprojectinfo(num,'site') - имя сайта, где num - номер проекта.
getprojectinfo(num,'title') - тайтл
getprojectinfo(num,'headcaption') - надпись в шапае
getprojectinfo(num,'keywords_file') - файл ключевиков
getprojectinfo(num,'texts_file') - файл текстовки
getprojectinfo(num,'articles_folder') - папка со статьями
getprojectinfo(num,'profile') - профиль
getprojectinfo(num,'template') - шаблон
getprojectinfo(num,'status') - статус (0 - none, 1 - ok, 2 - error)
getprojectinfo(num,'save_folder') - папка, в которую сохраняется сайт
getprojectinfo(num,'ftp_host') - фтп хост
getprojectinfo(num,'ftp_user') - фтп-логин
getprojectinfo(num,'ftp_password') - фтп-пароль
getprojectinfo(num,'ftp_folder') - фтп-папка

reloadprojects(); - перезагружает проекты из proj.txt.
inputbox(text,title,defaulttext) - выводит окошко с полем для ввода данных.
MsgBox (text, buttons, title) - отображает сообщение в диалоговом окне, ожидает нажатия кнопки и возвращает целое число, определяющее нажатую кнопку.
close_program() - закрыть программу.
start_generating() - начать генерирование.
stop_generating() - остановить генерирование.
%^Imports:jakoscript_functions.txt^% - комманда для добавлений в скрипт функций из файла.
В events.txt можно прописывать скрипт, который будет выполняться при каком-либо событии в доргене.


22.09.2011 - 4.2.5
Теперь программа и на английском языке.
Новые макросы для детализации вывода даты:
[ARTICLE_DATE_D] – день даты.
[ARTICLE_DATE_M] - месяц даты.
[ARTICLE_DATE_Y] – год даты.
[ARTICLE_DATE_DD] – день даты, две цифры.
[ARTICLE_DATE_MM] - месяц даты, две цифры.
[ARTICLE_DATE_YY] - год даты, две цифры.
[ARTICLE_DATE_MNR] – название месяца даты на русском.
[ARTICLE_DATE_MNSR] - название месяца даты на русском, три буквы.
[ARTICLE_DATE_MNE] - название месяца даты на английском.
[ARTICLE_DATE_MNSE] - название месяца даты на английском, три буквы.

[SITE_EXT] - расширение страниц сайта.
[COMMENT_NUM] - номер комментария.

Для того, чтобы в меню не выводилась ссылка на главную, нужно поставить в блок меню макрос [NO_MP_LINK]:
[MENU]
[NO_MP_LINK]
[ITEM][A][/ITEM]
[/MENU]

Детализация вывода ссылок страниц категорий. Например, чтобы вместо (1) 2 3 4 5 6 7 8 9 10 ... выводилось Страницы: ( 1 ) 2 3 4 5 6 7 8 9 10 следующие, нужно вставить, например, перед [/PRE_ARTICLES] такой блок:
[PAGESNAV]<center>Страницы: [PREVLINK]<a href='[A]'>предыдущие</a> [/PREVLINK][PGLINK][NORMAL]<a href='[A]'>[P]</a> [/NORMAL][ACTIVE]<a href='[A]'>( [P] )</a> [/ACTIVE][/PGLINK][NEXTLINK]<a href='[A]'>следующие</a>[/NEXTLINK]</center>[/PAGESNAV]

[PREVLINK]<a href='[A]'>предыдущие</a> [/PREVLINK] - это ссылка на предыдущие страницы. [PGLINK][NORMAL]<a href='[A]'>[P]</a> [/NORMAL][ACTIVE]<a href='[A]'>( [P] )</a> [/ACTIVE][/PGLINK] - это сами ссылки на страницы, где [NORMAL][/NORMAL] - обычная ссылка, а [ACTIVE][/ACTIVE] - ссылка на текущую страницу. [NEXTLINK]<a href='[A]'>следующие</a>[/NEXTLINK] - ссылка на следующие страницы.

Функция escapeuri - реализует экранирование строки (аналог escape).

Можно делать имена страниц кириллицей.
Можно выбирать шаблон для каждого проекта через "Обзор ...". Если указать не сам шаблон, а папку с шаблонами, то будет браться рандомный шаблон из неё.
Можно, чтобы при архивировании дора архив разбивался на несколько томов.
Можно указывать кол-во символов в кратком описании статьи.
Название карты сайта теперь указывается в настройках.
Появилась возможность, чтобы при заливке по ftp неудачные заливки пропускались.

24.06.2011 - 4.2.4
Исправлен баг с исчезновением проектов при закрытии программы, файл с никами поддерживает UTF-8, переписан алгоритм перелинковки, исправлены другие мелкие баги.
В шаблонах теперь кроме [SCRIPT][/SCRIPT] и [SCRIPT_P][/SCRIPT_P] можно использовать [JAVASCRIPT][/JAVASCRIPT] и [JAVASCRIPT_P][/JAVASCRIPT_P]. Для вывода используется функция Print() , а для передачи переменных в скрипт и из него используются функции SetGlobal() и GetGlobal().
Пример:
[JAVASCRIPT]
a="Привет!"; /* переменная 'a' является обычной переменной JavaScript-а и видна только в нём. */
SetGlobal("$$a",a); /* запоминаем переменную 'a' из JavaScript-а в суперглобальную переменную '$$a' скрипта Jako. Теперь она будет видимой в [SCRIPT]print($$a);[/SCRIPT] .*/
a=GetGlobal("$$a"); /* читаем суперглобальную переменную '$$a' в переменную 'a' JavaScript-а. */
k=GetGlobal("$page_keyword"); /* чтение константы ключевика. */
[/JAVASCRIPT]

Добавлен макрос [REPEAT-x-y][/REPEAT], который позволяет повторять часть кода определённое число раз.
Например, [REPEAT-5-10]Привет![/REPEAT] выведет текст "Привет!" 7 раз: "Привет!Привет!Привет!Привет!Привет!Привет!Привет!".
Можно указать точное количество повторений: [REPEAT-7]Привет![/REPEAT]. Внутри [REPEAT-x-y][/REPEAT] могут быть другие макросы. Например [REPEAT-5-10]Привет! [RAND-1-99], [/REPEAT] выведет "Привет! 15, Привет! 91, Привет! 9, Привет! 42, Привет! 57, Привет! 89, Привет! 40, ".

Появились макросы [COPY-m][/COPY] и [PASTE-m]. Макрос [COPY-m]Текст[/COPY] копирует текст внутри него в память с меткой m. Метка может быть любой, например: [COPY-abc], [COPY-5]. Макрос [PASTE-m] выводит скопированный текст. Пример, как вывести результат выполнения макроса [RAND-1-99] в нескольких местах на странице:
Случайное число: [COPY-m1][RAND-1-99][/COPY]<br>
Ещё раз это же число: [PASTE-m1]<br>
И ещё раз это же число: [PASTE-m1]<br>

В результате будет:
Случайное число: 10
Ещё раз это же число: 10
И ещё раз это же число: 10

Появилась возможность задавать пользовательские страницы при помощи макроса [OTHER_PAGE-Имя страницы-Заголовок страницы][/OTHER_PAGE]. Например, чтобы автоматом создавалась страница "Контакты", надо вставить в шаблоне после [PAGE_AREA] или перед [/PAGE_AREA] такой блок:
[OTHER_PAGE-contacts-Контакты]
<h1>Наши контакты</h1>
Текст
[/OTHER_PAGE]

14.03.2011 - 4.2.3
Исправлена работа некоторых макросов при генерировании динамических доров.

11.03.2011 - 4.2.2
Исправлена работа некоторых макросов при генерировании с ЧПУ.
Исправлено распределение статей по категориям в режиме сателлита.
В скрипт добавлены функции:
copyfile(откуда копировать, куда копировать); - копирует файл.
deletefile(файл); - удаляет файл.

10.03.2011 - 4.2.1
Исправлены файлы dyn\op_cat.php и dyn\op_upd.php. Исправлено облако тэгов. Добавлен макрос [COPYRANDIMG_FROM_FOLDER-Папка с картинками-папка куда копировать], который выводит случайную картинку с копированием. Например картинки лежат в D:\mypictures, то [COPYRANDIMG_FROM_FOLDER-D:\mypictures-pics] будет копировать случайную картинку из D:\mypictures в папку pics дора и выведет <img src="pics/picture5.jpg">. Можно с alt-ом: [COPYRANDIMG_FROM_FOLDER-D:\mypictures-pics-Скачать фильм]. RANDIMG_FROM_FOLDER теперь тоже можно делать с alt-ом: [RANDIMG_FROM_FOLDER-Папка-alt].

09.03.2011 - 4.2.0
Исправлен файл dyn\op_sitemap.php из-за ошибки в котором неправильно отображались ссылки в карте сайта для динамических сайтов с отложенной публикацией без ЧПУ. Небольшое исправление в ftp-аплоадере (раньше в конец файлов добавлялся лишний символ).

08.03.2011 - 4.1.9
Исправлены ошибки некоторых макросов и сохранения url-ов. Изменён алгоритм загрузки текстовки.

06.03.2011 - 4.1.8
JakoDorgen PRO 2011.

24.12.2010 - 4.1.7
Устранён баг с зависанием во время перехода к следующему проекту при большом количестве проектов.
Устранён баг с функцией rand в скриптах.
Устранён баг с переименованием файлов. Раньше в шаблоне не переименовывались файлы вида 'images/img.gif' (в одинарных кавычках со слэшем).

26.11.2010 - 4.1.6
Исправлена пакетка для режимов, требующих указание папки со статьями. Новый формат: Сайт|Тайтл|Надпись в шапке|Файл ключевиков|Файл текстовки|Папка со статьями|Профиль|FTP-сервер|FTP-логин|FTP-пароль|FTP-папка
Макросы [CURRENT_CATEGORY_NAME] и [CURRENT_CATEGORY_URL] теперь работают на страницах категорий.
В скриптах теперь можно использовать суперглобальные переменные, которые видны во всех скриптах и на всех страницах (сохраняются в течении всего процесса генерирования сайта). Такие переменные начинаются с $$.
Пример:
[SCRIPT]
$a='Тест';
$$a='Тест';
[/SCRIPT]

[SCRIPT]
print('глобальная переменная $a=' + $a + '; ');
print('суперглобальная переменная $$a=' + $$a + '. ');
[/SCRIPT]

Результатом будет: глобальная переменная $a=; суперглобальная переменная $$a=Тест.

Изменения коснулись файла interface\massaddprojects.htm.

01.11.2010 - 4.1.5
Внимание! Макрос [SCRIPT-P][/SCRIPT-P] изменён на [SCRIPT_P][/SCRIPT_P]. Теперь он работает и в динамических дорах.

22.10.2010 - 4.1.4
Исправлено генерирование проекта для Filezilla.
Исправлена работа некоторых макросов.
При переименовании файлов (галочка "Изменить названия файлов скриптов, стилей, изображений") кодировка сохраняется.
Кол-во ссылок в карте сайта при отложенной публикации делается правильно.
Работает php include. Вид: <? include "test.php"; ?>
Есть выбор случайного шаблона.

Появился выбор режимов:
1. Дорвей
2. Сателлит
3. Гибрид (Дорвей + Сателлит)
4. Гибрид-2 (Сателлит с отложенными дорвейными статьями)

Сателлит - режим для создания сателлитов. В проекте необходимо указать папку со статьями.
Гибрид (Дорвей + Сателлит) - режим, при котором дорвейные статьи и сателлитные идут вперемешку. В проекте необходимо указать папку со статьями, файл ключевиков и файл текстовки.
Гибрид-2 (Сателлит с отложенными дорвейными статьями) - режим для создания доров, на которых сразу отображаются только “белые” статьи. Т.е. сразу будет получатся обычный сателлит, а все генерированые статьи появятся при заходе на специальную страницу op_upd.php. В проекте необходимо указать папку со статьями, файл ключевиков и файл текстовки. После заливки дора на сервер, нужно не забыть поставить права на запись на файлы udt.txt, alist-*.txt, sitemaplist.txt, sitemap.xml, rss*.xml.

Подробнее о режимах и форматах статей

Изменения коснулись папок dyn, interface.

18.05.2010 - 4.1.3
Исправлен op_cat.php (была ошибка, из-за которой в дорах с отложенной публикацией, если указывать имя страниц категорий отличное от "ctg", то не отображались статьи).
Исправлен баг с зависанием в конце создания страниц, если не стоит галочка "Генерировать sitemap.xml и robots.txt".
Теперь можно указывать путь к A-Poster-у на localhost-е: http://localhost:8080/current/external.pl (раньше, если в пути был порт, то не работало).
Появилась возможность использовать вложенные блоки [STATIC][/STATIC].
Появился макрос [RANDBKEYWORD], который выводит случайный ключевик с большой буквы.
Изменения коснулись файла dyn\op_cat.php.

23.04.2010 - 4.1.2
Убрано ограничение по глубине вложения файлов.
Исправлен баг с макросом [STATIC][/STATIC] (вызывал ошибку загрузки шаблона в некоторых ситуациях).
Появилось архивирование доров.
Запуск с командной строки: JakoDorgen_PRO.exe -console C:\projects.txt, где C:\projects.txt - файл с проектами в формате массового добавления.
Изменения коснулись файлов интерфейса generator.htm, arch.htm.

15.04.2010 - 4.1.1
Появилась отложенная публикация.
Исправлен баг с абзацами.
Детализирован вывод карты сайта необязательным блоком: [SITEMAP_PAGE_CONTENT][SITEMAP_LINKS][/SITEMAP_PAGE_CONTENT]
Добавлен макрос [RANDURL], который выводит URL случайной страницы.
Появился макрос [SCRIPT-P], аналогичный блоку [SCRIPT], выполняющийся после замены макросов.
Появились настройки для динамических URL-ов, чтобы можно было указывать параметры в URL-е по которым передаются id статьи, номер категории, номер страницы категории.
В настройках сохранения списков URL появились опции "Не создавать папку для одного списка" и "Сохранять список из случайных URL-ов".
Для доров с отложенной публикацией появился макрос [SHOW_DATE-x][/SHOW_DATE]. Помещённый в нём текст будет выводится только после указанной даты x. Пример: [SHOW_DATE-05.04.2010]Привет![/SHOW_DATE]. Можно указывать диапазон дат, в котором будет выводиться текст: [SHOW_DATE-05.04.2010-10.04.2010]Привет![/SHOW_DATE]
Изменения коснулись файлов интерфейса options.htm и saveurls.htm, папки dyn.

19.03.2010 - 4.1.0
Исправлен баг с макросом [ARTICLE_TEXT-X%].

16.03.2010 - 4.0.9
- Добавлена возможность вставки ключевиков в комментарии.
- Сохранение списков URL в разных форматах + можно использовать макросы.
- Начало всех предложений с большой буквы.
- Добавлены макросы [PKEYWORD] - ключевик с перестановкой слов, и [PBKEYWORD] - ключевик с перестановкой слов c большой буквы.
- Макрос [DTEXTK-20-40-5%] - случайный текст с со вставкой ключевика (20-40 - кол-во слов, а 5% - это плотность ключевика).
- В макросах [DTEXT-20-40] и [STEXT-20-40] текст теперь обрезается до точной длины.
- Кол-во статей вне категорий можно делать равным 0.
- Макрос [DOMAIN_NAME] - выводит домен дора.
- Исправлен баг со вставкой ссылки в текст. когда она вставляется в начало абзаца. Абзацы теперь не могут начинаться с ссылки.
- Исправлен баг с макросом [/ITEM]. Раньше после него надо было обязательно CrLf ставить.
- В скрипте появилась константа $article_category_num, которая возвращает номер категории.
- Макрос [ARTICLE_NUM] - номер статьи.
- Исправлен баг, возникающий при использовании макросов с параметрами в динамических дорах.
- В RSS заменяется & .
- Исправлен баг с картинками в очереди для FileZilla.
Изменения коснулись файлов интерфейса options.htm и saveurls.htm.

01.03.2010 - 4.0.8
Для удобства создания сателлитов в настройках добавлены галочки "Оставлять в текстовке html-теги" и "Брать тексты по порядку". Т.е., для создания сателлита нужно указать текстовку с разделением текстов строчкой из минусов, ключевики, которые являются заголовками соответствующих текстов, убрать галочку "Перемешивать ключевики", поставить галочку "Брать тексты по порядку", и, если тексты уже содержат html-разметку, поставить галочку "Оставлять в текстовке html-теги".
Изменения коснулись файла интерфейса options.htm.

25.02.2010 - 4.0.7
Исправлен баг с созданием очереди для FileZilla. Макрос [HEAD_CAPTION] сделан динамическим. Появились настройки абзацев. Появилися макрос [CURRENT_CATEGORY_URL], который выводит url категории статьи, и макрос [CURRENT_CATEGORY_NAME], который выводит название категории. Появилась возможность вывода текста по частям, с помощью макроса [ARTICLE_TEXT-X%]. Например, если нужно вывести в серидине текста картинку:
[ARTICLE_TEXT-50%]
<img src="picture.jpg">
[ARTICLE_TEXT-50%]
Последний макрос можно делать [ARTICLE_TEXT-100%], что выводит текст до конца.
Детализирован вывод главной страницы блоком [MAIN_PAGE_CONTENT][/MAIN_PAGE_CONTENT]. Например, чтобы вывести на главной h1-заголовок и вставить в текст картинку, то после [PAGE_AREA] нужно вписать:
[MAIN_PAGE_CONTENT]
<h1>[BKEYWORD]</h1>
[ARTICLE_TEXT-30%]
<img src="picture.jpg">
[ARTICLE_TEXT-70%]
[/MAIN_PAGE_CONTENT]

Сделано сохранение настроек и размеров окна при закрытии программы.
Изменения коснулись файла интерфейса options.htm.

18.02.2010 - 4.0.6
Исправлен баг с отображением картинок без alt-ов. Добавлено создание очереди для FileZilla (сохраняется в папку filezilla_projects). Добавлена вероятность вставки картинки. Появилась возможность делать любой макрос статическим (сквозным): нужный макрос берётся в [STATIC][/STATIC]. Например, если нужно вывести на всех страницах один и тот же случайный ключевик: [STATIC][RANDKEYWORD][/STATIC].
Изменения коснулись файла интерфейса options.htm и generator.htm. Появилась папка filezilla_projects.

16.02.2010 - 4.0.5
Исправлен баг с загрузкой больших текстовок. Исправлен баг с формированием имён файлов статей (иcчезали большие буквы). Исправлена вставка ключевиков (преобладание в начале, середине, конце, - попутаны были). Добавленна опция "Плотность с учётом многословности ключевиков".
Изменения коснулись файла интерфейса options.htm.

14.02.2010 - 4.0.4
Добавлена возможность делать доры с URL вида www.site.ru/blog/. Появилась опция смены местами слов в ключевике. В sitemap.xml даты теперь прописываются с временем.
Изменения коснулись файла интерфейса options.htm.

13.02.2010 - 4.0.3
Исправлена серьёзная ошибка с загрузкой текстовки.

12.02.2010 - 4.0.2
Добавлена возможность использовать для "текст как есть" текстовку без разделительных строк, а также исправлен баг с загрузкой большого кол-ва текстов. В настройках профиля появилась кнопка "Сохранить профиль как...". Появилась возможность менять статус проекта из программы.
Изменения коснулись файлов интерфейса editproject.htm и options.htm.

10.02.2010 - 4.0.1
Исправлен баг с анкорами категорий и баг с макросом случайного слова [[***|***|***]]. Добавлен макрос [CITE], который выводит определение для ключевика: <blockquote><strong>Ключевик</strong> - текст(2-3 предложения)</blockquote>