Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie newsa - formatowanie tekstu
stal-sw
post 25.05.2003, 22:17:29
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 27.06.2002
Skąd: Stalowa Wola

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


Mam skrypt newsowy i potrzebuje aby w panelu DODAWANIA NEWSA byl przycisk B (bold), I (italic), Hiperlacze, OBRAZEK oraz menu rozwijane powiedzmy z 4 kolorami.
I jak zaznacze tekst i wcisne przycisk to wprowadzi odpowiednie wart do bazy danych, a nastepnie jak wyswietlic wyniki aby tekst byl w nich sformatowany tak jak sie to zobilo w formularzu.
I nie wiem jak to zrobic.

Prosze o pomoc i jakies proste do zrozumienia rozwiazanie tego problemu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
DeyV
post 25.05.2003, 22:40:26
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




najprostrze - zobacz jak działają skypty na tym forum, i wybierz sobie kilka ci potrzebnych.

Nie zapomnij o podaniu pochodzenia tongue.gif


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
stal-sw
post 25.05.2003, 22:45:39
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 27.06.2002
Skąd: Stalowa Wola

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


Mam tez zainstalowane PHPBB forum ale ciezko mi sie przeglada jego kod - nie bardzo go rozumie. Probowalem juz na tym przykladzie ale nic nie wyczarowalem.

Czy moglbym kogos prosic o jakis prosty przyklad. Czy potrzeba do tego jeszcze JavaScript questionmark.gif?

Odnosnie tego problemu - jak zrobic ze jak z bazy z pola "tresc" pobieram zawartosc i jesli jest uzyte w tekscie www lub http:// to zamienia mi to podczas wyswietlania na hiperlacze questionmark.gifquestionmark.gif?
Go to the top of the page
+Quote Post
DeyV
post 25.05.2003, 22:51:33
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




1. Tak - jest do tego niezbędny JS.
2. jeżeli nie chcesz sprawy komplikować, to - zamiast dodwać bbcode, a zezwalasz w newsach na dodawanie HTML'a, wystarczy zmodyfikować ten skrypt, wstawiający kod (np. po nacisnieciu cool.gif, by wstawiał znacznik HTML.
Wtedy - zamiast starać się roszyfrować kod php tego forum, bawisz sie jedynie ze skrptami dostępnymi na stronie wynikowej.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
scanner
post 26.05.2003, 06:47:07
Post #5





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Dla przykładu (napisane z pamięci):[php:1:79975af43a]<?php
function __bbCodes($__string){
$__bbCodesArray = array(
'[ b ]' = > '< strong >',
'[ /b ]' = > '< /strong >',
'[ u ]' = > '< u >',
'[ /u ]' = > '< /u >',
'[ i ]' = > '< em >',
'[ /i ]' = > '< /em >',
'[ quote ]' = > '< blockquote >',
'[ /quote ]' = > '< /blockquote >'
);
foreach($__bbCodesArray as $__search = > $__replace){
$__string = str_replace($__search, $__replace, $__string);
}
return $__string;
}
?>[/php:1:79975af43a]Oczywiście trzeba by niepotrzebne spacje w tabeli usunąć. Na forum mechanizxm jest bardziej skomplikowany, z tego co widzę.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
DeyV
post 26.05.2003, 08:46:16
Post #6





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




dokładne tak jak piszesz, tylko lepiej korzystać z fukcji
string strtr ( string str, array replace_pairs)
zamiast [php:1:7eaa52caf3]<?php foreach($__bbCodesArray as $__search = > $__replace){
$__string = str_replace($__search, $__replace, $__string);
} ?>[/php:1:7eaa52caf3]


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
marcin_jimmi
post 13.03.2010, 16:43:43
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.03.2010

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


Witam bardzo serdecznie.
Chciałbym podpiąć sie pod ten temat. Bo z zaproponowanych rozwiązań jestem troszkę zielony i nie wiem tak na prawdę jak to zrobić... Mam podobny problem co autor. Pisze własny CMS na potrzeby własnej strony www. Nie jestem zainteresowany żadnymi CMS pokroju Joomli czy coś podobnego bo wole jednak stworzyć własny od podstaw i zrobić sobie wszystko po swojemu czy to będzie ok czy nie. Interesują mnie opcja o jakie prosił autor posta. Mam już zrobione dodawanie newsów do bazy danych. Mam też zrobione pseudoCMS'owe wyświetlanie ich. Chciałbym jednak zaimplementować takie opcje jakie są widoczne np w oknie dodawania tego komentarza na forum może w podobny sposób poza emotikonami bo są mi całkowicie niepotrzebne.

Zależałoby mi na:
- wyborze czcionki
- kolorowaniu składni
- rozmiar czcionki
- kolor czcionki
- pogubienie
- kursywa
- podkreślenie
- link
- obrazek
- cytat
- mail

Może ktoś z Państwa natknął się na gotowy wzór. Ja mam tylko funkcje z tego co sie orientuję dodawania już chyba do gotowych newsów wysyłanych do bazy (lub nie?).

  1. $s = preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold">\\1</span>', $s);
  2. $s = preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style: italic">\\1</span>', $s);
  3. $s = preg_replace('#\[u\](.*?)\[/u\]#si', '<span style="text-decoration: underline">\\1</span>', $s);
  4. $s = preg_replace('#\[color=(\#[0-9a-f]{3,6}|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|sil
    ver|teal|white|yellow)\](.*?)\[/color\]#si'
    , '<span style="color: \\1">\\2</span>', $s);
  5. $s = preg_replace('#\[size=([1-2]?[0-9](px|pt)|smaller|larger)\](.*?)\[/size\]#si', '<span style="font-size: \\1; line-height: normal">\\3</span>', $s);
  6. $s = preg_replace('#\[url\]([\w]+?://[^ "\n\r\t<]*?)\[/url\]#si', '<a href="\\1" title="\\1">\\1</a>', $s);
  7. $s = preg_replace('#\[url\]((www|ftp)\.[^ "\n\r\t<]*?)\[/url\]#si', '<a href="http://\\1" title="\\1">\\1</a>', $s);
  8. $s = preg_replace('#\[url=([\w]+?://[^ "\n\r\t<]*?)\](.*?)\[/url\]#si', '<a href="\\1" title="\\2">\\2</a>', $s);
  9. $s = preg_replace('#\[url=((www|ftp)\.[^ "\n\r\t<]*?)\](.*?)\[/url\]#si', '<a href="http://\\1" title="\\3">\\3</a>', $s);
  10.  
  11. $s = preg_replace('#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si', '<a href="mailto:\\1" title="\\1">\\1</a>', $s);
  12.  


Oraz drugi:

  1. $s = preg_replace('#<span style="font-weight: bold">(.*?)</span>#si', '\\1', $s);
  2. $s = preg_replace('#<span style="font-style: italic">(.*?)</span>#si', '\\1', $s);
  3. $s = preg_replace('#<span style="text-decoration: underline">(.*?)</span>#si', '\\1', $s);
  4. $s = preg_replace('#<span style="color: (.*?)">(.*?)</span>#si', '\2', $s);
  5. $s = preg_replace('#<span style="font-size: (.*?); line-height: normal">(.*?)</span>#si', '\2', $s);
  6. $s = preg_replace('#<a href="([\w]+?://[^ "\n\r\t<]*?)" title="(.*?)">(.*?)</a>#si', '\\3', $s);
  7.  
  8. $s = preg_replace('#<a href="mailto:(.*?)" title="(.*?)">(.*?)</a>#si', '[email]\\1[/email]', $s);
  9.  


Czy ktoś pomógłby mi rozwiązać ten problem?
Go to the top of the page
+Quote Post
bogdan89
post 13.03.2010, 18:50:00
Post #8





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

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


Zobacz na datę postu autora, temat założony prawie 7 lat temu. Nie wiem czy warto było odkopywać taki temat.
Na szczęście od tamtej pory powstało wiele gotowych narzędzi, które możesz wykorzystać... np.: TinyMCE, FCKEditor.
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: 13.08.2025 - 23:22