OJS ve OMP, HTML şablonlarını derlemek için Smarty şablonlama sistemini kullanır. Smarty, HTML şablonlarında PHP benzeri basit mantık kullanmanıza izin veren hafif bir sözdizimidir.
Ön uç, halka açık dergi veya basın web sitesi için kullanılan her şablon dosyası, uygulamanın arka ucunu, editoryal arayüzü güçlendirmek için kullanılan şablon dosyalarından ayrı tutulan özel bir dizinde bulunacaktır. Bu, arka ucu etkilemeden ön ucu daha güvenli bir şekilde özelleştirmenize olanak tanır ve özel bir tema oluşturmak için yapmanız gereken iş miktarını önemli ölçüde azaltır.
Her ön uç şablonu birkaç yerden birinde bulunabilir.
şablonlar/ön uç/
altında bulunacaktır.lib/pkp/templates/frontend
altında bulunabilir.eklentiler/temalar/<your-theme-name>/templates/frontend
altında bulunur.Bu dizinlerin her biri, belirli şablon türlerini depolayan üç alt dizine bölünmüştür.
/templates/frontend/pages
Bu dizin, uygulama tarafından çağrılan tüm üst düzey şablon dosyalarını içerir. Bu şablon dosyalarının her biri, tam bir sayfa isteğini temsil eder.
Örneğin, ana sayfaya yapılan bir istek /pages/index.tpl
dosyasını çağırır. Duyuru isteği /pages/announcement.tpl
dosyasını çağırır.
/templates/frontend/objects
Bu dizin, belirli bir veri nesnesiyle eşleşen şablon dosyalarını içerir. OJS’de bir Sayı ve Makale nesnesi için şablonlar bulacaksınız. OMP’de bir Monograph nesnesi için şablonlar bulacaksınız.
Bu şablon dosyalarının her biri, veri nesnesinin belirli bir görünümünü temsil eder. Bir Sayının içindekiler tablosunda bir Makalenin özetini görüntülemek için article_summary.tpl
dosyasını bulacaksınız. Ve bir Makalenin tam görünümünü görüntülemek için article_details.tpl
dosyasını bulacaksınız.
/templates/frontend/components
Bu dizin, belirli UI bileşenlerini işleyen şablon dosyaları veya içerik haritası gezintisi ve arama formları gibi başka yerlere sığmayan şablonlar içerir.
Varsayılan Tema, çekirdek uygulamadaki tüm şablonları kullanır. Ancak temanıza aynı ada sahip bir dosya ekleyerek sistemdeki herhangi bir şablonu geçersiz kılabilirsiniz.
Örneğin, temanızdaki /templates/frontend/pages/article.tpl
şablonunu geçersiz kılmak isterseniz, /plugins/themes/<your-theme>/templates/frontend/pages/article.tpl
‘ye bir dosya eklemelisiniz.
Bu tekniği kullanarak, yalnızca geçersiz kılmak istediğiniz belirli şablonları geçersiz kılabilirsiniz. Veya sistemdeki her bir şablonu kendi şablonunuzla değiştirebilirsiniz.
OJS veya OMP bir şablon yüklediğinde aşağıdaki sırayla arama yapar.
lib/pkp/templates/
dizini.(1)’de bir şablon bulamazsa, (2)’de arama yapar ve bu şekilde devam eder.
Bu bölüm, ön uç şablonlarının düzenlenmesini açıklar. Arka uç şablonlarını asla değiştirmemenizi öneririz, ancak bunu yapmak isterseniz, yazım arka ucunu temalandırma hakkında daha fazla bilgi edinebilirsiniz.
Her uygulama, verileri yüklemeden önce bir şablon dosyasına iletir. Her şablon dosyası, ziyaret edilen sitenin adını içeren bir $siteTitle
değişkeni alır.
<p>{$siteTitle} sitesine hoş geldiniz!</p>
Şablonlara iletilen verilerin bir kısmı, nesne ayarlarına erişmenize izin verir. $currentContext
altında güncel dergiyi bulacaksınız veya değişkenin altına basın.
<p>{$currentContext->getLocalizedName()}'a hoş geldiniz</p>
Bazı veriler belirli şablonlara özeldir. /frontend/pages/article.tpl
şablonu, o makaleyle ilgili verilere erişmek için kullanılabilecek bir $article
değişkeni alır.
<h1 class="article-title">{$article->getLocalizedTitle()}</h1>
Tüm ön uç şablonları, şablonun başlığında hangi değişkenleri kullandığı hakkında bilgi içerir. Bu bilgiyi @uses
öneki altında bulacaksınız.
{**
* templates/frontend/pages/article.tpl
*
* Copyright (c) 2014-2016 Simon Fraser University Library
* Copyright (c) 2003-2016 John Willinsky
* Distributed under the GNU GPL v2. Tüm koşullar için docs/COPYING dosyasına bakın.
* @brief Display the page to view an article with all of it's details.
*
* @uses $article Article This article
* @uses $issue Issue The issue this article is assigned to
* @uses $section Section The journal section this article is assigned to
* @uses $journal Journal The journal currently being viewed.
*}
Lütfen her değişkenin burada listelenmediğini unutmayın. Yalnızca bu şablon tarafından kullanılan değişkenler listelenir. Ancak kullanabileceğiniz birçok ortak şablon değişkeni vardır. özel verileri de yükleyebilirsiniz.