Silnik WWW

Głównym elementem systemu obsługującego stronę jest zestaw plików składających się na rozbudowany skrypt bashowo-awkowy. Podstawowymi jego elementami są: engine-base.sh, engine-generate.sh, engine-parse_menu.awk, engine-parse_in.sh, engine-parse_out.sh, engine-config.sh. Funkcje zawarte w tych plikach odpowiedzialne są za budowanie wynikowego drzewa katalogowego strony wraz z konwersją i generacja plików wchodzących w skład strony. Na poniższym schemacie przedstawione są zależności (przebieg wywołań) najważniejszych z tych funkcji:
POWIĘKSZdiagram wywołań funkcji przy generowaniu strony

Dodatkowo w skład tego zestawu wchodzi pliki z funkcjami pomocniczymi: engine-edit_help.sh. Wspomagającą wobec tego zestawu skryptów funkcje pełni skrypt PHP (system.php) odpowiedzialny za konwersję niektórych z elementów strony w locie (w trakcie realizacji odpowiedzi na zapytanie HTTP przez serwer WWW) wraz z plikiem konfiguracyjnym serwera WWW ("httpd.conf") odpowiedzialnym m.in. za przekierowania po zmianach organizacji strony.

Plik silnika jest skryptem bashowym stanowiącym zbiór funkcji odpowiedzialnych za generowanie nagłówków, stopek, informacji o prawach autorskich, konwersje dokumentów, budowanie drzewa katalogowego strony wraz z zawartością oraz archiwizację. Działanie poszczególnych funkcji oraz ich parametry opisane są w komentarzu poprzedzającym deklarację tej funkcji. Istotne elementy funkcji oparte są na wywołaniach sed'a oraz awk'a (m.in. analiza pliku "menu.xml" oraz wywoływanie odpowiednich funkcji generujących). Argumenty skryptu analizowane są w oparciu o skrypt awk i basho'wą konstrukcję switch. Skrypt umożliwia wywołanie dowolnej z funkcji składającej się na niego (parametr -f) oraz wywołanie zbiorów funkcji odpowiedzialnych za generowanie, archiwizację czy też upload strony (np. parametr -b). Zbiory takie wraz z parametrami je wywołującymi deklarowane są w pliku konfiguracyjnym w funkcji run_conf.

Silnik umożliwia także budowanie wersji pdf. Konwersją XML'a na XHTML lub LaTeX oraz obsługą bazy oprogramowania zajmują się arkusze XSL - base.xsl, softdb.xsl.

Wspomagający plik system.php (na serwerze umieszczany jako system.system) odpowiedzialny jest za:

Głównymi plikami konfiguracyjnymi silnika są: "menu.xml" oraz "OpCode.conf". Dodatkowo niektóre ustawienia umieszczone są także bezpośrednio w "engine.sh" oraz "silnik.php" i "httpd.conf". Plik "OpCode.conf" zawiera zmienne konfiguracyjne silnika strony i musi on być podawany jako pierwszy parametr wywołania skryptu (określa także położenie pliku "menu.xml"). Plik "menu.xml" jest plikiem XML'owym opisującym strukturę generowanej strony (przy pomocy różnych plików menu.xml z tych samych źródeł - w tym celu wywołujemy silnik z alternatywnym plikiem konfiguracyjnym lub tylko plikiem menu `./engine.sh -f build_out_tree "pelna/sciezka/do/alternatywnego/menu.xml"`). Składnia pliku "menu.xml" (w [] podano argumenty opcjonalne):

Pliki konfiguracyjne danego zasobu ("body.info") zrealizowane są w składni shellowej i mogą zawierać następujące deklaracje zmiennych:

	inhead="${inhead}DODATKOWE INFORMACJE DO NAGLOWKA XHTML"
	ext="TYP PLIKU ZRODLOWEGO"
	years="LATA DO NOTY COPYRIGHT"
	coauthors="LISTA DODATKOWYCH AUTORÓW"
	copyright_add="${copyright_add} DODATKOWY TEKST COPYRIGHT"
	copyright_mode="special" # powoduje że nota ustawiona w copyright_add pojawi się zamiast standardowej, coauthors jest wtedy ignorowane

Plany rozwojowe silnika:



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/usage_and_config/toolbox4computer/www_engine) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2015-09-27 16:42:09 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).