Türkiye'nin en kullanışlı kodcu forumu, en baba kodcular burda !

Yeni özellik: Gönderinize jsfiddle kodu ekleyebilirsiniz.
Bilgi: Bu forum Türkiye'nin en kullanışlı kodcu forumudur. Forum içerisindeki davranış ve paylaşımlarınız moderatörler tarafından izlenmektedir.
 
Kullanıcı avatarı
bertug
Üye
Üye
Mesajlar: 14
Kayıt: 01 Ara 2017, 15:03:30
x 3
İletişim:

Codeigniter template kütüphanesi (Temel Seviye)

17 Eyl 2019, 17:09:30

Başka frameworklerde var olan bir durum malesef codeigniter da bulunmamakta ve bu çok büyük bir eksiklik değil. Aslında template(şema) oluşturmanın temeli bulunuyor. Bu classın adı parser. Parser classı aracılığıyla dinamik temamızı oluşturabiliriz. İlk olarak size en temelini anlatıp sonra Parser classını kullanmayı göstereceğim. Temel yapıyı MVC yi frameworksüz kullananlar belkide daha önce düşünmüşlerdir.

Temelde amaç bir view dosyasında bütün verilerin akacağı bir yapı oluşturmaktır. Örnek olarak kodlar şu şekilde:

View dosyası "template.php":
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta name="HandheldFriendly" content="True">

    <link rel="icon" type="image/png" href="<?php echo base_url('assets/images/favicon.ico') ?>">
    <title><?php echo $title ?></title>
    <meta name="description" content="<?php echo $this -> template -> description ?>">
    <meta name="author" content="<?php echo $setting -> companyName ?>">
    <?php foreach($metaTags as $metaTag){echo $metaTag;} ?>

    <!-- ====Main Stylesheet==== -->
    <link href="<?= base_url('assets/style.css') ?>" rel="stylesheet">
<?php echo (isset($extraCSS)) ? $extraCSS : null; ?>
</head>

<body>

<?php echo $this -> load -> view('navigation'); ?>

    <?php echo $content; ?>

    <?php echo $this -> load -> view('footer'); ?>

<!-- ==== jQuery ==== -->
<script src="<?php echo base_url('assets/js/jquery.min.js'); ?>"></script>

<?php echo (isset($extraJS)) ? $extraJS : null; ?>

</body>
</html>


controller dosyası "Main.php":
public function index(){
         $data=array(base_url('assets/css/extra.css'),
                                      base_url('assets/css/custom.css')),
                    'extraJS'=>array(base_url('assets/js/anasayfa.js'),
                                     'https//baskabirsite.com/assets/js/ornek.js'),
                    'title'=>'Anasayfa',
                    'metaTags'=>array('',
                                      ''));

        $this->load->view('template',data);
}

en temelde bu şekilde bir kod düzeni veya model kullanarak daha da kendinize yönelik bir durum oluşturabilirsiniz.

Gelelim Parser classını nasıl kullanacağımıza:

controller fonksiyonunuzun içinde aşağıdaki yapıyı koyarak dataları temaya uygun yapabilirsiniz.:
$this->load->library('parser');

$data = array(
        'blog_title'   => 'My Blog Title',
        'blog_heading' => 'My Blog Heading',
        'blog_entries' => array(
                array('title' => 'Title 1', 'body' => 'Body 1'),
                array('title' => 'Title 2', 'body' => 'Body 2'),
                array('title' => 'Title 3', 'body' => 'Body 3'),
                array('title' => 'Title 4', 'body' => 'Body 4'),
                array('title' => 'Title 5', 'body' => 'Body 5')
        )
);

$this->parser->parse('blog_template', $data);


view dosyasıda şu şekilde olmalı:
<html>
        <head>
                <title>{blog_title}</title>
        </head>
        <body>
                <h3>{blog_heading}</h3>

        {blog_entries}
                <h5>{title}</h5>
                <p>{body}</p>
        {/blog_entries}

        </body>
</html>


kaynak : https://bertugfahriozer.com/blogDetail/ ... mel-seviye
0 x
Resim
:20: :21: :11: :12: :3:

Kunduz Yazılım

ben kunduz yazılım freelance çalışan ekip kurucusu bertuğ fahri özer. Sorularınızı cevaplamak ve bilgi paylaşımında bulunmaktan çok memnun kalırım.

Tags:

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir