Если администрация форума мне позволит, переношу сюда все пошаговые инструкции по работе с Друпалом со старого форума. Если нет - удалите темку, плиз. Вывод блока анонсов последних записей с картинками Для этого нам нужны модули Views и Display Suite. 1. Идем в ДС и создаем view mode с параметром node (не путать с модулем вьюс) 2. Далее идем во вьюс и создаем новое представление с параметрами: блок - содержимое - статья (article), ну или любой другой тип контента, информацию которого надо вывести в сайдбаре 3. Теперь идем в редактирование вашего типа материала и разрешаем выбранный вами view mode 4. Далее нам нужно выбрать layout. В параметрах редактирования статьи есть ДС, выбирайте нужный вам дизайн. Я рекомендую один лист. Сделать блочную конструкцию можно через вьюс. 5. После того, как вы выбрали нужный дизайн, у вас появляется возможность добавить много разных вариантов блоков и добавить новые. Выбирайте то, что нужно для отображения ваших тизеров: картинку, заголовок, описание, ссылку на категорию и т.д. 6. Сохраняем и идем в Blocks и задаем нужный регион для выбранного блока (он уже у нас там есть) - сайдбар. 7. Кастомизацию дизайна можно сделать через вьюс, выбираем grid и задаем количество столбцов, например - 2 столбца по горизонтали. 8. Размер картинок делаем, изменяя стили изображений через админку. ВСЕ!
Создание title страницы, отдельного от h1 заголовка Я долго мучилась над этим: везде написано, что page title обеспечивает отдельный тайтл для страницы, и в опции редактирования статьи действительно появлялось поле для прописывания тайтла. Однако ничего не получалось: заголовок страницы каждый раз совпадал с заголовком статьи. Оказывается, необходимо совместить два модуля, отвечающих за вывод этой функции. Сейчас мы это и сделаем. Для этого нам понадобятся два модуля: metatag и page title. 1. Сначала идем в page title и смотрим на дефолтный паттерн: [current-pageage-title] - его необходимо сохранить как есть. Внизу есть еще опции для других типов контента, их не трогаем, чекбоксы не помечаем, все оставляем пустым. 2. Копируем паттерн и теперь идем в настройки metatag. Там будет список возможных паттернов. Открываем "Материал" и нажимаем "переопределить" или "override". 3. В заголовок страницы прописываем дефолтный паттерн page title. Сохраняем. Готово! Теперь при написании статьи этот паттерн уже будет автоматически выводиться в поле метатегов. Все, что вам остается - это прописывать ваш собственный тайтл в поле page title.
ЧПУ на друпал: с категориями и без категорий Этот очень болезненный вопрос не давал мне покоя, а именно - как правильно настроить токены в паттернах вывода урлов. Вариант первый: название статьи без категории Это очень просто: заходим во вкладку pattern и задаем дефолтный вывод для всех нод - [node:title].html (ну или без html на конце, как вам нравится. В этом смысле друпал лучше вордпресс: на ВП надо специальный плагин закачивать для отображения подобного окончания, а в друпале пиши что хочешь). и для всех категорий (таксономий): [term:vocabulary]/[term:name] Второй вариант: вывод урла типа category-name/article-name.html Для всех нод ставим: [node:вашеполе]/[node:title].html И последний шаг: запустить bulk updates для выбранного типа материалов. По идее после этого урлы должны автоматически переоформиться. У меня этого не произошло, пришлось делать все ручками. Зато после запуска апдейта заработала транслитерация, так что можно смело задавать автоматическую генерацию урлов: не будет ошибок и дублей.
Красивый слайдер контента средствами Views Slideshow с собственными стилями. Этот слайдер можно сделать самостоятельно, используя представление views, но для этого еще понадобится ряд других нужных модулей: Views slideshow Display Suite Panels Cycle Jquery update (чрезвычайно важный модуль, про него никто не упоминал, но у меня слайдер без него не работал!) Jquery Cycle Точно не уверена, но могут понадобится Libraries. В любом случае, для корректной работки слайдера, необходима библиотека Jquery. 1. Итак, первым делом находим модуль Jquery Cycle. Это не совсем обычный модуль, он представлен в виде js-файла. Его необходимо скопировать, вставить в ноутпад++, назвать точно также, как он представляется на официальном сайте и загрузить в директорию: /sites/all/libraries/jquery.cycle. 2. Теперь скачиваем остальные вышеуказанные модули и активируем их в админке. 3. Следующий шаг: создаем view mode для слайдшоу, сущность выбираем node. Этот мод мы создаем, естественно, с помощью Display suite. 4. Теперь нам надо привязать этот мод к типу контента, который мы хотим выводить в слайдере. Например, article. Идем в тип контента, открываем вкладку custom display settings, ставим галочки напротив нужного нам мода. После этого он автоматически появится во вкладке выбранных способов отображения этого типа контента. 5. Настраиваем мод: если хотите, чтобы в слайдере выводился контент каким-то определенным образом, например, фото слева, а текст - справа, то выбираем layout - Panels - Two column bricks. Сохраняем. Теперь можно выбрать нужные элементы и поставить их в нужные поля. Важно: изображение должно быть в формате cycle. Можно прикрутить свои стили к выводу. Например, в форме написания материала вывести поле, в котором будет описания конкретной статьи именно для слайдера: это избавит вас от дублирования контента. 6. Создаем вьюшку в виде блока для содержимого. В настройках указываем формат slideshow, show - Display suite. В настройках указываем тип вывода тот мод для слайдшоу, который был создал ранее. 7. Теперь ставим блок в выбранный вами регион и наслаждаемся красивым слайдшоу!!! Слайдер интегрируется в вашу тему и забирает стили оттуда.
Как вставить javascript в ноду Дело такое: надо было вставить html-форму и к ней - яваскрипт код калькулятора, и чтобы все было на одной странице. Билась с этой проблемой полдня. Многие советуют использовать drupal_add_js, но он у меня не заработал. Решение найдено: 1. Ставим плагин Display suite и Panels. 2. Создаем новый тип контента и задаем во вкладке manage display новый layout из Panels (у меня это идет лучше всего: тогда сразу много разных типов полей предлагается создать). 3. Щелкаем custom fileds и выбираем add code field. 4. Вставляем в поле наш яваскрипт и сохраняем. 5. Вставляем поле в выбранный нами тип контента. 6. Создаем блок и вписываем туда в режиме source форму с html-кодом. Сохраняем без переключения в визуальный редактор. 7. Выводим блок на нужной странице (на той, что мы вывели яваскрипт). ВСЕ!!!
Как сделать список всех опубликованных материалов юзера из его личного кабинета Эта задача стояла у меня уже с тех пор, как я стала делать сайт вакансий. Надо было связать все записи определенного юзера с его аккаунтом. В данном случае это были публикации вакансий из определенного типа контента. Я мучилась с этой невыполнимой задачей несколько дней и уже стала грустнеть, осознавая собственную, простите, тупость. Но внезапно пришла подсказка из одного сообщества Вконтакте, а дальше уже я делала по наитию. И у меня получилось. Итак, как же это сделать? 1. Создаем тип контента и называем его как хотим (у меня это Job). Создаем там свои поля и вывод с помощью DS и Panels. 2. Идем во views и создаем тип "блок". Задаем неформатированный список из полей. 3. Добавляем поля. Можно делать что угодно, смотря, что вы хотите вывести. Я на всякий случай вывела еще и имя, чтобы проверить, что действительно вывод ссылок привязан к определенному юзеру, а не ко всем подряд. 4. Filter Criteria - вот тут будьте внимательны: Content: Published (Yes) Content: Type (= Job) (author) User: Current (Yes) 5. В Relationship указываем: Content: Author 6. Список получился некрасивый, поэтому можно его немного привести в порядок. Для этого меняем неформатированный список на табличку, и выводим наши поля там, где хотим: справа, слева и посередине. Если у вас в полях ноды есть фото, то можно и его вывести и показать в табличке со ссылкой на материал. 7. Теперь идем в блоки, находим наш блок и прикрепляем его к тому региону, где хотим вывести. 8. Теперь делаем настройки: задаем определенную страницу вывода, а именно - адрес личного кабинета пользователя. ВСЕ! В принципе, это все. Совсем приукрашивать вьюшку я не стала, но, в принципе, думаю, возможно вывести красоту, если создать вью мод в определенном типе контента с нужным лэйаутом.
Как сделать HTML-карту сайта с помощью views К сожалению, плагина, который бы генерировал карту сайта для юзеров на друпале я не нашла. Но не все потеряно, ведь есть такой отличный модуль, как вьюс! С помощью него я создала карту, которая выглядит даже лучше карты из коробки на другом моем сайте (который на вордпресс). Итак: 1. Идем во вьюс и жмем: создать новый вью. Выбираем: - страница - неформатированный список - поля. Жмем галочку: создать линк в меню. Теперь сохраняем и редактируем. 2. Теперь выбираем, что мы покажем. В пункте "Поля" выбираем показывать заголовок и название категории (то поле, по которому вы группируете все свои статьи). 3. После этого переходим в настройки вывода неформатированного списка и выбираем: "Grouping field Nr.1" - то самое ваше поле категории. 4. Открываем настройки вашего поля категории в разделе "Поля" и выбираем: отменить отображение (Exclude from display). 5. Фильтр критериев - выбираем "опубликовано" и "тип материала". 6. Сортировка: по дате публикации. Все - ваша карта сайта должна работать. Все статьи группируются по категориям.
Как удалить ошибки базы данных После установки друпала в админке а также - во фронтенде появлялось окно ошибки в файле bootstrap.inc. Известно, что такие окна довольно опасны: она показываются даже рядовому посетителю и отображают полный путь до базы данных. Как исправить ошибку базы данных? Как я выяснила, очень часто проблема именно в неиспользуемых переменных или ошибках темы. Убрать ошибку можно с помощью чистки таблиц базы данных. Итак: 1. Устанавливаем модуль Variable check. 2. Идем в меню Reports и жмем Check system variables. 3. Если есть ошибка, то система показывает таблицу, где самый левый столбец - нужная нам переменная. 4. Копируем ее название и идем в базу данных, ждем "поиск" и выбираем в каких таблицах искать. Я выбрала все на всякий случай. 5. Находим нужную таблицу, ждем чекбоксы и кликаем: удалить. После того, как таблицы почищены, ошибка исчезает!
Да, надо бы там всё полезное скопировать, писали для себя… чтобы и поделиться, и потом легко найти. Мои тоже скопируй, ок?
Пошаговые инструкции от Dreamy: Клонирование типа материала МодульBundle copy:https://www.drupal.org/project/bundle_copy- версия7.x-2.x-dev (в версии 7.x-1.1 клонирования нет!!) 1. Ставим модуль, идём в Типы материалов: Управление › Структура › Типы материалов. 2. Кликаем наКлонировать. 3. В полеSource Bundleвыбираем тип, который желаем повторить. 4. В полеNew Bundle Nameпишем название нового типа материала, после ввода появится поле "Машинное имя", где вводим латиницей. 5. Жмём кнопкуКлонировать. Тип материала дублируется полностью, поэтому в настройках нового типа нужно внести необходимые коррективы.
Если слетела иерархия Админ меню Сегодня у меня случилась беда: грохнулась иерархия админ меню, и всё перемешалось. Особенно пострадала панель "Содержание" - там в ряд выстроились и пункты меню, и типы материалов - всё красиво так, по алфавиту, и совершенно бестолково. Что только не делала: чистила кэши, пыталась навести порядок через Меню Админ-меню, меняла настройки, сносила модуль, ставила стабильную версию, ставила самую новую, … Все меры помогали лишь частично, там меню экранов на сто!! Гуглила, но ничего не находила - видно, только у меня такая бяка произошла. Потом стала читать всё подряд про админ-меню на друпаловском форуме. Обратила внимание на упоминание недостатка памяти. Итак, что помогло. 1. Дождалась, пока на сайте уменьшится число юзеров (ночи ждать не могла, уже трясло от досады) и сделала бэкап, почистила кэш. 2. Отключила модуль. 3. Удалила его в админке. 4. Перевела сайт в офф-режим. 5. Удалила модуль через фтп. 6. Сделала апдейт (update.php). 7. Залила стабильную версию. 8. Включила модуль в админке. 9. ВСЁ исправилось!! 10. Вернула сайт в онлайн-режим. Подозреваю, что прежние переподключения модуля не помогли, поскольку включала модуль уже в онлайн-режиме, а там требуется очень много памяти для построения меню. И самое главное: не нужно вообще ничего менять в иерархии меню Админ меню - толку никакого, только хуже становится. Подозреваю, что с этого всё и началось (я решила выключить лишние позиции).
Как вывести представление на страницу в поле 1. Подключить модульviewfieldhttps://www.drupal.org/project/viewfield 2. Создать представление (достаточно дефолтного отображения). 3. Создать в типе материала поле, выбрав в списке типов данных "представление". 4. В параметрах поля отобразится список всех имеющихся представлений, там поставить галочку в нужном. Там есть ещё настройки, но я в них до сих пор не разобралась, использую методом тыка, выбирая то, что подходит в конкретном случае. Этот способ особенно удобен для вывода контекстных представлений, которые относятся только к данной странице. Например, как у тебя - вывести в резюме список всех вакансий этого юзера. Для этого в представлении нужно добавить аргументы (контекстные фильтры). Наверно, твоё представление сработает. Или, допустим, сайт объявлений о продаже автомобилей. На каждую модель создана страница с фото, параметрами, техописанием. Когда юзер создаёт объявление о продаже, он выбирает в списке модель, а представление автоматически выведет на конечную страницу требуемые поля о стандартной модели (пример с потолка, чтобы объяснить возможности). Думаю, пора создать топик только о представлениях, тема широкая.