metinseylan/perfectview

There is no license information available for the latest version (dev-master) of this package.

Laravel 4 icin layout kontrolu ve json cevaplari

dev-master 2016-01-06 19:05 UTC

This package is not auto-updated.

Last update: 2024-04-13 13:36:07 UTC


README

Not: Kullanmayın artık. (kullanışsız)

CSS, JS gibi kaynakları kolayca yönetebilir, şablonlara sınırsız alt şablon atayabilir, ajax sorgularında ek kod yazmadan json cevap verebilir, şablonlar üzerinden base html şablonuna sayfa başlığı, script ve css leri hooking edebilir ve HEAD tagları ekleyebilirsiniz

Kurulum

Laravel 4 composer.json dosyasının "require" dizisine ekleyiniz

"metinseylan/perfectview": "dev-master"

ardından komut satırına

composer update

çalıştırdıktan sonra Laravel 4 config klasörü altındaki app.php dosyasının "providers" dizisine

'MetinSeylan\PerfectView\PerfectViewServiceProvider'

ekleyin ve yine aynı dosyanın "aliases" dizisine

'PerfectView'     => 'MetinSeylan\PerfectView\Facades\PerfectView'

ekleyin ve kurulum tamamlandı.

Kullanım

Öncelikle view klasörü altına bir "base.blade.php" adında bir dosya oluşturuyoruz bu bizim olmazsa olmaz view dosyamız oluyor çağırılan bütün view dosyaları bunun üzerinden gösterilecek.

Örnek base dosyamız

<!doctype html>
<html prefix="og: http://ogp.me/ns#">
<head>
    @section('head_hook')
    <base href="@yield('base', Config::get('app.url'))">
    <meta charset="UTF-8">
    <title>{{ PerfectView::title() }}</title>
    <meta name="viewport" content="@yield('viewport', 'width=device-width, initial-scale=1')">
    {{ PerfectView::tag() }}
    {{ PerfectView::style() }}
    @show
</head>
<body>
@section('content_hook')
    {{ $content }}
@show
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
{{ PerfectView::script() }} 
</body>
</html>

Basit kullanım

return PerfectView::make("merhaba", $data);

bu örnekte merhaba adlı view şablonu base dosyamızın $content değişkeninde basılır.

Wrap Kullanımı (çerçeveleme)

return PerfectView::wrap("menu", $data)->make("merhaba", $data);

burada ise merhaba view şablonu menu şablonundaki $content değişkenine basıldı ve bu iki şablonda yine base şablonundaki $content değişkeninde gösterildi data detaylı açarsak base->menu->merhaba

Önemli wrap fonksiyonu sınırı yoktur örneğin

return PerfectView::wrap("bildirim")->wrap("ustmenu")->wrap("menu")->make("merhaba");

Ayarlamalar

herzaman base şablonu yüklemek istemeyebilirsiniz bunun için

return PerfectView::make("merhaba", $data, array('nonBase' => true));

wrap fonksiyonunu kullandınız fakat duruma göre wrap edilmiş şablonları gizleme ihtiyacı duydunuz bunun için

return PerfectView::make("merhaba", $data, array('onlyContent' => true));

Tag, Asset ve Title

base şablonu dışında diğer bütün şablonlardan asset ve tag ataması yapabilirsiniz

tag eklemek için (blade kullanıyorsanız php tagları kullanın)

PerfectView::tag('meta' => array('content' => 'içerik', 'title' => 'mesela'));

Asset Eklemek için

PerfectView::asset('js/script.js');
PerfectView::asset('css/style.css');

Sayfa başlığı eklemek için (title)

PerfectView::title('siteme hoşgeldin reyiz');

Ajax cevapları

eğer bir ajax isteği gelirse base şablonu olmadan json şeklince cevap verir örneğin

{   
    "template":"render edilmiş html",
    "title":"sayfa başlığı",
    "script":"javascript tagı",
    "style":"css tagı"
}

eğer herzaman json cevabı istemiyorsanız

return PerfectView::make("merhaba", $data, array('ajax' => false));

şeklinde kullanın

bazende json cevaplarında sadece veri istenilebilir

return PerfectView::make("merhaba", $data, array('jsonData' => true));

böylece view şablonu render edilmez ve json veri olarak sadece $data ve sayfa başlığı döndürülür

Config dosyası

vendor/metinseylan/perfectview/config/config.php altındadır.

php artisan config:publish metinseylan/perfectview

komutu ile "app\config\packages\metinseylan\perfectview" dizini altına alınabilir.

Ayarlar

'assetFolder' ile script ve css dosyalarınızın bulunduğu dizini belirtebilirsiniz

'baseView' ile base şablonunuzu belirtebilirsiniz (varsayılan "base")