Files
crm.clientright.ru/modules/ITS4YouEmailMarketing/templates/EmailMaker.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

100 lines
3.2 KiB
PHP

<?php
/* * *******************************************************************************
* The content of this file is subject to the ITS4YouEmailMarketing license.
* ("License"); You may not use this file except in compliance with the License
* The Initial Developer of the Original Code is IT-Solutions4You s.r.o.
* Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o.
* All Rights Reserved.
* ****************************************************************************** */
class ITS4YouEmailMarketing_EmailMaker_Template extends ITS4YouEmailMarketing_Content_Template
{
/**
* @var string
*/
protected $moduleName = 'EMAILMaker';
public function setContent()
{
$this->recordModel = EMAILMaker_Record_Model::getInstanceById($this->templateId);
$this->setContactData();
}
/**
* @param string $record
* @param string $module
*/
public function setContactData($record = '', $module = '')
{
$this->setContactId($record);
$this->setContactModule($module);
$content = EMAILMaker_EMAILContent_Model::getInstanceById($this->templateId, $this->getLanguage(), $module, $record, $record, $module);
if ($content) {
if ($record && $module) {
$content->getContent();
}
$this->setImages($content->getEmailImages());
$this->setSubject($content->getSubject());
$this->setBody($content->getBody());
}
}
/**
* @return string
*/
public function getName()
{
if ($this->recordModel) {
return $this->recordModel->get('label');
}
return '';
}
/**
* @param bool|array $modules
* @param bool $globalTemplates
* @return string
*/
public function getPickListQuery($modules = false, $globalTemplates = false)
{
$query = 'SELECT templateid as id, templatename as name FROM vtiger_emakertemplates WHERE deleted = 0 ';
if (!empty($modules)) {
$query .= ' AND (module IN (' . generateQuestionMarks($modules) . ') ' . ($globalTemplates ? ' || module = "" ' : '') . ')';
}
return $query;
}
public function getCreateLink()
{
$link = parent::getCreateLink();
if ($this->marketingRecord) {
$link .= '&modulename=' . $this->marketingRecord->get('emailmarketingmodule');
}
return $link;
}
public function getDocumentsIds()
{
$adb = PearDatabase::getInstance();
$sql = 'SELECT vtiger_notes.notesid AS document_id FROM vtiger_notes
INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_notes.notesid
INNER JOIN vtiger_emakertemplates_documents ON vtiger_emakertemplates_documents.documentid = vtiger_notes.notesid
WHERE vtiger_crmentity.deleted=? AND vtiger_emakertemplates_documents.templateid=?';
$result = $adb->pquery($sql, ['0', $this->templateId]);
$documentsIds = [];
while ($row = $adb->fetchByAssoc($result)) {
$documentsIds[] = $row['document_id'];
}
return $documentsIds;
}
}