index.php
53 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Kubio\Blocks; |
| 4 | |
| 5 | use Kubio\Core\Blocks\BlockBase; |
| 6 | use Kubio\Core\Registry; |
| 7 | |
| 8 | class LinkBlock extends BlockBase { |
| 9 | use RecommendationsTrait; |
| 10 | |
| 11 | const OUTER = 'outer'; |
| 12 | const LINK = 'link'; |
| 13 | const TEXT = 'text'; |
| 14 | const ICON = 'icon'; |
| 15 | const RECOMMENDATION_PAGE_IFRAME = 'recommendationPageIframe'; |
| 16 | |
| 17 | public function computed() { |
| 18 | $show_icon = $this->getProp( 'showIcon', false ); |
| 19 | $icon_position = $this->getProp( 'iconPosition', 'before' ); |
| 20 | $show_before = $show_icon && $icon_position === 'before'; |
| 21 | $show_after = $show_icon && $icon_position === 'after'; |
| 22 | |
| 23 | return array( |
| 24 | 'showBeforeIcon' => $show_before, |
| 25 | 'showAfterIcon' => $show_after, |
| 26 | ); |
| 27 | } |
| 28 | |
| 29 | public function mapPropsToElements() { |
| 30 | $icon_name = $this->getAttribute( 'icon.name' ); |
| 31 | $text = $this->getBlockInnerHtml(); |
| 32 | |
| 33 | return array( |
| 34 | self::LINK => $this->getRecommendationLinkAttributes(), |
| 35 | |
| 36 | self::ICON => array( |
| 37 | 'name' => $icon_name, |
| 38 | ), |
| 39 | |
| 40 | self::TEXT => array( |
| 41 | 'innerHTML' => wp_kses_post( $text ), |
| 42 | ), |
| 43 | |
| 44 | self::RECOMMENDATION_PAGE_IFRAME => $this->getRecommendationPageIframeHtml() |
| 45 | |
| 46 | ); |
| 47 | } |
| 48 | |
| 49 | |
| 50 | } |
| 51 | |
| 52 | Registry::registerBlock( __DIR__, LinkBlock::class ); |
| 53 |