PAYLAŞ
Joomla için az okunanlar modülü hazırlamak

Joomla! Çok Okunanlar Modülünü bir çok yerde kullanıyor, farklı gösterimler ya da farklı kategoriler için kopyalayabiliyoruz. Bu bizim senelerdir en çok kullandığımız içerik modüllerinden biri. Halbuki durup şöyle bir düşünürsek Çok Okunan içerik modülü bizim ne tür bir işimize yarayabilir ? Belki çok dinamik bir içerik yapısına sahip değilsek, ziyaretçilerimizin ilgisini en çok çeken içerik öğelerinin bir başkasının da ilgisini çekme ihtimalinin yüksek olacağını düşünebiliriz.

Joomla! Çok Okunanlar Modülünü bir çok yerde kullanıyor, farklı gösterimler ya da farklı kategoriler için kopyalayabiliyoruz. Bu bizim senelerdir en çok kullandığımız içerik modüllerinden biri. Halbuki durup şöyle bir düşünürsek Çok Okunan içerik modülü bizim ne tür bir işimize yarayabilir ? Belki çok dinamik bir içerik yapısına sahip değilsek, ziyaretçilerimizin ilgisini en çok çeken içerik öğelerinin bir başkasının da ilgisini çekme ihtimalinin yüksek olacağını düşünebiliriz.

Ancak ne var ki günümüzde sitelerin içeriği genelde hareketli. Bolca güncellemeler yapılıyor, yeni içerik öğeleri ile siteler daimen zengin ve güncel tutulmaya çalışıyor. Eh ne de olsa Google hakkında bazı şeyleri hepimiz biliyoruz. Aslında yine Google açısından düşündüğümüzde bizim zaten çok okunan değil, tercih edilmeyen ya da gözden kaçmış içeriğimizi önplanda tutabilmemiz daha büyük önem taşıyor. Eğer siteniz bir çöp site değilse ve ziyaretçileriniz biraz olsun sitenizde geziniyor, arama yapıyorsa onlara az okunan içeriğinizi sunmanız sitenizin istatistiklerindeki olumlu etkiyi arama motorlarına yansırmak için de iyi olacak. Bunun için önerim bir Az Okunanlar Modülü oluşturmanız. Bunu yapmak çok basit. Hemen Joomla! dizininizi ftp aracınız vasıtasıyla açın. modules/mod_mostread/helper.php dosyasında şunu bulun:

 
//Content Items only
$query = 'SELECT a.*,' .
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
' FROM #__content AS a' .
' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' .
' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
' WHERE ( a.state = 1 AND s.id > 0 )' .
' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' .
' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'.
($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
($catid ? $catCondition : '').
($secid ? $secCondition : '').
($show_front == '0' ? ' AND f.content_id IS NULL' : '').
' AND s.published = 1' .
' AND cc.published = 1' .
' ORDER BY a.hits DESC';
$db->setQuery($query, 0, $count);
$rows = $db->loadObjectList();

Daha sonra bunun sonlarına doğru göreceğiniz sıralama belirleyici kısmını DESC yerine ASC şeklinde değiştirin. Yani şimdi şöyle olmuş olmalı:

 
//Content Items only
$query = 'SELECT a.*,' .
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
' FROM #__content AS a' .
' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' .
' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
' WHERE ( a.state = 1 AND s.id > 0 )' .
' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' .
' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'.
($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
($catid ? $catCondition : '').
($secid ? $secCondition : '').
($show_front == '0' ? ' AND f.content_id IS NULL' : '').
' AND s.published = 1' .
' AND cc.published = 1' .
' ORDER BY a.hits ASC';
$db->setQuery($query, 0, $count);
$rows = $db->loadObjectList();

Az Okunanlar modülünüzü güle güle kullanın. Artık modülünüz en az okunan içeriğinizi listeleyecek.