Collection of useful helpers for ConcreteCMS
in_array_allVerify that all needles are in haystack array.in_array_anyVerify that at least one of needles is in haystack array.strip_spacesRemove all spaces from the given string.current_localeGet Current Page Locale.current_languageGet Current Page Language.active_localeAn Alias of \Localization::activeLocale().active_languageAn Alias of \Localization::activeLanguage().theme_pathGet Site Theme Pathc5_date_formatAn Alias of \Concrete\Core\Localization\Service\Date::formatDate().c5_date_format_customAn Alias of \Concrete\Core\Localization\Service\Date::formatCustom().Xanweb\Helper\Page::getBlockandXanweb\Helper\Page::getBlocksfor fetching block(s) from page
Include library to your composer.json
composer require xanweb/c5-helpers use Xanweb\Helper\Page as PageHelper;
$ph = new PageHelper(
$page, // Page Object
['Header', 'Footer'], // Optional argument to exclude some areas from fetching
['Main'] // Optional argument to include some areas in fetching
);
// Get the first valid instance of required block
$contentBlockController = $ph->getBlock(
'content', // Block Type Handle
function (BlockController $bController) { // Optional callable to test for valid block
return !empty($bController->getContent());
}
);
// Get the first valid instances of required blocks
$blocksControllers = $ph->getBlocks(
['image', 'content'], // Block Types Handle
function (BlockController $bController) { // Optional callable to test for valid block
if ($bController instanceof \Concrete\Block\Image\Controller) {
return is_object($this->getFileObject());
}
if ($bController instanceof \Concrete\Block\Content\Controller) {
return !empty($bController->getContent());
}
return false;
}
);
/**
* - $blocksControllers array is indexed by btHandle: ['image' => $bController, 'content' => $bController]
* - If no block is found $blocksControllers will be an empty array
*/