Zobacz pełną wersję : mosviewonly automatycznie?
Witam, moje pytanie wygląda następująco. Czy dało by sie umieści
{viewonly=Registered, Special}tekst{/viewonly}w kodzie, a nie bezpośrednio w tekście, tak by bot sam już blokował dostęp dla grupy public do pełnej treści artykułów. Dodając dziennie po kilka naście pozycji staje sie to trochę uciążliwe, i ze trzeba to tłumaczyć każdemu nowemu redaktorowi. Jeżeli sie da to w jakim pliku trzeba to wstawić i w jakim miejscu.
Pozdrawiam.
Nikt nie ma pomysłu jak to zrobić?
Może wskazówk: Zrób z tego button pod edytorem i naucz swoich uzytkownikow iz kiedy zaczynaja pisac cos co juz jest dla zarejestrowanych/platnych klikaja na jakas ikonke i potem piszą pomiedzy kodem. Chyba najprostsze. Inna mozliwosc to krotka instrukcja jak to zrobic. W koncu jesli sa to redaktorzy to powinni sie wykazac przynajmniej podstawowym zrozumieniem tematu. ;)
Może i tak ale co z starymi artykułami? Mam ręcznie dodawać wszedzie ten kod? To pare set pozycji...
Witam,
hmmm co niektórzy zapomnieli, że treść artykułów zapisywana jest w bazie danych i można wiele zrobić za pomocą update (stare pozycje) a nawet triggerów ( po dodaniu nowego artykułu automatycznie będzie dodawać ten kod na początku i na końcu pełnej treści artykułu bez wiedzy redaktora). Jeśli to rozwiązanie pasuje - pomogę z update i triggerem.
Pozdrawiam
jolaass: Ano zapomnieli. :) Jeśli mozesz to opisz to tutaj. Niech inni tez maja pozytek. A moze temat bedzie nadawal sie do pomocy albo faq? :)
Najpierw update zapisanych pozycji.
Po odpaleniu polecenia np w phpMyAdmin wszystkie zapisane art. będą miały pełną treść artykułu pomiędzy kodem:
{viewonly=Registered, Special}pełna treść artykułu{/viewonly}Zakładam, że nagłówek tabeli to jos_.
update jos_content as a set a.fulltext=concat("{viewonly=Registered, Special}",a.fulltext,"{/viewonly}") where a.fulltext not like "%{viewonly=Registered, Special}%";Teraz trigger będzie przypisany do tabeli jos_content spowoduje, że przy każdym dodaniu artykułu automatycznie zostanie dopisany na początku i na końcu pełnego tekstu potrzebny kod jeśli nie został wstawiony podczas pisania przez uprawnioną do pisania osobę. (Dla wtajemniczonych - użyłam before update ponieważ w Joomli zapisanie treści art. dzieje się jako update a nie insert.) Konieczna jest zmiana domyślnego separatora ";" na np "|" bo utworzenie triggera nie powiedzie się (zostaną wykonane komendy tylko do pierwszego ";").
create trigger ukryty_art before update on jos_content
for each row
begin
if new.fulltext not like "%{viewonly=Registered, Special}%" then
set new.fulltext=concat("{viewonly=Registered, Special}",new.fulltext,"{/viewonly}");
end if;
end;To polecenie, tak jak każde inne polecenie sql należy odpalić np w phpMyAdmin. Od tej pory w sposób niewidoczny dla użytkownika baza danych sama dopisuje kod. Jeśli chcemy zakończyć działanie triggera ukryty_art trzeba wydać polecenie:
drop trigger ukryty_art;Pozdrawiam
crazyluki
13-05-2008, 10:21
świetne!:)
Zapomniałam tylko o jednym. Uprawnienia do tworzenia triggerów!
W poprzednich wersjach mySQL takie prawo miał tylko superadministrator!
Dobrze by było przetestować i dać pełną informację.
Ja też sprawdzę.
Dodawanie triggerów (wyzwalaczy) jest możliwe w mySQL od wersji 5.0.2.
Z tego co udało mi się ustalić to aby wykonać create trigger trzeba mieć uprawnienia root lub super do bazy danych.
W nowszych wersjach miało to zostać zmienione ale moja wiedza kończy się na tej informacji. Może jest ktoś bardziej oświecony? :)
Jolaass jak bys mogl/a? mi pomoc :) sam nie jestem zbytnio obcykany w mysql :P
gg6335278
Jolaass
Dzięki wielkie, pomogło. Mimo braku uprawnień super admina, firma hostingowa nie robiła żadnych problemów i wykonała mi zapytanie do bazy danych:).
Update artów zrobiłem sam, wszystko działa jak należy :)
Polecam to rozwiązanie :)
Przyklejcie to dla potomnych :D
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!