Drupalife Store: как править тему и обновлять сборку

Небольшие подсказки, чтобы было проще.

07.06.2014
35 комментариев
2 мин.

Так как сборка получила своих пользователей, то я напишу парочку ответов-гайдов на вопросы, которые чаще всего вижу, с которым появляются проблемы и которые мне шлют на почту. Я выделил два самых главных, они являются проблемой для пользователей, которые не сильно знакомы с друпалом. Более того, они оба взаимосвязаны, тем самым убьём двух зайцев.

Как обновляются сборки

Не важно, пользуетесь вы сборкой Drupalife Store, или какой-то другой, сборки имеют свою специфику обновлений (если не указано обратной, например Kickstart обновляется иначе).

Когда выйдет обновление сборки, вы узнаете об этом из админки. Она сообщит что есть обновление, а также будет возможность обновить сборку, но это не пройдет и завершиться ошибкой.

А на деле всё очень и очень просто. Сборки обновляются как и ядро Drupal. Так что следуйте инструкции и вы также обновите сборку. **Обратите внимание! **Если вы производите обновление ядра без сборки, то по гайду обновления ядра, не нужно удалять папку profiles.

Вы также можете обновить сборку частично. Допустим скопировать с заменой в папку дистрибутива (в нашем случае drupalife_store) всё кроме папок theme и modules. Это в том случае, если производились какие-либо махинации или изменения в этих папках.

И конечно же, не забывайте делать бэкап перед обновлением!

Как править тему оформления

Так как сборка идёт со своей стандартной темой, многие хотят её слегка, а может и не слегка, поправить под себя, при этом не создавая тему с нуля. Это вполне логично и понятно. Но вот не каждый догадывается и знает о такой особенности как subtheme (поддемы, сабтемы), при помощи которых эти изменения и нужно делать.

В чём же ошибка? Нельзя просто зайти в тему drupalife_store и начать там править css, файлы шаблонов, да чего уж там, вообще всё там трогать нельзя. Если вы читали про обновление сборки выше, вы прекрасно понимаете, что все ваши труды будут успешно стерты после обновления, ведь они будут заменены оригинальными файлами из сборки. Либо придется это все как-то руками контролировать, что при больших изменениях может отнять не один час.

Для того чтобы таких проблем не было, и вы со спокойной душой могли обновлять сборку, нужно создать сабтему, которая будет наследоваться от drupalife_store. Т.е. по факту вы делаете свою тему, но она наследует всё то, что уже сделано в теме drupalife_store, вы лишь добавляете и\или правите то что необходимо.

Делаем сабтему

В данном гайде я не буду описывать все технические детали и особенности создания cабтем, а лишь расскажу как это делается непосредственно для темы сборки и некоторые из особенностей.

Сейчас я доделал и выложил версию сборки 7.x-1.0-beta2. В ней появилась новая папка /profiles/drupalife_store/themes/drupalife_store/YOURTHEME. Это наша точка отправки и заготовка сабтемы для drupalife_store.

А теперь простая пошаговая инструкция:

  1. Копируем вышеуказанную папку (YOURTHEME) в /sites/all/themes/YOURTHEME
  2. Затем переименовываем папку YOURTHEME на название, которое желаете дать своей теме. Допустим, пусть будет mynewtheme. (Обратите внимание, название должно быть в нижнем регистре, на латинице и может содержать лишь знак нижнего подчеркивания
  3. Заходим в папку темы и меняем название файла yourtheme.info.txt на mynewtheme.info (Файл должен называться также как и папка темы. Мы также убираем расширание .txt, в противном случае тема не появится в списке)
  4. Если есть необходимость, вы можете отредактировать название (name) и описание вашей темы (description) в самом .info файле. А можете просто пропустить этот пункт.
  5. Заходим в настройки тем Drupal и видим, что там появилась наша тема. Включаем её и делаем активной. А саму тему Drupalife Store можно смело отключать.
  6. Вот и всё!

А теперь вы можете править тему как душе угодно. Для этого в вашей новой теме есть файлы css/new_styles.css и js/new_script.js, которые вы можете править как душе угодно. Вся дальнейшая работа ничем не отличается от того как вы правили раньше. Вы можете добавлять темплейты, скрипты, стили, писать свои хуки в template.php или же добавлять свои настройки в theme-settings.php.

Вы также можете скопировать все содержимое из /profiles/drupalife_store/themes/drupalife_store/templates в /sites/all/themes/mynewthemes/templates, или только те темплейты, что вам необходимо переопределить. Ну и разумеется, можете добавлять свои собственные.

Обратите внимание, теперь ваша тема (mynewtheme) имеет приоритет над drupalife_store. Именно по этой причине файл стилей и скриптов называются с приставкой new_. Если переименовать или подключить файл с именем styles.css (как в drupalife_store), то он перекроет оригинальный и будет сразу использоваться из вашей темы, тем самым никаких стилей от оригинальной темы сборки не подключится.

Drupal
Drupal 7
Drupal Commerce

Комментарии

RA1ZER   вс, 29/06/2014 - 19:22

Здравствуйте. Как отключить проверку обновления именно на вашу сборку? Пробовал удалять эти строчки в файле info:
; Information added by Drupal.org packaging script on 2014-03-10
version = "7.x-1.x-dev"
core = "7.x"
project = "drupalife_store"
datestamp = "1394453006"

Но новую версию все равно находит.

Niklan   вс, 29/06/2014 - 19:25

hook_update_projects_alter()
И через unset отключем проверку дистрибутива.

Андрей   ср, 06/08/2014 - 18:01

Привет, я так понял что блог http://niklan.net/ на сегодня это самый живой блог о друпал 7
Поэтому попробую задать свой вопрос здесь.
Предыстория:
Хочется прочитать все посты блога, но пока нет времени на это.
Хочется поизучать css php, но пока нет времени на это, мои знания самые начальные в этом деле.
Проблема проста.
Нужно изменить цвет фона в теме друпал7 (поменять цвет слева и справа от фиксированного шаблона цвет белый ffffff хочется, что то более солидное или цвет или золотистую клеточку или ромбик, например, или возможно вставить рисунок)
Как пытался сделать я:
Открыл файл style.css с помощью проги Notepad++
Файл брал этот:
f:!-XAMPP 1.8.1\xampp\htdocs\МОЙ-САЙТ\sites\all\themes\responsive_green\css
Просто тупо менял и сохранял цвет: ffffff на другой и смотрел, что получалось, но положительных результатов мне это не дало.
Хотел найти специальный модуль для друпал7, что бы это сделать, но модуля так же не нашел.
Встроенный в ядро модуль Color я так понял, что моя тема не поддерживает.
Как простым способом поменять цвет фона на сайте?
Хотелось бы увидеть полноценный пост на эту тему, так как этого нет в интернете я, по крайней мере, не нашел.
Ну, или получить ответ хотябы тут.

RA1ZER   вт, 02/09/2014 - 16:59

Здравствуйте. После обновления вашей сборки с beta1 на beta3 перестают работать checkbox и radiobutton. Они просто пропадают. Но имена этих checkbox и radiobutton отображаются. Пробовал обновлять версией без ядра и самой простой. В чем может быть причина?

Niklan   вт, 02/09/2014 - 20:18

Нужно сбросить кеш. Либо зайти в настройки темы, там раздел dvelopers есть и можно отключить переопределение чекбоксов и радио.

Если кеш не помог и они так и не появились, то можно тут поставить значение 0. И опять же, сбросить кеш.

RA1ZER   ср, 03/09/2014 - 10:06

Если опуститься вниз страницы, то не получается выделить текст комментария, также не получается нажать на "ответить" и на ссылки, выделенные зеленым цветом.

RA1ZER   чт, 04/09/2014 - 15:58

Изначально этих строчек не было. Добавил их сначала со значением 1, потом исправил на 0. Радиокнопки так и не появились. Кеш чистил после каждого изменения. По поводу моего предыдущего комментария, не могу на вашем сайте выделить текст, нажать на "ответить" или нажать на ссылку в комментариях, если опуститься вниз страницы. Пробовал в хроме и мозиле.

Niklan   чт, 04/09/2014 - 16:00

У меня на хроме и мозиле получается выделить...

Что косается сборки. Если их небыло - значит обновили не правильно.

RA1ZER   пт, 05/09/2014 - 10:10

Обновление происходит заменой старых файлов на новые. В скаченном обновление (drupalife_store-7.x-1.0-beta3.zip 637.72 KB 48265659e1e143bcb7fc00463fdae9ae) в файле, расположенном по адресу: drupalife_store/themes/drupalife_store/drupalife_store.info, нету изначально этих строчек.
Может не выделяется из за разрешения? Заметил что при 1920x1080 поле с добавлением комментария находится справа, а при 1280х1024 (которое у меня выставлено в данный момент) внизу.

Niklan   пт, 05/09/2014 - 10:16

Всё, теперь понял почему не выделялось. В респонсиве косячек.

По поводу настроек, да, я попутал. Там их нету. Если по прежнему не появились, заходим в admin/appearance и вклчюаем любую другую тему, затем обратно тему магазина + сброс кеша. Должно помочь. В дев версии уже исправлен данный момент.

Если даже такой вариант не поможет, можно поправить прямо в коде, следующий апдейт хоть и заменит, но там уже опцию выключения в админке есть. Вот тут - то что выделено, надо закоментировать. Можно вообще всю функцию.

RA1ZER   пн, 08/09/2014 - 12:12

Спасибо, получилось сделать последним способом.  Возник такой вопрос: на странице "контакты" имеется форма для заполнения имени, почты и сообщения, при отправке этой формы сообщение приходит на почту? Если да, то где меняется адрес, куда должно отправляться сообщение? 

Niklan   пн, 08/09/2014 - 12:15

Это Entityform а не Webform, ему надо делать свой Rules для отправки на почту.
 

костя   сб, 13/12/2014 - 21:33

при смене разрешения на маленькое, меняется цвет менюшки на дефолтный как поправить?

Rasta   пн, 29/12/2014 - 14:48

Здравствуйте. Спасибо за Вашу сборку, она действительно очень быстрая, но есть один непонятный мне момент. Хочу к Вашей сборке подключить тему Omega Kickstart, выдает вот такую ошибку Fatal error: Call to undefined function get_search_box() in .... profiles/drupalife_store/themes/drupalife_store/templates/page.tpl.php on line 51
Что можно сделать?

Niklan   пн, 29/12/2014 - 14:51

Здравствуйте. Темуто как подключили, копипастом чтоли из старой? Вам там свою надо делать а не копировать. В ошибке прямо написано что нету такой функции, которая ызывается в таком то файле, на такой-то строке.

Собственно, либо строку стирайте, либо функцию добавьте. Ибо тут попахивает каким-то копипастом кусков темы а остальной не хватает. https://github.com/Niklan/drupalife_store/blob/7.x-1.x/themes/drupalife… вот где оригинал функции

Niklan   пн, 29/12/2014 - 15:56

Вы точно понимаете что установили? Kickstarter - это база для темы, но не тема.

Niklan   пн, 29/12/2014 - 16:10

Я не понимаю про какой банер вы говорите. Но то что вы скачали, там прямо написано: "Central base theme for theme development on the Commerce Kickstart distribution". Что дословно переводится как "Базовая тема, для разработки собственной темы на сборке Commerce Kickstart"

Rasta   пн, 29/12/2014 - 16:46

Забудьте про Кикстартер, пожалуйста. Дело в принципе в другом. Вот у вас в блоге http://niklan.net/blog/57 фото главной страници сборки, там видно большой банер и три маленьких чуть ниже. А когда я устанавлию вашу сборку себе на сайт(ссылка в посте выше) у меня только три маленьких банера. Что я не так делаю?

Niklan   пн, 29/12/2014 - 16:48

Так вы картинки для слайдов добавьте. Структура ->Nivo Slider

Rasta   пн, 29/12/2014 - 19:05

Спасибо, Никита! К Вам можно обращаться за консультациями или может с какими-то конкретными задачами по настройке Друпала? (естественно за вознаграждение)

Niklan   вт, 30/12/2014 - 08:08

Пожалуйста. Обращайтесь, если будет время и необходимый навык, помогу.

Не специалист   ср, 11/03/2015 - 23:05

Как изменить рисунок карзинки и текст "Ваша корзинка пуста" на другой текст и картинку? Я так понимаю это как-то через модуль cart делается? ))

Никита   пт, 10/07/2015 - 02:28

Скопировал все темплейты, но не понял как сделать, чтобы они исполнялись (переопределились)?

I.CaR Soft   вс, 02/08/2015 - 05:26

Выявлен БАГ(!)
Если в карточке товара вбит не один товар, а несколько (модификация одного товара[размер,параметры,цвет и т.п.])
То при обновлении картинки товара из карточки товара происходит почему-то и замена имени товара, на имя карточки товара.
Пожалуйста исправьте.

ICaR-Soft.ru   вс, 02/08/2015 - 05:27

Извиняюсь не в тот топик написал. Предыдушее сообщение можно удалить.
 

Гость   вс, 23/08/2015 - 23:32

доброго времени суток после обновления с СОБЛЮДЕНИЕ ВСЕХ ВЫШЕ ОПИСАННЫХ ПРАВИЛ сам сайт работает, но по SSH выдает ОШБКУ--->:

PHP Fatal error: Cannot redeclare libraries_drush_command() (previously declared in /home/u12442/domains/mako.sh/profiles/drupalife_store/modules/contrib/libraries/libraries.drush.inc:13) in /home/u12442/domains/mako.sh/sites/all/modules/libraries/libraries.drush.inc on line 25
Drush command terminated abnormally due to an unrecoverable error. [error]
Error: Cannot redeclare libraries_drush_command() (previously declared in
/home/u12442/domains/mako.sh/profiles/drupalife_store/modules/contrib/libraries/libraries.drush.inc:13) in
/home/u12442/domains/mako.sh/sites/all/modules/libraries/libraries.drush.inc, line 25

ЧТо исправить?

Дмитрий   чт, 24/12/2015 - 15:34

При подключении SSL сертификата к сайту на вашей сборке Drupalife браузером выдается сообщение о том, что страница пытается загрузить скрипты из непроверенных источников. Кажется, ругается на подгрузку Google шрифтов Roboto и Amiro по незащищенному протоколу HTTP. Мелочь, но для интеренет магазина я думаю это крайне важно.

Niklan   пт, 25/12/2015 - 07:29

Так всё просто же, в подключение шрифтов укажите https, вместо http. Гугл же их поддерживает.

Иван Рублев   вс, 05/06/2016 - 12:57

Drupalife Store отличная сборка. По первым впечатлениям самая быстрая и легкая.
Буду отписываться, если будут проблемы. В целях их дальнейшего устранения и улучшения сборки.
Пока нашел одну. Первый раз с этим сталкиваюсь в Друпале.

ПРОБЛЕМА: После обновления ядра до Drupal 7.43 отвалилась тема. Кто-то об этом уже писал. После сбрасывания кэша результатов нет. В стандартных темах все работает нормально.

Александр   ср, 05/10/2016 - 23:08

Люди добрые, подскажите пожалуйста. В сборке Drupalife Store главная страница как заблокирована. Не отображается ни боковое меню (на всех других страницах все нормально), ни содержимое. Кто пользуется этой сборкой, подскажите как побороть... пожалуйста

Alislis   пт, 06/10/2017 - 16:21

Так, ядро я обновила. Теперь оно ругается, что почти все модули требуют обновлений. А не слетит ли всё настроенное при этом деле, и как бы обновить модули в сборке, ничего не рассвинячив?