eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwJak tworzyć archiwum CMS?
Ilość wypowiedzi w tym wątku: 22

  • 11. Data: 2010-12-28 14:15:33
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: porneL <n...@p...net>

    On Tue, 28 Dec 2010 13:36:24 -0000, Borys Pogoreło <b...@p...edu.leszno>
    wrote:

    >>> a) musimy i tak zduplikować bazę
    >>
    >> Nie. Dodać kolumnę na datę/wersję.
    >
    > A jeśli w międzyczasie zmienia się struktura bazy?

    To migrujesz stare dane. Jeśli stare pola przestają mieć sens w nowym
    układzie, to w nowych rzędach wstawiasz NULLe.

    Archiwalna wersja strony to nie musi być archiwum *implementacji*, nie?

    >> Nie od razu. Nowe pliki dodawaj pod nową nazwą, jeżeli konieczne jest
    >> zachowanie wyglądu starej strony.
    >
    > A jeśli zawartość plików się zmienia, a nazwy pozostają?

    No to tak nie rób. Zasada "nowa zawartość = nowy URL" przy okazji ułatwia
    długie cache'owanie plików.

    >>> c) musimy stworzyć nowe pliki klas
    >>
    >> WTFBBQ? Nie możesz nowej funkcjonalności dodawać tak, aby była
    >> "kompatybilna wstecz"?
    >
    > Nie wszystko da się tak dodać.

    OK, ale to raczej w przypadkach ciężkich przeróbek, a wtedy to nie jest
    głupia robota z copy&paste klasy, a utrzymywanie dwóch kompletnie różnych
    rzeczy (czego nie da się uniknąć, jeżeli utrzymywanie dwóch wersji jest
    dokładnie twoim celem).

    >> Poza tym w OOP wymyślono pare rzeczy, które mają zastąpić copy&paste...
    >
    > A ja znów przypominam, że nie ma ani słowa o OOP w pierwszym poście :)
    > Zaś w PHP zbyt wielu z tych rzeczy nie ma...

    Czego takiego brak, co by tu ułatwiło?

    --
    http://pornel.net
    this.author = new Geek("porneL");


  • 12. Data: 2010-12-28 14:38:41
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: Borys Pogoreło <b...@p...edu.leszno>

    Dnia Tue, 28 Dec 2010 14:15:33 -0000, porneL napisał(a):

    > Archiwalna wersja strony to nie musi być archiwum *implementacji*, nie?

    Oczywiście, że nie. Ale nie wiemy jakie wymagania ma "góra". Jeśli serwis
    ma wyglądać i zachowywać się dokładnie tak, jak w określonym roku, to
    programista osiwieje od liczby ifów.

    >> A jeśli zawartość plików się zmienia, a nazwy pozostają?
    >
    > No to tak nie rób. Zasada "nowa zawartość = nowy URL" przy okazji ułatwia
    > długie cache'owanie plików.

    To nie ja tak robię ;) Tylko wymyślam problemy, które się mogą pojawić.
    Niemniej jeśli linki do plików były wstawiane jakimś wyswigiem, to zapewne
    nie ma żadnego pośrednika - zawartość pliku się zmienia, url pozostaje.

    > OK, ale to raczej w przypadkach ciężkich przeróbek, a wtedy to nie jest
    > głupia robota z copy&paste klasy, a utrzymywanie dwóch kompletnie różnych
    > rzeczy (czego nie da się uniknąć, jeżeli utrzymywanie dwóch wersji jest
    > dokładnie twoim celem).

    Dlatego ja bym to zwyczajnie skopiował, zamiast rzeźbić w g* :-)

    Przypuszczam, że na "genialny" pomysł zachowania "migawek" ktoś wpadł już
    dawno po uruchomieniu tego systemu. A taka funkcjonalność powinna być
    wpleciona w jego strukturę od samego początku.

    >>> Poza tym w OOP wymyślono pare rzeczy, które mają zastąpić copy&paste...
    >>
    >> A ja znów przypominam, że nie ma ani słowa o OOP w pierwszym poście :)
    >> Zaś w PHP zbyt wielu z tych rzeczy nie ma...
    >
    > Czego takiego brak, co by tu ułatwiło?

    W tym konkretnym przypadku za mało danych by to stwierdzić.

    --
    Borys Pogoreło
    borys(#)leszno,edu,pl


  • 13. Data: 2010-12-28 23:41:48
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: Marek <b...@e...com>

    W dniu 2010-12-28 09:24, beherit / pn pisze:

    > Szybkie i proste:
    > - klasa dziedzicząca po tej, która obsługuje Ci stronę,
    > - podmiana nazw tabeli gdy podany ?year=2007 z moj_content na
    > moj_content_2007. Cała filozofia.. Pliki analogicznie.

    Czyli content_2007, content_2008... to kolejne kopie bazy danych z
    poszczególnych lat?

    Problem jest np. z archiwizowaniem funkcjonalności. Jeśli przykładowo
    jakaś formatka określa, że po lewej mamy treść, a po prawej newsy a w
    kolejnym roku ma być odwrotnie (czyli nastąpiła zmiana w kodzie HTML
    formatki), to takie przełączenie źródła danych nie wystarczy.

    Teraz sam sobie odpowiadam. Pewnie nie da się archiwizować za pomocą
    "guzika". Kopia bazy + kopia HTML = niezależny serwis WWW. Obawiam się,
    że to jedyna droga. Muszę to uzgodnić z klientem aby wiedzieć co
    faktycznie archiwizacja oznacza.


  • 14. Data: 2010-12-31 07:49:58
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: beherit / pn <b...@s...firenet.eu.org>

    W dniu 2010-12-29 00:41, Marek pisze:
    > W dniu 2010-12-28 09:24, beherit / pn pisze:
    >
    >> Szybkie i proste:
    >> - klasa dziedzicząca po tej, która obsługuje Ci stronę,
    >> - podmiana nazw tabeli gdy podany ?year=2007 z moj_content na
    >> moj_content_2007. Cała filozofia.. Pliki analogicznie.
    >
    > Czyli content_2007, content_2008... to kolejne kopie bazy danych z
    > poszczególnych lat?
    >
    > Problem jest np. z archiwizowaniem funkcjonalności. Jeśli przykładowo
    > jakaś formatka określa, że po lewej mamy treść, a po prawej newsy a w
    > kolejnym roku ma być odwrotnie (czyli nastąpiła zmiana w kodzie HTML
    > formatki), to takie przełączenie źródła danych nie wystarczy.
    >
    > Teraz sam sobie odpowiadam. Pewnie nie da się archiwizować za pomocą
    > "guzika". Kopia bazy + kopia HTML = niezależny serwis WWW. Obawiam się,
    > że to jedyna droga. Muszę to uzgodnić z klientem aby wiedzieć co
    > faktycznie archiwizacja oznacza.

    Oczywiście, że się da, a czemu nie. Ograniczyłbym jedynie zmiany w
    strukturze kodu szablonów i ogólnie logiki aplikacji obsługującej serwis.
    Click
    -> twórz nowe tabele (lub jak zaproponował porneL -> automatem data,
    wersja)
    -> twórz kopie plików (jeśli musisz dla danego roku) np.
    index.2009.tpl
    a później wszystko sobie wywoływać choćby nawet z użyciem SESSION jak
    bardzo chcesz
    if($_SESSION['year']=2009)
    wyswietl komunikat, ze oglada archiwum
    + dane pobierz z tabeli _2009 lub z content.year = 2009
    + zaciągnij do wyswietlenie index.2009.tpl
    else
    wyswietl aktualne

    ba... tutaj nie trzeba nic klikac, pelna automatyzacja jest prosta i
    mozliwa :).

    Pozdr,p.


  • 15. Data: 2010-12-31 14:18:48
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: Paweł Piskorz <n...@p...nie?>

    W dniu 2010-12-31 08:49, beherit / pn pisze:
    > -> twórz kopie plików (jeśli musisz dla danego roku) np.
    > index.2009.tpl

    Chyba lepiej by było do katalogu 2009 etc. wrzucać te pliki i nie
    zmieniać nazw, wtedy wystarczy ustawić inną ścieżkę w konfiguracji
    szablonów, a tak musi jeszcze edytować wszystkie includy i dodać rok w
    ścieżkach.


    --
    message[autor="PablO"]::after {
    content:"Pozdrawiam";
    }


  • 16. Data: 2011-01-07 12:19:09
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: porneL <n...@p...net>

    On Fri, 07 Jan 2011 12:55:02 -0000, Marek <b...@e...com> wrote:

    > Nowe tabele czy nowe rekordy? Pornel wspominał o dodaniu nowej kolumny
    > oznaczającej wersję a nie nowej tabeli. No i tu problem bo tabel jest
    > 100 i dotyczą przeróżnych aspektów. Dokumenty to tylko parę z tych tabel
    > (dokument, strona dokumentu, pliki i obrazki, kategorie i jeszcze parę
    > innych) a nie tylko dokumenty mają być archiwizowane - również
    > funkcjonalność, która częściowo jest określona w innych tabelach a
    > częściowo w formatkach. Nad formatkami zapanujemy poprzez ich
    > skopiowanie do innego/innych katalogów 2009, 2010 itd. Nad dokumentami
    > możemy zapanować tak jak Pornel sugerował. Pozostaje kwestia wszelkich
    > konfiguracji w bazie. Załóżmy najprostszy przypadek: definicję jakiegoś
    > menu. Jak z tego wersję archiwalną stworzyć bez kopiowania bazy lub
    > tworzenia nowego "schematu"?

    Zakładam, że to menu w bazie jest w postaci jakiegoś drzewka. Przerób:

    menu
    - podmenu
    - podmenu
    - podmenu

    na:

    2009
    - menu
    -- podmenu
    -- podmenu
    -- podmenu

    2010
    - menu
    -- podmenu
    -- podmenu
    -- podmenu

    i pobieraj odpowiedni korzeń w zależności od roku.

    Albo utrzymuj jedno menu, tylko do każdego elementu dodaj daty "od" "do",
    które określają kiedy element ma być wyświetlany, względem daty strony, na
    której jest.

    --
    http://pornel.net
    this.author = new Geek("porneL");


  • 17. Data: 2011-01-07 12:35:59
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: Marek <b...@e...com>

    W dniu 2010-12-31 15:18, Paweł Piskorz pisze:

    > Chyba lepiej by było do katalogu 2009 etc. wrzucać te pliki i nie
    > zmieniać nazw, wtedy wystarczy ustawić inną ścieżkę w konfiguracji
    > szablonów, a tak musi jeszcze edytować wszystkie includy i dodać rok w
    > ścieżkach.


    Jest z tym pewien kłopot tak czy owak. Zobrazuję to na przykładzie.
    Jeśli np. formatka od wyszukiwarki miała zdefiniowaną funkcjonalność
    ograniczającą przeszukiwanie do kategorii dokumenty/2009 i powstaje nowa
    wersja serwisu, to należy w niej i tak ręcznie zbudować nową formatkę,
    dla której ograniczeniem będzie kategoria dokumenty/2010. Drobna zmiana
    ale jednak zmiana...

    Po drugie: od strony bazy też istnieje ograniczenie. Załóżmy, że mamy
    zdefiniowane menu u góry strony i po lewej stronie inne. Ma ono w bazie
    identyfikator ver2009. W roku 2010 powstaje nowa wersja menu (jakieś
    nowe opcje, albo eliminacja niektórych poprzednich). Jeśli nazwiemy je
    ver2010 to dopóki nie poinformujemy o tym fakcie formatki z bieżącego
    roku, to będzie ona wyświetlała poprzednie menu - a więc zmiana formatki
    nas czeka. Zwróć uwagę, że w ten sposób powstaje również problem od
    strony redakcyjnej. Wszelkie systemy menu należy sklonować. Po N latach
    powstaje ich N dla góry i N dla lewej strony. Tworzy się z tego niezły
    gąszcz. Zwykłe klonowanie bazy i serwisu WWW z usuwaniem sekcji
    redakcyjnej z lat archiwalnych chyba jest prostsze. Jak sądzisz?

    --
    Pozdrawiam,
    Marek


  • 18. Data: 2011-01-07 12:55:02
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: Marek <b...@e...com>

    W dniu 2010-12-31 08:49, beherit / pn pisze:

    > Oczywiście, że się da, a czemu nie. Ograniczyłbym jedynie zmiany w
    > strukturze kodu szablonów i ogólnie logiki aplikacji obsługującej serwis.
    > Click
    > -> twórz nowe tabele (lub jak zaproponował porneL -> automatem data,
    > wersja)

    Nowe tabele czy nowe rekordy? Pornel wspominał o dodaniu nowej kolumny
    oznaczającej wersję a nie nowej tabeli. No i tu problem bo tabel jest
    100 i dotyczą przeróżnych aspektów. Dokumenty to tylko parę z tych tabel
    (dokument, strona dokumentu, pliki i obrazki, kategorie i jeszcze parę
    innych) a nie tylko dokumenty mają być archiwizowane - również
    funkcjonalność, która częściowo jest określona w innych tabelach a
    częściowo w formatkach. Nad formatkami zapanujemy poprzez ich
    skopiowanie do innego/innych katalogów 2009, 2010 itd. Nad dokumentami
    możemy zapanować tak jak Pornel sugerował. Pozostaje kwestia wszelkich
    konfiguracji w bazie. Załóżmy najprostszy przypadek: definicję jakiegoś
    menu. Jak z tego wersję archiwalną stworzyć bez kopiowania bazy lub
    tworzenia nowego "schematu"? (wyjaśnię, że chodzi tu o funkcjonalność
    Postgresa - coś w rodzaju przestrzeni nazw, między którymi możemy
    przełączać się). Trzeba przy okazji pamiętać, że każdem menu posiada
    unikalny identyfikator, którego używamy w formatce. Tak więc formatka
    archiwalna z 2009r będzie wskazywała na menu o ID np. ver2009 a ta sama
    formatka z roku 2010 musi zostać przerobiona aby wskazywać na inne menu
    o ID ver2010, które trzeba sklonować z wersji 2009. Tak więc przy takim
    wariancie kliknięcie guzika wydaje się być troszkę nie wystarczające.
    Czy mylę się?

    > a później wszystko sobie wywoływać choćby nawet z użyciem SESSION jak
    > bardzo chcesz
    > if($_SESSION['year']=2009)

    To przełączanie jest jasne. Niejasne dla mnie jest póki co robienie
    archiwum z funkcjonalności j/w.


    --
    Pozdrawiam,
    Marek


  • 19. Data: 2011-01-07 15:29:47
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: Marek <b...@e...com>

    W dniu 2011-01-07 13:19, porneL pisze:
    > menu
    > - podmenu
    > - podmenu
    > - podmenu
    >
    > na:
    >
    > 2009
    > - menu
    > -- podmenu
    > -- podmenu
    > -- podmenu
    >
    > 2010
    > - menu
    > -- podmenu
    > -- podmenu
    > -- podmenu

    No właśnie o tym wariancie wspominałem. Każdy rok, to nowe menu/podmenu
    = praca dla redaktora w celu utworzenia nowego menu + praca dla
    webmastera w celu modyfikacji formatek aby wiedziały, że mają brać pod
    uwagę podmenu 2010, a w archiwum z 2009 - menu "2009", a we
    wcześniejszym archiwum - "2008" itd. Nie jest to więc "kliknięcie" lecz
    ciąg zdarzeń.

    To samo dotyczyłoby innych sekcji serwisu: bannery, kalendarze itd. To
    dość rozbudowane przedsięwzięcie. Wydaje mi się, że w tym konkretnym
    przypadku gdzie archiwizacja będzie coroczna, dam sobie spokój i ręcznie
    będę kopiował pliki, bazę i zakładał poddomenę/podkatalog. Raz na rok
    nie spocę się od tego :-) W tym momencie zyskamy to, że redaktor niczego
    nie będzie musiał zmieniać - dostanie wypełniony serwis a kopie
    archiwalne będą bez części redakcyjnej.

    --
    Pozdrawiam,
    Marek


  • 20. Data: 2011-01-07 16:07:37
    Temat: Re: Jak tworzyć archiwum CMS?
    Od: porneL <n...@p...net>

    On Fri, 07 Jan 2011 15:29:47 -0000, Marek <b...@e...com> wrote:

    >> menu
    >> - podmenu
    >> - podmenu
    >> - podmenu
    >>
    >> na:
    >>
    >> 2009
    >> - menu
    >> -- podmenu
    >> -- podmenu
    >> -- podmenu
    >>
    >> 2010
    >> - menu
    >> -- podmenu
    >> -- podmenu
    >> -- podmenu
    >
    > No właśnie o tym wariancie wspominałem. Każdy rok, to nowe menu/podmenu
    > = praca dla redaktora w celu utworzenia nowego menu

    Etam, raz na rok odpalasz:

    dodaj_menu($rok, wczytaj_menu($rok-1));

    (crontab chyba nie obsługuje zdarzeń rocznych :)

    > + praca dla webmastera w celu modyfikacji formatek aby wiedziały, że
    > mają brać pod uwagę podmenu 2010, a w archiwum z 2009 - menu "2009"

    Napisz je raz, żeby używały pokaz_menu($ta_strona->jej_rok());


    Chociaż ja dalej nie czaję, dlaczego ważna jest archiwizacja wszystkiego
    idealnie co do buga, zamiast pozwolić stronie ewoluować zachowując dostęp
    do poprzednich danych.

    Może jak ma być idealnie-nietykalnie zamrożone jak dowody sądowe, to
    zapuść wget -m?

    --
    http://pornel.net
    this.author = new Geek("porneL");

strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: