artabro/wire/modules/Textformatter/TextformatterEntities.module

35 lines
1 KiB
Text
Raw Normal View History

2024-08-27 11:35:37 +02:00
<?php namespace ProcessWire;
/**
* ProcessWire Entities Textformatter
*
* Formats text with PHP's htmlspecialchars() function.
*
* ProcessWire 3.x, Copyright 2023 by Ryan Cramer
* https://processwire.com
*
*
*/
class TextformatterEntities extends Textformatter {
public static function getModuleInfo() {
return array(
'title' => __('HTML Entity Encoder (htmlspecialchars)', __FILE__), // Module Title
'summary' => __("Entity encode ampersands, quotes (single and double) and greater-than/less-than signs using htmlspecialchars(str, ENT_QUOTES). It is recommended that you use this on all text/textarea fields except those using a rich text editor or a markup language like Markdown.", __FILE__), // Module Summary
'version' => 100,
);
}
protected $charset = '';
public function format(&$str) {
if($this->charset === '') $this->charset = $this->wire()->config->dbCharset;
if(stripos($this->charset, 'utf8') === 0) {
$str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
} else {
$str = htmlspecialchars($str, ENT_QUOTES);
}
}
}