2014-12-15 16 views
5

Da ciò che raccolgo su Internet e in parte dai documenti è che una struttura a tema come segue è raccomandata.Struttura di directory del tema in calcestruzzo5

/css 
/fonts 
/img 
/includes 
/js 
/default.php 
/main.css 
/thumbnail.png 
/typography.css 
/view.php 

Le mie domande sono:

  • Can main.css e typography.css risiedono in /css? Mi piace il mio css ordinatamente organizzato
  • Puoi usare php include che fanno riferimento a una directory nel tuo tema? Ad esempio, in default.php, puoi avere qualcosa come <?php require_once echo $this->getThemePath() . "/includes/footer.html"; ?>?
  • echo $this->getThemePath() fa riferimento alla cartella tema corretta quando viene utilizzata su file in sottodirectory (come my-theme/includes/footer.php)?

risposta

2

In breve: È possibile strutturare la mappa tematica principalmente come si desidera. Tranne per default.php, view.php, description.txt e thumbnail.png. Il nome e la posizione di typography.css possono essere modificati, ma ho trovato solo un sorgente per la versione 5.6. Nella versione 5.7 typography.css non è più usato perché il wysiwyg-editor è cambiato. Tuttavia, è possibile aggiungere stili personalizzati al nuovo editor WYSIWYG.

risposta completa
Esempio cartella del tema:

css (css folder) 
js (javascript folder) 
img (or images) 
elements (php files that I want to include) 
view.php 
default.php 
thumbnail.png 
description.txt 

Il thumbnail.png, description.txt, view.php (per pagine singole) e default.php bisogno di essere direttamente sotto la cartella del tema .

Negli elementi della mappa creo un header.php e footer.php (ma se necessairy si può mettere più file lì, come un sidebar.php o qualcosa di simile)
per collegarsi al header.php e piè di pagina .php, ho posto questo codice nel default.php e view.php alla linea corretta:

//version 5.6 and below 
$this->inc('elements/header.php'); 
$this->inc('elements/footer.php'); 

//version 5.7 and higher 
$view->inc('elements/header.php'); 
$view->inc('elements/footer.php'); 

la funzione inc() in concrete5 è stata fatta appositamente per includere elementi che è per questo che preferisco usare che invece della normale funzione include di php. Ecco un esempio di default.php: http://pastie.org/9784547

Nel mio header.php e/o footer.php si vorrebbe aggiungere css e js personalizzati. Per fare questo è possibile utilizzare questo codice:

//version 5.6 and below 
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getThemePath() ?>/css/main.css" /> 
<?php echo '<script src="'.$this->getThemePath().'/js/concrete.js"></script>'; ?> 

//version 5.7 and higher 
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $view->getThemePath() ?>/css/main.css" /> 
<?php echo '<script src="'.$view->getThemePath().'/js/concrete.js"></script>'; ?> 

Esempio di header.php: http://pastie.org/9784546

Avviso il typography.css non è stato aggiunto su header.php.

typography.css viene automaticamente caricato nel sistema per essere utilizzato nell'editor wysiwyg. Per cambiare il nome e la posizione di typography.css, dovrai sovrascrivere la funzione getThemeEditorCSS().
Questo funziona solo sulla versione 5.6.
Procedura: http://concrete5tricks.com/blog/rename-or-move-typography-css

Se si utilizza la versione 5.7
Creare un file di paging-theme.php nella root della vostra cartella del tema.
per definire gli stili personalizzati aggiungere nella pagina-theme.php:

<?php 
namespace Application\Theme\Your_Theme_Name; 
class PageTheme extends \Concrete\Core\Page\Theme\Theme { 
    public function getThemeEditorClasses(){ 
    return array(
     array('title' => t('Title Thin'), 'menuClass' => 'title-thin', 'spanClass' => 'title-thin'), 
     array('title' => t('Title Caps Bold'), 'menuClass' => 'title-caps-bold', 'spanClass' => 'title-caps-bold'), 
     array('title' => t('Title Caps'), 'menuClass' => 'title-caps', 'spanClass' => 'title-caps') 
    ); 
    } 
} 
?> 

(non dimenticate di cambiare il proprio nome in Your_theme_Name tema della cache + chiaro dopo stili aggiungendo)
Fonte: http://www.concrete5.org/community/forums/5-7-discussion/adding-redactor-custom-styles-in-a-theme/

Problemi correlati