Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> własny parser wiadomości vs gotowce, BBCode ale trochę inaczej
Aztech
post 10.07.2006, 21:59:26
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


W forach typu punBB, czy phpBB2 (oraz innych biggrin.gif) podczas pisania wiadomości pojawia się podczas dodawania postu panel, który umożliwia wstawianie pogrubień, linków, cytowań itp.

Pytania:
1) gdzie można w sieci znaleźć tego typu gotowce, które możnaby dołączyć do własnego forum, lub przerobić je na własne potrzeby, pod jakimi hasłami szukać tego typu elementów.
2) czy warto pisać taki własny moduł jeśli miałby on mieć następującą funkcjonalność (to funkcje najbardziej potrzebne, by nie zagłębiać się w szczegóły):
- podświetlać odpowiednio linki
- linkować obrazki
- możliwość podglądu
- wspomagać tworzenie testów (coś na kształt możliwości dodawania ankiet do wątków ale dużo bardziej rozbudowane)
czy istnieją takie rozwiązania, pod jakimi hasłami je szukać, a może istnieją już rozwiązania posiadające w/w funkcjonalność, które można podpasować pod własne potrzeby

Za wyrozumiałość i odpowiedz mogące mnie pokierować w dobrą stronę, z góry dzięki

[EDIT]
Czyli w skrócie, które kreatory BBCode polecacie winksmiley.jpg

Ten post edytował Aztech 10.07.2006, 22:14:33
Go to the top of the page
+Quote Post
piczu
post 10.07.2006, 22:56:14
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


http://www.google.com/search?q=bbcode+generator


--------------------
pozdrawiam :)
Go to the top of the page
+Quote Post
Kayne
post 10.07.2006, 23:04:17
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 30.04.2006
Skąd: Kalisz

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


Osobiście polecam TinyMCe - szybka i bezproblemowa instalacja! (Kopiujesz pliki, fragment kodu i działa).


--------------------
Chcesz szybko i łatwo wygrać 100 zł?
Go to the top of the page
+Quote Post
LBO
post 11.07.2006, 00:28:40
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


fckeditor
Go to the top of the page
+Quote Post
Aztech
post 11.07.2006, 15:31:26
Post #5





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Nie do końca chodziło mi o tego typu edytory. Powyższe edytory generują bezpośrednio kod HTML. bardziej chodziło mi o narzędzia, które dają działają w ten sposób (wcześniej nie napisałem tego wyraźnie - mój błąd)
- zapisują wiadomość w postaci BBCode, ale użytkownikowi wyświetlają ją od razu sformatowaną (tak jak to robi np TinyMCe)
- dają możliwość przekształcenia zapisanego BBCode do HTML-u (tak jak to robi: BBCode Script Generator)
Dlaczego? Jak już wspomniałem narzędzie ma również posłużyć do kontrukcji testów, kod wpisany przez uzytkownika wyglądałby nastepująco (tutaj podaję go w BBCode):
Kod
[questionbox type=multiselect] //oznacza że odpowiedzi może być kilka i możan wybierać kilka opcji
[question]Która z poniższych operacji jest możliwa[/question] //treść pytania
[answer] //lista odpowiedzi
[*][yes] 2 + 2 = 4 //piertwsza możliwość, odpowiedź jest poprawna
[*][no] 2 + 2 = 5 //itp
[*][yes] 2 + 2 = 2 * 2 /itd
[/answer]
[/questionbox]

Na podstawie tego program wygeneruje mi kod HTML widoczny dla użytkownika, ale w bazie zapisany wciąż w postaci BBCode
  1. <p>Która z poniższych operacji jest możliwa?</p>
  2. <input type="checkbox" name="question1" value="1">2 + 2 = 4<br>
  3. <input type="checkbox" name="question1" value="1">2 + 2 = 5<br>
  4. <input type="checkbox" name="question1" value="1">2 + 2 = 2 * 2<br>
  5. <input type="submit" name="accept" value="zatwierdź">
  6. <input type="submit" name="skip" value="pomiń">

W tak widocznym tekście użytkownik będzie mógł udzielić odpowiedzi, jego odpowiedzi sprawdzi odpowiedni skrypt, któy prawidłowe odpowiedzi właśnie będzie pobierał z zapisanego w bazie BBCode (patrz wklejony przeze mnie kod)

Z rozwiązań które znalazłem, a które odpowiadałyby moim wymaganiom i pozwalały na zbudowanie takiego testu to: http://www.christian-seiler.de/projekte/ph...e/index_en.html (Class that parses BBCodes for php)
Pozwala on na własne definiowanie reguł, zagłebień, co pozwalałoby na np nie wystepowanie znacznika [answer] poza [questionbox] itp. niestety w tym rozwiązaniu należałoby dobudować własny interfejs.

Jak myslicie, czy można w/w funkcjonalność uzyskać za pomocą pluginów w podanych przez was edytorach? Nigdy ich nie używałem a po przeczytaniu dokumentacji do TinyMCe nie mam pomysłu jak to zrobić. Jeśli się mylę, oświećcie i naprowadzcie na drogę i pomysł (póki co zaczynam się przekonywać do włąsnej klasy opartej na Class that parses BBCodes for php.

Zdrawim
Go to the top of the page
+Quote Post
Turgon
post 11.07.2006, 16:14:15
Post #6





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Proponowałbym własną klasę to według mnie niezbyt trudne ;] . Wystarczy trochę pokombinować z str_replace.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
slash12345
post 11.07.2006, 17:26:40
Post #7





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 21.04.2006

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


str_replace nic tutaj nie da, ponieważ użytkownik może sobie wpisać:
Kod
[b]Pogrubiony tekst[/b]
i będzie o.k.
Ale jeśli nagle najdzie kogoś potrzeba wpisania:
Kod
[b]Pogrubiony tekst buhuuahahahhaaa

To cała reszta strony utonie w tłustych literach. Lepiej więc zainteresować się wyrażeniami regularnymi.


--------------------
Kod
thewanderer@debian:~$ sudo apt-get dist-upgrade
Konieczne pobranie 666KB pakietów. Czy chcesz kontynuować? [T/n] nieeeeeeee
Go to the top of the page
+Quote Post
Aztech
post 11.07.2006, 17:56:22
Post #8





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Cytat(Turgon @ 11.07.2006, 17:14 ) *
Proponowałbym własną klasę to według mnie niezbyt trudne ;] . Wystarczy trochę pokombinować z str_replace.

Turgon i tutaj się mylisz i to bardzo, wyobraż sobie taką sytuację, gdy użytkownik przez przypadej nie zakończy jakiegos tagu albo zrobi to źle np:
Kod
[b] to jest mój pogrubiony tekst [i] który staje się pogrubioną italiką [/ii] a który teraz nie powinien nią być ale wciąż jest bo ktoś zamiast zamykającego znacznika z i dał z dwona ii[/b]

Przy zwykłym str_replace poprzez zapominalskich uzytkowników rozsypie ci się to jak domek z kart.
Jest wiele innych niuansów. Jak napisałem, system ma posłużyć do pisania testów i z zapisanego szablonu generować stronę HTML oraz służyć m.in. ma do zapisywania poprawnych odpowiedzi.
Jak widać z opisu musi być modułowy. Jak się można domyślać, test to nie tylko pytania jednokrotnego wyboru (wielokrotnego) ale również pytania które nakazują użytkownikowi wpisanie jakiejś wartości i porównania jej z odpowiedzia itp itd
Dwa to jak już pisałem, nie każdy znacznik może się znaleźć w każdym znaczniku, tak jak np masz w XHTML-u gdzie w li nie możesz umieszczać niektórych znaczników, bo są one ze względu na specyfikację zabronione.
Proszę czytaj o co ludzie się pytają a nie pisz dla samego pisania, które nic nie wnosi.
Jeśli uważasz, że to jednak da się zrobić na str_replace to chętnie zobaczę Twój pomysł.
Go to the top of the page
+Quote Post
Foxer
post 11.07.2006, 21:23:54
Post #9





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 17.11.2003

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


Oczywiście możnaby dodać również funkcjonalność dzięki której po wpisaniu wiadomości / posta z NIEdomkniętymi tagami np.:

Kod
[b]Często [i]zapominam domykać tagi...


i naciśnięciu klawisza wysłania wiadomości (Submit), nasz skrypt szybko go przeskanuje, sprawdzi które tagi zostały otworzone ale nie zostały zamknięte i doda do tekstu (na końcu wiadomości) wszelkie potrzebne zamknięcia czyli w tym przypadku:

Kod
[/i][/b]


Myślę, że to byłoby dość proste rozwiązanie.

Ten post edytował Foxer 11.07.2006, 21:24:28


--------------------
Pozdrawiam,
Foxer
Go to the top of the page
+Quote Post
Aztech
post 12.07.2006, 16:20:50
Post #10





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


W prostych przypadkach może to i dobre rozwiazanie ale popatrz na to
Cytat(Foxer @ 11.07.2006, 22:23 ) *
Oczywiście możnaby dodać również funkcjonalność dzięki której po wpisaniu wiadomości / posta z NIEdomkniętymi tagami np.:

Kod
[b]Często [i]zapominam domykać tagi...


i naciśnięciu klawisza wysłania wiadomości (Submit), nasz skrypt szybko go przeskanuje, sprawdzi które tagi zostały otworzone ale nie zostały zamknięte i doda do tekstu (na końcu wiadomości) wszelkie potrzebne zamknięcia czyli w tym przypadku:
Kod
[/i][/b]


Myślę, że to byłoby dość proste rozwiązanie.


Porównaj z tym:

Cytat(Foxer @ 11.07.2006, 22:23 ) *
Oczywiście możnaby dodać również funkcjonalność dzięki której po wpisaniu wiadomości / posta z NIEdomkniętymi tagami np.:

Kod
[b]Często [i]zapominam domykać tagi...


i naciśnięciu klawisza wysłania wiadomości (Submit), nasz skrypt szybko go przeskanuje, sprawdzi które tagi zostały otworzone ale nie zostały zamknięte i doda do tekstu (na końcu wiadomości) wszelkie potrzebne zamknięcia czyli w tym przypadku:
Kod
[/i]


Myślę, że to byłoby dość proste rozwiązanie.
[/b]


I jest różnica? Jest smile.gif
Popatrz też na to. Przecież jeśli <p> będzie miało ustawione, że ma np padding-left: 100px a <li> tego nie będą miały to w 2 przypadku zostaną przesuniętę o te 100px; (chodzi mi o zasadę, że dodawanie na końcu zamykań tagów nie jest dobrą praktyką, bo uczy niestaranności w pisaniu testów)
  1. <p>jakiś tytuł</p>
  2. <ul>
  3. <li>coś tam</li>
  4. <li>coś tam 2</li>
  5. <li>coś tam 3</li>
  6. <li>coś tam 4</li>
  7. </ul>

  1. <p>jakiś tytuł
  2. <ul>
  3. <li>coś tam</li>
  4. <li>coś tam 2</li>
  5. <li>coś tam 3</li>
  6. <li>coś tam 4</li>
  7. </ul>
  8. </p>
Go to the top of the page
+Quote Post
strife
post 12.07.2006, 16:36:50
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


http://forum.php.pl/index.php?showtopic=13425
Przerób na swoje potrzeby, funkcja jest b. dobra smile.gif


--------------------
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: 12.06.2025 - 10:42