4 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
5 require_once
'Services/Mail/classes/class.ilMailTemplateDataProvider.php';
6 require_once
'Services/Mail/classes/class.ilMailTemplate.php';
7 require_once
'Services/Mail/classes/class.ilMailTemplateService.php';
8 require_once
'Services/Mail/classes/class.ilMailTemplateGenericContext.php';
46 public function __construct()
59 $this->toolbar = $ilToolbar;
61 $this->lng->loadLanguageModule(
'meta');
71 $next_class = $this->ctrl->getNextClass($this);
72 $cmd = $this->ctrl->getCmd();
77 if(!
$cmd || !method_exists($this,
$cmd))
79 $cmd =
'showTemplates';
92 require_once
'Services/UIComponent/Button/classes/class.ilLinkButton.php';
93 require_once
'Services/Mail/classes/class.ilMailTemplateTableGUI.php';
96 if(count($contexts) <= 1)
103 $create_tpl_button->setCaption(
'mail_new_template');
104 $create_tpl_button->setUrl($this->ctrl->getLinkTarget($this,
'showInsertTemplateForm'));
105 $this->toolbar->addButtonInstance($create_tpl_button);
109 $tbl->setData($this->provider->getTableData());
111 $this->tpl->setContent(
$tbl->getHTML());
121 if(!
$form->checkInput())
123 $form->setValuesByPost();
129 if(
$form->getInput(
'context') == $generic_context->getId())
131 $form->getItemByPostVar(
'context')->setAlert($this->lng->txt(
'mail_template_no_valid_context'));
132 $form->setValuesByPost();
141 $template->setTitle(
$form->getInput(
'title'));
142 $template->setContext($context->getId());
143 $template->setLang(
$form->getInput(
'lang'));
144 $template->setSubject(
$form->getInput(
'm_subject'));
145 $template->setMessage(
$form->getInput(
'm_message'));
149 $this->ctrl->redirect($this,
'showTemplates');
153 $form->getItemByPostVar(
'context')->setAlert($this->lng->txt(
'mail_template_no_valid_context'));
157 $form->setValuesByPost();
170 $this->tpl->setContent(
$form->getHTML());
178 if(!isset(
$_POST[
'tpl_id']) || !strlen(
$_POST[
'tpl_id']))
185 $template = $this->provider->getTemplateById((
int)
$_POST[
'tpl_id']);
194 if(!
$form->checkInput())
196 $form->setValuesByPost();
202 if(
$form->getInput(
'context') == $generic_context->getId())
204 $form->getItemByPostVar(
'context')->setAlert($this->lng->txt(
'mail_template_no_valid_context'));
205 $form->setValuesByPost();
213 $template->setTitle(
$form->getInput(
'title'));
214 $template->setContext($context->getId());
215 $template->setLang(
$form->getInput(
'lang'));
216 $template->setSubject(
$form->getInput(
'm_subject'));
217 $template->setMessage(
$form->getInput(
'm_message'));
221 $this->ctrl->redirect($this,
'showTemplates');
225 $form->getItemByPostVar(
'context')->setAlert($this->lng->txt(
'mail_template_no_valid_context'));
229 $form->setValuesByPost();
240 if(!isset(
$_GET[
'tpl_id']) || !strlen(
$_GET[
'tpl_id']))
247 $template = $this->provider->getTemplateById((
int)
$_GET[
'tpl_id']);
259 $this->tpl->setContent(
$form->getHTML());
272 'lang' => $template->
getLang(),
283 if(isset(
$_POST[
'tpl_id']) && is_array(
$_POST[
'tpl_id']) && count(
$_POST[
'tpl_id']) > 0)
285 $tpl_ids = array_filter(array_map(
'intval',
$_POST[
'tpl_id']));
287 else if(isset(
$_GET[
'tpl_id']) && strlen(
$_GET[
'tpl_id']))
289 $tpl_ids = array_filter(
array((
int)
$_GET[
'tpl_id']));
296 if(count($tpl_ids) == 0)
303 require_once
'Services/Utilities/classes/class.ilConfirmationGUI.php';
305 $confirm->setFormAction($this->ctrl->getFormAction($this,
'deleteTemplate'));
306 $confirm->setHeaderText($this->lng->txt(
'mail_sure_delete_entry'));
307 $confirm->setConfirm($this->lng->txt(
'confirm'),
'deleteTemplate');
308 $confirm->setCancel($this->lng->txt(
'cancel'),
'showTemplates');
310 foreach($tpl_ids as $tpl_id)
312 $template = $this->provider->getTemplateById((
int)$tpl_id);
313 $confirm->addItem(
'tpl_id[]', $tpl_id, $template->getTitle());
315 $this->tpl->setContent($confirm->getHTML());
323 if(isset(
$_POST[
'tpl_id']) && is_array(
$_POST[
'tpl_id']) && count(
$_POST[
'tpl_id']) > 0)
325 $tpl_ids = array_filter(array_map(
'intval',
$_POST[
'tpl_id']));
326 if(0 == count($tpl_ids))
340 $this->provider->deleteTemplates($tpl_ids);
342 if(1 == count($tpl_ids))
350 $this->ctrl->redirect($this,
'showTemplates');
356 require_once
'Services/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php';
359 foreach( $context->getPlaceholders() as $key => $value)
361 $placeholders->addPlaceholder($value[
'placeholder'], $value[
'label'] );
363 $placeholders->render(
true);
376 $title->setRequired(
true);
382 if(count($contexts) <= 1)
385 $this->ctrl->redirect($this,
'showTemplates');
388 $context_sort =
array();
389 $context_options =
array();
391 foreach($contexts as $ctx)
393 if($ctx->getId() != $generic_context->getId())
395 $context_options[$ctx->getId()] = $ctx;
396 $context_sort[$ctx->getId()] = $ctx->getTitle();
399 asort($context_sort);
401 foreach($context_sort as $id =>
$title)
403 $ctx = $context_options[$id];
404 $option =
new ilRadioOption($ctx->getTitle(), $ctx->getId());
405 $option->
setInfo($ctx->getDescription());
406 $context->addOption($option);
413 $context->setValue($first);
414 $context->setRequired(
true);
415 $form->addItem($context);
428 $hidde_language->setValue($this->lng->getLangKey());
429 $form->addItem($hidde_language);
431 $subject =
new ilTextInputGUI($this->lng->txt(
'subject'),
'm_subject');
433 $subject->setSize(50);
434 $form->addItem($subject);
438 $message->setCols(60);
439 $message->setRows(10);
440 $form->addItem($message);
442 require_once
'Services/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php';
445 if( $template === null )
447 $context_id = $generic_context->getId();
451 $context_id = $template->getContext();
454 foreach( $context->getPlaceholders() as $key => $value)
456 $placeholders->addPlaceholder($value[
'placeholder'], $value[
'label'] );
458 $form->addItem($placeholders);
464 $form->setTitle($this->lng->txt(
'mail_edit_tpl'));
465 $form->setFormAction($this->ctrl->getFormaction($this,
'updateTemplate'));
466 $form->addCommandButton(
'updateTemplate', $this->lng->txt(
'save'));
470 $form->setTitle($this->lng->txt(
'mail_create_tpl'));
471 $form->setFormAction($this->ctrl->getFormaction($this,
'insertTemplate'));
472 $form->addCommandButton(
'insertTemplate', $this->lng->txt(
'save'));
475 $form->addCommandButton(
'showTemplates', $this->lng->txt(
'cancel'));
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
This class represents an option in a radio group.
showInsertTemplateForm(ilPropertyFormGUI $form=NULL)
getTemplateForm(ilMailTemplate $template=null)
getAjaxPlaceholdersById()
setInfo($a_info)
Set Info.
Class ilMailTemplateDataProvider.
static getTemplateContexts($a_id=null)
Returns an array of mail template contexts, the key of each entry matches its id. ...
Class ilMailTemplateTableGUI.
populateFormWithTemplate(ilPropertyFormGUI $form, ilMailTemplate $template)
This class represents a text property in a property form.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
showEditTemplateForm(ilPropertyFormGUI $form=NULL)
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a text area property in a property form.
Confirmation screen class.
static getTemplateContextById($a_id)