Функция checkStr() Albireo CMS
/** * Проверяем строку на наличие «отрицательного» элемента и возвращаем число * * #date-edit: -> нет строки — возвращаем null * date-edit: 2024-01-01 -> в строке указаны данные — возвращаем true * date-edit: - -> в строке указано «отключеное» поле - возвращаем false * * $date = getPageData('date-edit', null); * $mode = checkStr($date); * * if ($mode === null) $result = 'дата'; // notExist * elseif ($mode === false) $result = ''; // off * elseif ($mode === true) $result = 'файл'; // on * **/ function checkStr($str) // общая таблица состояний // #draft: опции нет pr(checkStr(getPageData('draft', false))); // NULL pr(checkStr(getPageData('draft', true))); // TRUE pr(checkStr(getPageData('draft', null))); // NULL // draft: 1 pr(checkStr(getPageData('draft', false))); // TRUE pr(checkStr(getPageData('draft', true))); // TRUE pr(checkStr(getPageData('draft', null))); // TRUE // draft: 0 pr(checkStr(getPageData('draft', false))); // FALSE pr(checkStr(getPageData('draft', true))); // FALSE pr(checkStr(getPageData('draft', null))); // FALSE // группировки по if-условиям под разные задачи // если опция явно включена = true pr( checkStr(getPageData('draft', false)) === true ); // если опция явно отключена = true pr( checkStr(getPageData('draft', false)) === false ); // если опция явно включена или её нет = true pr( checkStr(getPageData('draft', false)) !== false ); // если опция явно отключена или её нет = true pr( checkStr(getPageData('draft', false)) !== true ); // полная детализация // если опция явно включена = true pr( checkStr(getPageData('draft', false)) === true ); // FALSE // #draft: опции нет pr( checkStr(getPageData('draft', false)) === true ); // FALSE // draft: 0 pr( checkStr(getPageData('draft', false)) === true ); // TRUE // draft: 1 pr( checkStr(getPageData('draft', null)) === true ); // FALSE // #draft: опции нет pr( checkStr(getPageData('draft', null)) === true ); // FALSE // draft: 0 pr( checkStr(getPageData('draft', null)) === true ); // TRUE // draft: 1 // если опция явно отключена = true pr( checkStr(getPageData('draft', true)) !== true ); // FALSE // #draft: опции нет pr( checkStr(getPageData('draft', true)) !== true ); // TRUE // draft: 0 опция отключена pr( checkStr(getPageData('draft', true)) !== true ); // FALSE // draft: 1 опция включена pr( checkStr(getPageData('draft', false)) === false ); // FALSE // #draft: опции нет pr( checkStr(getPageData('draft', false)) === false ); // TRUE // draft: 0 pr( checkStr(getPageData('draft', false)) === false ); // FALSE // draft: 1 pr( checkStr(getPageData('draft', true)) === false ); // FALSE // #draft: опции нет pr( checkStr(getPageData('draft', true)) === false ); // TRUE // draft: 0 pr( checkStr(getPageData('draft', true)) === false ); // FALSE // draft: 1 pr( checkStr(getPageData('draft', null)) === false ); // FALSE // #draft: опции нет pr( checkStr(getPageData('draft', null)) === false ); // TRUE // draft: 0 pr( checkStr(getPageData('draft', null)) === false ); // FALSE // draft: 1 // если опция явно включена или её нет = true pr( checkStr(getPageData('draft', false)) !== false ); // TRUE // #draft: опции нет pr( checkStr(getPageData('draft', false)) !== false ); // FALSE // draft: 0 опция отключена pr( checkStr(getPageData('draft', false)) !== false ); // TRUE // draft: 1 опция включена pr( checkStr(getPageData('draft', true)) !== false ); // TRUE // #draft: опции нет pr( checkStr(getPageData('draft', true)) !== false ); // FALSE // draft: 0 опция отключена pr( checkStr(getPageData('draft', true)) !== false ); // TRUE // draft: 1 опция включена pr( checkStr(getPageData('draft', null)) !== false ); // TRUE // #draft: опции нет pr( checkStr(getPageData('draft', null)) !== false ); // FALSE // draft: 0 pr( checkStr(getPageData('draft', null)) !== false ); // TRUE // draft: 1 // если опция явно отключена или её нет = true pr( checkStr(getPageData('draft', false)) !== true ); // TRUE // #draft: опции нет pr( checkStr(getPageData('draft', false)) !== true ); // TRUE // draft: 0 опция отключена pr( checkStr(getPageData('draft', false)) !== true ); // FALSE // draft: 1 опция включена pr( checkStr(getPageData('draft', null)) !== true ); // TRUE // #draft: опции нет pr( checkStr(getPageData('draft', null)) !== true ); // TRUE // draft: 0 pr( checkStr(getPageData('draft', null)) !== true ); // FALSE // draft: 1 Примеры кода: // пропускаем те, где явно отмечено sitemap: 0 if (checkArrVal($data, 'sitemap', true) === false) continue; // пропускаем черновики - где есть draft: 1 if (checkArrVal($data, 'draft', false) === true) continue; // пропускаем черновики - где есть draft: 1 if (isset($data['draft']) and checkStr($data['draft']) === true) continue;