Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Создание htm /txt страниц сайта/журнала с помощью шаблонов




Здравствуйте!

Страница FoxPro - если Вам не известно, что это такое - смело пропускаем!
* Как загрузить xml и зачем это надо?
* Допустим, разработчик разместил на сайте некий файл, в котором хранится информация о последней версии программы.
* К чему условности: на www.a-olsc.front.ru находится файл new.xml, в котором указана версия a_olsc
* (три символьных поля major,minor,auto_inc)
* Major = версия программы
* Minor = подверсия
* Auto_inc = сборка
*?xml version = "1.0" encoding="Windows-1251" standalone="yes"?
*VFPData
* a_xml
* major 1 /major
* minor94 /minor
* auto_inc 1 /auto_inc
* /a_xml
*/VFPData
* данный xml не содержит схему, поэтому приходиться поизвращаться... НО!!!!!
* для варианта со схемой - смотри ниже Загрузка xml с сайта (xml вместе со схемой)

ii= CREATEOBJECT('msxml.DOMDocument')
*-- отключаем асинхронный режим работы XML
ii.ASYNC = .F.
* загрузка xml
ii.load("http://www.a-olsc.front.ru/new.xml")

if ii.parseError.errorCode<>0 && Ошибка, например сайт недоступен, интернет не работает
return
endif
* Последовательный просмотр
FOR i = 0 TO ii.DocumentElement.ChildNodes.Length - 1 && Пробегаю все ветви , хотя из примера известно, что там всего одна ветвь... - a_xml
v1= ALLTRIM(ii.DocumentElement.ChildNodes.Item(i).ChildNodes.Item(0).text) && major
v2= ALLTRIM(ii.DocumentElement.ChildNodes.Item(i).ChildNodes.Item(1).text) && minor
v3= ALLTRIM(ii.DocumentElement.ChildNodes.Item(i).ChildNodes.Item(2).text) && auto_inc
ENDFOR

* Вариант загрузки xml с сайта, если xml содержит схему в себе
* http://www.a-olsc.front.ru/a_znan.xml - здесь находятся процедуры для загрузки на сайте
* разработчик разместил их здесь для загрузки непосредственно из программы
ii= CREATEOBJECT('msxml.DOMDocument')
ii.async =.f.
ii.load(ADDBS("http://www.a-olsc.front.ru/")+"a_znan.xml")
IF ii.ParseError.ErrorCode<>0
WAIT WINDOW NOWAIT "Проблемы с Интернет..."
RETURN
ENDIF
ii.save("a_tmp_znania.xml")
XMLTOCURSOR("a_tmp_znania.xml","tmp_xml",512)
*далее можно использовать курсор tmp_xml как обычный курсор!
select tmp_xml
brow



Вышла новая версия A_olSC!
Что появилось нового в версии 1.94:

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

Загрузка процедур из Интернет
Теперь можно загружать пользовательские процедуры прямо из программы, не заходя на официальный сайт программы!
Через меню Сервис/Загрузить процедуры с сайта ... выбираете раздел, а далее - Открыть и Загрузить отмеченные
Больше никаких заходов на сайт! (Хотя, конечно, жаль, статистика падает :) )
Тут же - список обновлений программы.

Изменение формы загрузки апплетов
Теперь, если какие - то процедуры у Вас уже есть, Вы можете все равно их загрузить, если появилась новая версия процедуры. К имени имеющихся будет добавлено "old_", и Вы всегда сможете сравнить, чем новая версия пользовательской процедуры отличается от старой.

Просмотр версии
Всегда можно узнать, какой версией пользуешься, и какая доступна для загрузки на сайте!
Загружать или не загружать exe-шник - Ваше дело.

Что появилось нового в версии 1.92:

ПОЯВИЛИСЬ АППЛЕТЫ для программы A_olSC
В A_olSC появился инструмент для загрузки пользовательских процедур (апплетов).
Теперь Вы можете загрузить апплеты/процедуры непосредственно со страницы сайта.
Апплеты значительно увеличивают функциональность программы БЕЗ обновления exe-модуля.

Страница загрузки апплетов
На текущий момент Выложены Апплеты:
15/08/2006 Создание письма в Outlook
Работа с почтой
Создается объект, в котором можно указать стандартные параметры письма

15/08/2006 Сервис-пак №1
Обновление пользовательских процедур

Заходите, интересуйтесь, апплеты будут дополняться и изменяться, надеюсь в лучшую сторону:)

Теперь можно указывать параметры (до 5) при запуске пользовательских процедур, причем даже из окна процедур!
формат exec_proc("Название процедуры",Флаг обработки,1 пар,2 пар, 3 пар, 4 пар, 5 пар).
Глобальные переменные - соответственно
p_parames_1,p_parames_2,p_parames_3,p_parames_4,p_parames_5

Изменения в меню:
Отборные процедуры - отображаются процедуры, специально отмеченные в окне процедур.
Загрузка апплетов - загрузка пользовательских процедур "из-вне".
Сформировать - формирование страниц без открытия главного окна.
Теперь для процедур можно указывать, к какой группе они относятся. Фильтр по группам.

Что появилось нового в версии 1.91:
Генерация страниц архива/новостей
Вы можете написать свою программу генерации (или использовать gen_arhiv_prg). Включение/отключение через глобальные настройки к программе.
Доработка программы - удаление временных файлов (a_tmp_...)
Удаление временных файлов (работе не мешали! кстати)

Что появилось нового в версии 1.9:

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

Ведение архива, новостей по странице
Вы можете вести по любой странице некий архив, например, архив новостей. Для того, что бы они генерились, отметьте Архив/Новости по странице
Для доступа к таким страницам нажмите Открыть архив/Новости
Не забудьте написать код для вывода оглавления в основной контент страницы, или просто впишите
`exec_proc("i_proc_novosti",.t.)` для запуска пользовательской процедуры вывода новостей по умолчанию.

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

Создание страницы из процедуры
Теперь возможно создание страницы программным путем!
Указываете Название страницы, бланк-шаблон, autobr - и вперед!
Пример запуска - в пользовательской процедуре gen_content_prg

Немного теории:
Тэги

Теоретически все просто:
Есть бланк (шаблон, основа страницы), и есть контент.
Как добиться, чтобы контент оказался в странице?
Очень просто! Нужно в бланк вписать тэг с указанием, откуда взять наполнение.
Форма тэга:
`Откуда_Взять`
Если не указана таблица, берется значение поля из текущей таблицы либо значение глобальной переменной
`oglav` - взять значение поля oglav из таблицы a_formir (генерация страницы идет по этой таблице)
`text` - взять значение поля text (это как раз контент - наполнение сайта) из таблицы a_formir (генерация страницы идет по этой таблице)

Ниже приведен бланк, по которому генерится страница index.htm




`oglav` oglav- поле в a_formir - Оглавление страницы
..........................................
Список операторов и функций
Все, что можно использовать при работе с программой
1. Все операторы и функции FoxPro (на свой страх и риск, конечно). Пользователь должен понимать, хотя бы как минимум, что он делает. Знание FoxPro - хотя бы на начальном этапе.
FoxPro forever!

2. Список процедур, объявленных ниже: a) exec_proc("name",flag)
Запуск пользовательской процедуры
где:
name-имя процедуры
flag - флаг - .f. (по умолчанию - можно не указывать) - из сформированного
текста тэги не обрабатываются
.t. - обработка тэгов

b)text_code("stroka")
Возврат текста без обработки тэгов. Процедура необходима для того ,
что бы отобразить тэги форматирования.

a_create("name","forma",autobr)
Создание страницы с именем "NAME" по шаблону "FORMA" , с формированием по флагу "AUTOBR"
3.При формировании htm-страницы - любые разрешенные операторы разметки страницы.
При редактировании html-страницы не рекомендуется использовать Word, т.к. он, зараза, во первых, значительно увеличивает размер файла, и во вторых, меняет позиции и сами тэги. Обязательно просмотрите бланк документа в текстовом редакторе (блокноте) перед генерацией, чтобы удостовериться, что тэг не разбит операторами разметки, например:
Например, вместо `a_formir.text` Word посчитает, что `a_formir.text` гораздо лучше. Word-у виднее, а вот программа при генерации страницы прервется.
Пользователь может определить свои процедуры, которые можно будет запускать либо непосредственно в момент редактирования, либо в момент генерации.
Например, можно создать процедуру, которая загружает по команде в некий контент информацию из файла doc или htm.
Или, например процедура, которая создает письмо с текстом контента.
или замена бланков контента (файлы a_....html) "одним нажатием" из другого каталога

Другое применение пользовательских процедур - запуск в момент генерации.
Такие процедуры используются для генерации страниц "на лету".
Основной вариант применения:
Генерация страницы из какой-либо таблицы. В этом случае программа на FoxPro обходит построчно некую таблицу (в примере - a_procedure) , последовательно генеря страницу. Согласитесь, это гораздо проще и быстрее, чем заново редактировать некий htm-ный файл. Так могут формироваться, например, новостные страницы из какой либо таблицы. Кстати, форму редактирования, да и саму таблицу можно создать с помощью тех же пользовательских процедур.

Вся информация об a_olSC на сайте:
www.a-olsc.front.ru
или
www.aolsc.narod.ru

Загрузка exe-шника (без библиотек Visual FoxPro 9.0 ~ 150 кб.):
Страница загрузки


Сайт, разработанный по технологии a_olsc:
Страница

Ответить:
aolsc@front.ru


Форум

Чат

Гостевая

ICQ - 226-071-270



Почему я этим занимаюсь.
Есть задача:
Быстро создать сайт. НО...
Что делать с ним дальше? Как работать с контентом? Что делать с ссылками? Как я учту ВСЕ?

Почему A_olSC ?
До сих пор я не встречал инструмента, который позволил бы сделать все, что я хочу. А раз нет, значит его надо сделать .

Преимущества и недостатки программы
Преимущества:
1.Программа написана на VisualFoxPro (9.0) ( отсюда можно загрузить)
Так как Fox изначально позиционировался как инструмент работы с базами данных, следовательно, у него функций, операторов значительно больше, а работа с таблицами значительно приятней , удобней и быстрей.
2.Fox позволяет выполнить код "вне" exe-шника (по сути, Fox-интерпретатор) , что есть хороший плюс - Любой программист со знанием FoxPro может написать необходимый ему код. Если Вы FoxPro не владеете - ничего страшного! От этого программа не будет работать медленнее.
3.Контент (наполнение) сайта хранится в централизованной таблице (a_formir), поэтому редактирование упрощено до безобразия.
Что, впрочем, нисколько не мешает использовать другие таблицы (в т.ч. с реляционным подключением) при генерации страниц.
4.Контент хранится в таблице, как обычный текст, НО Вы всегда сможете добавить необходимое форматирование, если знаете формат тэгов HTML (я говорю, собственно, о b /b br hr font /font ) а так же ссылки, рисунки и т.д. и т.п.

Недостатки:
1. Программа написана на VisualFoxPro (9.0)
Поэтому (и в следствие того, что Вы используете всю мощь FoxPro) exe-модуль требует библиотек, которые так же можно загрузить на странице загрузки www.a-olsc.front.ru/i_zagruzka.htm.

Чтобы увидеть, как все просто, достаточно посмотреть на Интерфейс программы


Не стреляйте в пианиста, он играет как умеет...

В избранное