* @category Horde * @copyright 2012-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ class IMP_Prefs_Special_HtmlSignature implements Horde_Core_Prefs_Ui_Special { /** */ public function init(Horde_Core_Prefs_Ui $ui) { } /** */ public function display(Horde_Core_Prefs_Ui $ui) { global $conf, $injector, $page_output, $prefs; $page_output->addScriptFile('editor.js'); $page_output->addScriptFile('signaturehtml.js'); $page_output->addScriptPackage('IMP_Script_Package_Editor'); $identity = $injector->getInstance('IMP_Identity'); $js = array(-1 => $prefs->getValue('signature_html')); foreach (array_keys($identity->getAll('id')) as $key) { $js[$key] = $identity->getValue('signature_html', $key); }; $page_output->addInlineJsVars(array( 'ImpHtmlSignaturePrefs.sigs' => $js )); $view = new Horde_View(array( 'templatePath' => IMP_TEMPLATES . '/prefs' )); $view->addHelper('Text'); $view->img_limit = $conf['compose']['htmlsig_img_size']; $view->signature = $prefs->getValue('signature_html'); return $view->render('signaturehtml'); } /** */ public function update(Horde_Core_Prefs_Ui $ui) { global $injector, $notification; try { /* Throws exception if over image size limit. */ new IMP_Compose_HtmlSignature($ui->vars->signature_html); } catch (IMP_Exception $e) { $notification->push($e, 'horde.error'); return false; } return $injector->getInstance('IMP_Identity')->setValue( 'signature_html', $ui->vars->signature_html ); } }