Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> tworzenie własnego systemu cms
marcus753
post 12.05.2014, 13:48:37
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witajcie, mam mały dylemat. Otóż coraz częściej dostaje zlecenia na stworzenie pojedyncza stronę scrolowanej w pionie z dużą ilością fajerwerków css3 (animacje,interaktywne elementy itp.) Z punktu widzenia struktury czy podstron których przecież nie ma, korzystanie z gotowych cmsów jest jak strzelanie z armaty do wróbla w związku z tym chciałbym napisać coś samemu. I tu pojawia się problem a właściwie pytanie otwarte. W jaki sposób dać możliwość użytkownikowi zmieniania treści na stronie ? albo tworzymy jeden edytor w którym elementy specjalne widnieją w kodzie np. jako <<moj element,parametry>> i potem php zamienia to na właściwy element. Albo użytkownik dostaje stronę z polami do edycji które może oddzielnie edytować. Macie jakiś pomysł jak można by się do tego zabrać ? i która ścieżka byłaby najlepsza ? może znacie jeszcze jakieś inne rozwiązania ?

Pozdrawiam


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
markuz
post 12.05.2014, 13:52:41
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


klik - może coś takiego?


--------------------
Go to the top of the page
+Quote Post
marcus753
post 12.05.2014, 14:04:51
Post #3





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


dzięki za odpowiedź, sam się zastanawiam bo ani jedno ani drugie rozwiązanie nie jest idealne...
ogólnie strony mają mało tekstu a dużo bajerów pisanych w js + animacji css3 i jeśli wszystkie zaznaczałbym w edytorze to boje się że osoba zmieniająca potem jakiś akapit natrafiła by na drugie tyle parametrów i jakiś "dziwnych znaczków"

Z kolei drugie rozwiązanie może jest lepsze ale wtedy podpis pod każdym zdjęciem musiałby być osobnym polem w cmsie i w efekcie otrzymali byśmy z 300 oddzielnych pól do edycji treści...

tak źle i tak niedobrze facepalmxd.gif chyba żeby zastosować jakiś mechanizm mieszany ?

Ten post edytował marcus753 12.05.2014, 14:08:30


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
memory
post 12.05.2014, 14:33:36
Post #4





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

Ostrzeżenie: (0%)
-----


Tworzysz panel administracyjny i tam jest możliwość edycji treści ?
Go to the top of the page
+Quote Post
marcus753
post 12.05.2014, 14:38:26
Post #5





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


"Tworzysz panel administracyjny i tam jest możliwość edycji treści ?"
Lkingsmiley.png właśnie to chcę zrobić, pytanie tylko jak zrobić tą możliwość edycji treści ?
-czy całą stronę traktować jako jeden plik tekstowy poprzecinany dziesiątkami znaczników specjalnych w które z automatu wstawię gotowe elementy (galeria,grafika,gra,itp) czy może zrobić cały szablon normalnie a tylko w wybranych miejscach na stronie pobierać dane z bazy tylko że wtedy w naszym panelu do zarządzania będziemy mieli kilkadziesiąt/kilkaset pól do wypełnienia zmienną treścią...


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
markuz
post 12.05.2014, 14:51:16
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Zawsze możesz zrobić tylko 1 tabelę w bazie danych. O strukturze np.

element
- id
- name
- clean_name
- content

Dodajesz elementy np. (1,'Zawartość nagłówka', 'header_h1', 'Witamy!');
Tworzysz jakąś ładną klasę i w szablonie:

  1. <h1><?php echo $elements->find('header_h1'); ?></h1>


Możesz też utworzyć tą klasę w ten sposób, że jezeli nie będzie pola np. 'header_h1' w bazie danych to utworzy go automatycznie z domyślną treścią. Wtedy tworzysz sobie szablon, dodajesz zmienną treść a potem po stronie administratora zmieniasz tylko pełne nazwy (żeby klient wiedział ocb.) i przykładową treść.


--------------------
Go to the top of the page
+Quote Post
memory
post 12.05.2014, 14:53:48
Post #7





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

Ostrzeżenie: (0%)
-----


Ja mam zrobione to za pomocą "sekcji" czy tam "list". Każda sekcja (slider,kontakt,galeria) jest elementem listy. Jeżeli klient z jakiś powodów będzie chciał stronę z kontaktem na 3 miejscu to sobie posortuje. Każda taka lista ma do wyboru moduł ( galeria,price table, kontakt itd) ,ustawienia (np tło sekcji itd) czy szablon. Wszystko zależy od twoich potrzeb.

Cytat
czy całą stronę traktować jako jeden plik tekstowy poprzecinany dziesiątkami znaczników specjalnych w które z automatu wstawię gotowe elementy

Dobre na jednorazową stronke
Go to the top of the page
+Quote Post
em1X
post 12.05.2014, 16:22:32
Post #8





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


Jak dla mnie strzelanie z armaty to marnotrawienie własnego czasu na pisanie własnego CMS, kiedy tyle na rynku darmowych i solidnych rozwiązań.


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
szajens
post 12.05.2014, 18:37:10
Post #9





Grupa: Zarejestrowani
Postów: 150
Pomógł: 4
Dołączył: 3.01.2010

Ostrzeżenie: (0%)
-----


Cytat(em1X @ 12.05.2014, 17:22:32 ) *
Jak dla mnie strzelanie z armaty to marnotrawienie własnego czasu na pisanie własnego CMS, kiedy tyle na rynku darmowych i solidnych rozwiązań.

Nic darmowego,a nawet komercyjnego nie będzie tak funkcjonalne i szybkie jak własny cms.
Go to the top of the page
+Quote Post
Wazniak96
post 12.05.2014, 21:59:07
Post #10





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

Ostrzeżenie: (0%)
-----


Cytat(szajens @ 12.05.2014, 19:37:10 ) *
Nic darmowego,a nawet komercyjnego nie będzie tak funkcjonalne i szybkie jak własny cms.


Serio? A ja Ci udowodnię i napiszę tak szajsowaty, że zobaczymy. baaasmiley.gif
Koledze em1X nie chodziło o szybkość wykonywania się lecz o stracony czas na jego pisania. W końcu czas to pieniądz. A co jeśli klient sobie zażyczy w przyszłości rozbudowania strony? Kolejne marnowanie cennego czasu na rozbudowanie CMS lub przekładanie danych na "armatę". smile.gif
Go to the top of the page
+Quote Post
zegarek84
post 12.05.2014, 22:35:17
Post #11





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(marcus753 @ 12.05.2014, 15:38:26 ) *
-czy całą stronę traktować jako jeden plik tekstowy poprzecinany dziesiątkami znaczników specjalnych w które z automatu wstawię gotowe elementy (galeria,grafika,gra,itp) czy może zrobić cały szablon normalnie a tylko w wybranych miejscach na stronie pobierać dane z bazy tylko że wtedy w naszym panelu do zarządzania będziemy mieli kilkadziesiąt/kilkaset pól do wypełnienia zmienną treścią...

druga część akapitu to myślałem, że właśnie to chcesz uzyskaćquestionmark.gif a jeśli chodzi o wiele dodatkowych znaczników to chyba nie masz kodu js dodawanego w źródle strony?? a nawet jeśli to nie problem to przenieść do zewnętrznych wydzielonych plików i oprogramować stronę - rozwiązania miałbyś elastyczniejsze... a dane elementy szukać po przez znaczniki id bądź po klasach czy inne unikalne zagniezdrzenia/początki atrybutów w dobie nowych selektorów...


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
szczemp
post 13.05.2014, 06:23:04
Post #12





Grupa: Zarejestrowani
Postów: 149
Pomógł: 9
Dołączył: 9.12.2010

Ostrzeżenie: (0%)
-----


Ja bym to zrobił tak:
Podzielić panel niejako na dwie części. W jednej będziesz dodawał i redagował poszczególne elementy (galerie, animacje, slajdery, filmy). Dla każdego takiego elementu przypiszesz jakiś unikatowy kod / nazwę / znacznik. Druga część będzie prostym edytorem typu wysywig, w którym te wszystkie elementy będziesz komponował w całość. Tu trzeba zastosować mechanizm podobny do bbcode. Np w pierwszej części utworzysz galerię o znaczniku galeriaMoja, slajder o znaczniku slajderMoj i inne bajery jakie będziesz chciał. Potem w drugiej będziesz te znaczniki dodawał w takiej kolejności i układzie jaki będziesz chciał. Skrypt przed zapisem do bazy, albo i przed odczytem będzie te znaczniki zamieniał na odpowiednie elementy,
Go to the top of the page
+Quote Post
szajens
post 16.05.2014, 18:02:01
Post #13





Grupa: Zarejestrowani
Postów: 150
Pomógł: 4
Dołączył: 3.01.2010

Ostrzeżenie: (0%)
-----


Cytat(Wazniak96 @ 12.05.2014, 22:59:07 ) *
Serio? A ja Ci udowodnię i napiszę tak szajsowaty, że zobaczymy. baaasmiley.gif
Koledze em1X nie chodziło o szybkość wykonywania się lecz o stracony czas na jego pisania. W końcu czas to pieniądz. A co jeśli klient sobie zażyczy w przyszłości rozbudowania strony? Kolejne marnowanie cennego czasu na rozbudowanie CMS lub przekładanie danych na "armatę". smile.gif

Zaoszczędzisz więcej czasu jeżeli napiszesz jeden dobry i będziesz wykorzystywał go później. Rozbudowanie baaasmiley.gif , żaden problem, tylko trzeba o tym pomyśleć od razu. Ja stawiam na budowę modułową.
Go to the top of the page
+Quote Post
Turson
post 16.05.2014, 18:21:02
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Uważanie pisania własnego CMS za stracę czasu jest głupotą. Nic, co rozwija nasze umiejętności, nie można uznać za marnotrawienie czasu
Go to the top of the page
+Quote Post
skleps
post 19.05.2014, 17:17:28
Post #15





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

Ostrzeżenie: (0%)
-----


Cytat(em1X @ 12.05.2014, 16:22:32 ) *
Jak dla mnie strzelanie z armaty to marnotrawienie własnego czasu na pisanie własnego CMS, kiedy tyle na rynku darmowych i solidnych rozwiązań.


Ale niekonieczne zoptymalizowane pod konkretne potrzeby.
Znane rozwiązania mają też jedną wadę - znane dziury, czyli jak ujawnia się jakas dziura to nic trudniejszego jak jakiś haker zapuści skrypt i na ślepo można być trafionym smile.gif
Oczywiście własne rozwiązanie nie gwarantuje bezpieczeństwa, ale nie da się zrobić aktaku szablonowo i ew włamywacz musi chwilę pokombinować indywidualnie...
Czyli ew włam nie będzie przypadkowy a celowy smile.gif
Go to the top of the page
+Quote Post
Dejmien_85
post 19.05.2014, 19:56:52
Post #16





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Hmm, ja bym "widok" podzielił na dwie części.

1. Templatkę pojedynczej strony (a dokładnie części strony).
2. Treść strony (która zawiera ID templatki)

Templatka tak naprawdę byłaby szablonem, tj. divy, klasy, id-ki, ogółem HTML5. Następnie w templatce umieściłbym znaczek w stylu {content}, który byłby jak się domyślasz zmienną. Templatka oczywiście byłaby parsowana i {content} zostałby zastąpiony treścią strony.

Przy wczytywaniu front-page łączysz się z bazą danych, pobierasz strony, zasysasz dane stron (tj. treść + templatka) i wypluwasz je foreachem, parsując templatki.

W panelu administartora tworzenie strony składałoby się z dwóch etapów:
1. Stworzenie templatki
2. Stworzenie strony i wybranie do niej templatki.

PS W swojej karierze wykonałem kilka "Łan-Pejdżów" i z tego co zauważyłem warto podzielić "strony" na treść i templatki. Każda część strony może wyglądać inaczej, także konieczne jest ustalanie różnych templatek, a nie można wymagać od klienta tego, aby znał HTML - a klient musi w prosty sposób edytować stronę. Także z tego powodu musi być podział na "treść" i "templatkę".

Oczywiście jako "templatkę" mam na myśli tylko jedną część łan-pejdża.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 19:43