Zobacz temat
Automatyczne zastępowanie tekstu na link w newsie
|
|
MeTeo |
Dodany dnia 11.04.2008 17:51:23
|
Bywalec Postów: 880 Pomógł: 23 Ostrzeżeń: 2 Data rejestracji: 14.12.2005 19:38 |
Witam. Ni jak nie da się tego opisać, coś nabazgroliłem w tytule, ale żeby zrozumieć to muszę to opisać Chcę wstawić w newsy automatyczne parsowanie(?) - wynika tak z maincore.php. Otóż, po wpisaniu jakiegoś słowa, ciągu słów, które są zdefiniowane gdzieś - zastępowało je (konkretnie chodzi mi o link). Coś na wzór BBCODE, tylko, że zamiast znaczników byłoby samo słowo/słowa. Dla zilustrowania: - Piszę newsa, gdzie piszę o polityce i nagle w tekście padło nazwisko jakiegoś polityka, nazwisko to jest zdefiniowane i w newsie automatycznie zmieniło by ten tekst na link do jakiejś ustalonej strony No tak, ale w newsie nie ma bbcode, a nie chcę go dodawać tracąc przy tym html. Musiałoby to być automatyczne parsowanie(?) treści na stronie. Była wtyczka, że zamieniała linki ale nie działa w najnowszym fusionie. Ktoś ma jakiś pomysł? Pozdrawiam |
|
|
Wścibski Gość |
Dodany dnia 25.11.2024 07:48:00
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
Wooya |
Dodany dnia 11.04.2008 18:12:18
|
Zaawansowany Postów: 1449 Pomógł: 22 Data rejestracji: 30.01.2005 15:40 |
Napisalem kiedys moda pewnemu kolezce, ktory robil dokladnie to co opisujesz Niestety ow kolega za to placil, wiec kodu ci nie udostepnie PS: to nie zlosliwosc, ale jak ktos placi to juz to nie jest OpenSource PS2: podpowiedz: problem jest blahy. Napisz funkcje parsujaca slowa/zwroty i dodaj do niej parametr zawierajacy tresc newsa. Reszta powinna siedziec w bazie danych Edytowane przez Wooya dnia 11.04.2008 18:12:37 ... Pomagam tylko przy najnowszych wersjach PHP-Fusion ... |
|
|
MeTeo |
Dodany dnia 11.04.2008 18:35:52
|
Bywalec Postów: 880 Pomógł: 23 Ostrzeżeń: 2 Data rejestracji: 14.12.2005 19:38 |
Bad Words? Nic takiego w labie nie znalazłem ;) Wooya - gdyby to takie proste było ;) Tak czy inaczej zacząłem to dłubać. Napisałem przykładową funkcję Która na pewno źle zastępuje i chyba już tylko w tym tkwi problem ;) Bo kod, który definiuje BBCODE jest dla mnie kompletnie niezrozumiały ;) Zobaczyłem na przykąłd comments_include i dodałem w themie "parsenews" Niestety dalej nie działa. Problem o ile się nie mylę leży tylko w tym zastępowaniu :) EDIT: Chyba jednak nie tylko w tym... Skopiowałem linijkę z bbcode by sprawdzić moją funkcję wstawiając w news'a bbcode... niestety nie działa... Pozdrawiam |
|
|
bartek124 |
Dodany dnia 11.04.2008 19:06:44
|
Weteran Postów: 3264 Pomógł: 236 v7.02.06 Data rejestracji: 26.05.2007 12:25 |
To jest proste . W news.php wstawiasz se preg_replace, pętla while z danymi z bazy i po robocie. Najpierw sobie zrób infusion z bazą słów, które mają być zastępowane (chyba że chcesz bezpośrednio w kodzie php), i na co mają być zastępowane. Baza: id, 1 pole: słowo do zastąpienia 2 pole: słowo na jakie ma sie zmienić. Jak to wykonasz już masz pół sukcesu. Potem to już z górki . |
|
|
MeTeo |
Dodany dnia 11.04.2008 20:11:18
|
Bywalec Postów: 880 Pomógł: 23 Ostrzeżeń: 2 Data rejestracji: 14.12.2005 19:38 |
Ale po co takie coś? Mój pomysł jest zły? Ta funkcja jest w maincore.php, podobna do tej z bbcode, dodałem do theme.php w wyświetlaniu to też... Tylko coś jest niedokońca poprawnie, dlatego liczę na wskazanie |
|
|
bartek124 |
Dodany dnia 11.04.2008 20:24:10
|
Weteran Postów: 3264 Pomógł: 236 v7.02.06 Data rejestracji: 26.05.2007 12:25 |
Funkcja jest poprawna. Ale chcesz gdzieś zdefiniować te słowa, więc ja zaproponowałem przechowywać je w MySQL. Wtedy tylko sobie dodajesz słówka a one się zamieniają . Funkcja w maincore to parseubb, więc odczep Ty się od tego maincore.php . Dla newsów się zrobi w news.php . |
|
|
MeTeo |
Dodany dnia 11.04.2008 20:37:51
|
Bywalec Postów: 880 Pomógł: 23 Ostrzeżeń: 2 Data rejestracji: 14.12.2005 19:38 |
Ale ja miałem pomysł zrobić bliźniaczą funkcję do bbcode w maincore, a następnie parsenews dodać w theme.php (tak jak mój 2 post). Tylko co tam zrobiłem nie tak? |
|
|
bartek124 |
Dodany dnia 11.04.2008 20:48:34
|
Weteran Postów: 3264 Pomógł: 236 v7.02.06 Data rejestracji: 26.05.2007 12:25 |
return $text; }[/code] Daj w theme.php, przed A potem w rendernews(); zamień na: |
|
|
MeTeo |
Dodany dnia 11.04.2008 21:02:31
|
Bywalec Postów: 880 Pomógł: 23 Ostrzeżeń: 2 Data rejestracji: 14.12.2005 19:38 |
W "twoim" sposobie dodałeś tylko :D Natomiast błąd był inny ale go już rozwiązałem ;) zamiast powinno być Pozdrawiam i dziękuję za wszystko ;) |
|
|
bartek124 |
Dodany dnia 11.04.2008 21:05:05
|
Weteran Postów: 3264 Pomógł: 236 v7.02.06 Data rejestracji: 26.05.2007 12:25 |
Tych linijek nie ma w theme.php tylko news.php, a po drugie dodałem str_replace .
|
|
|
MeTeo |
Dodany dnia 11.04.2008 21:37:21
|
Bywalec Postów: 880 Pomógł: 23 Ostrzeżeń: 2 Data rejestracji: 14.12.2005 19:38 |
Ja je mam w themie Nie chce mi się bawić w justowanie w plikach news.php dlatego kod mam w theme.php i tam mam wszystkie modyfikacje |
|
Przejdź do forum: |