Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] prosty CMS
Forum PHP.pl > Forum > PHP
Lonas
Hej - będę sie zabieral za napisanie w miare prostego cms,
może ktoś ma jakieś materiały którymi moze sie podzielic ,jak zaplanowac napisanie tej aplikacji, strukture bazy, za wszelkie pomocne informacje będę wdzięczny.



na wstępie chciałem spytać - jak uzyskać okno w którym tekst jest formatowany - zupełnie jak teraz kiedy pisze posta - i w jaki sposób później ten sformatowany tekst pokazać na stronie ?
mike
Pro? Wolne żarty.
Przenoszę na php.
skowron-line
Kod
na wstępie chciałem spytać - jak uzyskać okno w którym tekst jest formatowany - zupełnie jak teraz kiedy pisze posta - i w jaki sposób później ten sformatowany tekst pokazać na stronie ?


odpowiedzia na o pytanie moze byc fckeditor lub jakis skrypcik ja mam cos takiego:

  1. <script language="JavaScript">
  2. function emoticon(tresc) {
  3. tresc = '' + tresc + '';
  4. if (document.shoutbox.tresc.createTextRange && document.shoutbox.tresc.caretPos) {
  5. var caretPos = document.shoutbox.tresc.caretPos;
  6. caretPos.tresc = caretPos.tresc.charAt(caretPos.tresc.length - 1) == ' ' ? tresc + ' ' : tresc;
  7. document.shoutbox.tresc.focus();
  8. } else {
  9. document.shoutbox.tresc.value += tresc;
  10. document.shoutbox.tresc.focus();
  11. }
  12. }
  13. <h2>dodaj wpis</h2>
  14. <p>
  15. <a href="java script:emoticon('biggrin.gif')"></a>
  16. <a href="java script:emoticon('<b>')"></a>...<a href="java script:emoticon('</b>')"></a> - <b>pogrubienie</b>
  17. <a href="java script:emoticon('<i>')"></a>...<a href="java script:emoticon('</i>')"></a> - <i>pochylenie</i>
  18. <a href="java script:emoticon('<u>')"></a>...<a href="java script:emoticon('</u>')"></a> - <u>podkreślenie</u>
  19. </p>
  20.  
  21. <form name="shoutbox" method="post" action="">
  22. tytul:<input type="text" name="tytul" size="40">
  23. <textarea name="tresc" cols="50" rows="10"></textarea>
  24. <input type="submit" name="submit" value="zapisz">

ale to bardzo okrojona wersja tego c ojest na forum
Lonas
@skowron-line ten skrypcik nie działa smile.gif
Własnie chciałbym mieć coś takiego - what You see is what You get smile.gif - czyli tak jak ktos w textarea wpisuje tak mu sie pojawi na stronie.. plus to formatowanie
monster
Jako edytor WYSIWYG do tworzenia artykułów możesz wykorzystać także TinyMCE.
Lonas
@monster - to jest bardzo fajne dziekuje -

Pytanie teraz - dokument ktory wygeneruje mi to narzedzie - wlasciwie jego kod źródłowy - powinienem caly trzymac w bazie ?
wipo
On Ci generuje cały kod html strony.
Możesz go trzymać w bazie lub plikach.

Co do tych edytorów wysiwig to zauważyłem że często się wali formatowanie jak się wlepi coś np w MS WORDa
thornag
Ja proponuje po prostu pogooglowac w poszukiwaniu edytorow WYSIWYG.

Co do CMSa to napisz jakie przewidujesz funkcjonalnosci wtedy mozemy Ci jakos pomoc z baza z rozwiazaniami itp.

Po prostu co chcesz tam miec winksmiley.jpg
Lonas
Najbardziej zależy mi na tym jak zbudować menu - żeby użytkownik sam ustalał sobie - dział poddział ewentualne pod kategorie
Nie wiem czy musze statycznie okreslic że podkagegori moze byc np 3.. czy to można dynamicznie zrobić
free
Tez tworze CMS - sys ogłoszeń. Jedyny problem z jakim się nie moge uporac to wspomniene wyżej dodawanie podkategorii do istniejacej kategorii. Od strony php i SQL powinienem sobie samodzielnie poradzic. Problem jest w rozwiazaniu technicznym, gdyż robie to pierwszy raz. Macie jakies sugestie, linki ?
wipo
Zrób tak że nazwy będą siedzieć w bazie:
id (int auto_increment) - master (int) - opis varchar(255)

Jak kategoria jest główna to w master wpisz -1
W przeciwnym wypadku do master wpisujesz id madrzędne (matke)

Możesz też opcjonalnie dodać pozycje (żeby można było zmieniać kolejność)
Lonas
Nie za bardzo kumam
wipo
Jakos wpisujesz kategorie do bazy (czyli tworzysz menu)
Więc dajesz tabele

----------------------------------------------------------------------------------------
| id_menu int auto_increment | master int | pozycja int | opis varchar(255) |
----------------------------------------------------------------------------------------

I wpisujesz dla przykładu

Samochody
- Osobowe
- Ciężarowe
Lodówki
Pralki

To będzie tak
insert into wpisy values (1,-1,1,'Samochody');
insert into wpisy values (2,1,1,'Osobowe');
insert into wpisy values (3,1,2,'Cięzarowe');
insert into wpisy values (4,-1,2,'Lodówki');
insert into wpisy values (5,-1,3,'Pralki');

Coś mniej więcej w tym guście
Rozumiesz?
Lonas
Ale musze narzucić z góry ile może być podkategori, nie da się żeby użytkownik sobie układał

  1. np samochody
  2. - osobowe
  3. - biale
  4. - czerwone
  5. -nowe
  6. -uzywane
  7. - ciezarowe
  8. pralki
  9. lodowki




itd
wipo
Jak dasz odpowiednie pętle do się da.
Popróbuj a zobaczysz

Takie zastosowanie nie ma ograniczenia ilościowego (przynajmniej konstrukcyjnie)
free
Wipo co oznacza znak minusa "-" przy 1 : insert into wpisy values (1,-1,1,'Samochody'); ?
myth
Cytat(free @ 28.09.2006, 19:01:10 ) *
Wipo co oznacza znak minusa "-" przy 1 : insert into wpisy values (1,-1,1,'Samochody'); ?

Po prostu sobie przyjal, ze wartosc -1 maja Dzialy [A], a wartosc 1 to co do nich zalezy [B].

Na w/w przykladzie:
Samochody [A1]
- Osobowe [B1]
- Ciężarowe [B2]
Lodówki [A2]
Pralki [A3]
...
wipo
Dokładnie tak jak myth napisał

Jak dało się zauważyć pola gdzie dałem wartość -1 nazywają się master.
-1 dałem dlatego żeby mieć pewność że będzie to wartość inna od id.
cicik
Cytat(wipo @ 28.09.2006, 19:57:13 ) *
Jak dało się zauważyć pola gdzie dałem wartość -1 nazywają się master.
-1 dałem dlatego żeby mieć pewność że będzie to wartość inna od id.


SQL ma takie laden slowko NULL.
Jak zaczniesz wstawiac -1 albo 0 to ci szlag trafi wiezy referencyjne
wipo
Wszystko zależy od tego jaką wartość przyjmiesz.
Ja przyjełem -1 i u mnie śmiga i się nic złego nie dzieje.
Ty przyjełeś NULL i jak sądze też działa
cicik
Cytat(wipo @ 28.09.2006, 21:08:36 ) *
Ja przyjełem -1 i u mnie śmiga i się nic złego nie dzieje.
Ty przyjełeś NULL i jak sądze też działa


Ustaw sobie wiezy referencyjne pomiedzy tabelami i zrozumiesz czemu Twoje podejscie jest zle.
wipo
Poczytaj dokladnie o co chodziło.
Podpowiem: człowiek się pyta jak zrobić menu kaskadowe a nie zakładać odpowiednie klucze.
Jak chcesz pouczać to daj przykład jaki proponujesz zastosować
cicik
Cytat(wipo @ 28.09.2006, 21:18:07 ) *
Jak chcesz pouczać to daj przykład jaki proponujesz zastosować


Skoro prosisz:

create table menu (id bigint not null auto_increment, nadrzedne bigint, nazwa varchar(100) not null, primary key(id));
alter table menu add foreign key (nadrzedne) references menu; <-- z tego powodu wstawienie w kolumne nadrzedne -1 sie nie uda.

Potem w skrypcie rekurencyjnie trzeba zbudowac drzewo.
Lonas
A pytanie odnosnie WYSIWYG - jak lepiej :
Zapisywac kod do bazy czy do plikow -
jeszcze dochodzi problem że artykuly beda w kilku jezykach i tez bede musial zrobic przelaczanie miedzy jezykami.
Nievinny
Wydajnośc jest kewstią sporną w tym aspekcie. Ja zapisywałbym do bazy, ułatwi to zarządzanie nimi, szczególnie jak się doda w tabeli pole Lang i przełączanie nie stanowi problemu.
free
Tez uwazam, ze do bazy danych lepiej zapisywac dane.
Lonas masz juz gotowy skrypt do WYSIWYG ?
wipo
Po googlaj a znajdziesz nie jeden
free
Niewątpię, ale chodzi mi o skrypcik z opisem kodu bym wiedzial OCB i dostosowac na wlasne potrzeby. Poza tym czy taki WYSIWYG jest praktyczny ? Bo do komentarzy na strone to by sie nadawal, ale juz do uaktualniania strony z uzyciem div czy table juz nie bardzo z powodu jego zaawansowania.
wipo
To wrzuc strone i iframe i tyle
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.