Source of file LeftAndMainExtension.php
Size: 3,033 Bytes - Last Modified: 2021-12-23T10:05:50+00:00
/var/www/docs.ssmods.com/process/src/code/LeftAndMainExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | <?php namespace NathanCox\ContentGrid; use SilverStripe\Core\Extension; use SilverStripe\Core\Convert; use SilverStripe\View\Requirements; use SilverStripe\Forms\HTMLEditor\TinyMCEConfig; /** * This adds the TinyMCE config to LeftAndMain */ class LeftAndMainExtension extends Extension { public function init() { $config = ContentGrid::config(); $rowTypes =$config->row_types; TinyMCEConfig::get('cms')->enablePlugins(array('contentgrid' => '../../../contentgrid/javascript/plugin.js')); $jsRows = []; $buttons = array(); foreach ($rowTypes as $class => $properties) { $buttonName = 'insert-'.$class; $js = '"'.$buttonName.'": {'; if (isset($properties['text'])) { $js .= '"text": "'.$properties['text'].'",'; } else { $js .= '"text": "'.$class.'",'; } $buttonClass = 'mce_insertcontentgrid'; if (isset($properties['button_class'])) { $buttonClass .= ' ' .$properties['button_class']; } $js .= '"class": "'.$buttonClass.'",'; if (isset($properties['image'])) { $js .= '"image": "'.$properties['image'].'",'; } if (isset($properties['icon'])) { $js .= '"icon": "'.$properties['icon'].'",'; } $cellClasses = ''; if (isset($properties['cell_classes'])) { $cellClasses = implode(';', $properties['cell_classes']); } if (isset($properties['cells'])) { $cells = $properties['cells']; } else if (isset($properties['cell_classes'])) { $cells = count($properties['cell_classes']); } $js .= <<<JS "onclick": function() { tinymce.activeEditor.execCommand('contentGridInsertRow', { cells: {$cells}, class: '{$class}', cell_classes: '{$cellClasses}' }); } } JS; $jsRows[] = $js; } $buttons[] = 'contentgrid-insertrow'; $buttons[] = 'contentgrid-moveup'; $buttons[] = 'contentgrid-movedown'; $buttons[] = 'contentgrid-deleterow'; TinyMCEConfig::get('cms')->insertButtonsAfter('contentgrid', $buttons); TinyMCEConfig::get('cms')->removeButtons('contentgrid'); $javascript = 'var contentGridInsertButtons = {'; if ($config->first_class) { $javascript .= 'first_class: "' . $config->first_class . '",'; } if ($config->last_class) { $javascript .= 'last_class: "' . $config->last_class . '",'; } $javascript .= 'enabled: ' . ($config->enabled ? 'true' : 'false') . ','; $javascript .= 'insert_at_end: ' . ($config->insert_at_end ? 'true' : 'false') . ','; $javascript .= 'row_types: {'; $javascript .= implode($jsRows, ','); $javascript .= '}};'; Requirements::customScript($javascript, 'contentgridclasses'); } } |