Rev 1 | Blame | Compare with Previous | Last modification | View Log | Download
<?php namespace ProcessWire;/*** An Inputfield for handling Page Titles. Exists primarily for its javascript.** @property string $nameField* @property string $nameDelimiter* @property array $nameReplacements**/class InputfieldPageTitle extends InputfieldText {public static function getModuleInfo() {return array('title' => __('Page Title', __FILE__), // Module Title'summary' => __('Handles input of Page Title and auto-generation of Page Name (when name is blank)', __FILE__), // Module Summary'version' => 102,'permanent' => true,);}public function __construct() {$this->set('nameField', '');$this->set('nameDelimiter', '');$this->set('nameReplacements', array());parent::__construct();}protected function setupCustom() {$this->wrapAttr('data-name-field', $this->nameField);$this->wrapAttr('data-name-delimiter', $this->nameDelimiter);$this->addClass('InputfieldPageTitleCustom', 'wrapClass');$jsConfig = $this->wire()->config->js($this->className());if(!empty($jsConfig) && !empty($jsConfig['replacements'])) return;$replacements = $this->nameReplacements;if(empty($replacements)) {$replacements = $this->wire()->modules->getConfig('InputfieldPageName', 'replacements');if(empty($replacements)) $replacements = InputfieldPageName::getDefaultReplacements();}$this->wire()->config->js($this->className(), array('replacements' => $replacements,));}public function renderReady(Inputfield $parent = null, $renderValueMode = false) {if($this->nameField) $this->setupCustom();return parent::renderReady($parent, $renderValueMode);}}