Cuma, 10 Mayıs 2013 00:00

Joomla'da kod üzerinden otomatik SEO amaçlı menü oluşturma

Yazan 
Öğeyi Oyla
(0 oy)

Joomla'da yaşadığım problemlerden bir tanesi SEO Linkleri oluşturmanın biraz zahmetli olması. Mağalesef SEO linkleri Joomla'da wordpress'de olduğu kadar esnek değil. Menü lerle istenlen seo linkleri oluşturulabiliyor. Fakat bu oldukca uzun bir zaman alıyor. Bunun yerine wordpress de olduğu gibi otomatik oluşturabilmek çok daha iyi olurdu.

Aslında joomla yapısı içinde SEO linkleride otomatik olarak oluşturulabiliyor. Fakat bu linklerde "/component/bilesenadi" şeklinde bir kısım bulunuyor. Bu kısımdan kurtulmak için bileşene bir menü bağlantısı atanabilir. Bu durumda dahi her bir görüntü (view) için ayrı bir bağlantı oluşturulması gerekiyor. Eğer bir de kategori atanması gibi bir durum varsa ve her kategorideki bulunan sayfalar içinde daha iyi seo linkleri oluşturulması gerekiyorsa işimiz gittikçe uzuyor.

Bu durumu engellemek içinse şöyle bir çözüm yolu üretilebilir. Bileşenin kendisinin kayıtlı olan tüm kategori, görüntü ve kategori elemanları için istenilen parametrelere göre otomatik menü linki atanması sağlanabilir. Buradaki menü kaydı kısmında kullanılan "alias" kısmı sayesinde de istenilen SEO linki oluşturulabilir. Aşağıda bu işi yapan kod bulunuyor

JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_menus/tables/'); 
  $menuTable =JTable::getInstance('menu', 'menusTable');
 $menuData = array(
                    'menutype' => 'client-pages',
                    'title' => 'deneme-menu',
                    'type' => 'component',
                    'component_id' => 22,
                    'link' => 'index.php?option=index.php?option='com_content&view=article&id='.$resultID,
                    'language' => '*',
                    'published' => 1,
                    'parent_id' => 'Buraya ebeveyn id gelecek',
                    'level' => 1,
            );
            // Aşağıdaki kod menü linki bilgisini veritabanı tablo yöneticisine bağlıyor.
            if (!$row->bind($menuData))
            {
                $this->setError($menuTable->getError());
                return false;
            }

            // Veri hatalara karşı kontrol ediliyor.
            if (!$row->check())
            {
                $this->setError($menuTable->getError());
                return false;
            }

            // Sonunda menü parça bilgisi veritabanına kaydediliyor.
            if (!$row->store())
            {
                $this->setError($menuTable->getError());
                return false;
            }
Okunma 470 defa Son Düzenlenme Cuma, 10 Mayıs 2013 18:59
Ufuk Yıldırım

Yazılım Geliştirme Uzmanı

Web site: www.ufuk.biz

Yorum Ekle

Gerekli olan (*) işaretli alanlara gerekli bilgileri girdiğinizden emin olun. HTML kod izni yoktur.