Какими должны быть шаблоны для BuddyPress 1.1?

Одно и, на мой взгляд, единственное неприятное изменение, которое претерпел BuddyPress на своем пути к версии 1.1, это задействование на полную катушку встроенного в WordPress (начиная с 2.7) механизма родительских и дочерних тем.

Для начала объясню, что такое родительская тема (далее РТ). Самыми яркими примерами являются шаблоны: Carrington, WP Basis, Hybrid, Thematic и много других. Идея РТ заключается в том, что создается так называемый “движок” шаблона, который содержит в себе весь функционал, всю структуру блоков, все самые изощренные находки программиста, также в РТ включены все основные стили разметки, админка и многое другое. Но сам по себе при активации этот шаблон выглядит блекло – он не содержит оформления как такового, РТ – это функциональный скелет шаблона. А для “мяса и кожи” используются дочерние темы (далее ДТ), которые содержат в себе все рисунки, цвета, “фентифлюшки” оформления. Даже если зайти по фтп в папку РТ, то там вы увидите кучу папок и много-много php- и js-файлов, в то время как в ДТ – максимум 2 папки (одна из которых images) и буквально несколько php-файлов (ну, и еще screenshot.png и style.css).

Если сделать лирическое отступление, то:
РТ – это мужчина, который все делает,
ДТ – это женщина, которая все украшает.

Что это дает вам, администраторам: вам надо будет скачать 2 шаблона и оба поместить в папку /wp-content/themes/, оба активировать на странице “Администратор → Темы” и активировать только ДТ, то есть ту, в названии которой в админке не будет слова Parent :). Вы активируете и используете только дочерний шаблон, родительский же в это время может обновляться много раз (обновляя РТ – вы тем самым добавляете что-то новое в ДТ). Вашим шаблоном для экспериментов становится именно ДТ – вы редактируете ее файлы как хотите и можете не бояться, что испортите ваш шаблон, так как его ядро находится в другой папке. Вы можете скопировать ДТ, переименовать папку и название шаблона (в style.css) и начать создавать на основе готового движка шаблона что-нибудь абсолютно новое – и вам не надо будет думать о php и программировании в целом, вашей заботой становится только дизайн и стиль сайта.

Теперь вернемся к BuddyPress и новым шаблонам в нем.

Как я уже писал в предыдущей записи, в которой вы можете скачать правильный русский официальный BuddyPress 1.1, шаблоны поменяли свою структуру. Теперь нет отдельно шаблона для основного сайта и отдельно шаблона для страниц профиля, групп, друзей и т.д. Все объединено в единую тему – родительскую BuddyPress Social Network Parent Theme, а для красивого дизайна используется BuddyPress Default.

Я подготовил для вас мануал, который поможет вам правильно приспособиться к новому формату. Так как последовательность ваших шагов на пути к прогрессу зависит от того, какой вы шаблон использовать с BuddyPress 1.0.x. Для начала:

  1. Зайдите по фтп в папку: ваш_сайт/wp-content/plugins/buddypress/bp-themes/.
  2. Скопируйте папки /bp-sn-parent/ и /bp-default/ в папку /wp-content/themes/.

А вот теперь начнется рок-н-рол…

Вы использовали старый стандартный шаблон без изменений

Собственно, вы везунчик, так как вам практически ничего делать не надо. Удалите папку /wp-content/bp-themes/, все, что нужно, вы уже скопировали. Активируйте BuddyPress Default – и все.


Вы изменили цвета и некоторые стили в старом стандартном шаблоне

  1. Скопируйте папку /wp-content/themes/bp-default/ в папку /wp-content/themes/bp-mytheme/. (Mytheme – может быть любое слово, только без пробелов и английскими буквами). Далее эту новую папку я буду называть “Mytheme“.
  2. В Mytheme в папке /_inc/css/ создайте файл с именем custom.css.
  3. Скопируйте все изменения, которые вы делали в css-файлах старого шаблона /bphome/ и /bpmember/ во вновь созданный файл custom.css.
  4. Откройте файл style.css в корне Mytheme.
  5. Отредактируйте название шаблона (то, что после Theme Name:) на уникальное. Например, Mytheme :)
  6. Найдите в конце файла строку
    /* @import url( _inc/css/custom.css ); */

    Удалите "/*" и "*/" - то есть раскомментируйте импорт файла стиля.
  7. После того, как сделаете бекап /wp-content/bp-themes/, удалите эту папку.
  8. Включите ваш новый шаблон Mytheme на странице “Администратор → Темы”.
  9. Активируйте ваш шаблон Mytheme на странице “Внешний вид → Темы”.
  10. С этого момента у вас должна начать использоваться новая структура шаблонов BuddyPress, но с сохраненными вашими изменениями.


Вы использовали WordPress тему для сайта и шаблон bpmember

Что ж, вас ждет большой кусок работы, которую необходимо сделать. В основном, это будет подгонка стилей и дописывание много чего в style.css, ведь у вас в папке WordPress темы были стили лишь для страниц сайта, а не пользовательских страниц. Что ж, приступим:

  1. Сделайте бекап вашего первоначального WordPress шаблона (на всякий случай).
  2. Откройте папку /wp-content/themes/bp-sn-parent/ и скопируйте оттуда все папки (именно папки!) и вот эти файлы: “optionsbar.php“, “userbar.php” и “plugin-template.php” – в папку с вашим WordPress шаблоном.
  3. Теперь открываете файл “header.php”, в него необходимо вставить вот этот код. Вставляете в div не шапки, а в самом верху div непосредственно контента. Фактически, вам просто надо экспериментальным путем выяснить. Сохраните файл header.php.
  4. Убедитесь, что сделали бекап папки /wp-content/bp-themes/. Удалите эту папку.
  5. Теперь вы можете зайти на свой сайт и у вас должно получиться следующее: при переходе по любой BuddyPress-ссылке (на снаницу профиля, к примеру) у вас отображается шапка и подвал вашего основного шаблона, но в целом схема блоков BuddyPress будет выглядеть непрезентабельно (скорее всего).
  6. Вы можете попробовать добавить стили, которые отвечают за структуру компонентов и блоков, из стандартного шаблона BuddyPress. Для этого откройте файл style.css вашего WordPress шаблона и добавьте туда перед любыми другими стилями вот это:
    @import url(../bp-sn-parent/_inc/css/components.css)
  7. Теперь у вас должна отображаться базовая структура компонентов на пользовательских страницах. Но вам, конечно же, придется дописывать многие стили оформления самостоятельно для доведения внешнего вида до ума.

Если же вы видите, что вам тяжело адаптировать шаблон, то вы можете вернуться к предыдущему варианту: просто восстановите папку /wp-content/bp-themes/. Это заставит работать BuddyPress в режиме совместимости. Вы не увидите некоторые новые фичи, введенные в версии 1.1, но вы избавите себя от лишней головной боли.

Второй вариант: сделайте копию папки /bp-default/, дайте ей уникальное название (это значит, надо изменить название папки и в файле style.css поменять Theme Name:). Далее активируйте этот шаблон для вашего второго блога. То есть: ваш первоначальный сайт станет новостным блогом, а на второй блог будет ссылаться BuddyPress и на нем будут разные его фишки. Это даст возможность BuddyPress-ссылкам нормально работать вне вашей WordPress темы на основном сайте. Конечно же, стилей никаких не будет, так что вам придется дописывать css для BuddyPress, чтобы он соответствовал дизайну WordPress шаблона. Так же не забудьте добавить вот эту строку в файл wp-config.php:

define( 'BP_ROOT_BLOG', [ID второго блога, просто число] );


Вы использовали собственные WordPress и BuddyPress шаблоны

То есть вы создали свой собственный шаблон как для страниц сайта, так и для пользовательских страниц. Вам остается просто объединить их в один шаблон.

Для этого вам понадобится всего лишь скопировать все файлы (папки, рисунки, css, php) из BuddyPress шаблона в папку с WordPress темой.

После этого сделайте бекап папки /wp-content/bp-themes/ и удалите ее. Таким образом вы задействуете новый шаблон (он уже будет активирован).

комментариев 26

  1. Valilenk:

    Так и не появилось возможности заливать аватару блога? Многое портит этот момент

  2. Filimon:

    Как можно убрать название блога из шапки в теме BuddyPress Default?

  3. slaFFik, подключить старые шаблоны под новый BP – смог без каких либо изменений… но вопрос в чем же разница?
    Дело в том, что изменять тему можно не только в css, но в самих файлах темы (php)… и тут такой фокус не проходит…

  4. @Valilenk:
    Нет, заявлено, что эта возможность будет в версии 1.4. Я подумаю, что можно с этим сделать.

    @Filimon:
    Скопируйте файл header.php из /wp-content/themes/bp-sn-parent/ в /wp-content/themes/bp-default/. Отредактируйте его, удалив строку 83 или вместо ссылки написав, что вам нужно.

    @Александр:
    Не совсем понял вопрос… Для изменения php – сделайте так, как я описал Filimon’y.

  5. slaFFik, ну то есть полностью переделал стандартные темы.. изменил множество php файлов в темах (home, member) и хочется понять.. где те самые изменения в движке – которые создают проблемы… мое предположение – что это на уровне functions.php самого плагина buddypress…

  6. @Александр:
    Правильно понимаете. Внимательно посмотрите, какими функциями вызваны те или иные вещи в коде новых шаблонов. Просто проверьте каждый файл на наличие новых php функций – это муторно, но поможет.

  7. скорее всего так и буду делать… на первое время… может попутно закину список!

    зы: в свое время по поводу работы стучался через контакты.. в ответ тишина :(

  8. @Александр:
    Тишина? Не может быть! Наверное, летом еще. Я после лета почту проверял в полглаза, ибо накопилась ее тогда пару сотен неучтенных элементов, мог пропустить. Напишите еще раз н странице Контакт или на странице Услуги внизу есть моя ася.

  9. Посмотрел шаблон.. структура просто аховая… настолько испо***ить (другого слова тут не нашел) старую структуру… зачем надо было менять названия колонок?! и это мелочь.. дальше просто тоска.. переделывать тему надо с 0! :( То есть если тема изменена от версии 1.0.x – то всю работу проделывать с 0.. иэх..

    Менять стили теперь надо в двух папках и еще надо понять как новая структура устроена :)

    slaFFik, Andy не планирует очередное изменение тем? ;)

  10. Alexander Simboss:

    slaFFik, незначительная пометка по переводу – в комментариях к записям – слово “Пркомментировать” … в каком файле можно исправить?

  11. buddypress-ru_RU.po скорее всего

    Кстати – ни у кого косяка не было с аватарами групп и пользователей? случайно раз и пришлось переходить на новый BP и тему :(

  12. Valilenk:

    Подскажите плиз, как можно вывести в качестве централки сайта не страницу с виджетами, а центральную страницу основного (первого) блога? Раньше этот вопрос почему-то не возникал.

  13. Valilenk:

    вопрос снят

  14. @Alexander Simboss:
    Спасибо за наводку пр оопечатку. Скачайте файлы перевода отдельно (последняя ссылка), я обновил.

    @Александр:
    Косяк есть, но не смог понять пока, по какому принципу он появляется.

  15. если с группами не парит особо – то вот с пользователями – косяк так косяк… :(

    Вроде ж долго тестировали эту 1.1 …

    вопрос не совсем в тему: в каком месте настраивается внешний вид кнопок (типа “Зарегистрироваться”, “Сохранить” – поле submit)? раньше в стилях было 2 места.. теперь по шаблону это море разных классов xxx_submit

  16. Alexander Simboss:

    Подскажите как в стандартной теме подключать скрипты. обычный способ прописки в header.php почему-то не срабатывает.

  17. Alexander Simboss:

    Прошу помощи, плз. :) После добавления в стандартной теме в header.php верхнего горизонтального меню – перестал отображаться пользовательский раздел. В чем может быть проблема?

  18. Леший:

    Помогите люди добрые)))
    Торможу наверно дико!
    Установил BBPress в папку /forum и в общую базу с WP MU 2,8,4а. Он проработал некоторое время.
    Позже я стал ставить BuddyPress.
    после интеграции форума bbPress с BuddyPress, я удалил все файлы в папке /forum, только оставил config.php.
    Вопрос!
    Как зайти в админку форума?
    Заранее всех благодарю!
    И еще маленький вопрос.
    Как сделать, чтобы были все видны форумы пользователям которые состоят в закрытых группах, или админу на странице http://www.******.ru/forums

  19. Alexander Simboss:

    … еще раз про подключение скриптов при модификации стандартной темы. Через стандартную вставку строки в header.php не работает, в functions.php есть подключение скриптов, но там как-то все совершенно непонятно. Так все же, как в стандартной теме прикрутить дополнительные скрипты?

    • Александр:

      странно… должны подключаться в header.php, может проблема уже в скриптах?

      • Alexander Simboss:

        Да вот на buddypress.org нашел что старые версии jQuery не должны работать, так что да, очень даже возможно что проблема в скриптах … буду дальше копаться …

  20. Сергей:

    Вопрос: Я активировал BuddyPress в теме для WordPress и у меня внизу появилась карта учетных записей BuddyPress. Скажите, пожалуйста, как ее переместить?…

  21. notbad:

    @Сергей, вы странный однако, задаете вопросы, а ответы не читаете..
    https://cosydale.com/video-install-bbpress-for-buddypress.html#comment-8793

  22. Сергей:

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

  23. Как убрать аватар имя автора из постов на главной в теме БП?

  1. 06.10.2009

    […] Мануал по переводу ваших шаблонов читайте в записи: Какими должны быть/будут шаблоны для BuddyPress 1.1? […]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *