35 lines
1 KiB
Text
35 lines
1 KiB
Text
|
<?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);
|
||
|
}
|
||
|
}
|
||
|
}
|