Добрый день. Помогите решить проблему. Вкратце попытаюсь объяснить суть. Итак, на сайт установил domain access, настроил два сайта, все работает. Есть цель сделать эти два сайта с одним шаблоном, который я скачал, но в разных цветовых гаммах. Полазил по инету, сказали скопировать тему в другую папку, изменить (тема называется business) business.info на новое значение, а также поменять названия всех функций, где есть упоминание старой темы.
Если раньше было
<?phpfunction business__breadcrumb($variables) {
$breadcrumb = $variables['breadcrumb'];
?>
То стало
<?phpfunction businessgreen__breadcrumb($variables) {
$breadcrumb = $variables['breadcrumb'];
?>
И вот, ура, все заработало, в админке появились две темы: business и businessgreen. Взял папку images новой темы и давай перекрашивать файлики в зеленый цвет, потом скопировал на сервер и ничего не произошло!!! Ковырялся, ковырялся, и вместе с firebug`ом понял, что тема берет картинки и соответственно stylesheet.css из старой темы в папке business. И вот тут я стопорнулся. Как сказать моей новой теме, что она новая и другая и у нее свои css и картинки есть? Я вот грешу на функцию
<?phpfunction get_full_path_to_theme() {
return base_path().path_to_theme();
} ?>
но как реализовать это все ума не приложу. Уповаю на Вашу помощь, камрады!
Комментарии
Лезь в info файл темы, смени там все настройки, от имени до подключаемых css и js на нужные.
Ну, вот файл info выглядит вот так:
; $Id: businessgreen.info $
name = businessgreen
description = Business
screenshot = screenshot.png
version = 7.0
core = 7.x
engine = phptemplate
regions[sidebar_right] = Right sidebar
regions[content] = Content
regions[home_readmore]=Home Readmore
regions[navigation] = Menu
regions[banner1] = Banner 1
regions[banner2] = Banner 2
regions[banner3] = Banner 3
regions[banner4] = Banner 4
regions[banner5] = Banner 5
regions[banner6] = Banner 6
regions[banner7] = Banner 7
regions[banner8] = Banner 8
regions[banner9] = Banner 9
regions[banner10] = Banner 10
regions[banner11] = Banner 11
regions[banner12] = Banner 12
regions[leftsidebar1] = Leftsidebar 1
regions[rightsidebar1] = Rightsidebar 1
regions[rightsidebar2] = Rightsidebar 2
regions[top1] = Top 1
regions[top2] = Top 2
regions[top3] = Top 3
regions[top4] = Top 4
regions[top5] = Top 5
regions[top6] = Top 6
regions[bottom1] = Bottom 1
regions[bottom2] = Bottom 2
regions[bottom3] = Bottom 3
regions[copyright] = Copyright
regions[footer_message] = Footer
stylesheets[all][] = style.css
scripts[] = script.js
Причем, файла style.css в корне темы вообще нет. А основной файл стиля находится в ../css/stylesheet.css. Уже думаю может вручную в файле стиля все пути прописать... но вдруг не только css идет от старой темы, а еще что-нибудь, тогда вообще неразбериха начнется.
Две нижние строки и меняй, пути пиши типа /css/css.css (не абсолютный путь). Вот он и цепляет что хочет. Конечно может быть такое что разрабы ещё что-нибудь куда-нибудь запихали, но надеюсь нет, обычно так не делают. Хотя прошерстить все файлы темы на наличие css и js делов на 2 минуты.
Мда, нелегкая это работа, из болота тянуть бегемота 8)) Итак, написал в info путь как надо и не заработало. Смотрю firebug`ом и опа, нашел зацепку. Смотрю, что некоторые скрипты подключаются и от одной и от другой темы. Ну и фиг, с ними. Таже карусель, например, мне все равно откуда будет подключаться. Дальше пошли такие строчки:
@import url("http://subdomain.domain.ru/themes/businessgreen//css/stylesheet.css?n45244");
Подключился мой стиль, причем, с двумя слэшами (хотя в info слэша нет) и какой-то приставкой (?n45244)?
Потом:
<title>Firstbiz</title>
<link rel="stylesheet" href="/themes/business/css/stylesheet.css" type="text/css" />
Еще одно подключение стиля со старой темы. Смотрю в подключенных стилях firebug и вижу, что у меня подключено 2 стиля stylesheet.css и видимо от старой темы главней по приоритету и от него все пляшет получается.
Нет ли такой штуки, чтобы посмотреть откуда на странице подключается тот или иной стиль или тэг?
в DA есть субмодуль Domain Theme -- Allows separate themes, theme settings and colors for each subdomain.
Нее, Domain Theme стоит и включен. Он позволяет разным доменам и поддоменам ставить разные темы и играть с настройками. Но если я присвою разным поддоменам одну тему, то не смогу ее "тематизировать" отдельно для каждого субдомена. А поставить такой же шаблон автоматически из архива тоже не получится. Поэтому и приходится ручками ковыряться, осталась самая малость. Найти, где подключается этот пресловутый
<link rel="stylesheet" href="/themes/business/css/stylesheet.css" type="text/css" />
, который дублирует стиль и перекрывает приоритет.Модуль Domain Access назначает body классы в зависимости от текущего домена, неужели для того чтобы задать разные цвета элементам шаблона этого недостаточно?
Недостаточно. Мне не только нужно разные цвета у шаблонов, следовательно перерисованные картинки и различные style.css, а также немного измененные page.tpl.php и т.д. Стилистика у сайтов одинаковая, а вот тематизация для каждого субдомена своя. Одним body-классом тут не обойдешься.
Тогда создайте базовую тему и используйте ее для создания подтем для доменов с помощью Domain Theme, в подтемах переопределяйте нужные шаблоны.
Прошли сутки с начала старта топика, я бы психанул и свою тему запили давно))
Как вариант.
Notepad++ в помощь