Collection of useful helpers for ConcreteCMS
in_array_all
Verify that all needles are in haystack array.in_array_any
Verify that at least one of needles is in haystack array.strip_spaces
Remove all spaces from the given string.current_locale
Get Current Page Locale.current_language
Get Current Page Language.active_locale
An Alias of \Localization::activeLocale().active_language
An Alias of \Localization::activeLanguage().theme_path
Get Site Theme Pathc5_date_format
An Alias of \Concrete\Core\Localization\Service\Date::formatDate().c5_date_format_custom
An Alias of \Concrete\Core\Localization\Service\Date::formatCustom().Xanweb\Helper\Page::getBlock
andXanweb\Helper\Page::getBlocks
for 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
*/