PDA

Zobacz pełną wersję : Tytuł modułu (linkiem) i kod html



xfm
29-01-2009, 03:22
Czytając temat wątku, można od razu się domyślić, co chę osiągnąć.

Przykładowo mam moduł z ostatnimi tematami forum i chciałbym aby tytuł tego modułu np. o nazwie "Forum" był linkiem do niego. Można pójść jeszcze dalej i np. w przypadku szerokiego modułu mozna by dodać mniejszą czcionką najważniejsze działy. Próbowałem dodac w tytule kod html, jednak po zapisaniu zmian, zostawała tylko sama nazwa.

Jak coś takiego wykonać, może istnieje jakiś plugin, albo trzeba zmodyfikować kod php modułu lub coś pozmieniać w bazie danych, aby ten kod się zapisywał.

mery_master
29-01-2009, 16:03
Również kombinowałem, ale bez skutku...
Czekam razem z Tobą na pomoc...

zwiastun
29-01-2009, 16:26
Rozwiązanie jest bardzo proste....
Napisać sobie taki moduł!
:)
W czym jeszcze Wam pomóc, bo napisanie kodu modułu to trzeba by zlecać w innym dziale.

xfm
29-01-2009, 17:52
Owszem, wiem że tak można i gdy by tylko chodziło o jeden czy dwa moduły, to zapewne bym tak zrobił, a ja bym chciał znaleźć "złoty środek" dzięki któremu taka opcję można by było zastosować w dowolnym module poprzez umieszczenie np. kodu html w polu tytułu, jeszcze wspomóc to css'em i wyszłaby całkiem fajna opcja. Najlepszym przykładem są duże serwisy które stosują takie rozwiązania, ponieważ bardzo ułatwiają nawigację.

Proponuję przenieść ten temat do działu "Własne rozwiązania". Może ktoś pokusi się o napisanie pluginu, albo jeszcze inaczej. Niech ktoś wytłumaczy, co trzeba zmienić i gdzie, aby pole tematu "przyjmowało" kod html. Podejżewam że to chodzi o ustawienia w bazie danych.

zwiastun
29-01-2009, 18:29
Pole tematu (tytułu) jest polem w bazie danym liczącym maksymalnie 255 znaków (jeśli nie 100, nie chce mi się sprawdzać). Ponieważ rzeczy niemożliwych jest niewiele, więc nie twierdzę, że opracowanie takiego rozwiązania jest niemożliwe. Można by też np. wymyśleć, żeby po kliknięciu na tytuł modułu przychodził pan Google i pytał, czy podać kawę na śniadanie, czy herbatę. I też pewno da się zrobić. Jak już stworzysz to własne rozwiązanie, przeniesiemy wiadomość do własnych rozwiązań, na razie = pretendent do kosza.

xfm
29-01-2009, 18:33
Jak się chce, to się wszystko da, pozostaje tylko kwestia możliwości finansowych oraz czasowych, a tak na poważnie to wydaje mi się ze trzeba zmienić tylko typ pola w bazie danych gdzie jest przechowywany tytul modulu, ale sprawdze to juz jutro bo dzis niestety brak czasu na takie "zabiegi" i jezeli znajde rozwiazanie to napisze bo napewno komus moze sie przydac.

zwiastun
29-01-2009, 18:50
Myszkę na słonia, słonia na myszkę, rurkę na chmurkę, Joomla! na cokolwiek. W ten sposób można zmieniać wszystko. Zależy jedynie od tego czy się chce i jakie się ma możliwości.
Jeśli potrzebne tego typu niestandardowe rozwiązanie, to w kodzie nadpisującym szablon konkretnego modułu można sobie dodać, co się chce, bez zbędnego przekształcania łuku na armatę.
Sory za złośliwość, ale oczami wyobraźni widzę następną setkę podobnych "próśb" o pomoc.

Ems
08-01-2010, 14:35
Witam, rok później, bo rok później, ale
a) Natrafiłem na podobny problem;
b) Ten temat rzucił mi się w oczy jako pierwszy, po użyciu funkcji "Szukaj";
c) W temacie niestety nie znalazłem rozwiązania problemu, tylko zwyczajowe docinki i brylowanie metaforami ;);
d) Poszukałem rozwiązania i znalazłem/ opracowałem sam, publikuję, bo może komuś się przydać:

Sposób wywoływania modułów jest zarządzany w pliku "modules.php" w katalogu /templates/nazwa_templatki/html/

Wystarczy zapisać instrukcję warunkową w php: tzn. jeśli tytuł modułu == (tytuł modułu, który chcemy mieć linkiem), to niech system wyświetli go linkiem. Pozostałe moduły niech system wyświetli normalnie.

U mnie to wyglądało tak: miałem moduł "Random image plus". Tytuł modułu brzmiał: "Galeria..." Chciałem żeby kierował do strony z galerią.

W modules.php znalazłem funkcję wyświetlającą moduły:

function modChrome_jarounded($module, &$params, &$attribs)
{ ?>Tam, po instrukcjach dotyczących czegoś dziwnego (jakieś cookies, trudno stwierdzić...)

<div class="jamod module<?php echo $params->get('moduleclass_sfx'); ?>" id="Mod<?php echo $module->id; ?>">
<div>
<div>
<div>
<?php if ($module->showtitle != 0) : ?>
<?php
if(isset($_COOKIE['Mod'.$module->id])) $modhide = $_COOKIE['Mod'.$module->id];
else $modhide = 'show';
?>Wstawiłem moją instrukcję warunkową:

<?php if ($module->title == 'Galeria...'): ?>
<h3 class="<?php echo $modhide; ?>">
<span>
<a href="http://przyklady.nazwa.pl/schody/galeria">
<?php echo $module->title; ?>
</a> </span></h3>Potem - już zawartą w pliku instrukcję wyświetlania modułów oznaczyłem jako instrukcję wyświetlania pozostałych modułów (else)

<?php else: ?>
<h3 class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h3>Zakończyłem mojego "ifa"

<?php endif; ?>A potem jeszcze tego "ifa" od cookiesów i niezrozumiałych linii kodu ;)


<?php endif; ?>Zadziałało, tytuł modułu jest klikalny i prowadzi do galerii.

Pozdrawiam, mam nadzieję mój case się komuś jeszcze przyda.

zwiastun
08-01-2010, 14:53
Złośliwość złośliwością, ale gdybyś poczytał uważniej, to znalazłbyś i rozwiązanie, które właśnie zastosowałeś. W poście wcześniej napisałem:

Jeśli potrzebne tego typu niestandardowe rozwiązanie, to w kodzie nadpisującym szablon konkretnego modułu można sobie dodać, co się chce, bez zbędnego przekształcania łuku na armatę.
Nadpisywanie szablonu objaśnione jest w Bibliotece dokumentacji na www.wiki. joomla.pl (razem ze zrozumiałymi objaśnieniami kodu).

Jak byś jeszcze wrzucił to swoje rozwiązanie do FAQ na wiki, to już byłoby całkiem dobrze :)

Ems
08-01-2010, 15:45
No właśnie, fakt. O tym kodzie nadpisującym szablon, przeczytałem, i nawet chciałem się spytać co to jest, ale bałem się szczerze mówiąc... ;)

Dawno nie uzywałem wiki:
http://www.wiki.joomla.pl/Kategoria:Version_1.5_FAQ#Jak_sprawi.C4.87.2C_by_t ytu.C5.82_wybranego_modu.C5.82u_by.C5.82_linkiem.3 F

Pozdrowienia ;)

xfm
08-01-2010, 15:48
A może Ems będziesz wiedział jak wywołać bezpośrednio w kodzie szablonu moduł po jego ID?

zwiastun
08-01-2010, 17:28
@EMS - prośba:
1. Zarejestruj się na wiki
2. Załóż nowy artykuł np. pt: Tytuł modułu odnośnikiem albo
Tytuł modulu linkiem (wolę to pierwsze)
3. Przeklej doń napisany artykul
Rzecz w tym, ze wiki pamięta autorstwo i historię, a nie chciałbym sobie przypisywać nieswojego :)
Ja potem poprawię.

xfm: a po co CI to odwołanie po ID?
Możesz wywołać konkretny moduł posługując się:

<jdoc:include type="module" name="nazwa_modulu" />

Ems
11-01-2010, 17:01
Ha, chyba się udało stworzyć artykuł i przypisać go do kategorii. http://www.wiki.joomla.pl/Kategoria:Version_1.5_FAQ

Co do tego, jakiej nazwy użyć, to najlepsza jest ta, która częściej będzie wpisywana w wyszukiwarce. Google trends twierdzi, że za mało danych, żeby porównać oba słowa, więc poparcia nie mam*, ale intuicyjnie myślę, częściej będzie wpisywane "linkiem", niż "odnośnikiem". Na wszelki wypadek wstawiłem oba słowa w tytule.

Pozdrawiam

*Po angielsku, dla przykładu, google już coś może powiedzieć, częściej wpisywane jest np. słowo "link", niż "url"

http://www.google.com/trends?q=link%2C+url

zwiastun
11-01-2010, 17:17
Dzięki, popoprawiam. Walka z linkami to pewno walka z wiatrakami, już są w języku, ale ja tam uparcie będę używać polskiego łącza lub odnośnika. Jeszcze parę lat temu mało kto sobie wyobrażał, ze nie będziemy używać hiperłączy, a dziś je trudno spotkać. :)

http://wiki.joomla.pl/Tytu%C5%82_modu%C5%82u_linkiem