"$mailing.approval_status_id", "createdContact.sort_name as created_by", "scheduledContact.sort_name as scheduled_by",
"$mailing.created_id as created_id", "$mailing.scheduled_id as scheduled_id", "$mailing.is_archived as archived",
"$mailing.created_date as created_date", "campaign_id", "$mailing.sms_provider_id as sms_provider_id",
+ "$mailing.language"
);
// we only care about parent jobs, since that holds all the info on
'campaign_id' => $dao->campaign_id,
'campaign' => empty($dao->campaign_id) ? NULL : $allCampaigns[$dao->campaign_id],
'sms_provider_id' => $dao->sms_provider_id,
+ 'language' => $dao->language,
);
}
return $rows;
$this->addElement('checkbox', 'status_unscheduled', NULL, ts('Draft / Unscheduled'));
$this->addYesNo('is_archived', ts('Mailing is Archived'), TRUE);
+ // Search by language, if multi-lingual
+ $enabledLanguages = CRM_Core_I18n::languages(TRUE);
+
+ if (count($enabledLanguages) > 1) {
+ $this->addElement('select', 'language', ts('Language'), array('' => ' - all languages - ') + $enabledLanguages, array('class' => 'crm-select2'));
+ }
+
if ($parent->_sms) {
$this->addElement('hidden', 'sms', $parent->_sms);
}
'sms',
'status_unscheduled',
'is_archived',
+ 'language',
'hidden_find_mailings',
);
foreach ($fields as $field) {
'option_group_id' => "from_email_address",
'domain_id' => CRM_Core_Config::domainID(),
));
+ $enabledLanguages = CRM_Core_I18n::languages(TRUE);
+ $isMultiLingual = (count($enabledLanguages) > 1);
CRM_Core_Resources::singleton()
->addSetting(array(
'crmMailing' => array(
'visibility' => CRM_Utils_Array::makeNonAssociative(CRM_Core_SelectValues::groupVisibility()),
'workflowEnabled' => CRM_Mailing_Info::workflowEnabled(),
'reportIds' => $reportIds,
+ 'enabledLanguages' => $enabledLanguages,
+ 'isMultiLingual' => $isMultiLingual,
),
))
->addPermissions(array(
'sort' => 'name',
'direction' => CRM_Utils_Sort::DONTCARE,
),
+ array(
+ 'name' => ts('Language'),
+ 'sort' => 'language',
+ 'direction' => CRM_Utils_Sort::DONTCARE,
+ ),
array(
'name' => ts('Status'),
'sort' => 'status',
$clauses[] = '( campaign_id IN ( ' . implode(' , ', array_values($campainIds)) . ' ) )';
}
+ if ($language = $this->_parent->get('language')) {
+ $clauses[] = "civicrm_mailing.language = %6";
+ $params[6] = array($language, 'String');
+ }
+
if (empty($clauses)) {
return 1;
}
'contact_id',
'mailing_id',
'mailing_name',
+ 'language',
'sort_name',
'email',
'mailing_subject',
'sort' => 'mailing_name',
'direction' => CRM_Utils_Sort::DONTCARE,
),
+ array(
+ 'name' => ts('Language'),
+ 'sort' => 'language',
+ 'direction' => CRM_Utils_Sort::DONTCARE,
+ ),
array(
'name' => ts('Mailing Subject'),
'sort' => 'mailing_subject',
placeholder="Subject"
name="subject" />
</div>
+ <div ng-if="crmMailingConst.isMultiLingual">
+ <div crm-ui-field="{name: 'subform.language', title: ts('Language')}">
+ <select
+ crm-ui-id="subform.language"
+ crm-ui-select="{dropdownAutoWidth : true, allowClear: false}"
+ name="language"
+ ng-model="mailing.language"
+ required
+ >
+ <option value=""></option>
+ <option ng-repeat="(key,val) in crmMailingConst.enabledLanguages" value="{{key}}">{{val}}</option>
+ </select>
+ </div>
+ </div>
</div>
</div>
</div>
<div ng-show="!attachments.files.length && !attachments.uploader.queue.length"><em>{{ts('None')}}</em></div>
</div>
+ <div ng-if="crmMailingConst.isMultiLingual" crm-ui-field="{title: ts('Language')}">
+ {{crmMailingConst.enabledLanguages[mailing.language]}}
+ </div>
<div crm-ui-field="{title: ts('Tracking')}">
<span crm-mailing-review-bool crm-on="mailing.url_tracking=='1'" crm-title="ts('Click-Throughs')"></span>
<span crm-mailing-review-bool crm-on="mailing.open_tracking=='1'" crm-title="ts('Opens')"></span>
{/if}
</tr>
+ {* language *}
+ {if $form.language}
+ <tr>
+ <td>{$form.language.label} {help id="id-language"}<br />
+ {$form.language.html|crmAddClass:big}
+ </td>
+ </tr>
+ {/if}
+
{* campaign in mailing search *}
{include file="CRM/Campaign/Form/addCampaignToComponent.tpl"
campaignContext="componentSearch" campaignTrClass='' campaignTdClass=''}
</pseudoconstant>
<add>4.6</add>
</field>
+ <field>
+ <name>language</name>
+ <title>Mailing Language</title>
+ <type>varchar</type>
+ <length>5</length>
+ <comment>Language of the content of the mailing. Useful for tokens.</comment>
+ <add>4.6</add>
+ <pseudoconstant>
+ <optionGroupName>languages</optionGroupName>
+ <keyColumn>name</keyColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
</table>