Czasami chcemy aby aggregator wyświetlał nam nie tylko tytuły najnowszych wpisów z subskrybowanego kanału RSS, ale także początek lub całą ich treść. Domyślnie aggregator Drupala wyświetla tylko nagłówki, ale za pomocą prostej modyfikacji kodu modułu aggregator możemy to zmienić.
1. Tworzymy kopię pliku /modules/aggregator/aggregator.module
2. Otwieramy wyżej wymieniony plik do edycji (oryginał)
3. Przechodzimy do funkcji theme_aggregator_block_item()
Funkcja ta znajduje się w Drupalu 7.12 w liniach 717-720 i oryginalnie ma postać:
function theme_aggregator_block_item($variables) {
// Display the external link to the item.
return \\\\'<a href="\\\\' . check_url($variables[\\\\'item\\\\']->link) . \\\\'">\\\\' .
check_plain($variables[\\\\'item\\\\']->title) . "</a>\n”;
}4. Aby wyświetlać także treść każdego elementu skorzystamy z powiązanej z nim zmiennej description:
function theme_aggregator_block_item($variables) {
// Display the external link to the item.
return \\\\'<a href="\\\\' . check_url($variables[\\\\'item\\\\']->link) . \\\\'">\\\\' .
check_plain($variables[\\\\'item\\\\']->title) . "</a>" .
check_plain($variables[\\\\'item\\\\']->description) . "\n”;
}Aby zezwolić na wyświetlanie w treści znaków html rezygnujemy z funkcji check_plain(), przetwarzającej opis elementu. Najlepiej jeżeli zastąpimy ją inną, własną, zabezpieczającą nas przed niepożądanymi elementami jak <script> etc.
function theme_aggregator_block_item($variables) {
// Display the external link to the item.
return \\\\'<a href="\\\\' . check_url($variables[\\\\'item\\\\']->link) . \\\\'">\\\\' .
check_plain($variables[\\\\'item\\\\']->title) . "</a>" .
$variables[\\\\'item\\\\']->description . "\n”;
}Możemy również skrócić wyświetlaną treść, np. stosując funkcję substr(), lub dla bezpieczeństwa drupal_substr():
function theme_aggregator_block_item($variables) {
// Display the external link to the item.
return \\\\'<a href="\\\\' . check_url($variables[\\\\'item\\\\']->link) . \\\\'">\\\\' .
check_plain($variables[\\\\'item\\\\']->title) . "</a>" .
drupal_substr($variables[\\\\'item\\\\']->description,0,100) . "\n”;
}W dalszej kolejności powinniśmy sprawdzić czy w obciętym stringu nie znajdują się niedomknięte tagi HTML oraz domknąć je lub usunąć w zależności od sytuacji. Ale to już temat na inny wpis ;)
Uwaga: Pamiętaj że aggregator.module jest modułem „jądra” Drupala, modyfikujesz go na…
Czytaj więcej!Tym razem krótko o Drupalu. Jeżeli prowadzimy na tym systemie CMS własną stronę, często chcielibyśmy aby nasz podpis (pole autor) pod newsem wyświetlał się prawidłowo. Nie ma problemów jeżeli mam krótkie imię i nazwisko - ale dla nie których może to być problem.
Jak więc zmienić długość wyświetlanego nickname, lub zablokować jego skracanie?
1. Otwieramy plik /includes/theme.inc
2. Wyszukujemy kod: (w Drupalu 7.12 są to linie od 2723 do 2726)
if (drupal_strlen($name) > 20) {
$name = drupal_substr($name, 0, 15) . "...";
}3. Aby zmienić domyślną długość odpowiednio manipulujemy odpowiednimi wartościami (powyżej 20 i 15). Jeżeli chcemy je zmieniać często możemy powyższy kod podmienić na:
$max_chars_in_name = 30;
if (drupal_strlen($name) > $max_chars_in_name) {
$name = drupal_substr($name, 0, $max_chars_in_name-3) . "...";
}
4. Jeżeli chcemy zupełnie zrezygnować z tej funkcji (nie polecam) wystarczy że zakomentujemy wszystkie wymienione linie kodu.
Uwagi: ponieważ modyfikujemy część
jądra Drupala należy zachować szczególną ostrożność. Ponadto każdorazowo po aktualizacji Drupala musimy ponawiać modyfikację.
I stało się.W Stanach Zjednoczonych udział Internet Explorera w wersji 6 spadł poniżej psychologicznej bariery 1 procenta. Co prawda jest to granica symboliczna - w Polsce udział IE 6 spadł poniżej jednego procenta już we wrześniu, a na świecie utrzymuje się cały czas na poziomie ok. 7.7%
Co to dla nas oznacza?Prawdopodobnie pociągnie to za sobą częstsze decyzje o porzuceniu wsparcia dla archaicznej przeglądarki, hamującej rozwój sieci. Decyzje takie podjęte przez twórców amerykańskich stron internetowych powinny być impulsem do wzmożonej aktualizacji przeglądarek również na naszym rynku - a co za tym idzie do całkowitego zniknięcia tej przeglądarki.
Nie jest przecież tajemnicą że serwisy, które notują największą ilość odwiedzin powstały (po za małymi wyjątkami) w USA.
I co z tego?To z tego, że webmasterzy w końcu będą mogli odpocząć od trudnego procederu utrzymywania wsparcia dla produktu sprzed dekady. Technologie pokroju idei DHTML, dzisiaj określanej szumnie nazwą następcy języka HTML 4 w czasie którego powstała idea DHTML - HTML 5 w końcu będą mogły wejść w życie.
Uzyskanie efektu
rolerover nie będzie wymagało załączenia ważącej 15 kB biblioteki dla IE6 napisanej w javascriptcie, a atrybuty typu
placeholder ułatwią nam szybkie logowanie do serwisów internetowych.
Patrząc dalej w przyszłość.Granie przez przeglądarkę w gry trójwymiarowe nie będzie już domeną flasha i pojedynczych przeglądarek wspierających znacznik
<canvas>. Webmasting i tworzenie aplikacji client-side przeżyje drugą młodość, po dość długim zastoju od czasu bumu który wybuch w chwili spopularyzowania technologi AJAX. Marzenie firmy Google o systemie operacyjnym składającym się tylko z przeglądarki - to również będzie możliwe.
Wraz z zakończeniem żywotu IE 6 bardzo prawdopodobne że rozpocznie się kolejny wyścig, dzięki któremu powyższe marzenia webmastera będą mogły zostać w końcu zrealizowane.
A na chwilę obecną?Na chwilę obecną stan udziału IE 6 w rynku przeglądarek możemy sprawdzić na stronie
www.ie6countdown.com.
Wydaje się również że skutkiem na chwilę obecną może być udostępnienie jako domyślny widoku
timeline na Facebooku - jak niektóre osoby mogły słyszeć - nie wspiera on pewnej archaicznej przeglądarki o której mowa była już w tym wpisie.
Bo webmasterowi też wolno pomarzyć...1
23