Autor: Paweł Wójcik,
Krzysztof Synowiec
Data: 13 maj 2001



Opis aplikacji

Produkt o nazwie Designer stworzony został w celu ułatwienia potencjalnemu użytkownikowi procesu tworzenia layout’u portalu internetowego. Ideą jaka przyświecała twórcom tego oprogramowania, było wyszukanie i usystematyzowanie pewnego rodzaju logicznych zależności występujących pomiędzy tagami języka HTML. Designer składa się z czterech podstawowych części, są to :

  1. źródła
  2. typy obiektów
  3. obiekty i parametry (nazwa obiekty)
  4. strony
Każdej z tych pozycji przyporządkowany jest odpowiedni przycisk wywołujący, znajdujący się w głównym panelu aplikacji. Po wywołaniu każdej z nich pojawia się odpowiednie okno umożliwiające wykonywanie wszystkich dostępnych operacji.

Dokładny opis operacji związanych z wymienionymi powyżej częściami :
  1. ŹRÓDŁA

    Źródła umożliwiają użytkownikowi zdefiniowanie lokalizacji, w których znajdują się informacje istotne przy tworzeniu portala. Aby ułatwić zarządzanie dostępnymi źródłami, została wprowadzona dodatkowa pozycja o nazwie typ źródła. W tej chwili użytkownik może tworzyć dowolnie dużą liczbę rekordów odpowiadających interesującym informacjom, jednocześnie rekordy te są przypisywane (w zależności od niesionej informacji) do odpowiednich kategorii. Wszystkie operacje zarządzania źródłami oraz typami źródeł wywoływane są z okna o nazwie ŹRÓDŁA. Typy źródeł przedstawione są za pomocą drzewa, nazwy znajdujące się w kolejnych węzłach tego drzewa identyfikują kolejne typy. Po zaznaczeniu węzła w prawej części okna pojawiają się wszystkie źródła przypisane do tego typu oraz typów podrzędnych. Nad drzewem umiejscowione jest pole opis zawierające dodatkowe informacje. Do manipulowania typami służą klawisze znajdując się pod drzewem. Dodanie typu wymaga wprowadzenia jego nazwy, oraz ewentualnie opisu i typu nadrzędnego. Po zaznaczeniu typu pojawiają się źródła przypisane jemu i jego typom podrzędnym. Wtedy po zaznaczeniu pożądanego typu można go usunąć, edytować (klawisze pod tabelą). Dodanie nowego nie wymaga wyszczególniania typu (można to zrobić w oknie dialogowym), w oknie tym należy również nazwę źródła podać, nazwę tabeli, oraz nazwę kolumny.

  2. TYPY OBIEKTÓW

    Pozycja typy obiektów, spełnia dokładnie to samo zadanie co typy źródeł (dla źródeł), w stosunku do obiektów. Konieczność stworzenia nowego okna do prezentacji typów obiektów wynikło z zbytniej złożoności okna OBIKETY. Do manipulowania typami obiektów służą przyciski znajdujące się w dolnej części okna.

  3. OBIEKTY i PRAMETRY

    Zarówno operacje na obiektach jak i parametrach wykonywane są w jednym oknie. Parametry są to porcje informacji gotowe do umieszczenia na stronach portala. Parametr pobiera swoją zawartość z tabeli i kolumny określonej przez źródło przypisane do niego, zaś numer rzędu każdy parametr przechowuje jako osobna pozycję. Parametr może być umieszczany w portalu na dwojaki sposób, ale jako zawartość obiektu albo bezpośrednio w stronie. Stąd też przy tworzeniu nowego parametru, należy przypisać mu stronę i obiekt. Do identyfikacji parametrów wykorzystywany jest nr parametru. Obiekty są to główne elementy wykorzystywane przy konstruowaniu layout’u.

    Podobnie jak źródła podzielone są one na typy. Aby obejrzeć wprowadzone obiekty należy zaznaczyć typ obiektu (drzewo po lewej stronie okna) i następnie wybrać odpowiedni obiekt. Polami charakterystycznymi dla obiektów są nazwa, opis, oraz tag, który opisuje cała zawartość obiektu. Do operacji na obiektach służą przyciski znajdujące się na samym dole okna.

    W treści możliwe jest stosowanie następujących elementów aktywnych:

    1. $nr_paramertu - oznacza parametr do wstawienia z OBJECTS_PARAMS lub z listy parametrów przekazanych z obiektu wyższego.
    2. $nr_paramertu() - oznacza parametr do wstawienia z OBJECTS_PARAMS lub z listy parametrów przekazanych z obiektu wyższego z analizą, czy w parametrze nie ma zawartych procedur.
    3. $nazwa_pakietu.nazwa_procedury() - oznacza wywołanie podanej procedury. Nazwa procedury jak i jej parametry mogą być przekazane do obiektu jako parametr.
    4. $*nr_obiektu - oznacza wstawienie obiektu o danym id.

    Możliwe jest umieszczanie w obiektach parametrów tekstowych (które są przekazane np. przez wywołanie strony) w postaci:

    $nazwa_parametru
    

    Możliwe jest umieszczeniue kawałków kodu PL/SQL w obiektach w postraci:

    $$(
        declare
            zmienna typ;
            ....
        begin
            ....
        exception   
            ....
        end;
    )$$
    

  4. STRONY

    Strony opisują gotowe strony, z których składa się portal. Każda ze stron zawiera title, head, body (które są obiektami), oraz może mieć również przypisane parametry. Do opisu strony służy pole cel. Dla ułatwienia pracy wprowadzono również typy stron. Strony identyfikowane są za pomocą nazw. Wszystkie operacje dostępna dla stron i typów stron wywoływane są za pomocą przycisków dostępnych w oknie. W lewej części znajdują się przyciski do operacjach na typach zaś na dole okna do operowania na stronach.

Procedury

W pakiecie PORTAL dostępne są następujące procedury i funkcje:

  PROCEDURE Object(objectId in number);
  FUNCTION  ChangePassword(oldPassword in varchar2, newPassword in varchar2, newPasswordAgain in varchar2) RETURN varchar2;
  FUNCTION  getParam(name in varchar2) RETURN varchar2;
  FUNCTION  getParamList(name in varchar2) RETURN Params;
  PROCEDURE addParam(name in varchar2, value in varchar2);
  PROCEDURE setParam(name in varchar2, value in varchar2);
  PROCEDURE addNewPageParam(name in varchar2, value in varchar2);
  FUNCTION  getUserName RETURN varchar2;
  FUNCTION  getUserId RETURN varchar2;
  FUNCTION  getSessionId RETURN varchar2;
  FUNCTION  hasRole(roleName in varchar2) RETURN boolean;
  FUNCTION  hasRole(roleId in number) RETURN boolean;

  FUNCTION  PageURL(pageId in pls_integer, rowId in pls_integer default null, additionalParams in varchar2 default null) RETURN varchar2;
  PROCEDURE PageURL(pageId in pls_integer, rowId in pls_integer default null, additionalParams in varchar2 default null);
  FUNCTION  LoginURL(pageId in pls_integer default null, rowId in pls_integer default null, additionalParams in varchar2 default null) RETURN varchar2;
  PROCEDURE LoginURL(pageId in pls_integer default null, rowId in pls_integer default null, additionalParams in varchar2 default null);
  FUNCTION  LogoutURL(pageId in pls_integer default null, rowId in pls_integer default null, additionalParams in varchar2 default null) RETURN varchar2;
  PROCEDURE LogoutURL(pageId in pls_integer default null, rowId in pls_integer default null, additionalParams in varchar2 default null);
  FUNCTION  MediaURL(mediaId in pls_integer, tableName in varchar2 default 'P_Media', columnName in varchar2 default 'Content_Blob') RETURN varchar2;
  PROCEDURE MediaURL(mediaId in pls_integer, tableName in varchar2 default 'P_Media', columnName in varchar2 default 'Content_Blob');

W pakiecie STD dostępne są następujące procedury i funkcje:

  PROCEDURE ConditionalExecute(condition in boolean, trueExpresion in varchar2, falseExpresion in varchar2 default null);
  PROCEDURE ConditionalPrint(condition in boolean, trueText in varchar2, falseText in varchar2 default null);
  PROCEDURE ConditionalPrint(condition in boolean, trueObjectId in number, falseObjectId in number default null);
  PROCEDURE ConditionalPrint(condition in boolean, trueText in varchar2, falseObjectId in number);
  PROCEDURE ConditionalPrint(condition in boolean, trueObjectId in number, falseText in varchar2);

  PROCEDURE ExecuteUpdate(query in varchar2);

  FUNCTION  getValue(query in varchar2) return varchar2;
  PROCEDURE Data(data in date default sysdate, format in varchar2 default 'Day, dd month yyyy');
  PROCEDURE TryExecute(text in varchar2);
  PROCEDURE NameDay(data in date default sysdate);
  PROCEDURE ShowPage(pageId in pls_integer, rowId in pls_integer default null);
  PROCEDURE ShowImage(imageId in pls_integer);
  PROCEDURE PrintValue(query in varchar2); -- komentarz
  PROCEDURE PrintList(query in varchar2, variableName in varchar2, listSize in number default 1, isMultiply in boolean default false);
  PROCEDURE PrintTable(query in varchar2, pageId in pls_integer default null, additionalParams in varchar2 default null, formatNumbers in varchar2 default null);
  PROCEDURE PrintCalendar(query in varchar2);  /* kolumny: 1-data, 2-wartośc, 3-link */

W pakiecie NEWSER dostępne są następujące procedury i funkcje:

  PROCEDURE ImageURL(imageId in pls_integer);
  FUNCTION  ImageURL(imageId in pls_integer) RETURN varchar2;
  PROCEDURE ShowCategoryColumn(NewsList_PageId IN Binary_Integer, NewsDetails_PageId IN Binary_Integer, CategoryName IN Varchar2, Row_Count IN Binary_Integer, Font_Size IN Binary_Integer DEFAULT 9, Image_Size IN Binary_Integer DEFAULT 0);
  PROCEDURE Main(NewsList_PageId IN Binary_Integer, NewsDetails_PageId IN Binary_Integer, Col_Count IN Binary_Integer, Row_Count IN Binary_Integer, Font_Size IN Binary_Integer DEFAULT 9, Image_Size IN Binary_Integer DEFAULT 0);
  PROCEDURE CategoryNews(NewsDetails_PageId IN Binary_Integer, Font_Size IN Binary_Integer DEFAULT 9);