• 13-11-2012, 21:04:55
    #1
    Üyeliği durduruldu
    Merhaba Arkadaşlar,

    Codeigniter ile duraksadığım 2 yer oldu birden fazla konu açmak istemedim. yardım edebilirseniz sevinirim.

    1.si sınırsız sayfalama (kategori) yapıyorum id - sayfa_adi ust_id ve icerik şeklinde.
    menu de bu oluşturduğum sayfa kategorilerini şu şekilde listelemek istiyorum örnek:
    siteadi.com/kurumsal
    siteadi.com/kurumsal/hakkimizda // ile devam.
    url de id görülmeyecek örnekteki gibi.
    nasıl bu şekilde sayfa kategorilerini listeleyip link verebilirim acaba. diğer türlü url de idyi gösterek yaptım fakat öğrenmek açısından bunu soruyorum.

    2.si language - çoklu dil olayında language klasöründe gerekli dil dosyalarımı hazırladım $lang["hello"]="merhaba"; şeklinde
    link yapısı siteadi.com/en siteadi.com/tr şeklinde göstermek istiyorum controller dosyam nasıl olmalı acaba.

    Yardım edebilirseniz çok sevinirim. şimdiden teşekkürler...
  • 13-11-2012, 21:26:48
    #2
    Alıntı
    2.si language - çoklu dil olayında language klasöründe gerekli dil dosyalarımı hazırladım $lang["hello"]="merhaba"; şeklinde
    link yapısı siteadi.com/en siteadi.com/tr şeklinde göstermek istiyorum controller dosyam nasıl olmalı acaba.
    $route['en'] = 'home/index/$1';
    $route['tr'] = 'home/index/$1';

    home = controller, index = function oluyor

    bu şekilde çözüleceğini düşünüyorum.

    --

    1.soruyu tam anlamamakla beraber, uri içinde herhangi bir belirteç kullanmak istemiyorsunuz. Eğer bu şekildeyse şık olanı XHR ile yapmanız, daha az şık olanı ise post metodu ile yapmanız. Ancak post metodu ile yaparsanız sayfalama için pagination sınıfına ekstra kodlar göndermelisiniz diye tahmin ediyorum belki yanlış düşünüyor olabilirim.

    /kategori/1
    /kategori/2
    /kategori/3

    gibi linklerinizi sıralarsınız, tıklama olayı gerçekleşince javascript ile tetiklenen fonksiyon çalıştırarak istediğiniz sayfayı çağırabilirsiniz.

    Anladığım şekliyle cevap veriyorum
  • 13-11-2012, 21:33:36
    #3
    Üyeliği durduruldu
    CodeInteger bilmiyorum fakat 1. sorunun cevabi;
    Database'de verilerin tutuldugu tabloya url diye bi sutun daha ac ve oraya title'in gecersiz karakterlerden aridirilmis halini kaydeddir. (ölrnek ali-ata-kos.html , ali-ata-bin.do vs..)
    sonrasinda php ile urlden gelen degiskeni al ve e$ gelen urlye ait verileri sqlden cektir.

    Muhtemelen buraya kadar olan yerler zaten herkesce yapiliyor. Kayit esnasinda, eger ayni url varsa -1, -2, -3 vb. gibi kayit ettirmek icinde, var olan url sayisi +1 kullanabilirsin. Temiz bir kodlama yapman sart cunku karisikligin olusmasi an meselasi ve URL degistirmek bilinirki cok iyi bisey degildir. Calismaya basladiktan sonra takildigin yeri yazarsan yardimci olurum.
  • 13-11-2012, 21:46:40
    #4
    Üyeliği durduruldu
    şöyle anlatayım.

    menu de <ul><li> </li></ul> şeklinde sayfa kategorilerimi listeleyip link yapım örnek
    Kurumsal Hizmetlerimiz
    --Hakkımızda --Deneme

    Link yapısı da Kurumsal için siteadi.com/kurumsal Hakkımızda için siteadi.com/kurumsal/hakkimizda olarak göstermek istiyorum (veritabanında "sayfa" tablosunda id - ust_id - sayfa_adi - sayfa_icerik ve sef_link olarak verileri tutuyorum.)
    Sanırım bu sorum anlaşılmıştır
  • 13-11-2012, 22:12:13
    #5
    evet açıklanmış ama bir de ben yazayım. Öncelikle üst mesajımda 1.maddeyi tamamıyla görmezden gelebiliriz.

    site.com/pages/link

    diyelim ki bu adres istemci tarafından istenildi ve siz de 2.segment üstünden verilerinizi veritabanından çekiyor ona göre kullanıcıya aktarıyorsunuz.

    not : kullandığınız yazılımda $this->uri->segment(2,0); olarak alabilirsiniz.

    tablonuzda sizin yaptığınız şekilde sef_link, wordpress gibi permalink ya da permanent_link yani kalıcı bir bağlantı kolonu yapabilirsiniz.

    bu kolon içinden veriyi buluyorsunuz.

    $uri = 'hakkimizda';
    Örnek : "SELECT `content` FROM `pages` WHERE `link` = '$uri'";
    sonuç fonksiyonu ile $result['content'] elde edebilirsiniz. Yani tablonuzda yok ise ekstra bir kolona ihtiyaç duyacaksınız. Bu kolonda ise bu sayfaların (tercihen Türkçe karakter bulundurmayan) mümkün ise benzersiz verilerini tutacaksınız.

    hakkimizda, sizden-gelenler, sizden_gelenler, bize_sorun gibi haliyle depolama yapmanız gerekiyor.
  • 13-11-2012, 22:28:37
    #6
    Üyeliği durduruldu
    miscel adlı üyeden alıntı: mesajı görüntüle
    evet açıklanmış ama bir de ben yazayım. Öncelikle üst mesajımda 1.maddeyi tamamıyla görmezden gelebiliriz.

    site.com/pages/link

    diyelim ki bu adres istemci tarafından istenildi ve siz de 2.segment üstünden verilerinizi veritabanından çekiyor ona göre kullanıcıya aktarıyorsunuz.

    not : kullandığınız yazılımda $this->uri->segment(2,0); olarak alabilirsiniz.

    tablonuzda sizin yaptığınız şekilde sef_link, wordpress gibi permalink ya da permanent_link yani kalıcı bir bağlantı kolonu yapabilirsiniz.

    bu kolon içinden veriyi buluyorsunuz.

    $uri = 'hakkimizda';
    Örnek : "SELECT `content` FROM `pages` WHERE `link` = '$uri'";
    sonuç fonksiyonu ile $result['content'] elde edebilirsiniz. Yani tablonuzda yok ise ekstra bir kolona ihtiyaç duyacaksınız. Bu kolonda ise bu sayfaların (tercihen Türkçe karakter bulundurmayan) mümkün ise benzersiz verilerini tutacaksınız.

    hakkimizda, sizden-gelenler, sizden_gelenler, bize_sorun gibi haliyle depolama yapmanız gerekiyor.
    anladım . peki routes dosyamın içeriğini nasıl ayarlıyacağız hocam?
  • 14-11-2012, 00:06:35
    #7
    Üyeliği durduruldu
    bu dil eklentin hazır https://github.com/EllisLab/CodeIgni...ge-Translation

    o dediğinn olay içinde
    slug oluştur örneğin
    1.slug 'hakkimizda'
    2.slug 'deneme'.......

    routes ten al $get ile alıcaksn zaten kontrollerde routestede
    $1 birinciyi alır $2 ikinci değeri ordan ayarla

    şunuda istiyorsan misal ../hakkimizda bu $1 ama böyle istiyorsan .../hakkimizda/deneme

    deneme $2 eğer $2 değeri varsa onu al onu gönder sorguya yoksa $1 i gönder.....
  • 14-11-2012, 01:17:01
    #8
    Üyeliği durduruldu
    http://codeigniter.gen.tr/user_guide...l/routing.html
    Turkce detayli aciklama


    Alıntı
    $route['(:any)'] = "pages/$1";
  • 15-11-2012, 20:34:51
    #9
    Üyeliği durduruldu
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    sayfa içeriğini gösterdiğim controller sayfam
    function show ($id=NULL,$id2=NULL,$id3=NULL)
       	{
       			
       		
       		$this->load->model("page_model");
       		   		
       		$data_item = array
    						( 
    						 "veri"           => $this->page_model->page($id,$id2,$id3),
    						);
    						
       		
       		$this->template->view("template/page_content",$data_item);
    viewden siteadicom/kurumsal olarak link verdiğimde $id=kurumsal modele gidecek gelen verileri yazdıracak.
    siteadicom/kurumsal/hakkimizda olarak link verdiğimde $id=hakkimizda olarak görmeli ki $id yi modelden veri çekebilelim.

    ben bütün idleri gönderdim saçma oldu biliyorum fakat düzenli bir controller ve route dosyasına ihtiyacım var inceliyebileceğim.