-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
247 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
<?php | ||
|
||
use Civi\Api4\MailutilsTemplate; | ||
use CRM_Mailutils_ExtensionUtil as E; | ||
|
||
/** | ||
* Form controller class | ||
* | ||
* @see https://docs.civicrm.org/dev/en/latest/framework/quickform/ | ||
*/ | ||
class CRM_Mailutils_Form_MailutilsTemplate extends CRM_Core_Form { | ||
|
||
protected $_id = NULL; | ||
|
||
/** | ||
* @var array|mixed | ||
*/ | ||
private $_values; | ||
|
||
public function buildQuickForm() { | ||
$this->add('hidden', 'id', $this->_id); | ||
$this->add( | ||
'text', | ||
'name', | ||
'Name', | ||
[ | ||
'class' => 'huge' | ||
], | ||
TRUE | ||
); | ||
$templateCategories = MailutilsTemplate::getFields(FALSE) | ||
->setLoadOptions(TRUE) | ||
->addSelect('options') | ||
->addWhere('name', '=', 'template_category_id') | ||
->execute() | ||
->first()['options']; | ||
$this->add( | ||
'select', | ||
'template_category_id', | ||
'Template Category', | ||
$templateCategories, | ||
TRUE | ||
); | ||
$this->add( | ||
'textarea', | ||
'message', | ||
'Message', | ||
[ | ||
'class' => 'huge' | ||
], | ||
TRUE | ||
); | ||
$this->addButtons(array( | ||
array( | ||
'type' => 'submit', | ||
'name' => E::ts('Save'), | ||
'isDefault' => TRUE, | ||
), | ||
)); | ||
|
||
// export form elements | ||
$this->assign('elementNames', $this->getRenderableElementNames()); | ||
parent::buildQuickForm(); | ||
} | ||
|
||
public function setDefaultValues() { | ||
return $this->_values; | ||
} | ||
|
||
public function preProcess() { | ||
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive'); | ||
$this->_values = $this->get('values'); | ||
if (!is_array($this->_values)) { | ||
$this->_values = []; | ||
if (!empty($this->_id)) { | ||
$mailutilsTemplate = MailutilsTemplate::get(FALSE) | ||
->addWhere('id', '=', $this->_id) | ||
->execute() | ||
->first(); | ||
$this->_values = [ | ||
'id' => $mailutilsTemplate['id'], | ||
'name' => $mailutilsTemplate['name'], | ||
'template_category_id' => $mailutilsTemplate['template_category_id'], | ||
'message' => $mailutilsTemplate['message'], | ||
]; | ||
} | ||
$this->set('values', $this->_values); | ||
} | ||
|
||
} | ||
|
||
public function postProcess() { | ||
$params = $this->exportValues(); | ||
if (!empty($params['id'])) { | ||
$this->_id = $params['id']; | ||
MailutilsTemplate::update(FALSE) | ||
->addWhere('id', '=', $this->_id) | ||
->addValue('name', $params['name']) | ||
->addValue('template_category_id', $params['template_category_id']) | ||
->addValue('message', $params['message']) | ||
->execute(); | ||
} | ||
else { | ||
$mailutilsTemplate = MailutilsTemplate::create(FALSE) | ||
->addValue('name', $params['name']) | ||
->addValue('template_category_id', $params['template_category_id']) | ||
->addValue('message', $params['message']) | ||
->execute() | ||
->first(); | ||
$this->_id = $mailutilsTemplate['id']; | ||
} | ||
parent::postProcess(); | ||
CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/mailutils/template')); | ||
} | ||
|
||
/** | ||
* Get the fields/elements defined in this form. | ||
* | ||
* @return array (string) | ||
*/ | ||
public function getRenderableElementNames() { | ||
// The _elements list includes some items which should not be | ||
// auto-rendered in the loop -- such as "qfKey" and "buttons". These | ||
// items don't have labels. We'll identify renderable by filtering on | ||
// the 'label'. | ||
$elementNames = array(); | ||
foreach ($this->_elements as $element) { | ||
/** @var HTML_QuickForm_Element $element */ | ||
$label = $element->getLabel(); | ||
if (!empty($label)) { | ||
$elementNames[] = $element->getName(); | ||
} | ||
} | ||
$elementNames[] = 'id'; | ||
return $elementNames; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
|
||
use Civi\Api4\MailutilsTemplate; | ||
use CRM_Mailutils_ExtensionUtil as E; | ||
|
||
class CRM_Mailutils_Page_MailutilsTemplates extends CRM_Core_Page { | ||
|
||
public function run() { | ||
// Example: Set the page-title dynamically; alternatively, declare a static title in xml/Menu/*.xml | ||
// CRM_Utils_System::setTitle(E::ts('MailutilsTemplates')); | ||
|
||
$mailutilsTemplates = MailutilsTemplate::get(FALSE) | ||
->addSelect('*', 'template_category_id:label') | ||
->addOrderBy('template_category_id:label', 'ASC') | ||
->addOrderBy('name', 'ASC') | ||
->execute(); | ||
foreach ($mailutilsTemplates as $id => $mailutilsTemplate) { | ||
$mailutilsTemplates[$id]['category'] = $mailutilsTemplate['template_category_id:label']; | ||
} | ||
$this->assign('mailutilsTemplates', $mailutilsTemplates); | ||
|
||
parent::run(); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{* HEADER *} | ||
|
||
<div class="crm-submit-buttons"> | ||
{include file="CRM/common/formButtons.tpl" location="top"} | ||
</div> | ||
|
||
{* FIELD EXAMPLE: OPTION 1 (AUTOMATIC LAYOUT) *} | ||
|
||
{foreach from=$elementNames item=elementName} | ||
<div class="crm-section"> | ||
<div class="label">{$form.$elementName.label}</div> | ||
<div class="content">{$form.$elementName.html}</div> | ||
<div class="clear"></div> | ||
</div> | ||
{/foreach} | ||
|
||
{* FIELD EXAMPLE: OPTION 2 (MANUAL LAYOUT) | ||
<div> | ||
<span>{$form.favorite_color.label}</span> | ||
<span>{$form.favorite_color.html}</span> | ||
</div> | ||
{* FOOTER *} | ||
<div class="crm-submit-buttons"> | ||
{include file="CRM/common/formButtons.tpl" location="bottom"} | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<div class="crm-submit-buttons"> | ||
<a href="{crmURL p="civicrm/mailutils/template/add"}" class="button"><span><i class="crm-i fa-plus-circle" aria-hidden="true"></i> Add Template</span></a> | ||
</div> | ||
<table cellpadding="0" cellspacing="0" border="0"> | ||
<tr class="columnheader"> | ||
<th>{ts}Name{/ts}</th> | ||
<th>{ts}Category{/ts}</th> | ||
<th colspan="2">{ts}Message{/ts}</th> | ||
</tr> | ||
{foreach from=$mailutilsTemplates item=row} | ||
<tr class="crm-entity {cycle values="odd-row,even-row"}"> | ||
<td>{$row.name|escape}</td> | ||
<td>{$row.category|escape}</td> | ||
<td>{$row.message|escape|nl2br}</td> | ||
<td> | ||
<span> | ||
<a class="action-item crm-hover-button" href="{crmURL p="civicrm/mailutils/template/add" q="reset=1&id=`$row.id`"}">Edit</a> | ||
</span> | ||
</td> | ||
</tr> | ||
{/foreach} | ||
</table> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?xml version="1.0"?> | ||
<menu> | ||
<item> | ||
<path>civicrm/mailutils/template</path> | ||
<page_callback>CRM_Mailutils_Page_MailutilsTemplates</page_callback> | ||
<title>Mailutils Templates</title> | ||
<access_arguments>access mailutils</access_arguments> | ||
</item> | ||
<item> | ||
<path>civicrm/mailutils/template/add</path> | ||
<page_callback>CRM_Mailutils_Form_MailutilsTemplate</page_callback> | ||
<title>Manage Mailutils Template</title> | ||
<access_arguments>access mailutils</access_arguments> | ||
</item> | ||
</menu> |