Из того, что я собираю в Интернете и частично из документов, является то, что рекомендуется следующая структура темы.
/css
/fonts
/img
/includes
/js
/default.php
/main.css
/thumbnail.png
/typography.css
/view.php
Мои вопросы:
main.css
а также typography.css
проживают в /css
? Мне нравится мой CSS аккуратно организован<?php require_once echo $this->getThemePath() . "/includes/footer.html"; ?>
?echo $this->getThemePath()
обратитесь к правильной папке темы при использовании файлов в подкаталогах (таких как my-theme/includes/footer.php
)?Короче: Вы можете структурировать свою тематическую карту в основном так, как вы хотите. За исключением default.php, view.php, description.txt и thumbnail.png. Имя и местоположение typography.css можно изменить, но я нашел только источник для версии 5.6. В версии 5.7 typography.css больше не используется, потому что wysiwyg-редактор изменился. Однако вы можете добавить собственные стили в новый WYSIWYG-редактор.
Полный ответ
Пример каталога тем:
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
Thumbnail.png, description.txt, view.php (для отдельных страниц) и default.php должны находиться непосредственно в каталоге темы.
На карте элементов я создаю header.php и footer.php (но, если необходимо, вы можете поместить туда больше файлов, таких как sidebar.php или что-то в этом роде)
Чтобы связать с header.php и footer.php, я помещаю этот код в default.php и view.php в правильной строке:
//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');
Функция inc () в concrete5 была специально создана для включения элементов, поэтому я предпочитаю использовать ее вместо обычной функции включения php. Вот пример default.php: http://pastie.org/9784547
В мои header.php и / или footer.php вы хотите добавить пользовательские CSS и JS. Для этого вы можете использовать этот код:
//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>'; ?>
Пример файла header.php: http://pastie.org/9784546
Обратите внимание, что typography.css не был добавлен в header.php.
Typography.css автоматически загружается в систему для использования в wysiwyg-редакторе. Чтобы изменить имя и местоположение typography.css, вам придется переопределить функцию getThemeEditorCSS ().
Это работает только на версии 5.6.
Как : http://concrete5tricks.com/blog/rename-or-move-typography-css
Если вы используете версию 5.7
Создайте файл page-theme.php в корневом каталоге вашей темы.
Чтобы определить пользовательские стили, добавьте в page-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')
);
}
}
?>
(не забудьте изменить Your_theme_Name в названии темы + очистить кеш после добавления стилей)
Источник: http://www.concrete5.org/community/forums/5-7-discussion/adding-redactor-custom-styles-in-a-theme/
Других решений пока нет …