Skip to content

Instantly share code, notes, and snippets.

@wernerkrauss
Created April 18, 2016 11:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wernerkrauss/ec1730f10967bb373292e17852bb19fb to your computer and use it in GitHub Desktop.
Save wernerkrauss/ec1730f10967bb373292e17852bb19fb to your computer and use it in GitHub Desktop.
Silverstripe extension to replace some stuff in $Title and other StringFields
<?php
/**
* Created by IntelliJ IDEA.
* User: Werner M. Krauß <werner.krauss@netwerkstatt.at>
* Date: 01.12.2015
* Time: 15:36
*/
class NetwerkstattStringFieldExtension extends Extension {
private static $casting = [
'Replace' => 'HTMLText'
];
private static $replacements = [
'(c)' => '&copy;',
'(r)' => '<sup>&reg;</sup>',
'(tm)' => '<sup>&trade;</sup>',
'|' => '<br>'
];
public function Replace() {
$replacements = Config::inst()->get('NetwerkstattStringFieldExtension', 'replacements');
$search = array_keys($replacements);
$replace = array_values($replacements);
return str_replace($search, $replace, $this->owner->value);
}
}
@wernerkrauss
Copy link
Author

You can configure the replacements using the SilverStripe config API.

@wernerkrauss
Copy link
Author

For a SS4 compatible and tested version see https://packagist.org/packages/wernerkrauss/ss-stringfield-replace

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment