MSV FM

dot.antimicrobial@66.96.161.157: ~ $
Path : /hermes/bosweb/b1705/silverkeyhomesinc.ca/dev_admin_dawncs/app/View/Helper/
File Upload :
Current < : /hermes/bosweb/b1705/silverkeyhomesinc.ca/dev_admin_dawncs/app/View/Helper/TinyMCEHelper.php

<?php
declare(strict_types=1);

namespace TinyMCE\View\Helper;

use Cake\Core\Configure;
use Cake\Utility\Inflector;
use Cake\View\Helper;
use Cake\View\View;
use Exception;

/**
 * Copyright 2009-2020, Cake Development Corporation (http://cakedc.com)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright Copyright 2009-2013, Cake Development Corporation (http://cakedc.com)
 * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

/**
 * TinyMCE Helper
 *
 * @property \Cake\View\Helper\HtmlHelper $Html
 */
class TinyMCEHelper extends Helper
{

	/**
	 * Other helpers used by FormHelper
	 *
	 * @var array
	 */
	public $helpers = ['Html'];

	/**
	 * Configuration
	 *
	 * @var array
	 */
	public $configs = [];


	/**
	 * Settings
	 *
	 * @var array
	 */
	public $settings = [];

	/**
	 * Default values
	 *
	 * @var array
	 */
	protected $_defaultConfig = [
		'script' => '//cdn.tinymce.com/4/tinymce.min.js',
		'loadScript' => true
	];

	/**
	 * Constructor
	 *
	 * @param View $View The View this helper is being attached to.
	 * @param array $settings Configuration settings for the helper.
	 */
	public function __construct(View $View, $settings = [])
	{
		parent::__construct($View, $settings);
		$configs = Configure::read('TinyMCE.configs');
		if (!empty($configs) && is_array($configs)) {
			$this->configs = $configs;
		}
		$this->settings = array_merge($this->_defaultConfig, empty($settings) ? Configure::read('TinyMCE.settings', []) : $settings);
	}

	/**
	 * Adds a new editor to the script block in the head
	 *
	 * @see http://www.tinymce.com/wiki.php/Configuration for a list of keys
	 * @throws Exception
	 * @param mixed $options If array camel cased TinyMCE Init config keys, if string it checks if a config with that name exists
	 * @return void
	 */
	public function editor($options = []): void
	{
		if (is_string($options)) {
			if (isset($this->configs[$options])) {
				$options = $this->configs[$options];
			} else {
				throw new Exception(sprintf(__('Invalid TinyMCE configuration preset %s'), $options));
			}
		}
		$options = array_merge($this->_defaultConfig, $options);
		$lines = '';

		foreach ($options as $option => $value) {
			if (is_array($value) && isset($value['function'])) {
				$lines .= $option . ' : ' . $value['function'] . ',' . "\n";
			} else {
				if (is_string($value)) {
					$value = '"' . $value . '"';
				} elseif (is_bool($value)) {
					$value = $value ? 'true' : 'false';
				}
				$lines .= Inflector::underscore($option) . ' : ' . $value . ',' . "\n";
			}
		}

		// remove last comma from lines to avoid the editor breaking in Internet Explorer
		$lines = rtrim($lines);
		$lines = rtrim($lines, ',');
		$this->Html->scriptBlock('tinymce.init({' . "\n" . $lines . "\n" . '});' . "\n", ['block' => true]);
	}

	/**
	 * beforeRender callback
	 *
	 * @param string $viewFile The view file that is going to be rendered
	 * @return void
	 */
	public function beforeRender($viewFile): void
	{
		$appOptions = Configure::read('TinyMCE.editorOptions');
		if ($appOptions !== false && is_array($appOptions)) {
			$this->_defaultConfig = $appOptions;
		}
		if ($this->settings['loadScript'] === true) {
			$this->Html->script($this->settings['script'], ['block' => true]);
		}
	}

}