mirror of
https://github.com/processwire/processwire.git
synced 2025-08-10 08:44:46 +02:00
Minor TinyMCE updates plus make a method hookable for more configuration options
This commit is contained in:
@@ -135,7 +135,7 @@ class InputfieldTinyMCE extends InputfieldTextarea implements ConfigurableModule
|
||||
*
|
||||
* field: setting names populated by init().
|
||||
* module: setting names populated by __construct().
|
||||
* defult: setting names that had the value 'default' set prior to init().
|
||||
* default: setting names that had the value 'default' set prior to init().
|
||||
* tinymce: setting names are those native to TinyMCE.
|
||||
* optionals: settings that can be configured with module OR field.
|
||||
*
|
||||
|
@@ -7,6 +7,8 @@
|
||||
*
|
||||
* ProcessWire 3.x, Copyright 2022 by Ryan Cramer
|
||||
* https://processwire.com
|
||||
*
|
||||
* @property InputfieldTinyMCE $inputfield
|
||||
*
|
||||
*/
|
||||
abstract class InputfieldTinyMCEClass extends Wire {
|
||||
@@ -38,6 +40,7 @@ abstract class InputfieldTinyMCEClass extends Wire {
|
||||
*/
|
||||
public function __get($name) {
|
||||
switch($name) {
|
||||
case 'inputfield': return $this->inputfield;
|
||||
case 'tools':
|
||||
case 'settings':
|
||||
case 'configs':
|
||||
@@ -78,4 +81,4 @@ abstract class InputfieldTinyMCEClass extends Wire {
|
||||
public function formats() {
|
||||
return $this->inputfield->helper('formats');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,8 @@
|
||||
*
|
||||
* ProcessWire 3.x, Copyright 2023 by Ryan Cramer
|
||||
* https://processwire.com
|
||||
*
|
||||
* @method array prepareSettingsForOutput(array $settings)
|
||||
*
|
||||
*/
|
||||
class InputfieldTinyMCESettings extends InputfieldTinyMCEClass {
|
||||
@@ -68,6 +70,7 @@ class InputfieldTinyMCESettings extends InputfieldTinyMCEClass {
|
||||
$value = $inputfield->get('content_css_url');
|
||||
if(empty($value)) continue;
|
||||
}
|
||||
$value = $this->getContentCssUrl($value);
|
||||
} else if($name === 'directionality') {
|
||||
$value = $inputfield->getDirectionality();
|
||||
} else if($name === 'style_formats') {
|
||||
@@ -379,7 +382,12 @@ class InputfieldTinyMCESettings extends InputfieldTinyMCEClass {
|
||||
|
||||
} else if(strpos($content_css, '/') !== false) {
|
||||
// custom file
|
||||
$url = $rootUrl . ltrim($content_css, '/');
|
||||
if(strpos($content_css, $rootUrl) === 0) {
|
||||
$url = $content_css;
|
||||
} else {
|
||||
$url = $rootUrl . ltrim($content_css, '/');
|
||||
}
|
||||
// $url = $rootUrl . ltrim($content_css, '/');
|
||||
|
||||
} else if($content_css === 'custom') {
|
||||
// custom file (alternate/fallback)
|
||||
@@ -398,6 +406,10 @@ class InputfieldTinyMCESettings extends InputfieldTinyMCEClass {
|
||||
} else {
|
||||
$url = $defaultUrl;
|
||||
}
|
||||
|
||||
if(strpos($url, '.css') === false) {
|
||||
$url = rtrim($url, '/') . '/content.css';
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
@@ -411,7 +423,7 @@ class InputfieldTinyMCESettings extends InputfieldTinyMCEClass {
|
||||
* @return array
|
||||
*
|
||||
*/
|
||||
public function prepareSettingsForOutput(array $settings) {
|
||||
public function ___prepareSettingsForOutput(array $settings) {
|
||||
$config = $this->wire()->config;
|
||||
$rootUrl = $config->urls->root;
|
||||
//$inline = $this->inputfield->inlineMode > 0;
|
||||
@@ -721,6 +733,7 @@ class InputfieldTinyMCESettings extends InputfieldTinyMCEClass {
|
||||
// remove settings that cannot be set for field/template context
|
||||
unset($mergedSettings['style_formats'], $mergedSettings['content_style'], $mergedSettings['content_css']);
|
||||
$dataSettings = $this->getSettings($mergedSettings);
|
||||
$this->applySkin($dataSettings, $defaults);
|
||||
|
||||
} else {
|
||||
// no configName in use, data-settings attribute will hold all non-default settings
|
||||
|
Reference in New Issue
Block a user