Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Zlecę napisanie programu do przetwarzania tekstów i plików z baz  (Przeczytany 550 razy)

comaxim

  • Gość
Witam,

Zlecę napisanie programu parsera o właściwościach opisanych poniżej. Pierwowzór programu: http://simplisite.port5.com/index.html

Program powinien operować na bazie danych w której zawarte będą:
- tabela template'ów (podstawowe wymagane pola: nazwa_tamplate'u, treść_template'u, data_dodania, data_ostatniej_modyfikacji)
- tabela stałych (podstawowe wymagane pola: nazwa_stałej, wartość_stałej)
- tabela plików (podstawowe pola to: nazwa, rozszerzenie, zawartość)
- tabela formularzy (podstawowe wymagane pola: nazwa_formularza, pytanie, rodzaj_pytania, dodatkowe_informacje)
- tabela danych formularzy (podstawowe wymagane pola: nazwa_formularza, numer_porządkowy_wypełnionego_formularza, pytanie, odpowiedź, data_wprowadzenia, data_ostatniej_modyfikacji)


W treści template'u powinna być możliwość umieszczania następujących znaczników:

-   %%@nazwa_stałej%% -
wstawiana jest wartość z tablicy stałych, nazwy stałych są zastępowane w pierwszej kolejności, przed wszystkimi innymi znacznikami

-   %%#nazwa_zmiennej%% -
parametr template'u, może on wystąpić wielokrotnie w tym samym template, wtedy wszędzie jest wstawiana ta sama wartość

-   %%" tekst dowolny "%%
podczas generowania zwracana jest wartość między oboma cudzysłowami

-   %%*nazwa_funkcji(parametr_1;parametr_2...)%%
funkcje zawsze zwracają ciąg znaków, jeśli funkcje wykonują coś co nie ma przełożenia na wynik, to zwracają ciąg pusty. Jeśli parametry nie zostaną oddzielone średnikami to ich zawartość jest łączona. Funkcje mogą się zagnieżdżać. Jako parametr można wstawić dowolny znacznik, jeśli będzie to znacznikk templateu, to do funkcji przekazywana będzie cała treść przetworzonego templateu

-   %%+nazwa_template'u(parametr_1;parametr_2...)%% -
w trakcie generowania wstawiana jest treść template'u, jako parametry można przekazać wszystkie rodzaje znaczników (średnikiem oddzielane są poszczególne parametry, jeśli brak to następuje łączenie znaczników i przekazywanie jako jeden parametr) np. %%+stopka_strona_główna("Copyright ";@copyright_rok; "Serwis wygenerowano " *data "-" *godzina). Parametry podaje się w kolejności ich wystąpienia w template. Jeśli nie podano parametru to przekazywany jest znak pusty. Wszystkie znaczniki w załączonym template wykonywane są przed ich załączeniem.

- %%!generuj(lokalizacja_i_nazwa_pliku)%% - znacznik wykonywany jako ostatni, jego umieszczenie w danej templatce oznacza że po przetworzeniu wszystkich danych zawartych w templatce zostanie wygenerowany plik o określonej nazwie i w określonej lokalizacji, do określenia lokalizacji można użyć innych funkcji, templateów itp. Jeśli nie istnieje katalog docelowy to zostaje on utworzony

Znaczniki można łączyć ze sobą w dowolnej konfiguracji (dozwolone są znaki odstępu między znacznikami) np:
%%#nazwa_zmiennej "_plik." @nazwa_stałej%%


Lista funkcji, które parser template'ów powinien obsługiwać:
*data - powinna zwracać aktualną datę w formacie rrrr-mm-dd, jeśli nie będzie utrudnieniem to może zwracać według zadanego formatu, wtedy wywołanie będzie wyglądać tak: *data("yyyy-mm-dd")
*czas - j.w. tyle że powinna to być godzina z sekundami w formacie 24h
*format_sciezki_pliku(ciąg_tekstu) - funkcja zamienia wszystkie polskie znaki narodowe na angielskie odpowiedniki i wszystkie spacje oraz inne znaki nieczytelne na podkreślenia
*odpowiedz(nazwa_formularza, numer_porządkowy, pytanie) - zwraca konkretną daną z konkretnego formularza, treść przed wstawieniem jest parsowana tak jak to ma miejsce w przypadku template'u
*jezeli_rowne(ciag1;ciag2;zwracany_ciag_jesli_rowne;zwracany_ciag_jesli_rozne)
*plik(nazwa;rozszerzenie;docelowe_miejsce_i_nazwa) - funkcja zapisuje plik w określonej lokalizacji
*skaluj_obraz(źródłowe_miejsce_i_nazwa;docelowe_miejsce_i_nazwa;rozdzielczośćX;rozdzielczośćY) - funkcja skaluje plik z zachowaniem proporcji do podanej rozdzielczości
*dla_kazdego_numeru(ciag_zapytania_SQL_wyluskujacego_numery,ciag_zawierajacy_nazwe_templatki,ciag_zawierajacy_parametry_templatki) - w ciągu zawierającym parametry templatki wyrazeniem "numer" oznacza się parametr do którego będzie przekazywany numer, w wyniku zapytania generowana jest lista numerów i dla każdego generowana jest templatka a wynik jest ciagiem złączonych wszystkich wygenerowanych template'ów (od momentu ostatniego użycia znacznika !generuj)


Program powinien zawierać prosty edytor template'ów umożliwiający:
- wstawianie stałych z listy wyboru
- wstawianie template'ów z listy wyboru
- wstawianie plików z listy wyboru
- usunięcie aktualnie edytowanego tempalte'u z bazy
- dodanie nowego template'u do bazy
- utworzenie kopii aktualnie edytowanego template'u
- pokazywanie podpowiedzi parametrów po najechaniu na znacznik załączenia template'u

Program powinien zawierać edytor stałych umożliwiający ich dodawanie, modyfikowanie i usuwanie

Program powinien zawierać edytor formularzy umożliwiający:
- definiowanie nowych formularzy
- modyfikowanie istniejących formularzy (dodawanie, modyfikowanie i usuwanie pytań)
- usuwanie formularzy
- utworzenie kopii aktualnie edytowanego formularza
- pytania mogą mieć następujące rodzaje:
    -- tekst dowolny - do pola dodatkowego powinna trafić informacja o wysokości okna, do którego ma być wprowadzana treść. Pionowy scroll dla tekstu powinien być włączony automatycznie
    -- załączanie pliku (pliki trafiają do odpowiedniej tabeli)
    -- wybór koloru - przycisk po naciśnięciu którego można będzie wybrać określony kolor z palety i który zapisze się w bazie w formacie RGB języka HTML
    -- wartość numeryczna - pole będzie dopuszczać tylko następujące znaki: 0-9 - + , .
    -- jednopoziomowa lista wyboru - do pola dodatkowego powinna trafić lista wartości możliwych do wyboru porozdzielanych średnikami
    -- wielopoziomowa lista wyboru - pola typu "select" działające w sposób drzewa, tzn lista wartości w polu niżej w hierarchii zależna jest od wybranej wartości w polu wyżej. Dane powinny być pobierane z tabeli z odpowiedziami.

Program powinien mieć możliwość uruchamiania formularzy:
- uzupełnione formularze można przesuwać o 1 w górę lub w dół, tzn zamieniać numer porządkowy z jakimś innym wypełnionym formularzem (najnowsze formularze mają na początek najwyższe numery)
- powinna istnieć możliwość usuwania wypełnionych formularzy
- powinna istnieć możliwość modyfikowania danych wypełnionych formularzy
- rozkład pytań i pól odpowiedzi jest automatyczny (pola pokazują się jedno pod drugim i jeśli zajmują więcej miejsca niż na ekranie to pojawia się pionowy scroll)


Warunki:
- Oprogramowanie musi być w całości wykonane w technologii dostępnej nieodpłatnie i uruchamialne lokalnie na komputerze (dowolna, np OO Basic, Kexi, C++, itd itp)
- Oprogramowanie musi być w pełni obiektowe
- Oprogramowanie musi być dobrze opisane (komentarze przed i przy każdej metodzie, właściwości, klasie)
- Deklarowany termin realizacji jest zobowiązujący, możliwe odstępstwa to wydłużenie maksymalnie o 15%, po tym czasie zastrzegam sobie prawo do odstąpienia od umowy bez podania przyczyny.
- Pieniądze wypłacam po oddaniu w pełni funkcjonalnego i działającego programu oraz jego kodu źródłowego na wskazane konto.
- Oprogramowanie po otrzymaniu udostępniam nieodpłatnie na zasadach licencji GNU pod nazwą COMAXIM S-CMS

Proszę o zgłaszanie zainteresowanych wraz z informacją o oczekiwaniach finansowych i krótkim portfolio.

Pozdrawiam,
Daniel Mazurkiewicz
kontakt:  comaxim małpa comaxim kropka com