1
0
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:
Ryan Cramer
2025-05-01 13:38:17 -04:00
parent b5f94df3d6
commit c1d150d4ba
3 changed files with 20 additions and 4 deletions

View File

@@ -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.
*

View File

@@ -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');
}
}
}

View File

@@ -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