Перейти к основному содержимому

Helpers.php

Для работы плагина требуются вспомогательные функции, все они объединены в класс Helpers и вызываются как статические методы:

array_any

function array_any( array $array, callable $fn ): bool

Аналог функции Array.some в js. Возвращает true если $fn вернет true хотя бы для одного элемента массива. В $fn элементы массива передаются по одному в качестве первого параметра

array_every

function array_every( array $array, callable $fn ): bool

Аналог функции Array.every в js. Возвращает true если $fn вернет trueдля всех элементов массива. В $fn элементы массива передаются по одному в качестве первого параметра

array_reduce_with_key

function array_reduce_with_key( array $array, callable $callback, mixed $initial ): mixed

У стандартной функции PHP array_reduce есть недостаток - в callback не приходит текущий ключ массива, а только значение. Данная функция исправляет данную проблему и в $callback передается третий параметр с текущим ключом массива

replace_first

function replace_first( string $needle, string $replace, string $haystack ): string

Полная копия функции str_replace, но заменяется только первое вхождение $needle в $haystack

convert_dots_to_square_brackets

function convert_dots_to_square_brackets( string $str ): string

Преобразует строку вида quiz.2624.1quiz.scorePercent в ?.quiz?.[2624]?.['1quiz']?.scorePercent - меняет невалидные ключи на валидные, чтобы строку можно было использовать как путь в js объекте. Так же добавляет ?. в начало строки, чтобы строку можно было сразу сконкатенировать с именем объекта

prepare_alpine_variable_path

function prepare_alpine_variable_path( string $str ): string

DynamicShortocdes плагин позволяет вставлять в шорткоды переменные вида {post:id}. Данная функция их преобразует в значения, а после передает в функцию convert_dots_to_square_brackets

prepare_alpine_store_variable

function prepare_alpine_store_variable( string $str ): string

Вызов функции prepare_alpine_variable_path с добавлением в начало $store.cw

maybe_add_quotes_to_value

function maybe_add_quotes_to_value( string $value ): string

Добавляет кавычки к строковым значениям, но числа и boolean значения возвращаются без изменений

convert_css_to_attribute_selectors

function convert_css_to_attribute_selectors( string $css_string ): string

Преобразует css селекторы по классу и по id в селекторы по атрибуту следующим образом:

  • #elId -> [id="elId"]
  • .elClass -> [class~="elClass"]

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