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

Как свернуть произвольный код в PHP Storm

Опубликовано MBaev от 02.07.2016, 13:09

Этот мануал применим ко всем продуктам JetBrains (точно применим к RubyMine и WebStorm). Проверено на версии PHP Storm 9 и новее. Он посвящён, в первую очередь, тем, кто любит настраивать все "под себя" и получать удовольствие от программирования.
За несколько лет работы с PHPStorm'ом и RubyMine я достаточно хорошо изучил большинство возможностей этих систем.

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

Группировка в блоке Structure

Недавно я начал заставлять себя привыкать к блоку в среде, который называется "Structure". Он позволяет быстро ориентироваться в больших файлах, предоставляя краткий список функций, констант, классов и т.д., находящихся в файле, а также даёт возможность поиска по объявлениям и их сортировки.
Но вот если хочется разбить функции в файле, что очень подходит для разработки под процедурные системы, такие как Drupal, то нужно лишь научиться создавать кастомные регионы.

Tags

Обрезка текста с многоточием css

Опубликовано MBaev от 01.06.2016, 12:08

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

Tags

Как создать дисплей

Опубликовано MBaev от 30.05.2016, 11:43

По умолчанию, в Drupal'е есть несколько дисплеев для нод: teaser, full, default, rss,...
Создать дополнительный тип отображения нод очень просто:

Как программно авторизовать пользователя

Опубликовано MBaev от 24.05.2016, 12:24

В Drupal'е очень легко авторизовать пользователя. Для этого нужно знать всего лишь User ID.

  1. $uid = 1;
  2. $account['uid'] = $uid;
  3. user_login_submit(array(), $account);

После авторизации таким способом, пользователь будет перенаправлен на страницу пользователя. Иногда этого делать на надо, тогда можно авторизовать более низкоуровневым способом.

Работа с ssh

Опубликовано MBaev от 18.05.2016, 11:52

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

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

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

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

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

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

Tags

Изменение модального окна 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

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

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

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

Опубликовано MBaev от 28.04.2016, 10:26

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

contextual-links-collapsed contextual-links-expanded

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

Опубликовано MBaev от 27.04.2016, 10:22

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

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

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

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

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

Настройка PhpStorm

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

Tags

Работа с токенами. Часть 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 (Показать список доступных токенов), после чего откроется всплывающее окно.