Последние записи

Работа с ssh

mbaev 18.05.2016, 11:52
Tags

Обычно подключаться к серверу можно двумя способами: с помощью логина и пароля или с помощью ключа.

С первым способом все понятно: при соединении сервер спрашивает логин и пароль и вуаля!
drupalhosting

Со вторым способом все интереснее. Нужно:

  • Проверить поддерживает ли сервер соединение по ssh с помощью ключа
  • Создать ключ, который состоит их 2х частей: {key} и {key}.pub
  • Положить {key}.pub на сервер, с которым собираешься соединяться

И кажется, что на этом все... Но если мы имеем несколько серверов, то безопаснее создать по ключу на сервер и объяснить своему компьютеру какой ключ к какому серверу использовать. Именно об этом краткая заметка.

Для того, чтобы объяснить компьютеру какой ключ нужно брать для подключения к северу достаточно создать файл config в папке ~/users/{username}/.ssh. Например, у меня: C:\Users\mbaev\.ssh. В этот файл записываем:

Изменение модального окна CTools

mbaev 12.05.2016, 07:52

Модуль CTools, был написан программистом по имени Earl Miles. Он так же написал такие модули Views, Panels и другие. CTools предоставляет большое количество вспомогательных функций, которые упрощают жизнь программисту. На текущий момент у модуля CTools нет официальной страницы с документацией.

Это описание одной из фич модуля CTools, а именно изменение модального окна.

Простой вариант

Темизируем любое окно, вызванное ссылкой/кнопкой.

Красивая запись в watchdog

mbaev 11.05.2016, 14:53

Когда пишется кастомный модуль, то обычно существует обработка ошибок с помощью watchdog или watchdog_exception. Стандартный вывод такого сообщения выглядит не информативно и мало-симпатично. Следующий пример обработки ошибки можно встретить достаточно часто:

Работа с git в PhpStorm. Rebase

mbaev 04.05.2016, 18:54
Tags

На сегодняшний момент невозможно представить процесс разработки в команде без какой-либо системы контроля версий. В git'е существует две основных стратегии слияния веток:

  1. Merge. Делается путем объединения двух веток с созданием (необязательно) объединяющего коммита.
    Git merge strategy
  2. Rebase. Позволяет создавать неограниченное множество веток, которые в последствии, как правило, удаляются, а коммиты переносятся в master-ветку. При этом они могут быть сжаты в один коммит.
    rebase git

Как вытащить контекстные ссылки

mbaev 28.04.2016, 10:26

Однажды я столкнулся с необходимостью вытащить все action ссылки и табы из нод и сделать из них контекстные ссылки, примерно так, как это делает модуль Contextual links. Этот модуль мне не нравится потому, что он не позволяет настроить отображение контекстных ссылок только в нодах.
Итак, у нас есть какая-то своя тема или модуль и этого достаточно, чтобы вывести красивое контекстное меню для нод.

contextual-links-collapsed contextual-links-expanded

Автоматическая компиляция css в PhpStorm

mbaev 27.04.2016, 10:22
Tags

Сейчас активно используются три типа метаязыков: SCSS, SASS (что. в общем-то, является улучшенным SСSS) и LESS. Для того, чтобы работать с ними, не задумываясь о процессе компиляции в css нужно выполнить два шага:

  1. Установить компилятор
  2. Настроить PhpStorm

Так же, здесь есть и свои проблемы, но о них позже.

Установка компилятора

В интернете достаточно мануалов по установке компиляторов. Не буду заострять на них внимание, лишь кину пару ссылок на материалы по установке:

Настройка PhpStorm

Каждому нравится свой подход и свои настройки. В одно и тоже время PhpStorm для одного будет божественно настроенный, для другого - неприятный редактор. Я опишу один из способов настройки, которым пользуюсь сам.
Настраивая компилятор в PhpStorm'е, я преследовал цель безмятежной разработки тем и модулей в Drupal'е, а именно: при такой структуре каталогов

Работа с токенами. Часть 2

mbaev 21.04.2016, 08:44

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

  1. создание группы токенов;
    tokens-2.1

  2. добавление группы токенов в сущестующую группу;
    tokens-2.3

Создание группы токенов

Здесь достаточно объявить тип токена и наполнить его токенами.

Установка и настройка модуля Token Filter

mbaev 19.04.2016, 09:23

Это памятка о том, как работать с модулем для Drupal 7 Token Filter, необходимым для обработки полей body в тексте материала. Например, он может понадобиться при особой работе с токенами.

Установка ни чем не отличается от стандартной установки модуля, поэтому о настройке: модуль Token Filter "закрепляется" за текстовым форматом, таким образом не следует переживать о производительности!

Нужно учесть, что восклицание о производительности справедливо только в том случае, если каждая из десятков или сотен тысяч статей на сайте не должна использовать токены. Дело в том, что функция которая ищет по тексту токены использует функцию preg_match_all, которая имеет свои нюансы и проблемы производительности на больших текстах.

Работа с токенами. Часть 1

mbaev 18.04.2016, 08:29

Немного о токенах

Здесь будет описано несколько вариантов работы с токенами. Токены предоставляет третий по популярности модуль Token. Токены - это специальные слова обрамленные квадратными скобками ("[", "]"), которые в некоторых случаях могут заменяться на смысловые значения. Например, если установить четвертый по популярности модуль pathauto, то в админке "Home » Administration » Configuration » Search and metadata » URL aliases" (admin/config/search/path/patterns) можно будет использовать токены для генерации человекочитабельных путей (алиасов) к страницам:
URL Patterns

Чтобы получить список токенов достаточно кликнуть на ссылку Browse available tokens (Показать список доступных токенов), после чего откроется всплывающее окно.

Как открыть сайт для локальной сети

mbaev 12.04.2016, 07:53

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

Требования

  • Open Server
  • Настроенная локальная сеть
    Настроенной локальной сетью считается сеть, в которой 2 или более компьютеров могут обмениться файлами через расшаренные папки.
  • Установленный Drupal (любой версии)

Мы рассмотрим пример, где

Как переопределить поведение ajax-ссылки

mbaev 07.04.2016, 13:16

Многим известно, что в Drupal'е есть собственный ajax-фреймворк, который использует в качестве ответов, так называемые, команды. Сами запросы могут быть инициированы разными способами:

  1. Присвоив класс use-ajax на любой тэг (на стороне сервера или на стороне клиента, но перед инициализацией Drupal js части). В базовом использовании этого варианта есть обязательное условие - тэг должен иметь атрибут href содержащий путь, на который будет выполнен ajax запрос.
  2. Определив параметр #ajax в форме (на стороне сервера).
  3. Присвоив параметр use-ajax-submit форме (тэг form). Это что-то среднее между п.1 и п.2.
  4. Инициировав new Drupal.ajax() (на стороне клиента)

Изменение поведения ajax-обработчика

Рассмотрим пример с ссылкой, на которой есть класс use-ajax. Мы будет изменять состояние bootstrap кнопки на момент выполнения запроса - пример.
Наша вымышленная страница содержит такой тэг: