Блокнот

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

  • Подключение CSS файла с использованием JavaScript

     

    Если требуется выполнить подключение CSS файл в секцию head страницы, например, после загрузки страницы, с целью оптимизации скорости или наступления определённого события, можно воспользоваться следующим JavaScript кодом.

  • Проверка версии GetSimple CMS в плагине

     

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

  • Использования плагина Lazy Load с компонентами в GetSimple CMS

     

    Плагин Lazy Load для GetSimple CMS автоматически добавляет отложенную загрузку изображений, включённых в содержание страницы. Для отложенной загрузки изображений, выводимых в шаблоне оформления страницы, с помощью компонента, следует использовать функцию плагина Lazy Load lazyload_filter().

  • Функция сохранения вывода компонента в переменную для GetSimple CMS

     

    В GetSimple CMS 3.3.x для вывода компонента в шаблоне оформления страницы используется функция get_component(). Но в ряде случаев вместо вывода может потребоваться сохранение содержания компонента в переменной. Если такая задача встречается более одного раза, то удобнее использовать собственную функцию.

  • Контролируемое использование Twig тэга spaceless

     

    В ряде сценариев, например, при разработке и отладке шаблонов оформления, постоянное использование Twig тэга spaceless является нежелательным. Для того, чтобы не вносить постоянные изменения в код шаблонов, добавляя и удаляя пары тэгов spaceless, следует предусмотреть возможность контролируемого управления их использованием на основании задаваемого условия.

  • Удаление лишних пробелов в генерируемом HTML коде страницы с помощью Twig

     

    Поводом для написания этой заметки послужил вопрос о том, как минифицировать генерируемый HTML код страницы средствами Grav CMS с целью удаления лишних символов пробела, приводящих к неправильному отображению элементов страницы в браузере.

  • Получение всех тэгов таксономии коллекции страниц в шаблоне Twig для Grav CMS

     

    Для создания списка тэгами таксономии страниц в Grav CMS используется плагин Taxonomy List, однако часто приходится решать задачи, для которых этот плагин не подходит, например, для создания списка тэгов таксономии для отдельных коллекций, либо при необходимости снижения количества и уменьшения зависимости веб-сайта от набора используемых плагинов.

  • Tachyons и контейнер в полную ширину страницы внутри родителя с фиксированной шириной

     

    В Tachyons 4.7.0 нет готового модуля для создания контейнеров в полную ширину страницы внутри родителя с фиксированной шириной. Также нет и требующегося для этого набора классов. Поэтому для решения задачи следует использовать собственный класс или добавить собственный модуль.

  • Контейнер в полную ширину страницы внутри родителя с фиксированной шириной

     

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

  • Изменение пароля пользователя с использованием CLI Grav CMS

     

    Я уже писал о простом способе изменения пароля пользователя в Grav CMS. Если по каким-либо причинам, вы не хотите или не можете напрямую вносить изменения в YAML файл профиля пользователя, но имеете доступ к командной строке, то можете изменить пароль пользователя при помощи встроенного командного интерфейса (CLI) Grav CMS, вызвав специальную команду плагина Login.

  • Удобный метод для извлечения содержимого директории из zip архива

     

    При разработке PHP приложений, работающих с файловыми zip архивами, я использую стандартное PHP расширение для сжатия и архивации Zip. Это расширение делает доступным использование класса ZipArchive, реализующего методы, позволяющие выполнять основные действия с zip архивами, которые требуются при решении большинства задач. Однако в ряде случаев, в классе ZipArchive мне не хватает метода, позволяющего извлечь содержимое заданной директории архива в указанное место, не сохраняя при этом родительскую структуру директорий.

  • Включение автоматической транслитерации в GetSimple CMS 3.4

     

    Я уже писал о том, как самостоятельно решить проблему автоматической транслитерации имён загружаемых файлов в GetSimple CMS. Для тех, кто не хотел вносить изменения в файлы системы управления контентом, есть хорошая новость: в GetSimple CMS 3.4 возможность автоматической транслитерации будет доступна по умолчанию. Можно не дожидаться официального релиза, и уже сейчас установить ветку master, чтобы оценить, как это работает.

  • Регистронезависимое сравнение строк в Bash

     

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

  • Почему iconv не возвращает ничего

     

    Переводя текст из одной кодовой страницы в другую, используя PHP функцию iconv(), можно столкнуться с проблемой — iconv() не возвращает ничего. На самом деле, возвращает, но не ожидаемую строку, а логическое значение false. Почему так происходит и что с этим делать?

  • Ajax запрос фрагмента страницы с использованием JQuery

     

    Когда возникает потребность в обновлении блоков текущей страницы без её перезагрузки, получая содержимое для этих блоков на других страницах веб-сайта, следует использовать технологию Ajax. Библиотека JQuery значительно упрощает задачу, предоставляя необходимые методы для обработки Ajax запросов.

  • Получение текущего используемого значения CSS свойства элемента

     

    Для получения текущего используемого значения CSS свойства стиля элемента в JavaScript следует использовать метод window.getComputedStyle. В зависимости от запрашиваемого свойства стиля, этот метод позволяет получить вычисленное или окончательное значение.

  • Изменение алгоритма расчёта размеров всех элементов

     

    Изменение алгоритма расчёта размеров боксов в боксовой модели CSS со стандартного content-box на border-box во многом облегчает процесс вёрстки макетов. Для изменения свойства box-sizing для всех элементов HTML документа можно использовать следующий фрагмент CSS кода.

  • Автоматизация установки GetSimple CMS с использованием командной строки

     

    Ранее я уже писал об автоматизации установки GetSimple CMS с использованием Git, однако установить GetSimple CMS в автоматическом режиме можно и без его использования, что может быть удобно при работе на сервере, где не установлены привычные инструменты разработки.

  • Функции для вывода форматированного дампа переменной для GetSimple CMS

     

    Отвечая на вопросы, оказывая поддержку и помогая решить проблемы пользователям GetSimple CMS, часто я прошу показать мне дамп переменных или результатов выполнения функций. Для того, чтобы у пользователя не возникало дополнительных вопросов, а вывод дампа имел удобный для восприятия вид, я предлагаю использовать одну из приведённых PHP функций.

  • Говорящий скрипт на PowerShell

     

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

  • Ограничение пользователей в доступе к чужим страницам в GetSimple CMS

     

    В развитие темы ограничения пользователей в создании публичных страниц в GetSimple CMS, я предлагаю также рассмотреть вариант реализации ограничения для пользователей на редактирование и выполнение иных действий с чужими страницами, дополняющий предыдущее решение.

  • Ограничение пользователей в создании публичных страниц в GetSimple CMS

     

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

  • Новая Twig функция vardump в Grav CMS

     

    В предстоящем релизе Grav CMS 1.3.0 будет добавлена новая Twig функция vardump, предоставляющая ещё одну возможность для вывода дампа переменных.

  • Наследование значения поля страницы в Grav CMS

     

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

  • Очистка списка ключевых слов страницы от параметров плагинов в GetSimple CMS

     

    Ряд популярных плагинов для GetSimple CMS требуют от пользователя добавления параметров, необходимых для их работы, в ключевые слова страницы. Такой подход позволяет избавиться от необходимости добавлять специальные поля плагинов в форму редактора страниц, но приводит к замусориванию мета-данных, что негативно сказывается на эффективности SEO-оптимизации, а также ограничивает возможности вывода списков ключевых слов на страницах веб-сайта. Частичным решением описанных проблем является очистка списка ключевых слов от параметров плагинов.

  • Создание массива уникальных имён директорий в сценарии Bash

     

    Идея для написания этой заметки возникла при решении практической задачи: необходимо обработать определённым образом большое количество директорий, различного уровня вложенности, содержащих файлы определённого типа, на сервере, работающем под управлением операционной системы Fedora Server без графического оконного менеджера. В этих условиях наиболее удобным решением является написание сценария на языке Bash.

  • Официальная поддержка пользовательских шорткодов плагином Shortcode Core в Grav CMS

     

    Важная новость для всех активных пользователей шорткодов в Grav CMS с плагином Shortcode Core: начиная с версии Shortcode Core 2.6.0, плагин официально поддерживает использование пользовательских шорткодов.

  • Задание и вывод описаний для значений типов таксономии в Grav CMS

     

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

  • Упрощение работы с файлом hosts в Microsoft Windows

     

    Редактирование файла hosts это частая задача для тех, кто занимается веб-разработкой локально в среде Microsoft Windows. Например, внесение изменений в файл hosts требуется при создании нового виртуального хоста на Apache, чтобы сделать его доступным по удобному для себя адресу. Поэтому неплохо упростить выполнение этого рутинного действия.

  • Вызов методов класса темы оформления в шаблоне Twig в Grav CMS

     

    Работая над темами оформления для Grav CMS, у меня периодически возникает необходимость реализации логики, описание которой на языке шаблонизатора Twig не удобно, либо требует функций, недоступных в шаблонизаторе. Первое, что приходит в голову в таком случае – написание и использование собственных Twig функций. Однако есть способ проще.

  • Функция проверки существования страницы для GetSimple CMS

     

    В GetSimple CMS отсутствует стандартная функция для проверки существования страницы, однако необходимость такой проверки периодически возникает, например, при разработке тем оформления. Раз функция не существует, то следует написать её самостоятельно.

  • Настройка NetBeans для запуска Grav CMS на встроенном веб-сервере PHP

     

    Одной из возможностей интегрированной среды разработки NetBeans, которую я использую при работе над своими проектами, является задание настроек выполнения проекта.

  • Добавление и удаление обработчиков событий на чистом JavaScript, но, как в JQuery

     

    Хочу поделиться примером простой реализации методов, аналогичных методам on и off из библиотеки JQuery, специально для тех, кто хочет работать с чистым JavaScript, но не готов сразу отказаться от сформировавшихся привычек.

  • Использование проверки аутентификации посетителя веб-сайта в GetSimple CMS

     

    Эта заметка является ответом на вопрос о том, как, используя шаблон оформления страницы, вывести сообщение для зарегистрированного в системе посетителя веб-сайта, работающего под управлением GetSimple CMS.

  • Выполнение строки кода, содержащего прямое обращение к объекту текущей страницы, в Grav CMS

     

    Ранее я уже рассматривал особенности использования Twig функции evaluate в Grav CMS. Напомню, что важной особенностью является отсутcвие прямого доступа к объекту текущей страницы page, поэтому для обращения к нему необходимо использовать контейнер grav. В текущей версии Grav CMS работа Twig функции evaluate осталась без изменений, но я предлагаю рассмотреть решение, позволяющее обойти описанное ограничение.

  • Решение проблемы кириллических имён загружаемых файлов для GetSimple CMS

     

    Автоматическая обработка имён загружаемых файлов в GetSimple CMS позволяет выполнить очистку имён файлов от недопустимых символов. Но вместе с этим она является значительной проблемой для части русскоязычных пользователей системы управления контентом, не желающих самостоятельно заниматься переименованием файлов перед загрузкой их на веб-сайт.

  • Разработка и подключение шорткодов с использованием плагина gs_shortcodes в GetSimple CMS

     

    Плагин gs_shortcodes для системы управления контентом GetSimple CMS включает в себя набор шорткодов, доступных для использования сразу после установки, а также шорткоды, служащие для демонстрации и расширения возможностей использования плагина. Однако на практике, при работе над проектом веб-сайта, возникает потребность в дополнительных шорткодах, позволяющих реализовать требуемые функциональные возможности разрабатываемого веб-сайта. Именно поэтому разработчику необходимо понимать принцип создания собственных шорткодов.

  • Особенности использования Twig функции evaluate в Grav CMS

     

    Система управления контентом Grav CMS предоставляет разработчику возможность выполнения строки, содержащей код Twig, с использованием Twig функции evaluate внутри шаблонов оформления. Эта возможность может быть полезна в тех случаях, когда код Twig задаётся в качестве содержания поля страницы, настройки веб-сайт или темы оформления.

  • Форма для создания раздела ответов на часто задаваемые вопросы для Grav CMS

     

    Среди требований заказчиков веб-сайтов часто встречается запрос на создание раздела с ответами на часто задаваемые вопросы. Если вы создаёте веб-сайт, работающий под управлением Grav CMS, то реализовать данный функционал можно разными способами – от создания модульных страниц, до написания специального плагина. Но всегда хочется упростить стоящую задачу.

  • Устранение 500 Internal Server Error Apache после установки GetSimple CMS

     

    Если сразу после установки или переноса GetSimple CMS на сервер c установленным, настроенным и работающим Apache, вместо страниц веб-сайта вы получаете ошибку 500 Internal Server Error, то после проверки корректности установленных прав доступа, а также, убедившись в присутствии всех файлов GetSimple CMS в файловой системе веб-сервера, не стоит поддаваться панике и обвинять в происходящем систему управления контентом.

  • Создание эффекта побуквенного оформления текста с использованием Twig и CSS

     

    Рассматриваемый пример создания эффекта побуквенного оформления текста демонстрирует возможности использования Twig и CSS при разработке шаблонов оформления для Grav CMS и других систем управления контентом, использующих в качестве шаблонизатора Twig.

  • Восстановление профиля пользователя GetSimple CMS с использованием шаблона

     

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

  • Вывод сообщения в зависимости от времени просмотра веб-сайта для Grav CMS

     

    Идеей для написания этой заметки послужил вопрос о том, как при помощи Grav CMS реализовать вывод сообщения посетителю веб-сайта организации в зависимости от времени посещения и рабочего режима организации.

  • Использование собственных шорткодов с плагином Shortcode Core в Grav CMS

     

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

  • Простой способ изменения пароля пользователя для Grav CMS

     

    Если вы забыли пароль пользователя, то он может быть изменён стандартным способом с использованием графического пользовательского веб-интерфейса плагина Admin. Однако для этого понадобится настроенная и работающая система отправки почты. Если на вашем тестовом веб-сервере работа почты не настроена, то есть способ проще.

  • Использование Grav CMS со встроенным веб-сервером PHP

     

    Одной из полезных возможностей, добавленных в Grav CMS 1.1.10, стала поддержка работы системы управления контентом на встроенном веб-сервере PHP. Однако разработчики, использующие для запуска встроенного веб-сервера метод, описанный в заметке Удобный запуск встроенного веб-сервера PHP в Microsoft Windows, сталкиваются с проблемой.

  • Использование PowerShell в качестве встроенного терминала в Visual Studio Code

     

    В текущей версии Visual Studio Code 1.8.1 в качестве встроенного терминала, при использовании его в Microsoft Windows, по умолчанию используется интерпретатор комманд cmd.exe. Пользователям, знакомым с возможностями PowerShell, скорее всего, будет удобнее использовать в качестве встроенного терминала именно PowerShell, а не cmd.exe.

  • Приведение значения переменной к типу Boolean в PHP

     

    Приведение значения переменной к типу Boolean является распространённой задачей при разработке на языке PHP. Однако в ряде случаев, выполнения простого приведения типа может быть недостаточно.

  • Единовременная обработка события для элемента на JavaScript

     

    Метод EventTarget.addEventListener() позволяет зарегистрировать определённый обработчик события для генератора событий EventTarget. Зарегистрированное таким образом событие, будет обрабатываться каждый раз при его возникновении. Однако в ряде случаев логика приложения требует только единовременной его обработки.

  • Создание основных типов цветовых схем с использованием LESS

     

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

  • Вывод адресов ссылок при печати веб-страницы

     

    Страницы веб-сайта просматриваются посетителями не только в веб-браузере на экранах различных устройств, но иногда и отправляются на печать. Причём в большинстве случаев печать выполняется напрямую из окна веб-браузера, без дополнительного редактирования.

  • Стилизация исходящих ссылок веб-сайта

     

    Стилизация исходящих ссылок, позволяющая визуально отделить их от внутренних, является распространённой практикой при разработке информационных веб-сайтов.

  • Форма для создания галереи изображений для Grav CMS

     

    Система управления контентом Grav CMS обладает встроенной поддержкой медиа файлов, достаточной для гибкой работы с медиа контентом веб-сайта. Использование графического пользовательского веб-интерфейса панели управления плагина Admin не только упрощает работу по администрированию веб-сайта, но и предоставляет новые возможности по работе с его контентом. Одной из таких возможностей является использование удобного пользовательского интерфейса для создания галерей изображений.

  • Шаблон Twig для Grav CMS, формирующий RSS-канал раздела

     

    Использование RSS-канала позволяет публиковать в сжатом виде размещённую на веб-сайте информацию, обеспечивая удобный и своевременный доступ к ней пользователям, использующим специальное программное обеспечения для чтения RSS-лент, включая онлайн сервисы.

  • Шаблон Twig для Grav CMS, формирующий XML-документ страницы GetSimple CMS

     

    Идея для рассматриваемого решения появилась благодаря возникшей необходимости в переносе содержания нескольких страниц из системы управления контентом Grav CMS в GetSimple CMS.

  • Удобный запуск встроенного веб-сервера PHP в Microsoft Windows

     

    Встроенный веб-сервер - новая возможность, добавленная в PHP 5.4. Предназначение встроенного веб-сервера PHP - повышение удобства разработки веб-приложений, возможность тестового или демонстрационного запуска приложений в полностью контролируемом окружении.

  • Функция для получение имени используемой темы оформления в GetSimple CMS

     

    Имя текущей темы оформления веб-сайта в GetSimple CMS хранится в глобальной переменной $TEMPLATE. Однако для получения её значения специальная функция не предусмотрена.

  • Массовое переименование файлов в PowerShell

     

    Переименование большого количества файлов является одной из распространённых операций при работе с компьтером.

  • Twig тег для перенаправления в Grav CMS

     

    В релизе Grav CMS 1.1.9 rc 1 добавлен новый тег Twig redirect_me, предназначение которого - выполнение перенаправления посетителя на заданную страницу.

  • Дефисы в именах плагинов Grav CMS

     

    Обращение к свойствам плагина Grav CMS с именем myplugin в шаблоне Twig, может быть реализовано следующий образом:

  • Быстрый переход к редактированию страницы в GetSimple CMS

     

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

  • Функция для получения значения поля страницы в GetSimple CMS

     

    Возможность прямого редактирования XML-документов страниц GetSimple CMS была рассмотрена ранее. При этом важное значение имеет не только возможность добавления собственных элементов в XML-документы страниц, но и получение значений таких элементов.

  • Прямое редактирование содержания страниц в GetSimple CMS

     

    Для хранения текстового контента и всех данных страниц веб-сайта в GetSimple CMS используется формат XML. При этом каждой странице соответствует свой XML-документ, содержащий в себе полный набор данных страницы.

  • Вывод навигационной цепочки в GetSimple CMS

     

    Навигационая цепочка является удобным инструментом навигации на веб-сайте, обладающим большой глубиной вложенности страниц. Однако среди стандартных функций GetSimple CMS построение навигационных цепочек пока отсутствует.

  • Вывод списка дочерних страниц в GetSimple CMS

     

    Работа с наборами страниц, обладающих различными взаимными связями, является основной при разработке веб-сайта, содержащего значительный объём контента.

  • Количество дней между датами в LibreOffice Calc

     

    Вопрос вычисления количества дней между двумя датами с использованием PowerShell уже был рассмотрен ранее. Однако приведённое решение больше подходит пользователям, привыкшим или знакомым с работой в командной строке, для остальных оно может показаться сложным.

  • Количество дней между датами в PowerShell

     

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

  • Автоматизация установки GetSimple CMS с использованием Git

     

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

  • Изменение адреса панели управления GetSimple CMS

     

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