Skip to content

Xanweb/c5-helpers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConcreteCMS Helpers Suite

Latest Version on Packagist Software License

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 Path
  • c5_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 and Xanweb\Helper\Page::getBlocks for fetching block(s) from page

Installation

Include library to your composer.json

composer require xanweb/c5-helpers

Usage of Xanweb\Helper\Page

    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 
     */