• 09-09-2009, 06:17:48
    #1
    Merhabalar. Php bilgim cok mukemmel degil, yani hala ogrenme safhalarindayim. 3-4 basit site yaptikdan sonra kucuk bir sistem gelistirdim. Sizlerle paylasmak istedim. Bu sistemle sitelerinizi cok daha kolay bir sekilde yapip neyin nerde oldugunu bileceksiniz. Php ye Yeni baslayanlarin isine yarar diye dusundugum icin sizlerin kullanimina sunuyorum.

    dizayn su sekilde:

    test diye bir dosya olusturun. test icindeki dosyalar:

    ##############

    index.php
    config/config.php
    template/default/index.php
    template/default/style.css
    template/default/inc/header.php
    template/default/inc/footer.php
    template/default/inc/top.php
    template/default/images/logo.gif
    template/default/functions/functions.php

    ###############


    config/config.php

    <?php
    $myurl = "/test"; // tum dosyalarin oldugu dosya
    $mytemplate = "default"; //  kullandigimiz template dosyasi
    $dbhost = "localhost"; // 
    $dbname = "database name"; // database ismi
    $dbuser = "root"; // database kullanici ismi
    $dbpass = "password"; // database sifresi
    mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error());
    mysql_select_db($dbname) or die( "Unable to select database");
    ?>

    index.php

    <?php 
    $page_title = "index sayfanin basligi"; 
    $page_keywords = "anahtar kelimeler"; 
    $page_description = "aciklama"; 
     
    define('_This_IS_not-FOR_YOU', TRUE); 
     
    include "config/config.php"; // configi getir
    include "template/".$mytemplate."/functions/functions.php"; // functionslari getir
    include "template/".$mytemplate."/inc/header.php"; // headeri getir
    include "template/".$mytemplate."/inc/top.php"; // ust menuyu getir
    include "template/".$mytemplate."/index.php"; // sayfayi getir 
    include "template/".$mytemplate."/inc/footer.php"; // footeri getir
    ?>
    template/default/inc/header.php

    <?php defined('_This_IS_not-FOR_YOU') or die('Direct access not allowed.'); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title><?=$page_title;?></title>
    <meta name="keywords" content="<?=$page_keywords;?>" />
    <meta name="description" content="<?=$page_description;?>" />
    <link type="text/css" rel="stylesheet" href="<?=$myurl;?>/template/<?=$mytemplate;?>/style.css">
    </head>
    <body>
    template/default/inc/top.php

    <?php defined('_This_IS_not-FOR_YOU') or die('Direct access not allowed.'); ?>
    <table width="800" border="1" align="center">
      <tr>
        <td align="center">top</td>
      </tr>
    </table>
    template/default/inc/footer.php

    <?php defined('_This_IS_not-FOR_YOU') or die('Direct access not allowed.'); ?>
    <table width="800" border="1" align="center">
      <tr>
        <td align="center">footer</td>
      </tr>
    </table>
    </body>
    </html>
    template/default/index.php

    <?php defined('_This_IS_not-FOR_YOU') or die('Direct access not allowed.'); ?>
    <table width="800" border="1" align="center">
      <tr>
        <td align="center">index</td>
      </tr>
    </table>
    yeni bir sayfa eklemek istiyorsaniz yapacaginiz cok kolay. diyelim help.php ekliyecegiz.

    test dosyasinin icinde help.php sayfasi olusturuyoruz.

    <?php 
    $page_title = "help sayfanin basligi"; 
    $page_keywords = "anahtar kelimeler"; 
    $page_description = "aciklama"; 
     
    define('_This_IS_not-FOR_YOU', TRUE); 
     
    include "config/config.php"; // configi getir
    include "template/".$mytemplate."/functions/functions.php"; // functionslari getir
    include "template/".$mytemplate."/inc/header.php"; // headeri getir
    include "template/".$mytemplate."/inc/top.php"; // ust menuyu getir
    include "template/".$mytemplate."/help.php"; // sayfayi getir 
    include "template/".$mytemplate."/inc/footer.php"; // footeri getir
    ?>
    template/default/ icinde help.php sayfasi olusturuyoruz.

    <?php defined('_This_IS_not-FOR_YOU') or die('Direct access not allowed.'); ?>
    <table width="800" border="1" align="center">
      <tr>
        <td align="center">help</td>
      </tr>
    </table>
    bu kadar.

    Bu sistemle sitenizi guncellemeniz cok kolay. Yeni bir template yaparsaniz sadece kodda bir kelimeyi degistirmeniz yetecek. umarim isinize yarar.

    Bazen yazdiginiz functionlarin dizaynada etki etmesinden dolayi functions.php yi template/default/functions/ dosyasinin icine dahil ettim.
  • 09-09-2009, 06:47:43
    #2
    Güzel paylaşım. Emeğine sağlık ++
  • 09-09-2009, 10:51:40
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Güzel paylaşım olmuş. Bir sayfanın nasıl kodla boğulmaması gerektiği güzel anlatılmış. Basit bir tema örneklendirmesi.

    Çoğu kişi dw gibi programlarla kolay yoldan kod yazıp tasarım ekleyebiliyor fakat 3 katlı bina yapmak zordur.

    1. kat temel kodlardan fonksiyonlardan oluşur. Sitenin işlemesini sağlar.
    2. kat temel ile tasarımı bağlayan kodlardır.
    3. kat ise sadece görünüştür.

    Teşekkür ederim. Güzel paylaşım.
  • 09-09-2009, 10:56:48
    #4
    Üyeliği durduruldu
    özellikle define kullanimlari çok güzel olmuş,
    ellerinize saglik
  • 09-09-2009, 11:16:31
    #5
    temel için basit bir template yönetim sistemi.
    ellerinize sağlık,
    bu tarz yöntemi ilerleterek tamamen bir framework oluşturursanız kendinize ilerde çok çok rahat edersiniz.
    http://anantgarg.com/2009/03/13/writ...mework-part-1/
    aşama aşama kenimize bir framework yapalım şeklinde anlatımlar var (ing)
    benimde bir faydam olsun
  • 09-09-2009, 12:40:28
    #6
    Eposta Aktivasyonu Gerekmekte
    Şimdi bişey sorcam mesala biz bu template sistemiyle yazıyoruz sistemimizi.sağda bi yere son 10 üyeyi listeleyeceğimizi farzedelim.Kodları heralde templateye koymuyoruz?
    Peki çıktıyı bir değişkene atayıp orda değişkeni mi bastırmalı yoksa fonksiyona mı koymalıyız kodları fonksiyonu mu çağırmalıyız?
    while(döngükoşulları) {
    $uyelistesi .='<div class="uyesatir">'.$uye->isim.'</div>';
    }

    şeklinde yapıp template de echo $cikti mi yapmalıyız?
    Birde template lerde şu şekilde yapsak nasıl olur?

    $template= <<<EHE
    tüm tasarım kodları divler tablolar css kodları meta kodları vs... $uyelistesi <divler vs.. $telif vs..
    EHE;
    şeklinde yapıp
    echo $template; şeklinde mi yapsak template içeriklerini?
  • 09-09-2009, 12:52:04
    #7
    Üyeliği durduruldu
    Dualwarior adlı üyeden alıntı: mesajı görüntüle
    Şimdi bişey sorcam
    ikinci soru için dediğiniz yöntem olabilir yalnız sadece sabit değerleri yazdirmak için kullanilabilir. Heredoc stili metin tanımladığınızda loop kullanma şansınız yok o açıdan yetersiz kalır.

    ilk soru için ise function kullanip her seferinde bir dizi elemani dönderecek şekilde olabilir.

    while($data = getir($handle) ){

    }
  • 09-09-2009, 12:56:02
    #8
    bana göre , template den önce işlemler / dbveri çekme vs. yapılmalı. bunlar gerekli değişkenlere alınmalı.
    daha sonra template dosyaları çağırılmalı.
    öncesinde $uyeler = .... // db den çekilip
    template ekranında foreach içinde dizi ekrana bastırılabilir.
    2. soru için fikrim ise, $template'ı öyle echo içine almaya gerek yok zannımca.
    hem uğraşması zor olur. hem karışıklığa yol açabilir. bence iyi bir fikir değil gibi.
  • 09-09-2009, 13:20:57
    #9
    Üyeliği durduruldu
    fonksiyonları bence tema dosyasının içine almak yanlış olur.Bahsettiğin mantık wordpress mantığına benziyor orda temalarda kullanmak üzere fonksiyonlar yazıp tema klasörünün içindeki functions.php dosyasından çağırabiliyorsun ama yeni başlayan biri ( benim gibi ) için fonksiyon dosyasını tema dosyası içine atmak kafa karışıklığına neden olur.Aksi halde benim kendime resmen bi framework falan oluşturup her tema için insanların (yada kendimin) ayrı fonksiyon yazabilcekleri düşüncesini edinip o fonksiyon dosyasını ayrı bir işleve sokmam gerekir.

    Şu define() kısmının amacı tam olarak nedir.İçerisinde geçen metni anlayamadım.Sanırım sayfalara direk erişimi durduruyor ama mantık olarak pek birşey anlamadım.Sabit değişkendi bir galiba demi