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

Skype с арабского на русский

Опубликовано MBaev от 18.03.2017, 14:44

Сегодня во время скоростной переписки в скайпе я задел Alt неуклюже пробежался по клавиатуре. Поднял глаза и увидел такую картину:
skype-arab

Малоприятная ситуация. Для того, чтобы вернуть знакомый язык тыкаем следующие кнопки:

select-language


change-language

Отладка php c xDebug в Php Storm

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

Для настройки xDebug, с помощью которого можно выполнять отладку php приложений, с помощью этой статьи, необходимо иметь:

Настройка расширения xDebug

Настройка простая и занимает ~5 минут для подготовленного и ~15 для неподготовленного человека.

  1. Ищем место, где находится файл php.ini. Выполняем в консоли/терминале:
    1. php --ini

    Результат:

Tags

Длина Друпала в попугаях

Опубликовано MBaev от 25.11.2016, 20:13
Это пост, в котором не будет описания установки модуля, программного создания ноды или того, как избавиться от ошибок. Только попугаи!

Как создать свой дисплей для ноды

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

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

Например, в дисплее Full мы можем отображать все поля, в дисплее Teaser - обрезанное поле Body, а в кастомном только поля, созданные нами.

По умолчанию Друпал имеет три дисплея:

  • Full content (full)
  • Teaser (teaser)
  • RSS (rss)

Модуль Token предоставляет дисплей Tokens (token).

Способ первый создание дисплея под контролем модуля node

Для создания нового дисплея нужно выполнить несколько шагов:

Drupal ajax страницы без перезагрузки

Опубликовано MBaev от 14.11.2016, 16:19

Это всего лишь мокап, который я накидал за 20 минут "на коленке" и он требует доработки, но уже сейчас этот js-скрипт позволит простым сайтам работать без перезагрузки страниц.

Для примера, можно сёрфить по нодам в блоге или переходить из редактирования ноды в режим просмотра ноды. В большей степени, продолжают корректно работать ajax-ссылки, созданные, например, с помощью views.

Запрет на исследование элементов в браузере

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

disallow-to-debug

Этот js-сниппет запрещает "Исследовать элементы" на странице. Если быть точнее, при открытии браузерной консоли он циклически останавливает работу js-скрипта брекпоинтом, запрещая тем самым использовать селектор элементов.

Путь от O(n!) до O(1)

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

Мой коллега Денис Соболев прислал достаточно интересную подборку сайтов/сервисов, позволяющих подтянуть и улучшить свои навыки в программировании. С его разрешения я положу подборку здесь.

--

В целях профилактики алгоритмических навыков среди разработчиков, ниже приведены ресурсы, которые помогут вам пройти путь от O(n!) до O(1).

Отладка темы в Друпале

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

Для того, чтобы увидеть отладочную информацию Друпала, достаточно установить переменную theme_debug в TRUE. Способа включить отображение этой информации через интерфейс- нет, но можно с помощью Drush.

  1. drush vset theme_debug --format=boolean 1

Если нет возможности использовать Drush, то всегда можно залезть через базу. Друпал хранит переменные в таблице variable. Изначально, записи о переменной theme_debug там нет, но мы можем добавить.

  1. INSERT INTO variable (name, VALUE) VALUES ('theme_debug', 'b:1;');

А если уже добавляли, то можно изменить.

Скрипт подсчета строк в проекте

Опубликовано MBaev от 24.10.2016, 19:19

С кружкой кофе на столе, решил подготовить пост к пятнице. Но для этого мне нужен скрипт, который "склеит" все файлы из указанной папки. А после этого посчитает количество строк в получившемся холсте. Особенность скрипта заключается в том, что он группирует сумму строк из файлов по расширению.

В функции associations вы можете сформировать мапинг, в соответствии с которым, будет выведен на экран общий подсчет.

Если вдруг, по необъяснимым причинам, вы все еще пользуетесь версией php ниже 5.4, то нужно заменить объявление массива на классический вариант. Подробнее...

Tags

Drupal htaccess

Опубликовано MBaev от 19.10.2016, 16:36

В блогах и обзорах, почему-то, редко упоминается очень важный файл .htaccess. А тем временем он уже хранит в себе важную функциональность, которая доступна новичкам с самого начала работы с Друпал.
Итак, кроме всего прочего, этот файл предоставляет возможность перенаправлять пользователя внутри себя по определенным правилам. Важная эта функциональность потому, что по умолчанию сайт доступен и по адресу www.example.com и по адресу example.com. С точки зрения поисковиков - это разные сайты, а значит один из них зеркало. Если об этом не сообщить поисковикам, то это плохо скажется на репутации вашего сайта.
 

Фикс неудачного запуска MySQL в OpenServer

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

Иногда при запуске или перезапуске Open Server в логах возникает ошибка:

Не удалось запустить MySQL-x-x.

Это происходит в связи с тем, что не запущен демон mysqld.exe. Он находится в папке /modules/database/MySQL-x.x/bin/mysqld.exe, где x-x - это версия модуля mysql установленная в настройках Open Server'а.
open-server-mysql

Для подтверждения симптомов, можно попытаться запустить в консоли команду

  1. mysql

и получить ошибку

ERROR 2003 (HY000): Can't connect to MySQL server on localhost (10061)

Это сработает при условии, что у вас установлена переменная mysql в Windows-окружении.

Решение

Решение простое - нужно запустить mysql-демон. Это можно сделать вручную - найти его по адресу /modules/database/MySQL-x.x/bin/mysqld.exe

Или создать закладку в Open Server'е.

Подсветка измененных файлов в PhpStrom

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

phpstorm-git

Если вы еще не работаете с Git в PhpStorm, но хотите начать, то вот статья, которая может быть полезной: Работа с Git в PhpStorm (JetBrains). Если уже начали, то вы знаете, что по умолчанию PhpStorm показывает только изменённые или добавленные файлы, не подсвечивая при этом, родительскую папку. Вот несколько способов улучшить процесс.

Tags

Отключение кэширования twig в Drupal 8

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

cant-create-theme-in-drupal-8.jpg

По умолчанию, в Drupal 8 включено кэширование Twig шаблонов. Это создает определенные трудности при разработке тем: каждое изменение требует сбрасывания кэша, что рано или поздно приводит разработчиков в бешенство)

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

Мат в три хода

Для того, чтобы выключить кэш нужно:

Кнопка вставки кода и подсветка синтаксиса в CKEditor

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

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

До недавнего времени с этим было сложно - приходилось устанавливать модули codefilter, geshifilter, как-то настраивать их в обход багов. Но теперь такая возможность есть и она активно используется на этом блоге, а теперь доступна и в комментариях.

Реализация достаточно простая и занимает, в общей сложности, от 5 до 20 минут, в зависимости от опыта и знаний настройщика.

Необходимые модули

Начнем с установки необходимых модулей:

  • GeSHi Filter for syntax highlighting. Известный многим, модуль, который позволяет подсвечивать синтаксис огромного количества языков. (на момент написания статьи, я использовал версию 8.x-1.0-beta1)

  • CodeButton. Модуль существует только в песочнице. Поэтому его можно клонировать с помощью гита:

Как разблокировать аккаунт после 5 неудачных попыток входа

Опубликовано MBaev от 14.10.2016, 15:18

Наверное, каждый сталкивался с ошибкой при попытке авторизации с не валидными данными, которая по-английски звучит так

Sorry, there have been more than 5 failed login attempts for this account. It is temporarily blocked. Try again later or request a new password.

а по-русски

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

Это простая самооборона Друпала, которая активируется после 5 (по умолчанию) попыток входа. Таким образом, система не позволяет злоумышленникам забрутофорсить (англ. brute force. Cм. Полный перебор) сайт. Работает она достаточно просто: во время каждой авторизации, Друпал сохраняет ip-адрес пользователя, запоминая при этом, точную дату события и дату окончания "срока годности" попытки.

Вот некоторые нюансы:

  • По умолчанию "срок годности" составляет 1 земной час.
  • Количество возможных, неудачных попыток входа - 5.
  • Эти значения могут быть изменены.
  • Вместо ip-адреса может быть сохранено имя хоста.
  • Данные, у которых истек "срок годности" очищаются только по крону.
  • Вы можете войти в систему, в любом случае если пройдете процедуру "Сброса пароля"!

Вот еще один интересный факт: