mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
113 lines
3.1 KiB
PHP
113 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Email\Model\ResourceModel;
|
|
|
|
use Magento\Framework\Model\AbstractModel;
|
|
|
|
/**
|
|
* Template db resource
|
|
*
|
|
* @api
|
|
* @since 100.0.2
|
|
*/
|
|
class Template extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
|
|
{
|
|
/**
|
|
* @param \Magento\Framework\Model\ResourceModel\Db\Context $context
|
|
* @param string $connectionName
|
|
*/
|
|
public function __construct(
|
|
\Magento\Framework\Model\ResourceModel\Db\Context $context,
|
|
$connectionName = null
|
|
) {
|
|
parent::__construct($context, $connectionName);
|
|
}
|
|
|
|
/**
|
|
* Initialize email template resource model
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function _construct()
|
|
{
|
|
$this->_init('email_template', 'template_id');
|
|
}
|
|
|
|
/**
|
|
* Check usage of template code in other templates
|
|
*
|
|
* @param \Magento\Email\Model\Template $template
|
|
* @return bool
|
|
*/
|
|
public function checkCodeUsage(\Magento\Email\Model\Template $template)
|
|
{
|
|
if ($template->getTemplateActual() != 0 || $template->getTemplateActual() === null) {
|
|
$select = $this->getConnection()->select()->from(
|
|
$this->getMainTable(),
|
|
'COUNT(*)'
|
|
)->where(
|
|
'template_code = :template_code'
|
|
);
|
|
$bind = ['template_code' => $template->getTemplateCode()];
|
|
|
|
$templateId = $template->getId();
|
|
if ($templateId) {
|
|
$select->where('template_id != :template_id');
|
|
$bind['template_id'] = $templateId;
|
|
}
|
|
|
|
$result = $this->getConnection()->fetchOne($select, $bind);
|
|
if ($result) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Set template type, added at and modified at time
|
|
*
|
|
* @param \Magento\Framework\Model\AbstractModel $object
|
|
* @return $this
|
|
*/
|
|
protected function _beforeSave(AbstractModel $object)
|
|
{
|
|
$object->setTemplateType((int)$object->getTemplateType());
|
|
return parent::_beforeSave($object);
|
|
}
|
|
|
|
/**
|
|
* Retrieve config scope and scope id of specified email template by email paths
|
|
*
|
|
* @param array $paths
|
|
* @param int|string $templateId
|
|
* @return array
|
|
*/
|
|
public function getSystemConfigByPathsAndTemplateId($paths, $templateId)
|
|
{
|
|
$orWhere = [];
|
|
$pathsCounter = 1;
|
|
$bind = [];
|
|
foreach ($paths as $path) {
|
|
$pathAlias = 'path_' . $pathsCounter;
|
|
$orWhere[] = 'path = :' . $pathAlias;
|
|
$bind[$pathAlias] = $path;
|
|
$pathsCounter++;
|
|
}
|
|
$bind['template_id'] = $templateId;
|
|
$select = $this->getConnection()->select()->from(
|
|
$this->getTable('core_config_data'),
|
|
['scope', 'scope_id', 'path']
|
|
)->where(
|
|
'value LIKE :template_id'
|
|
)->where(
|
|
join(' OR ', $orWhere)
|
|
);
|
|
|
|
return $this->getConnection()->fetchAll($select, $bind);
|
|
}
|
|
}
|