Смена платформы и экосистемы от компании Apple на Microsoft Windows, Linux или наоборот, для обладателя цифровой музыкальной коллекции может обернуться необходимостью изменения формата музыкальных файлов. Можно найти много программных продуктов, которые выполнят работу с минимальным участием пользователя, а тем, кто хочет автоматизировать задачи с минимальным использованием стороннего программного обеспечения, можно открыть консоль PowerShell.
По умолчанию начало координат документа в CorelDRAW - нижний левый угол. При работе с макетом, в котором объекты позиционируются относительно центра страницы, удобнее установить начало координат документа в центр страницы.
Поиск минимального или максимального значения в диапазоне данных - одна из часто встречающихся задач при работе с данными в электронных таблицах в LibreOffice Calc. Решается она при помощи стандартных функций LibreOffice Calc.
Замечаю, что когда речь заходит о вертикальном центрировании элементов внутри блочного контейнера, в большинстве случаев предлагается изменить тип отображения контейнера на flex, реже - на grid.
Публикация адресов электронной почты на страницах веб-сайта в явном виде это прямой путь для попадания их в базы данных спам-рассылок. Существуют разные способы защиты адресов электронной почты, предлагаю рассмотреть один, с использованием JavaScript, который я нахожу интересным, простым в реализации, легко переносимым, а главное - работающим в реальных условиях.
На практике совершенно необязательно, чтобы весь веб-сайт управлялся при помощи единой системы управления контентом. Например, основная часть веб-сайта может управляться при помощи системы управления контентом GetSimple CMS, а один из его разделов может состоять из статических страниц, формируемых с помощью генератора статических веб-сайтов, или формироваться динамически на основании данных, хранящихся в отдельной базе данных. Для посетителя веб-сайта разницы не будет, но она может быть для роботов поисковых систем, которые получают информацию о доступных к индексации страницах из файла карты веб-сайта sitemap.xml.
Когда возникает потребность отследить интервал времени, можно воспользовать программой-таймером. В Microsoft Windows для этих целей я часто использую Microsoft Clock, но когда запущена консоль PowerShell, то делаю это прямо в ней.
При работе с URL-адресами в Bash может возникнуть необходимость закодировать или декодировать адрес. Для этого можно использовать разные инструменты, например, передать URL-адрес в сценарий на языке PHP и выполнить его, но можно решить задачу проще, не прибегая к дополнительным инструментам.
Продолжая разговаривать об автоматизации работы с плеером iTunes через PowerShell, предлагаю рассмотреть вопрос управления эквалайзером через доступные методы и свойства, предоставляемые API плеера.
Следуя традиции, в конце 2022 года компания Pantone объявила трендовый цвет на 2024 год.
В файловом менеджере Midnight Commander для перехода от одной директории к другой удобно пользоваться командой cd. Однако при этом приходится каждый раз вводить пути до директорий, которые, в зависимости от уровня вложенности и имён, могут иметь значительную длинну. Ускорить переключение между директориями может список избранных директорий, но есть ли такая возможность в Midnight Commander?
Читатель моих заметок, недавно начавший изучать работу с PowerShell, решил взяться за создание модуля, который поможет ему, как любителю астрологии, делать астрологические расчёты. Так как он только начал изучать PowerShell, первый вопрос, с которым он обратился ко мне: “Как узнать знак зодиака по дате рождения человека?” На это я предложил ему вариант функции, которой решил поделиться со всеми, кому интересна эта тема.
Когда-то столкнулся с утверждением: “iPod Shuffle уничтожает привычку слушать музыку альбомами!” Утверждение сильное, позиция утверждающего была безапелляционна. Прав ли был утверждающий? И да, и нет.
Лишние пробелы могут попасть в текстовые данные таблицы разными путями - невнимательность сотрудников при ручном наборе, импорт неочищенных результатов парсинга каталогов на веб-сайтах и данных из прочих внешних систем. Независимо от того, как лишние пробелы оказались в текстовых данных таблицы, в будущем они могут создать значительные проблемы при работе. Возможно ли пользователю LibreOffice Calc быстро удалить лишние пробелы, если они уже присутствуют в текстовых данных таблицы, не ища их вручную и не разбираясь в написании макросов? Попробую ответить на этот вопрос и решить проблему.
Привычно использовать формулы в электронных таблицах LibreOffice Calc для вычислений. Однако каждый может столкнуться со сценарием использования LibreOffice Calc, когда требуется ввести в ячейку таблицы формулу в виде текста - не для того, чтобы она использовалась для вычислений, а чтобы просто была видна пользователю, работающему с таблицей. Человеку, который сталкивается с этим в первый раз, совсем не очевидно как можно решить эту простую на первый взгляд задачу. Проблема в том, что вводимый текст, начинающийся со знака = (равно), автоматически интерпретируется как формула, и текст в ячейке автоматически заменяется на результат вычисления. Предлагаю рассмотреть два варианта решения этой задачи.
Когда разговор заходит о статистических данных, чаще всего обращаются к средним значениям: средняя зарплата, средняя цена, средняя продолжительность жизни и т.п. Хотя в таких разговорах “среднее” не всегда соотносится с ощущениями человека, оно наглядно отображает среднее значение набора чисел, позволяет быстро и эффективно сравнивать значения разных групп. Поэтому полезно уметь считать средние значения самостоятельно, тем более это легко сделать в LibreOffice Calc.
Автоматическая обработка блоков Liquid-кода, содержащегося в значениях переменных, могло бы значительно упростить разработку шаблонов и поддержку веб-сайтов на Jekyll. Не смотря на то, что ряд пользователей уже продолжительное время просит разработчиков о включении такой возможности в базовый функционал Jekyll, разработчики эти просьбы отклоняют. Но это не значит, что нельзя добавить такую возможность самостоятельно при помощи плагина.
Если требуется добавить новый псевдоним для собственной функции или уже имеющегося командлета в PowerShell, полезно проверить, не существует ли он.
Если в текстовом файле хранится информация, которую надо представить в виде нумерованного списка, можно открыть файл в текстовом редактор и вручную проставить номера строк. Если файл один, а строк в нём не много, то не составит труда сделать это вручную. В остальных случаях лучше автоматизировать процесс. Рассказываю как сделать это при помощи PowerShell.
Все, кто работал с контентом для генераторов статических веб-сайтов, такими как Jekyll, Hugo, Gatsby и файловых систем управления контентом, такими как как Grav или Pico, сталкивались с понятием Front Matter. Если сам редактор контента понимает, что это такое, то для того, чтобы ответить простыми словами на вопрос пользователя: “Что такое и для чего нужен Front Matter в файлах Markdown?”, приходится подбирать слова и искать формулировки.
Когда в сценарии JavaScript надо получить элементы массива с минимальным или максимальным значениями, для этого не обязательно писать собственные функции или подключать сторонние библиотеки. Предлагаю рассмотреть два варианта решения стоящей задачи, в которых будут задействованы только стандартные возможности языка JavaScript.
Читатель моего сайта пожаловался на неработающий пример сценария PowerShell, в котором используется командлет Get-WmiObject. Разберёмся, что произошло.
Следуя традиции, в конце 2022 года компания Pantone объявила трендовый цвет на 2023 год.
Без установленных сертификатов Национального удостоверяющего центра Минцифры России пользователям будут недоступны большинство отечественных государственных и банковских онлайн-сервисов, например, популярные онлайн-сервисы СберБанка или ВТБ. Для доступа к таким онлайн-сервисам пользователи операционной системы Debian могут установить и использовать Яндекс.Браузер, в который требуемые сертификаты уже встроены. Яндекс.Браузер доступен в виде deb-пакета, поэтому с его установкой у пользователей не должно возникнуть проблем. Однако если нет желания менять привычный веб-браузер и устанавливать в систему дополнительное программное обеспечение, предпочтительным будет вариант с самостоятельной установкой сертификатов. Разберёмся с тем, как это сделать.
Обратная сторона стабильности операционной системы Debian – устаревшие версии программ, включённые в дистрибутив и доступные для установки из репозитория. Это не всегда плохо, однако в случае с веб-браузером, может доставить неудобство.
Когда возникает потребность очистить форматирование в скопированном тексте, в Microsoft Windows можно использовать инструмент, который всегда под рукой – текстовый редактор Блокнот (Notepad). А можно использовать PowerShell.
Чтобы перейти к настройкам веб-браузера не всегда удобно пользоваться меню. Часто проще и быстрее набрать в адресной строке специальный адрес и сразу перейти на страницу, содержащую требуемые настройки. Если считаете также, ознакомтесь с доступными адресами URL-схемы edge://, используемыми для доступа к служебным страницам веб-браузера Microsoft Edge.
В PHP в Microsoft Windows можно работать с COM-объектами. Для этого надо подключить модуль COM, доступный только в Microsoft Windows и отключённый по умолчанию в текущей версии PHP. Но как разработчику увидеть, что внутри COM-объекта, с которым предстоит работать?
Для того, чтобы узнать аптайм системы нет необходимости прибегать к помощи специальных утилит, потому что это можно сделать прямо из консоли PowerShell.
Для вычисления и проверки хеш-суммы файла не требуется искать и устанавливать специальные утилиты. Это можно сделать не покидая консоль PowerShell.
Когда есть желание обновить внешний вид панели администрирования веб-сайта, работающего под управлением GetSimple CMS, можно написать свой или найти в репозитории готовый плагин. В GetSimple CMS Extended это можно сделать стандартными средствами. Предлагаю рассмотреть установку фонового узора панели администрирования при помощи компонента, вызываемого экшеном.
Идея расширить границы применения компонентов в GetSimple CMS была давно. Для оригинальной GetSimple CMS Shawn Alverson написал плагин sa hook components, автоматически выполняющий код компонентов при вызове соответствующих экшенов (хуков). Этот плагин я рекомендовал всем, как возможность сократить общее количество установленных плагинов, заменяя их компонентами. В GetSimple CMS Extended было принято решение задействовать вариант совместного использования компонентов и экшенов в виде стандартной возможности ядра системы управления контентом.
Тому, кто следит за порядком в своей библиотеке iTunes, хорошо известно, как может быть неприятно потерять часть статистики проигрываний. Это может произойти по разным причинам, но мириться с произошедшим не хочется. Не хочется и не надо, потому что исправить количество проигрываний для тректов в библиотеке iTunes можно при помощи простого сценария WSH.
Вы запустили сеанс PowerShell в Microsoft Windows и увидели уведомление о выходе новой стабильной версии PowerShell. Если возникло желание установить обновление как можно скорее, не переходя по ссылке в веб-браузере и не скачивая вручную инсталляционный пакет, можете воспользоваться однострочной командой.
Продолжая традицию, в конце 2021 года компания Pantone объявила трендовый цвет на 2022 год. В этот раз цвет один, а не два, как было в прошлый раз, что тоже традиционно. Однако подход к выбору цвета в этот раз совсем другой.
Надо сказать, “уродливый” или “дурацкий” рождественский свитер (Ugly Christmas Sweater) для носителя западной культуры празднования Рождества — это такой же неотъемлемый, знакомый с детства атрибут праздника, как шампанское, мандарины или советские новогодние фильмы для каждого взрослого жителя России, встречающего Новый год.
Для отображения иконки веб-сайта актуальные веб-браузеры и роботы поисковых систем автоматически загружают файл с именем favicon.ico из корня веб-сайта. Такое поведение позволяет отказаться от явного указания файла иконки в коде страницы до тех пор, пока не появляется потребность использовать для иконок файлы других форматов или с другими именами. Например, файлы иконок в формате SVG или индивидуальные иконки для отдельных страниц веб-сайта. В этих случаях путь к файлу иконки должен быть указан явно при помощи HTML-тега link в разделе head HTML-документа. Как подключить иконку веб-сайта в шаблоне Jekyll покажу на примере кода, который использую сам.
Сколько дней до Нового года? Актуальный вопрос в преддверии наступления любимого праздника. Ранее уже оставлял заметку на тему как вычислить количество дней между двумя датами в PowerShell. Количество дней до Нового кода это частный случай, который заслуживает отдельной функции.
Для запуска одной установленной копии GetSimple CMS со специфичными настройками, применяемыми в разных окружениях, можно каждый раз вручную редактировать файл настроек gsconfig.php или создать для каждого окружения свой вариант файла gsconfig.php и подменять им уже существующий. Нахожу оба варианта не удобными, поэтому предлагаю рассмотреть альтернативный способ с использованием переменной окружения (переменной среды).
Чтобы ограничить доступ посетителей веб-сайта к выбранным страницам, в оригинальной GetSimple CMS предусмотрен статус видимости страниц Private. Страницы со статусом Private не доступны для просмотра не авторизированным посетителям. Однако авторизированный посетитель может просматривать такие страницы как обычные страницы веб-сайта. Такой сценарий не всегда желателен, поэтому существовала потребность сделать страницы по-настоящему приватными.
Каждый пользователь плеера iTunes и Microsoft Windows, желающий в реальном времени сохранять свою историю прослушиваний музыкальных треков в базе сервиса Last.fm, сталкивается с проблемой - перед завершением работы плеера выводится уведомление об использовании интерфейса сценариев iTunes с предложением подождать 20 секунд, а после закрытия плеера он автоматически перезапускается. Почему так происходит, как решить эту проблему, расскажу дальше.
Чтобы сделать работу с кодом компонентов удобнее, а использование компонентов гибким, компонентам добавлена поддержка редактора кода и возможность включения, и выключения компонентов. По отзывам пользователей, этих возможностей не хватало в оригинальной GetSimple CMS.
Пользователи GetSimple CMS имели возможность отслеживать историю изменения содержания веб-сайта по дате последнего сохранения страниц. По отзывам пользователей этого было мало, поэтому GetSimple Extended CMS расширяет число сохраняемых данных, предназначенных для отслеживания истории изменения содержания страниц, настроек веб-сайта и пользователя.
Для временного ограничения доступа посетителей к фронтенду веб-сайта добавлен режим технического обслуживания - Maintenance Mode.
Решил стряхнуть пыль с GetSimple CMS и сделал форк на основе ветки hotfixes. Перед тем, как перейти к деталям, озвучу мысли о текущем положении дел в разработке и личном отношении к этой системе управления контентом.
В LibreOffice Calc при помощи формул округления можно округлять не только числа, но и время. Потому что время, записанное в ячейку электронной таблицы, это тоже число.
Переименование файла, путём изменения его расширения, это одна из часто встречаемых задач при автоматизации. Предлагаю рассмотреть три варианта изменения расширения файлов в скриптах PowerShell.
Стандартное значение строки User-Agent, которое использует командлет Invoke-WebRequest, в зависимости от операционной системы, языка и версии PowerShell, может выглядеть так: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19042; ru-RU) PowerShell/7.1.3. На практике вы можете столкнуться с ситуацией, когда для успешного выполнения HTTP-запроса сервер требует от клиента использования собственного значения User-Agent. Что делать в этом случае?
Если ваш сайт работает под управлением Grav, а в содержании страниц много изображений, то вам следует обратить внимание на возможность отложенной загрузки изображений, добавленную в Grav версии 1.7.
Уверен, пользователи, занимающие автоматизацией задач в Bash, знают о файлах .profile, .bashrc и .bash_profile. Знают о том, что это за файлы и как их использовать, чтобы сделать работу в командной строке удобнее. Однако часть пользователей PowerShell не подозревают, что их инструмент обладает схожими возможностями - поддержкой профилей.
Если работаете в командной строке Linux, то скорее всего знакомы с командой date и её ключами. Для того, чтобы получить текущую метку времени в формате Unix используется вызов команды date +'%s'. Как быть, если нужна метка времени в PowerShell?
Традиционно в конце года компания Pantone объявила трендовый цвет на следующий год. В этот раз цвет не один, а два!
Пользователь GetSimple CMS и читатель моих заметок об этой системе управления контентом, обратившись ко мне за консультацией по разработке плагина, задал вопрос. Привожу его дословно: “Что возвращает функция, если она заканчивается echo?”
Автором страницы в GetSimple CMS считается пользователь, создавший или сохранивший страницу последним. Именем автора страницы является логин пользователя, который автоматически сохраняется в XML-документе страницы в поле author. Стандартная функция, возвращающая значение поля author для текущей страницы, отсутствует, поэтому для получения автора страницы в шаблоне оформления, следует обратиться к глобальной переменной $data_index->author. При этом в GetSimple CMS предусмотрена возможность задания расширенного набора данных для пользователей - стандартно в GetSimple CMS 3.3.16 можно задать полное имя и адрес электронной почты. Имея доступ к этим данным, можно не ограничиваться только логином, а выводить расширенную информацию об авторе страницы в шаблоне оформления. Для этого потребуется добавить собственные функции в тему оформления.
Barry Mode обновил свой плагин Blackhole для Grav до версии 1.0.0 beta 3. Для тех, кто не знает, плагин Blackhole создаёт статическую версию веб-сайта, работающего на Grav. По крайней мере, должен создавать, потому что предыдущие версии плагина с этим не справлялись, хотя, сам плагин всё это время находился в официальном репозиторий Grav. Так как я поддерживаю идею генератора статических сайтов на основе Grav, я был просто обязан проверить, можно ли пользоваться плагином после его обновления.
Бывает, что работать с директориями и файлами, хранящимися внутри файловой системы установленных дистрибутивов Windows Linux Subsystem, удобнее из проводника Windows. Если у вас хотя бы раз возникал вопрос о том, возможно ли работать с объектами из WSL в проводнике Windows, то читайте дальше.
В версии системы управления контентом Grav v1.6.28 появилась новая Twig функция - svg_image(). В официальной версии справки Grav, доступной на момент публикации, описание функции отсутствует. Так как новая функция добавляет удобства при работе с Grav, считаю необходимым рассмотреть её, чтобы пользователи понимали и могли начать использовать новую встроенную Twig функцию в шаблонах и содержании страниц, не дожидаясь обновления справки.
Постепенно приближается релиз фреймворка Bootstrap 5. Главное, что принёс Bootstrap веб-разработчикам, по моему мнению - удобство работы с сетками в эпоху CSS свойства float. Однако, с тех пор CSS не стоял на месте. CSS Flexbox и CSS Grid, CSS переменные и CSS функции, cделали повсеместное использование Bootstap для работы с сетками анахронизмом. Предлагаю простой, но работающий, пример двенадцати-колоночной сетки на CSS Flexbox с использованием CSS функции calc().
Работа с содержанием веб-сайта при использовании системы управления контентом Grav, если не устанавливать плагин панели управления Admin, аналогична работе с содержанием веб-сайта при использовании генератора статических сайтов Jekyll. Поэтому над идей превращения Grav в полноценный генератор статических сайтов я работал давно, однако, созданные для личного использования решения, не выкладывал в свободный доступ. В настоящее время в репозитории плагинов Grav есть плагин, на который стоит обратить вниманием всем, кто думает о переводе своих веб-сайтов на статику.
Разработчики тем оформления для Jekyll в своих шаблонах позволяют пользователю использовать заранее определённый набор метатегов для вывода в заголовках страниц веб-сайта. Как правило это наиболее популярные теги, такие как, author, description, keywords и теги для социальных сетей. Это работает до тех пор, пока не встаёт задача использовать редкие или собственные метатеги.
Запущенный на выполнение PHP скрипт может перезаписать себя. Следущий пример показывает вариант реализации такого поведения скрипта.
При работе над новой темой оформления для Jekyll, понадобилось реализовать возможность динамического включения SVG иконок в шаблоны оформления страниц, вместо копирования и вставки их SVG кода вручную. Предлагаю своё решение.
Apple и Last.fm совместными усилиями лишили пользователей плееров iPod возможности вести статистику прослушивания треков — скробблер Last.fm не устанавливается на устаревшие версии iOS, что актуально для iPod Touch; текущая версия iTunes не работает с десктопным скробблером Last.fm, поддерживающим скробблинг с iPod, что актуально для остальных версий iPod. Владельцу iPod в этой ситуации остаётся либо перестать пользоваться своим плеером и сменить его на другое устройство, либо отказаться от ведения статистики в Last.fm. Ни первый, ни второй варианты мне не подходят, поэтому пришлось придумать собственное решение для обхода созданных компаниями ограничений. Если проблема совместного использования iPod и Last.fm коснулась и вас, читайте дальше.
Продолжаете активно пользоваться плеером iPod и хотите узнать процент свободного места на нём? Это можно сделать в PowerShell.
Для просмотра истории коммитов в Git используется команда git log. По умолчанию эта команда выводит список коммитов в обратном хронологическом порядке, включая их SHA-1 контрольные суммы (хэш), имя, адрес электронной почты автора, дату создания и комментарий. Получение такого объёма информации не всегда удобно и даже избыточно. Поэтому выводом команды git log можно управлять. Например, выводить историю коммитов так, чтобы информация о каждом коммите умещалась в одной строке.
Появилась задача отслеживать изменения текстового файла в реальном времени и выводить изменения в консоль. Первая мысль - использовать дополнительное программное обеспечение для экономии времени на написание собственного решения. Но на деле всё проще, даже не надо писать собственный сценарий, потому что эту задачу успешно решает один из часто используемых командлетов PowerShell.
Владелец большой фонотеки, управляемой iTunes, рано или поздно задаётся вопросом как автоматизировать рутинные процессы её обслуживания. Как и в других случаях, на помощь здесь приходят скрипты. Если владелец фонотеки работает в операционной системе Windows и уже знаком с написанием скриптов PowerShell, то эти знания пригодятся и для управления iTunes.
Добавить в Gimp шаблоны для новых изображений можно не только стандартным способом, как это описано в справке. Для удобства автоматизации и переноса настроек, пользователю доступно управление шаблонами изображений без использования графического пользовательского интерфейса.
Написали полезный PowerShell скрипт, который часто используете и теперь есть желание запускать скрипт через ярлык, как остальные программы в Microsoft Windows, то читайте дальше.
Формат TSV, как и формат CSV, это текстовый формат для представления таблиц баз данных, поэтому работа с ним в PowerShell не отличается от работы с CSV. Исключением является момент импорта данных, который вызвал проблему у читателя моих заметок о работе с PowerShell. Разберёмся с этим подробнее.
Подсистема Windows для Linux стала главной рабочей средой для моих инструментов веб-разработки при использовании Microsoft Windows. Там же использую Jekyll 4, который требует для работы версию Ruby 2.4 или старше, и устанавливается в подсистему Windows для Linux следующим образом.
Ко мне обратился пользователь Grav CMS с вопросом о том, почему система управления контентом портит ссылки с параметрами в содержании страниц веб-сайта и как это предотвратить. Если эти вопросы возникли у одного пользователя, существует вероятность, что возникнут и у других, поэтому отвечаю этой заметкой.
Когда привыкаешь работать и думать в RGB значениях цветов от 0 до 255, переключение в проценты вызывает затруднение. Например, значение в процентах используется в Adobe Lightroom. В случае, если такое переключение кратковременно и не требует переориентации, то удобно воспользоваться таблицей перевода процентов в значения RGB, что ускорит работу.
Применение вспомогательных рецептов (Recipe - в терминологии Canon) для Canon Digital Photo Professional 4, поворачивающих изображение на заданный угол, вызвало вопросы у пользователей. Поэтому предлагаю разобраться в том, как работают эти рецепты.
Благодаря поддержке сервисом Яндекс.Диск протокола WebDAV, пользователь может не устанавливать официальный клиент Яндекс.Диска, а, если используемая операционная система предоставляет такую возможность, подключить его как сетевой диск. В Microsoft Windows сетевой диск подключается через графический пользовательский интерфейс Windows Explorer (File Explorer в Microsoft Windows 10) в несколько кликов. Тем не менее существуют сценарии, когда эта задача должна быть автоматизирована. Здесь на помощь пользователю приходит PowerShell.
Проверка уровня доступа, зарегистрированного на веб-сайте пользователя, может быть выполнена в шаблоне оформления страницы при помощи одной функции Grav CMS.
Если в Grav CMS появляется необходимость отключения редактора контента для определённого типа страниц в редакторе страницы плагина Admin Panel, то это делается так.
Сервис Unsplash и PowerShell - это два полезных инструмента для любителя регулярной смены обоев рабочего стола (и не только).
Распространённая проблема с которой сталкиваются начинающие пользователи: установили тему оформления Grav CMS или плагин, поддерживающий мультиязычность, но всё-равно во фронтэнде выводится текст на английском языке. Решение в правильной языковой настройке системы управления контентом.
Понадобилось сделать эффект неонового текста в графическом редакторе Affinity Photo. Покажу вариант, который получился у меня с использованием подходящего шрифта и двух стилей слоя, применённых к тексту.
Если посетителям веб-сайта, работающего на основе системы управления контентом GetSimple CMS, требуется предоставить право самостоятельного выбора используемой тему оформления, то в этой заметке описан вариант решения задачи.
В системе управления контентом GetSimple CMS нет стандартной функции для получения списка установленных тем оформления. Если возникает потребность в такой функции, напишем её самостоятельно, предварительно разобравшись в том, как GetSimple CMS определяет установленные темы оформления.
Знакомая каждому опытному пользователю функция GetSimple CMS get_page_content() выводит содержание страницы в шаблоне оформления. Но при разработке возможны варианты, когда требуется не вывести содержание, а сохранить его в переменную для дальнейшего использования.
Имя шаблона страницы изменяется в панели управления веб-сайтом в редакторе страниц, либо путём прямого редактирования соответствующего странице XML-документа. Первый вариант - стандартный, удобен при изменении шаблона оформления для одной или нескольких страниц; второй вариант подходит для массового изменения шаблонов страниц при помощи пакетной обработки файлов и автозамены. На первый взгляд это выглядит просто, но не всегда применимо на практике. Поэтому предлагаю рассмотреть альтернативный подход - динамическое изменение шаблонов оформления страниц.
Подключение в плагинах и темах оформления ресурсов, размещённых в сетях доставки содержимого (CDN) или других внешних источниках, может быть ограничено техническими особенностями или сценариями использования веб-сайта. Поэтому будет правильно предоставить пользователю самостоятельный выбор источника подключаемых ресурсов - внешний или локальный.
Предварительное заполнение полей новых страниц в GetSimple CMS - скрытая функциональность о которой знают немногие пользователи системы управления контентом. Заполняю этот пробел знаний о GetSimple CMS.
В версии системы управления контентом Grav 1.4.0 пользователям стала доступна новая полезная функция Twig для использования в шаблонах тем оформления - функция theme_var(). Эта функция возвращает значение запрашиваемой переменной, используемой в настройках темы оформления. На первый взгляд кажется, что использование функции аналогично обращению к переменной, установленной в настройках темы оформления, напрямую, но это не так.
Разрабатывая собственные плагины и темы оформления для GetSimple CMS, периодически сталкиваюсь с требованиями заказчика по согласованию их работы с плагинами других разработчиков. Для этого, как минимум, требуется проверить статус стороннего плагина - активирован или деактивирован. Как это реализовать - зависит от разработчика, большинство из которых используют проверку существования функции из стороннего плагина по имени: если функция с заданным именем существует, значит плагин активирован. Я покажу корректный способ, использующий возможности самой системы управления контентом GetSimple CMS.
Когда требуется создать или получить имя для временного файла или директории в PowerShell скрипте, возможно облегчить себе работу и использовать доступные методы .NET Framework.
Сегодня я получил очередной вопрос читателя по поводу заметки Автоматическая настройка Live-USB Ubuntu. Этот вопрос, как и остальные, сводились к одной проблеме: не получается запустить скрипт со съёмного накопителя. Так как с этой проблемой столкнулся не один читатель, рассмотрю её причину и решение.
Когда надо быстро преобразовать набор CSV данных в JSON, можно воспользоваться онлайн сервисом, а лучше написать однострочную команду на PowerShell, использующую три стандартных командлета.
Псевдонимы или Bash-алиасы ускоряют работу в командной строке Bash, позволяя сократить количество вводимых символов в именах часто используемых команд, а также избавляют от необходимости запоминания сложных последовательностей команд. Однако при попытке запуска псевдонима с правами суперпользователя через sudo возникает проблема. Предлагаю рассмотреть причину её возникновения и варианты решения.
Иногда возникает потребность объединить содержание нескольких текстовых файлов в один. Если таких файлов несколько, то можно это сделать вручную. Но если их десятки или сотни, а выбираются они по набору заданных критериев, то лучше автоматизировать такую задачу, тем более, что в PowerShell она решается в одну строку.
Периодически возникают задачи, требующие интенсивной работы с шаблонами Twig. Но текстовый редактор gedit, используемый мною, не поддерживает “из коробки” подсветку синтаксиса Twig, что доставляет некоторое неудобство при работе. Однако отказываться от привычного текстового редактора не обязательно - подсветка синтаксиса требуемого языка легко добавляется.
Полное осознание значения резервного копирования данных, как правило, приходит слишком поздно. Часто это случается уже после полной утраты данных. Эта заметка посвящена клиенту и коллеге, веб-разработчику, чьи проекты, к счастью, удалось восстановить после сбоя в работе накопителя информации рабочего компьютера. Не испытывайте судьбу, уделите внимание вопросу резервного копирования, тем более, что это может быть не так сложно, как кажется на первый взгляд.
Работа над новым HTML-проектом начинается с создания структуры директорий и стандартного набора файлов со стандартным содержанием. Клонирование Git-репозитория или установка пакета с использованием менеджера пакетов - путь современного веб-разработчика, автоматизирующего начало работы над проектом. Этот путь быстр, удобен, но требует специального программного обеспечения и доступа к сети интернет. Альтернативное решение - собственный скрипт, для выполнения которого требуется только командная оболочка.
В течение последнего месяца часто приходится работать, загружая операционную систему Ubuntu 17.10 с USB-флешки в режиме Live-USB, что делает возможным использование рабочей станции, без установленной операционной системы. Такой вариант подходит для работы с необходимым набором программ: текстовый редактор gedit, веб-браузер FireFox, клиент удалённого доступа к рабочему столу Remmina, файловый менеджер GNOME Files для работы с файлами, включая файлы на удалённых серверах, доступных по протоколам FTP, FTPS и WebDAV. Главный минус такого решения - рутинная настройка после каждой загрузки. Здесь поможет автоматизация.
Отвечаю на вопрос о том, как вывести все параметры, переданные Shell скрипту.
Передо мной встала задача - проверить занятые IP-адреса в локальной сети IPv4. С этой задачей отлично справится программа nmap, однако устанавливать любое дополнительное программное обеспечение не было возможности. Поэтому я написал Shell скрипт, который быстро выполнил то, что мне требовалось. Возможно, что он будет полезен и вам.
Перед каждым начинающим PHP разработчиком встаёт вопрос выбора платформы для запуска разработанных приложений. Классический способ – воспользоваться виртуальным веб-хостингом с поддержкой PHP, взять в аренду виртуальный выделенный сервер (VPS-хостинг) или физический сервер, чтобы полностью управлять его работой. Альтернативным вариантом является использование облачных технологий, познакомиться с которыми можно совершенно бесплатно на примере облачной платформы приложений heroku.com.
В продолжении рассмотренной темы о группировке и фильтрации страниц в GetSimple CMS, при построении списка вывода, необходимо уделить внимание вопросу сортировки страниц по времени публикации для сохранения прямого или обратного хронологического порядка. В GetSimple CMS 3.3.x такая возможность не предусмотрена, поэтому я предлагаю воспользоваться следующей функцией.
Ранее я уже рассматривал способ вывода списка дочерних страниц в GetSimple CMS, теперь отвечаю на расширенный вопрос, о том, как сгруппировать или отфильтровать вывод списка дочерних страниц по году публикации.
Многие командлеты PowerShell принимают на вход дату, причём дата может быть передана в виде текста или может быть объектом DateTime. Я предпочитаю работать с объектами, поэтому приведу несколько вариантов создания объекта DateTime для использования в скриптах PowerShell. DateTime::ParseExact(‘31.12.2017 23:55:00’, ‘dd.MM.yyyy HH:mm:ss’, $null)
Если требуется выполнить динамическое подключение CSS файл в секцию head страницы, например, после загрузки страницы, с целью оптимизации скорости или наступления определённого события, можно воспользоваться следующим JavaScript кодом.
Если вы разрабатываете плагин для GetSimple CMS, работа которого полностью или частично зависит от версии системы управления контентом с которой он используется, вам потребуется реализовать в плагине проверку версии GetSimple CMS.
Плагин Lazy Load для GetSimple CMS автоматически добавляет отложенную загрузку изображений, включённых в содержание страницы. Для отложенной загрузки изображений, выводимых в шаблоне оформления страницы, с помощью компонента, следует использовать функцию плагина Lazy Load lazyload_filter().
В GetSimple CMS 3.3.x для вывода компонента в шаблоне оформления страницы используется функция get_component(). Но в ряде случаев вместо вывода может потребоваться сохранение содержания компонента в переменной. Если такая задача встречается более одного раза, то удобнее использовать собственную функцию.
В ряде сценариев, например, при разработке и отладке шаблонов оформления, постоянное использование Twig тега spaceless является нежелательным. Для того, чтобы не вносить постоянные изменения в код шаблонов, добавляя и удаляя пары тегов spaceless, следует предусмотреть возможность контролируемого управления их использованием на основании задаваемого условия.
Поводом для написания этой заметки послужил вопрос о том, как минифицировать генерируемый HTML код страницы средствами Grav CMS с целью удаления лишних символов пробела, приводящих к неправильному отображению элементов страницы в браузере.
Для создания списка тегами таксономии страниц в Grav CMS используется плагин Taxonomy List, однако часто приходится решать задачи, для которых этот плагин не подходит, например, для создания списка тегов таксономии для отдельных коллекций, либо при необходимости снижения количества и уменьшения зависимости веб-сайта от набора используемых плагинов.
В Tachyons 4.7.0 нет готового модуля для создания контейнеров в полную ширину страницы внутри родителя с фиксированной шириной. Также нет и требующегося для этого набора классов. Поэтому для решения задачи следует использовать собственный класс или добавить собственный модуль.
В качестве практического применения, описанного в заголовке приёма, можно представить себе вывод изображения, занимающего всю ширину страницы, но находящегося внутри статьи, текст которой размещён в блоке, расположенном по центру экрана, имеющем фиксированную ширину.
Я уже писал о простом способе изменения пароля пользователя в Grav CMS. Если по каким-либо причинам, вы не хотите или не можете напрямую вносить изменения в YAML файл профиля пользователя, но имеете доступ к командной строке, то можете изменить пароль пользователя при помощи встроенного командного интерфейса (CLI) Grav CMS, вызвав специальную команду плагина Login.
При разработке PHP приложений, работающих с файловыми zip архивами, я использую стандартное PHP расширение для сжатия и архивации Zip. Это расширение делает доступным использование класса ZipArchive, реализующего методы, позволяющие выполнять основные действия с zip архивами, которые требуются при решении большинства задач. Однако в ряде случаев, в классе ZipArchive мне не хватает метода, позволяющего извлечь содержимое заданной директории архива в указанное место, не сохраняя при этом родительскую структуру директорий.
Я уже писал о том, как самостоятельно решить проблему автоматической транслитерации имён загружаемых файлов в GetSimple CMS. Для тех, кто не хотел вносить изменения в файлы системы управления контентом, есть хорошая новость: в GetSimple CMS 3.4 возможность автоматической транслитерации будет доступна по умолчанию. Можно не дожидаться официального релиза, и уже сейчас установить ветку master, чтобы оценить, как это работает.
Сравнение строк в Bash не вызывает никаких проблем до тех пор, пока не возникает задача сравнить две строки, не учитывая регистр символов. Я приведу несколько вариантов решения задачи, которые использую сам. Особенностью этих решений является использование только встроенных возможностей оболочки Bash.
Переводя текст из одной кодовой страницы в другую, используя PHP функцию iconv(), можно столкнуться с проблемой — iconv() не возвращает ничего. На самом деле, возвращает, но не ожидаемую строку, а логическое значение false. Почему так происходит и что с этим делать?
Когда возникает потребность в обновлении блоков текущей страницы без её перезагрузки, получая содержимое для этих блоков на других страницах веб-сайта, следует использовать технологию Ajax. Библиотека JQuery значительно упрощает задачу, предоставляя необходимые методы для обработки Ajax запросов.
Для получения текущего используемого значения CSS свойства стиля элемента в JavaScript следует использовать метод window.getComputedStyle. В зависимости от запрашиваемого свойства стиля, этот метод позволяет получить вычисленное или окончательное значение.
Изменение алгоритма расчёта размеров боксов в боксовой модели CSS со стандартного content-box на border-box во многом облегчает процесс вёрстки макетов. Для изменения свойства box-sizing для всех элементов HTML документа можно использовать следующий фрагмент CSS кода.
Ранее я уже писал об автоматизации установки GetSimple CMS с использованием Git, однако установить GetSimple CMS в автоматическом режиме можно и без его использования, что может быть удобно при работе на сервере, где не установлены привычные инструменты разработки.
Отвечая на вопросы, оказывая поддержку и помогая решить проблемы пользователям GetSimple CMS, часто я прошу показать мне дамп переменных или результатов выполнения функций. Для того, чтобы у пользователя не возникало дополнительных вопросов, а вывод дампа имел удобный для восприятия вид, я предлагаю использовать одну из приведённых PHP функций.
Используя PowerShell, вы можете заставить компьютер не просто выполнять нужные вам действия, но и озвучивать их голосом.
В развитие темы ограничения пользователей в создании публичных страниц в GetSimple CMS, я предлагаю также рассмотреть вариант реализации ограничения для пользователей на редактирование и выполнение иных действий с чужими страницами, дополняющий предыдущее решение.
Необходимость в ограничении прав пользователей при создании публичных страниц веб-сайта может иметь разные причины, одна из которых — проверка содержания страниц редактором, принимающим решение о публикации материала в открытом доступе. Я предлагаю рассмотреть наиболее простое решение такой задачи, не прибегая к разработке специального плагина.
В предстоящем релизе Grav CMS 1.3.0 будет добавлена новая Twig функция vardump, предоставляющая ещё одну возможность для вывода дампа переменных.
Использование наследования значений полей страниц может облегчить работу при создании разделов веб-сайта, избавляя редактора от заполнения вручную повторяющихся полей на вложенных страницах: достаточно создать и заполнить значения полей корневой страницы, которые затем будут использоваться на всех подстраницах раздела.
Ряд популярных плагинов для GetSimple CMS требуют от пользователя добавления параметров, необходимых для их работы, в ключевые слова страницы. Такой подход позволяет избавиться от необходимости добавлять специальные поля плагинов в форму редактора страниц, но приводит к замусориванию мета-данных, что негативно сказывается на эффективности SEO-оптимизации, а также ограничивает возможности вывода списков ключевых слов на страницах веб-сайта. Частичным решением описанных проблем является очистка списка ключевых слов от параметров плагинов.
Идея для написания этой заметки возникла при решении практической задачи: необходимо обработать определённым образом большое количество директорий, различного уровня вложенности, содержащих файлы определённого типа, на сервере, работающем под управлением операционной системы Fedora Server без графического оконного менеджера. В этих условиях наиболее удобным решением является написание сценария на языке Bash.
Важная новость для всех активных пользователей шорткодов в Grav CMS с плагином Shortcode Core: начиная с версии Shortcode Core 2.6.0, плагин официально поддерживает использование пользовательских шорткодов.
Система таксономии в Grav CMS играет важную роль при создании коллекций страниц. Однако её использование может быть расширено, если задать для значений её типов осмысленные описания. Например, такие описания могут быть использованы для вывода на страницах веб-сайта развёрнутой информации о назначенных для них категориях, типах или тегах. Я предлагаю рассмотреть механизм реализации такой возможности на примере задания осмысленных описаний для значений типа таксономии category.
Редактирование файла hosts это частая задача для тех, кто занимается веб-разработкой локально в среде Microsoft Windows. Например, внесение изменений в файл hosts требуется при создании нового виртуального хоста на Apache, чтобы сделать его доступным по удобному для себя адресу. Поэтому неплохо упростить выполнение этого рутинного действия.
Работая над темами оформления для Grav CMS, у меня периодически возникает необходимость реализации логики, описание которой на языке шаблонизатора Twig не удобно, либо требует функций, недоступных в шаблонизаторе. Первое, что приходит в голову в таком случае – написание и использование собственных Twig функций. Однако есть способ проще.
В GetSimple CMS отсутствует стандартная функция для проверки существования страницы, однако необходимость такой проверки периодически возникает, например, при разработке тем оформления. Раз функция не существует, то следует написать её самостоятельно.
Одной из возможностей интегрированной среды разработки NetBeans, которую я использую при работе над своими проектами, является задание настроек выполнения проекта.
Хочу поделиться примером простой реализации методов, аналогичных методам on и off из библиотеки JQuery, специально для тех, кто хочет работать с чистым JavaScript, но не готов сразу отказаться от сформировавшихся привычек.
Эта заметка является ответом на вопрос о том, как, используя шаблон оформления страницы, вывести сообщение для зарегистрированного в системе посетителя веб-сайта, работающего под управлением GetSimple CMS.
Ранее я уже рассматривал особенности использования Twig функции evaluate в Grav CMS. Напомню, что важной особенностью является отсутcвие прямого доступа к объекту текущей страницы page, поэтому для обращения к нему необходимо использовать контейнер grav. В текущей версии Grav CMS работа Twig функции evaluate осталась без изменений, но я предлагаю рассмотреть решение, позволяющее обойти описанное ограничение.
Автоматическая обработка имён загружаемых файлов в GetSimple CMS позволяет выполнить очистку имён файлов от недопустимых символов. Но вместе с этим она является значительной проблемой для части русскоязычных пользователей системы управления контентом, не желающих самостоятельно заниматься переименованием файлов перед загрузкой их на веб-сайт.
Плагин gs_shortcodes для системы управления контентом GetSimple CMS включает в себя набор шорткодов, доступных для использования сразу после установки, а также шорткоды, служащие для демонстрации и расширения возможностей использования плагина. Однако на практике, при работе над проектом веб-сайта, возникает потребность в дополнительных шорткодах, позволяющих реализовать требуемые функциональные возможности разрабатываемого веб-сайта. Именно поэтому разработчику необходимо понимать принцип создания собственных шорткодов.
Система управления контентом Grav CMS предоставляет разработчику возможность выполнения строки, содержащей код Twig, с использованием Twig функции evaluate внутри шаблонов оформления. Эта возможность может быть полезна в тех случаях, когда код Twig задаётся в качестве содержания поля страницы, настройки веб-сайт или темы оформления.
Среди требований заказчиков веб-сайтов часто встречается запрос на создание раздела с ответами на часто задаваемые вопросы. Если вы создаёте веб-сайт, работающий под управлением Grav CMS, то реализовать данный функционал можно разными способами – от создания модульных страниц, до написания специального плагина. Но всегда хочется упростить стоящую задачу.
Если сразу после установки или переноса GetSimple CMS на сервер c установленным, настроенным и работающим Apache, вместо страниц веб-сайта вы получаете ошибку 500 Internal Server Error, то после проверки корректности установленных прав доступа, а также, убедившись в присутствии всех файлов GetSimple CMS в файловой системе веб-сервера, не стоит поддаваться панике и обвинять в происходящем систему управления контентом.
Рассматриваемый пример создания эффекта побуквенного оформления текста демонстрирует возможности использования Twig и CSS при разработке шаблонов оформления для Grav CMS и других систем управления контентом, использующих в качестве шаблонизатора Twig.
Если вы по ошибке удалили файл профиля единственного пользователя GetSimple CMS, то вы оказываетесь в ситуации, при которой доступ к панели управления становится невозможен. А это значит, что вам становятся недоступны все возможности по управлению собственным веб-сайтом через графический пользовательский веб-интерфейс, включая работу с контентом, медиафайлами, настройками и прочим. Однако это не должно быть повод для паники.
Идеей для написания этой заметки послужил вопрос о том, как при помощи Grav CMS реализовать вывод сообщения посетителю веб-сайта организации в зависимости от времени посещения и рабочего режима организации.
Не смотря на рекомендацию создавать собственные плагины, добавляющие необходимые шорткоды в Grav CMS, разработчик может упростить свою работу, воспользовавшись базовой функциональностью плагина Shortcode Core.
Если вы забыли пароль пользователя, то он может быть изменён стандартным способом с использованием графического пользовательского веб-интерфейса плагина Admin. Однако для этого понадобится настроенная и работающая система отправки почты. Если на вашем тестовом веб-сервере работа почты не настроена, то есть способ проще.
Одной из полезных возможностей, добавленных в Grav CMS 1.1.10, стала поддержка работы системы управления контентом на встроенном веб-сервере PHP. Однако разработчики, использующие для запуска встроенного веб-сервера метод, описанный в заметке Удобный запуск встроенного веб-сервера PHP в Microsoft Windows, сталкиваются с проблемой.
В текущей версии Visual Studio Code 1.8.1 в качестве встроенного терминала, при использовании его в Microsoft Windows, по умолчанию используется интерпретатор комманд cmd.exe. Пользователям, знакомым с возможностями PowerShell, скорее всего, будет удобнее использовать в качестве встроенного терминала именно PowerShell, а не cmd.exe.
Приведение значения переменной к типу Boolean является распространённой задачей при разработке на языке PHP. Однако в ряде случаев, выполнения простого приведения типа может быть недостаточно.
Метод EventTarget.addEventListener() позволяет зарегистрировать определённый обработчик события для генератора событий EventTarget. Зарегистрированное таким образом событие, будет обрабатываться каждый раз при его возникновении. Однако в ряде случаев логика приложения требует только единовременной его обработки.
По аналогии с музыкой, существуют такие цветовые сочетания, которые воспринимаются человеком, как особенно красивые и гармоничные. Такие цветовые сочетания называют цветовыми гармониями или цветовыми аккордами.
Страницы веб-сайта просматриваются посетителями не только в веб-браузере на экранах различных устройств, но иногда и отправляются на печать. Причём в большинстве случаев печать выполняется напрямую из окна веб-браузера, без дополнительного редактирования.
Стилизация исходящих ссылок, позволяющая визуально отделить их от внутренних, является распространённой практикой при разработке информационных веб-сайтов. Необходимость дополнительной стилизации таких ссылок внутри текстового контента страницы, связана прежде всего с повышением удобства использования веб-сайта. Так, видя стилизованную особым образом ссылку, пользователь заранее определяет, что при переходе по ней он будет направлен на внешний ресурс.
Система управления контентом Grav CMS обладает встроенной поддержкой медиа файлов, достаточной для гибкой работы с медиа контентом веб-сайта. Использование графического пользовательского веб-интерфейса панели управления плагина Admin не только упрощает работу по администрированию веб-сайта, но и предоставляет новые возможности по работе с его контентом. Одной из таких возможностей является использование удобного пользовательского интерфейса для создания галерей изображений.
Использование RSS-канала позволяет публиковать в сжатом виде размещённую на веб-сайте информацию, обеспечивая удобный и своевременный доступ к ней пользователям, использующим специальное программное обеспечения для чтения RSS-лент, включая онлайн сервисы.
Идея для рассматриваемого решения появилась благодаря возникшей необходимости в переносе содержания нескольких страниц из системы управления контентом Grav CMS в GetSimple CMS.
Встроенный веб-сервер - новая возможность, добавленная в PHP 5.4. Предназначение встроенного веб-сервера PHP - повышение удобства разработки веб-приложений, возможность тестового или демонстрационного запуска приложений в полностью контролируемом окружении.
Имя текущей темы оформления веб-сайта в GetSimple CMS хранится в глобальной переменной $TEMPLATE. Однако для получения её значения специальная функция не предусмотрена.
Пакетное переименование большого количества файлов это одна из распространённых операций при работе с объектами файловой системы, имеющая цель упорядочивания системы хранения данных.
В релизе Grav CMS 1.1.9 rc 1 добавлен новый тег Twig redirect_me, предназначение которого - выполнение перенаправления посетителя на заданную страницу.
Обращение к свойствам плагина Grav CMS с именем myplugin в шаблоне Twig, может быть реализовано следующий образом:
При активной работе с содержанием веб-сайта часто приходится выполнять большое количество рутинных операций, требующих последовательного выполнения определённого количества шагов. Одной из часто выполняемых операций является переход к редактированию контента страниц веб-сайта из фронтэнда.
Возможность прямого редактирования XML-документов страниц GetSimple CMS была рассмотрена ранее. При этом важное значение имеет не только возможность добавления собственных элементов в XML-документы страниц, но и получение значений таких элементов.
Для хранения текстового контента и всех данных страниц веб-сайта в GetSimple CMS используется формат XML. При этом каждой странице соответствует свой XML-документ, содержащий в себе полный набор данных страницы.
Навигационая цепочка является удобным инструментом навигации на веб-сайте, обладающим большой глубиной вложенности страниц. Однако среди стандартных функций GetSimple CMS построение навигационных цепочек пока отсутствует.
Работа с наборами страниц, обладающих различными взаимными связями, является основной при разработке веб-сайта, содержащего значительный объём контента.
Вопрос вычисления количества дней между двумя датами с использованием PowerShell уже был рассмотрен ранее. Однако приведённое решение больше подходит пользователям, привыкшим или знакомым с работой в командной строке, для остальных оно может показаться сложным.
У каждого возникали ситуации, когда требовалось посчитать количество дней между двумя датами. К примеру, чтобы узнать количество оставшихся дней до нового года, дня рождения, сдачи курсовой работы, наступления каникул, возврата книги в библиотеку и т.п.
Достижение максимальной автоматизации выполнения рутинных задач является практической целью многих разработчиков. При этом набор используемых средств автоматизации во многом определяется личными предпочтениями, опытом, а также стеком используемых технологий.
Важной составляющей обеспечения безопасности веб-сайта, использующего систему управления контентом, является обеспечение приватности данных, гарантирующих ограничение доступа к функциям управления веб-сайтом.