4 Mart 2015 Çarşamba

CodeIgniter - 2 - Template Sistemi



CodeIgniter Framework'une giriş yaptığım ilk yayını okuduysanız, CodeIgniter'da "Merhaba Dünya" yapmışsınızdır. Şimdi, çok hızlı bir şekilde yeni bir siteye giriş yapalım. Baştan başlıyoruz...

1) CodeIgniter Framework'unu indirelim. Link: CodeIgniter.com

2) Masaüstünde yeni bir klasör açalım. Adına "site.com" diyelim. İndirdiğimiz CodeIgniter klasöründeki şu dosyaları ve klasörleri, site.com adlı klasörümüze kopyalayalım:
applicationsystemindex.php

Neden diğer klasörleri almadık? Çünkü onlar site yapmak için şuan bize lazım değiller ve ders niteliğindeler.
Klasörün adına site.com dememin nedeni tamamen keyif... Siteye ulaşmak için "localhost/site.com" yazmak istediğimden... Yani "CodeIgniter'da kök klasörlerin sonuna .com gibi bir uzantı koymamız gerekiyor" diye düşünmeyin.

3) Şimdi site.com klasörümüzü, PHP kodlarımızın çalıştığı klasörümüze taşıyalım. Sitemizi localhost üzerinde kodlayacağız.

Ben XAMPP kullandığım için, bu klasör bende C:/xampp/htdocs/site.com

4) PhpMyAdmin'i kullanarak, bir MySQL veritabanı oluşturalım. Adına da sitevt diyelim.

Tarayıcınızdaki adres çubuğuna "localhost/phpmyadmin" yazarak giriyorsunuz dememe gerek yok sanıyorum. Çünkü CodeIgniter kullanıyorsanız, bu temel mevzuları biliyorsunuz demektir.

5) CodeIgniter'da veritabanı bağlantısının kurulabilmesi için, ilgili dosyada düzenleme yapmamız gerekiyor.
application/config/database.php dosyasını açın ve şu satırları düzenleyin:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root'; // MySQL kullanıcı adınız
$db['default']['password'] = '1234'; // MySQL şifreniz
$db['default']['database'] = 'sitevt'; // Veritabanı adımız

6) Sitemizin kök klasörünü de CodeIgniter'ımıza göstermemiz gerekiyor.
application/config/routes.php dosyasını açın ve şu satırı düzenleyin:

$route['default_controller'] = 'anasayfa';

Bunu yaptık, çünkü siteye girildiğinde varsayılan olarak açılacak sayfamızın anasayfa adındaki sayfamız olmasını istiyoruz.

Şimdi de kök klasörümüzü CodeIgniter'a göstermek için şu dosyayı açın:
application/config/config.php ve şu satırı düzenleyin:

$config['base_url'] = 'http://localhost/site.com/';

7) Böylelikle, 6 adımda kurulumumuzu tamamladık. CodeIgniter'ı indirip, dosyalarını kök klasörümüze taşıdık. database.phproutes.php ve config.php dosyalarında düzenleme yaptık. Bir de sitevt adında veritabanı oluşturduk. Kurulumun son adımı olarak, site.com klasörümüzün içine bir .htaccess dosyası oluşturalım ve o arama motorlarının sevdiği link yapısını kullanmamıza olanak sağlayacak şu kodları yazalım:

RewriteEngine on
RewriteCond $1 !^(index\\.php|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

Artık sayfalarımızı oluşturmaya başlayabiliriz:

application/controllers/ klasörüne anasayfa.php adlı dosyamızı oluşturuyoruz ve içine şunları yazıyoruz:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class anasayfa extends CI_Controller
{
    public function __construct() { parent::__construct(); }

    public function index()
    {    
        $this->load->view('anasayfa_view');
    }
}

Bunlar nedir?
İlk satırda bir if koşulu görüyoruz. Bu, sayfaya direkt erişimi engelleyen bir kod.

class anasayfa dediğimizde, anasayfa adında bir class oluşturmuş oluyoruz.

extends CI_Controller dediğimizde, "bu clasım, CI_Controller adlı class'ın özelliklerini de taşısın" demiş oluyoruz. Sonra { ... } arasında, class'ımızın elemanlarını yazıyoruz.

public function __construct() { ... } dediğimizde, anasayfa'ya girildiğinde ilk çalışacak kodları belirliyoruz.
Bunun nesne tabanlı programlamada farklı bir açıklaması var elbet. Ama ben CodeIgniter'ın düşünme mantığında daha temel bilgi vermeye çalışıyorum.

parent::__construct(); dediğimizde, miras alınan class'ın (CI_Controller) kurucu metodunun (function __construct() {...}) içindeki kodların çalıştırılmasını istiyoruz. (Bu işlemi şuan yapmamız gerekmiyordu aslında ama, biz bunu bir alışkanlık olarak yapalım...)

public function index() {...} dediğimizde, anasayfa'ya ulaştığımızda ve herhangi bir parametre göndermediğimizde çalışacak kodları yazıyoruz. Yani "localhost/site.com/anasayfa" ile anasayfa'mız çağırılırsa, bu fonksiyon işletilecektir. Ama örneğin "localhost/site.com/anasayfa/islem" dediğimizde, anasayfa class'ımızdaki islem() adlı fonksiyon çalışacaktır. (Evet, böyle bir fonksiyon oluşturmadık.)

$this->load->view('anasayfa_view'); dediğimizde, anasayfa'ya girildiği zaman görüntülecek view sayfasınının yüklenmesini istiyoruz.

View dosyası nedir? Bizim şuan üzerinde çalıştığımız anasayfa adlı class'ımızı controllers adlı klasöre atmıştık. Controller, siteyle ilgili programatik işlerin yapıldığı kısımdır. Buraya (mecbur kalmadıkça) HTML kodu yazmayız. View ise, HTML kodlarının bulunduğu, mümkün olduğunca az PHP kodu barındıran sayfadır. Bir controller olan anasayfa sayfası ile, bir view olan anasayfa_view sayfasının birbiriyle ilişkisi budur. Burada amaç, HTML kodlamayla PHP kodlamayı ayırmaktır. Böylece site üzerindeki kontrolümüz artar. Ekip çalışmasına daha uygun bir yapımız olur. Bu yapıya MVC mimarisi denir. (Model View Controller) "Model nedir?" diye merak ederseniz, orası da veritabanı işlemlerinin yapıldığı kısımdır diyebilirim. Onu da oluşturacağız ve adına anasayfa_model diyeceğiz. Böylece asıl işi yapan kodlarımızla veritabanı kodlarımız da birbirinden ayrılmış olacak.

Tüm bu sistemin merkezinde, bu ilk oluşturduğumuz anasayfa adlı controller vardır. Tarayıcıya "localhost/site.com/anasayfa" dediğimizde, CodeIgniter bizim için bu anasayfa adını alır. İlk iş olarak böyle bir controller var mı diye bakar. (Eğer anasayfa.php adındaki bir dosyada anasayfa adlı bir class bulamazsa, bir hata sayfasına yönlenir.) Bu controller, model'deki dosyadan veritabanı sorgularından dönen sonuçları çeker. Bunlar üzerinde kodladığımız işlemleri yapar ve görüntülemesi için view'daki dosyaya gönderir. Neyse, artık kodlarımıza dönelim...

8) anasayfa adlı controller'ımız, anasayfa_view adlı bir view dosyası çağırıyordu. Şimdi bunu oluşturalım. application/views/ klasörü altına anasayfa_view.php adlı bir dosya oluşturalım ve burada istediğimiz gibi bir HTML sayfa kodlayalım. Şimdilik sayfanıza resim koymayın ve css'inizi sayfa içinde, <style></style> tagları arasında yazın. Dosya yolu belirtmekle ilgili durumu daha sonra anlatacağım.

"Bu dosya adına _view diye yazmak mecburi mi?" diye sorabilirsiniz. View dosyaları için böyle bir mecburiyet yok. Ama daha anlaşılır olması açısından, böyle bir alışkanlık kazanmakta fayda var. (Model dosyalarında anasayfa_model.php şeklinde yapmak mecburi bir durum bu arada... Ön bilgi olsun.) Diğer bir önemli durum da, daha önce yaşadığım bir sorunla ilgili: Dosya adları küçük harfle başlamak zorunda mı? Hayır. Ama bazı durumlarda sorun oluşabiliyor. Bazen localhost'ta düzgün çalışmasına rağmen, sunucuya attığımızda çalışmayan sayfalarımız olabiliyor bu yüzden. Haliyle benim önerim, dosya adlarınızın (özellikle de varsayılan açılış sayfası olan dosyanın controller dosyasının ve class adının) küçük harfle başlamasını öneriyorum.

Şimdi anasayfa_view.php dosyamızda HTML bir sayfa tasarladığımıza göre, ilk sayfamızı tasarladık demektir. Ana Sayfa'mıza ulaşmak için tarayıcımızı açıp "localhost/site.com" yazalım ve varsayılan sayfa olarak anasayfa_view.php dosyamızın görüntülendiğini görelim. Bu sayfaya ayrıca "localhost/site.com/anasayfa" yazarak da ulaşabiliyoruz. Link yapısı, gördüğünüz gibi, .php gibi bir uzantı barındırmıyor. Bunu bize .htaccess dosyamız sağladı.

9) Şimdi bir template sistemine geçelim. Amacımız, tasarladığımız sayfadaki üst ve alt alanları (her sayfada aynı olacak alanları) başka dosyalara kaydetmek... Diyelim ki anasayfa_view.php dosyamızda şöyle bir HTML tasarım yaptınız:

<!DOCTYPE HTML>
<html lang="tr-TR">
<head>
    <meta charset="UTF-8">
    <title>Başlık</title>
    <meta name="description" content="Açıklama" />
    <meta name="keywords" content="anahtar kelimeler" >
    <meta name="reply-to" content="emrebuyukdurmus@gmail.com" />
    <meta name="designer" content="Emre BÜYÜKDURMUŞ" />
</head>
<body>

<header>    
    <nav>
        <a href="anasayfa">AnaSayfa</a>
        <a href="hakkimda">Hakkımda</a>
        <a href="referanslarim">Referanslarım</a>
        <a href="iletisim">İletişim</a>
    </nav>
</header>

<section id="content">
    Ana Sayfa'ya Merhaba
</section>

<footer>
    CodeIgniter Dersi
</footer>

AnaSayfa için yaptığınız bu tasarımda, aslında AnaSayfa'ya özel olan kısım sadece "Ana Sayfa'ya Merhaba" yazılı kısım. Gerisi, her sayfada aynı olacak kodlamalar. Peki bunu CodeIgniter'da nasıl yaparız?

application/views/ klasörü altına template adında bir klasör açın ve onun da içine header.php ve footer.php adında iki dosya oluşturun. anasayfa_view.php dosyanızdaki "Ana Sayfa'ya Merhaba" yazılı kısmın üstündeki her şeyi kesin ve header.php dosyasına yapıştırın. Altındaki kısımları da kesin ve onları da footer.php dosyasına yapıştırın. Böylece anasayfa_view.php dosyanızda yalnızca "Ana Sayfa'ya Merhaba" yazısı kalacak.

Şimdi bu header ve footer kısımlarını sayfaya çağırması için, controller'ımıza başvuruyoruz. application/controllers/anasayfa.php dosyasını tekrar açın ve index() fonksiyonunun içini şu şekilde düzenleyin:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class anasayfa extends CI_Controller
{
    public function __construct() { parent::__construct(); }

    public function index()
    {
        $this->load->view('template/header');  
        $this->load->view('anasayfa_view');
        $this->load->view('template/footer');
    }
}

Şimdi yeniden tarayıcınızı açın ve yine "localhost/site.com"a girin. Hiçbir şey değişmediyse, başardık demektir. Şimdi kafanızda bazı sorular vardır: "Ben başka dosyaları sayfama çağırmak için nasıl yol belirteceğim?", "Ben başka bir sayfayı oluşturup, ona ne yazarak link vereceğim?", "Ben controller'da yaptığım kodlamalarla oluşturduğum verileri view dosyasına nasıl iletebileceğim?"... Bunlara sırasıyla cevap verelim...

10) Başka sayfalara link vermekle ilgili (başlangıçta) bir sorun yaşayacağınızı zannetmiyorum. Ama şuanki url yapımızda şöyle bir sistem işliyor:

site.com/controller-class-adi/fonksiyon-adi/parametre

Yani url'de, site.com/anasayfa/liste/1 dediğimizde, anasayfa controller'ındaki liste fonksiyonuna parametre olarak 1 değerini göndermiş oluyoruz.

Yani url'de site.com/anasayfa/liste dediğimizde, anasayfa controller'ındaki liste adlı parametre almayan fonksiyonu çalıştırmış oluyoruz.

Ancak tarayıcımız bu / kullanımını ek iyi anlayamıyor. Yani anasayfa klasörü altındaki liste klasörü altında zannedebiliyor kendini. Haliyle o sayfada bir linke tıklamaya kalktığınızda, linki anasayfa klasörünün altında arıyor ve saçmalıyor. Bu durumun önüne geçmek için, her link'in yolunu tam olarak vermek gerekiyor. Yani mesela hakkimda sayfasına erişmek istiyorsak linkimiz şöyle olmalı:

<a href="http://localhost/site.com/hakkimda">Hakkımda</a>

Ama bu işkence! Hele ki eğer siteyi sunucuya taşırsak, bütün linkleri de buna göre değiştirmemiz gerekecek! Neyse ki biz kurulum sırasında (6.adımda) sitenin kök klasörünü CodeIgniter'a belirtmiştik. Yani yukarıdaki linki şu şekilde de yazabiliyoruz:

<a href="<?=base_url()?>hakkimda">Hakkımda</a>

base_url(), codeigniter'ın bize kök klasörün yolunu string olarak döndüren bir fonksiyonudur. Ama şunu söyleyebilirsiniz: "Ama ben her link verişimde bunu mu yazacağım? Kodlamam karmaşıklaşmaz mı?"

HTML'in bu konuda bize sunduğu diğer bir çözümü de kullanabilirsiniz. Biz de tam olarak o çözümü kullanacağız. application/view/template/header.php sayfasını açalım ve <head></head> tagları arasında bir yere şu satırı ekleyelim:

<base href="<?=base_url()?>" />

Böylelikle HTML kodlarımız tarayıcıya diyor ki, gördüğün her yolun başına base_url()'i yaz. (Bunun CodeIgniter'la ilgisi yok tabii ki. <base /> tagı bir HTML kodudur.)

Şimdi linklerimizi şu şekilde kullanmamızda hiçbir sakınca yok:
<a href="anasayfa">AnaSayfa</a>
<a href="hakkimda">Hakkımda</a>

11) Resimlerimizi, CSS dosyalarımızı, JS dosyalarımızı vs. nerede tutacağız ve nasıl yol göstereceğiz?
MVC mimarisinde genellikle şöyle bir yöntem vardır. Kök klasörde bir index.php dosyası olur. Model, View ve Controller altındaki dosyalar, url yapısına bakılarak bu index.php dosyasına include edilir. Böylelikle her şey aslında kök klasörde çalışıyormuş gibidir. Haliyle yollar da buraya göre verilmelidir. CodeIgniter da MVC mimarisini kullandığına göre, benzer bir sistemle çalışıyor. Ama biz 10.adımda yaptığımız işlem sayesinde, bunları umursamak zorunda değiliz. Herhangi bir yol belirtirken dikkat etmemiz gereken tek şey, kendimizi hep kök klasörde varsaymamızdır.

Şimdi kök klasörümüzün (site.com klasörünün) içine, assets adlı bir klasör açalım. (assets dememizin bir anlamı yok. "varlıklar" anlamına geliyor. Siz bu klasöre istediğiniz bir ad verebilirsiniz.)

Bu klasörün içine şu klasörleri oluşturalım: imagescssjs

images klasörü altına resimlerimizi, css klasörü altına stil dosyalarımızı... Sistemi anladınız. Örnek verelim. anasayfa_view.php dosyamızda bir resim yolu belirtmek istiyoruz:

<img src="assets/images/1.jpg" />

header.php dosyamızda, bir CSS dosyasını sayfamıza çağırmak istiyoruz:

<link href="assets/css/style.css" rel="stylesheet" />

footer.php dosyamızda, JS dosyalarını çağırmak istiyoruz:

<script src="assets/js/jquery-1.10.4.min.js"></script>

12) Peki controller'daki bir değişkeni view'a nasıl iletiriz? Mesela model dosyamız yardımıyla veritabanından veri çektik. Bu veri de sayfanın title, description ve keywords verilerini içeriyor. Bunları view dosyasına iletmemiz gerekir. Biz şimdi model dosyası kullanımına girmediğimiz için, sanki model'den verileri çekmişiz gibi yapıp, değişkenlere değerler vereceğiz ve bunları view dosyamızda kullanacağız. anasayfa adlı controller'ımızın dosyasını (anasayfa.php) açın ve şu değişiklikleri yapın:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class anasayfa extends CI_Controller
{
    public function __construct() { parent::__construct(); }

    public function index()
    {
        $data['title'] = 'Site Başlığı';
        $data['description'] = 'Açıklama kısmı';
        $data['keywords'] = 'anahtar kelimeler 1, anahtar kelimeler2, ...';

        $this->load->view('template/header', $data);  
        $this->load->view('anasayfa_view');
        $this->load->view('template/footer');
    }
}

$data adlı bir dizimiz var. (değişken adına data demek zorunda değiliz) Bu diziyi, göndermek istediğimiz view dosyasının olduğu fonksiyona ikinci parametre olarak ekledik. Artık header.php dosyamızda, $data dizisindeki değerleri kullanabiliriz. Hem de nasıl...

header.php'yi açın ve şu şekilde değiştirin:

<!DOCTYPE HTML>
<html lang="tr-TR">
<head>
    <meta charset="UTF-8">
    <title><?=$title?></title>
    <meta name="description" content="<?=$description?>" />
    <meta name="keywords" content="<?=$keywords?>" >
    <meta name="reply-to" content="emrebuyukdurmus@gmail.com" />
    <meta name="designer" content="Emre BÜYÜKDURMUŞ" />
</head>
<body>

<header>    
    <nav>
        <a href="anasayfa">AnaSayfa</a>
        <a href="hakkimda">Hakkımda</a>
        <a href="referanslarim">Referanslarım</a>
        <a href="iletisim">İletişim</a>
    </nav>
</header>

<section id="content">

Gördüğünüz gibi, dizilere indis olarak verdiğimiz değerler değişkene dönüştüler ve bu değişkenleri view dosyamızda dilediğimizce kullanabiliyoruz.
Bu arada yazmama gerek var mı bilmiyorum ama bilmeyen varsa katkı olur:
<?=$title?> demekle, <?php echo $title; ?> demek aynı şeydir.

13) Geldik, en merak ettiğiniz konuya. Aslında artık kafanızda bi'şeyler şekillenmiştir ama yine de bir örnek yapmakta fayda var: Varsayılan sayfadan başka bir sayfa oluşturmak!

Hemen başlayalım. Ana Sayfa için yaptığımız işlerin aynılarını şimdi Hakkımda sayfası için yapacağız.

controllers klasörüne gidin ve hakkimda.php dosyası oluşturun. Sayfaya şunları yazın:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class hakkimda extends CI_Controller
{
    public function __construct() { parent::__construct(); }

    public function index()
    {
        $data['title'] = 'Hakkımda';
        $data['description'] = 'Hakkımda açıklaması kısmı';
        $data['keywords'] = 'anahtar kelimeler 1, anahtar kelimeler2, ...';

        $this->load->view('template/header'$data);  
        $this->load->view('hakkimda_view');
        $this->load->view('template/footer');
    }
}

Şimdi de views klasörüne gidin ve hakkimda_view.php dosyası oluşturun. Sayfaya şunu yazın:

<h1>Burası Hakkımda Sayfası!</h1>

Bitti. (: Bu dersimizde CodeIgniter'a hızlıa giriş yaptık ve bir template sistemi oluşturduk. Şuan istediğiniz kadar sayfa oluşturabilirsiniz. Şimdi merak ettiğiniz iki konu vardır muhtemelen:
"Ben veritabanından nasıl veri çekebilirim ve veri ekleyebilirim?"
"Ben sayfama nasıl parametre gönderebilir ve bu parametreyi işleyebilirim?"

Veritabanı konusunda şuanlık veritabanı oluşturmak ve config/database.php dosyasını düzenlemekten başka bir şey yapmadık. Bu konuya büyük ihtimalle sıradaki yazımda değineceğim.

Diğer mevzudaysa, teorik olarak bir açıklama yapayım. Siz deneyerek öğrenin.
hakkimda.php dosyasındaki controller class'ımız içinde, index() fonksiyonundan sonra, deneme() fonksiyonu oluşturun ve bu fonksiyon, isteğe bağlı parametre alabilen bir fonksiyon olsun:
public funcion deneme($parametre = 0) { ... }

Bu fonksiyonun içine, index() fonksiyonundaki kodları aynen yazın. Yalnızca title'ın değerini, değişikliği görebilmek için değiştirin:
$data['title'] = "Sayfa ".$parametre;

Şimdi tarayıcınıza "localhost/hakkimda/deneme" yazarsanız, sayfanızın başlığının "Sayfa 0" olarak değiştiğini görürsünüz. "localhost/hakkimda/deneme/55" yazarsanız, sayfanızın başlığının "Sayfa 55" olarak değiştiğini görürsünüz...



ÖZET


Anlatım buraya kadar. Çok uzundu ve gözünüzü korkuttu mu? O halde, bu adımları teorik anlatımları çıkararak özetleyelim:

1) CodeIgniter Framework'unu indirelim. Link: CodeIgniter.com

2) Masaüstünde yeni bir klasör açalım. Adına "site.com" diyelim. İndirdiğimiz CodeIgniter klasöründeki şu dosyaları ve klasörleri, site.com adlı klasörümüze kopyalayalım:
applicationpublicsystemindex.php

3) Şimdi site.com klasörümüzü, PHP kodlarımızın çalıştığı klasörümüze taşıyalım.
Ben XAMPP kullandığım için, bu klasör bende C:/xampp/htdocs/site.com

4) PhpMyAdmin'i kullanarak, bir MySQL veritabanı oluşturalım. Adına da sitevt diyelim.

5) application/config/database.php dosyasını açın ve şu satırları düzenleyin:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root'; // MySQL kullanıcı adınız
$db['default']['password'] = '1234'; // MySQL şifreniz
$db['default']['database'] = 'sitevt'; // Veritabanı adımız

6) application/config/routes.php dosyasını açın ve şu satırı düzenleyin:

$route['default_controller'] = 'anasayfa';

7) application/config/config.php dsoyasını açın ve şu satırı düzenleyin:

$config['base_url'] = 'http://localhost/site.com/';

8) site.com klasörümüzün içine bir .htaccess dosyası oluşturalım ve şu kodları yazalım:

RewriteEngine on
RewriteCond $1 !^(index\\.php|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

9) Kök klasöre (site.com) assets adlı bir klasör oluşturalım. İçine de imagescssjs adlı klasörler oluşturalım. Kullanmak istersek bulunsunlar...

9) Artık sayfalarımızı oluşturmaya başlayabiliriz: application/controllers/ klasörüne anasayfa.php adlı dosyamızı oluşturuyoruz ve içine şunları yazıyoruz:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class anasayfa extends CI_Controller
{
    public function __construct() { parent::__construct(); }

    public function index()
    {
        $data['title'] = 'AnaSayfa Başlığı';
        $data['description'] = 'Açıklama kısmı';
        $data['keywords'] = 'anahtar kelimeler 1, anahtar kelimeler2, ...';

        $this->load->view('template/header', $data);
        $this->load->view('anasayfa_view');
        $this->load->view('template/footer');
    }
}

10) application/views/ klasörüne template klasörü ekleyin. İçine de header.php dosyası oluşturup şunları yazın:

<!DOCTYPE HTML>
<html lang="tr-TR">
<head>
    <meta charset="UTF-8">
    <title><?=$title?></title>
    <meta name="description" content="<?=$description?>" />
    <meta name="keywords" content="<?=$keywords?>" >
    <meta name="reply-to" content="emrebuyukdurmus@gmail.com" />
    <meta name="designer" content="Emre BÜYÜKDURMUŞ" />
    <link href="assets/css/style.css" rel="stylesheet" />
</head>
<body>

<header>    
    <nav>
        <a href="anasayfa">AnaSayfa</a>
        <a href="hakkimda">Hakkımda</a>
        <a href="referanslarim">Referanslarım</a>
        <a href="iletisim">İletişim</a>
    </nav>
</header>

<section id="content">

11) application/views/template klasörü içine de footer.php dosyası oluşturup şşunları yazın:

</section>
<footer>Burası footer alanı</footer>
<script src="assets/js/kodumunscripti.js"></script>
</body>
</html>

12) application/views klasörüne anasayfa_view.php adlı bir dosya oluşturun ve içine şunu yazın:

<h1>Ben AnaSayfa'yım!</h1>

13) application/controllers/ içinde anasayfa.php dosyasını kopyalayıp yapıştırın ve adını da hakkimda.php yapın. Sonra bu dosyayı açıp, anasayfa yazan her yeri hakkimda olarak değiştirin.

14) application/views/ klasörü altındaki anasayfa_view.php dosyasını da kopyalayıp yapıştırın ve adını da hakkimda_view.php olarak değiştirin. İçeriğini de şu şekilde yazın:

<h1>Ben Hakkımda Sayfasıyım</h1>

Yeni yayınlarımda görüşmek üzere... Yorumlarınızı, isteklerinizi ve fark ettiğiniz hatalarla ilgili bilgilendirmelerinizi bekleriz. :) İyi günler.

6 yorum:

  1. teşekkür etmemek hakaret olur bence.teşekkurler sağolun ilgiyle takip etmekteyim.

    YanıtlaSil
    Yanıtlar
    1. Yorumunuz için teşekkür ederim. Faydalı olabiliyorsam ne mutlu bana. :)

      Sil
  2. Teşekkürler, Şenola katılıyorum, elinize sağlık..

    YanıtlaSil
  3. Template sistemini anlatmışsınız emeğinize elinize sağlık. Yalnız template sistemlerinde bu kadar sayfa olur mu tartışılabilir. Bence sayfa adı, eklenti ve diğer içerikleri de aktaran daha profesyonel bir şekilde tasarlanabilir. Fikir verici bir paylaşım olmuş ama daha geliştirilmeli diye düşünüyorum. Saygılar

    YanıtlaSil
    Yanıtlar
    1. Kesinlikle daha profesyonel yöntemler kullanılabilir. Kod kalabalığı azaltılabilir. Bu işlemler için helper'lar yardımcı olabilir. Vaktim olsa bi'şeyler yazacağım ama...
      Yorum için teşekkür ederim.

      Sil
  4. Mg slots online: Review, Ratings, Games & Casinos - Dr
    Here at DRM we are looking at the most popular 제주 출장안마 slot machines 안성 출장안마 online. In our guide you can see how to get this casino online to 부산광역 출장샵 help you 밀양 출장안마 find the best 오산 출장마사지 slot

    YanıtlaSil

Site Haritası

CodeIgniter Yayınları 1. Merhaba Dünya : CodeIgniter'da Merhaba Dünya yazısını görün... 2. Template Sistemi : CodeIgniter ile sta...