PHP temalar ile Nasıl başlamak için?

6 Cevap php

PHP kullanılarak geliştirilen bir web uygulaması var. Ben benim kullanıcıların uygulama boyunca kendi sayfaları için temalar seçmek istiyorum.

  • Nerede PHP temaları kullanarak önce başlamak gerekir?

Ben bir PHP uygulamasında Temalar hakkında ne bilmeliyim?

Edit:

Temalar hakkında Sorum sadece düzeni rengini değil, görüntüleri değiştirme hakkında olduğunu.

Benim ADMIN kullanıcı beyaz ve Orange olacak herhalde, ama benim personel kullanıcı beyaz ve yeşil olacak ...

Bu PHP ile yapılabilir Nasıl CodeIgniter?

6 Cevap

Eğer bu gidebilirsiniz yönde çok sayıda bulunmaktadır.

1) "CSS ZEN"

Biçimlendirme değişmeden kalır, ama tamamen sadece CSS ve görüntüleri kullanarak tasarımını değiştirmek yerdir. http://www.csszengarden.com/ çok iyi gösterdi

2) MVC StyLee

Eğer sayfa veriyi temsil eder ve sonra bazı satır içi yankı ifadeleri içeren bir görünüme, onu geçmek bir model oluşturmak yerdir. Fikir tamamen farklı, HTML ve tüm bakmak olabilir bu yüzden tamamen farklı bir görünüme aynı model göndermek olmasıdır. Kek PHP bunun için iyi bir başlangıç: http://cakephp.org/

Örnek:

<div class="content">
    <? echo $Page->Content ?>
</div>

3) Mikro-İşaretleme

Bu yöntem ile, bir HTML sayfası için kendi "özel etiketleri" ekleyin. Daha sonra düz HTML sayfası okumak ve görüntülemek istediğiniz bilgileri ile özel etiketleri değiştirin. Eğer şablonlar PHP bilmiyorum ve MVC app PHP kodu kırmak olabilir HTML çocuklar tanınabilir olmak istiyorsanız bu iyidir.

Örnek:

<div class="content">
    <#Content#>
</div>

Bütün bunların dışında, MVC ne istediğinizi elde etmenin bir çok yapısal bir yoldur - onlar sizin için uygun olabilir, belirli senaryolar için hitap olarak, ancak, ben diğer seçenekleri sıraladı.

Ben her biri için uygun olan durumlarda, tüm bu üç kavramı hayata geçirdik.

Regarding The Edit In The Question

Ben size kullanıcıyı temsil eden "bir şey" olacak hayal - bu yüzden kadar kolaydır:

(Birkaç ayarlarını geçersiz kılmak isteyen durumunda ...)

<link href="style.css" type="text/css" rel="stylesheet">
<?php if ($User->Type === USER_ADMIN) {  ?>
<link href="admin.css" type="text/css" rel="stylesheet">
<?php } ?>

Sen, aşağıdaki şekillerde bu örnek ayarlayabilirsiniz:

  • Birçok kullanıcı türleri varsa olacak bir switch deyimini kullanın
  • Değiştirme yerine sadece birkaç geçersiz kılmaları daha, toplam ise, tamamen stil takas etmek isteyebilirsiniz.

Genellikle HTML ve CSS içeren şablon dosyalarını kurmak ve zamanında PHP üretilen değerleri inşa edecek.

Buna en iyi yaklaşım tema hiçbir kod gibi sadece şablon değişkenlerini içeren, ayrı bir dizinde sahip olmaktır {mainmenu}, {backbutton}, {content} ... sen benim drift olsun. Bu daha sonra muhtemelen Smarty (burada tekerleği yeniden icat etmeye gerek yok) gibi bir şablon motoru yardımı ile, PHP komut dosyası tarafından doldurulur.

Bu sık sık, ben PHP kullanarak üzerinde bir şablon motoru kullanarak tavsiye kendim kullanmak mükemmel geçerli bir uygulama iken echo $xyz; gibi şablon dosya (lar) doğrudan PHP biçimlendirme olan yaklaşım da vardır kod biçimlendirme isterseniz sağlam, geleceğe şablon sistemi çünkü:

  • İlk olarak, HTML üzerinde çalışırken bir tasarımcı kırabilir azdır.

  • İkincisi, kod PHP biçimlendirme olan yerine düzgün bir şablon değişkenleri oluşturulan noktada in the PHP code, onları hazırlama şablonu (döngüler, koşullar) içinde PHP mantığını programlamak için bir günaha olduğunu. Tekrar every new template içine PHP çorbası çoğaltmak zorunda çünkü, bakım ve şablonları sonraki kullanım için korkunç. Sonuçta, başkalarının programlamak için bilmek zorunda kalmadan, ürün için yeni bir görünüm oluşturmak, böylece bir şablon motoru istiyorum.

  • Eğer önbelleğe eklemek için imkanınız var çiftleşmiş motoru dayalı bir yaklaşım ile, Üçüncü gerekli without any additional work. Betik yaklaşımı ile mümkün değildir. Evet, bir web application Eğer o kadar önbelleğe mümkün olmayacak, ama çok veri ile, bu kullanıcı deneyimi yardımcı olacak örnekleri olacaktır.

  • Dördüncü ve en önemli, diğer uygulamalar, ve diğer uygulamalar ithalat şablonları ihracat için şablon daha kolay hale getirir.

Sohnee tarafından bahsedilen CSS Zen yaklaşım web siteleri için harika, ama çok karmaşık giriş elemanları, JS tabanlı menüler ve benzeri kullanan bir web uygulaması için sınırlı olacak. Bu, bu elemanlar in the markup değiştirdi ve özelleştirilmiş gerekir bu çok sık değildir.

Benim de bir göz varsa CodeIgniter Template library kısaca temaları ve düzenleri (üstbilgi ve altbilgi eşdeğer) kurabilirsiniz nasıl açıklar.

Eğer böyle bir Hook ya da bir MY_Controller gibi küresel kodunu kurarsanız o zaman dinamik dayanarak tema ayarlayabilirsiniz vs kullanıcının, kullanıcı türüne, günlüğe

Örn:

if($user->role == 'admin')
{
    $this->template->set_theme('admin_skin');
}

else
{
    $this->template->set_theme($user->theme);
}

Yani bu Şablon kütüphanesi kullanabilirsiniz türden bir şey sadece bir VERY temel örnektir.

CMS Solutions

Magento ve Wordpress paketi tüm tema ilgili dosyaları kendi ayrı dizinlere. Bu serverside kodu, stil, görüntü ve tema için javaScript içerir. Yürürlükte kullanıcı sayfası dışarı koydu ve tarz nasıl etkiler hangi kullanmak için bir dizin seçer.

An easier approach

Başlamak için bir çok daha kolay bir yolu kabul etmek olacağını gerçek içeriği, örneğin Bir sayfanın HTML aynı kalmak, ancak kullanıcı çeşitli CSS stil sayfaları seçmek izin istiyorum.

Bir stil sayfası seçerken kullanıcı onlar tercih ediyor göz önizleme böylece sistem dinamik olarak yüklemek için JavaScript kullanabilirsiniz.

Eğer gerçekten iyi semantik HTML varsa CSS dosyalarını değiştirmek için yeterli olacaktır. Tasarım değişiklikleri gerçekten çok ağır olmadıkça. Vb navigasyon ya da kenar çubuğu gibi bazı HTML yapısını içeren değişkenler: Sonra modülleri çeşit ile inşa edilmiştir PHP şablonlar sağlamak mantıklı olur

Temalar için PHP gerekmez. Sadece CSS temalarınızı define (en iyi yolu, her tema için bir dosya) ve bu sitede böyle basit bir JavaScript seçiciyi kullanın: http://www.fotokluburan.cz/switchcss.js.