protected function execute(InputInterface $input, OutputInterface $output) { $sendingId = $input->getArgument("sendingId"); $tmpStore = Model\Tool\TmpStore::get($sendingId); if (empty($tmpStore)) { Logger::alert("No sending configuration for {$sendingId} found. Cannot send newsletter."); exit; } $data = $tmpStore->getData(); if ($data['inProgress']) { Logger::alert("Cannot send newsletters because there's already one active sending process."); exit; } $data['inProgress'] = 1; $tmpStore->setData($data); $tmpStore->update(); $document = Model\Document\Newsletter::getById($data['documentId']); $addressSourceAdapterName = $data['addressSourceAdapterName']; $adapterParams = $data['adapterParams']; $adapterClass = "\\Pimcore\\Document\\Newsletter\\AddressSourceAdapter\\" . ucfirst($addressSourceAdapterName); /** * @var $addressAdapter \Pimcore\Document\Newsletter\AddressSourceAdapterInterface */ $addressAdapter = new $adapterClass($adapterParams); if ($document->getSendingMode() == Newsletter::SENDING_MODE_BATCH) { $this->doSendMailInBatchMode($document, $addressAdapter, $sendingId); } else { $this->doSendMailInSingleMode($document, $addressAdapter, $sendingId); } Model\Tool\TmpStore::delete($sendingId); }
/** * Deletes from database * * @return void */ public function delete() { if ($this->model->getId() instanceof Model\Search\Backend\Data\Id) { $this->db->delete("search_backend_data", "id='" . $this->model->getId()->getId() . "' AND maintype ='" . $this->model->getId()->getType() . "'"); } else { Logger::alert("Cannot delete Search\\Backend\\Data, ID is empty"); } }
/** * @param \Zend_Controller_Request_Abstract $request */ public function postDispatch(\Zend_Controller_Request_Abstract $request) { $conf = Config::getSystemConfig(); // add scripts to editmode $debugSuffix = ""; if (PIMCORE_DEVMODE) { $debugSuffix = "-debug"; } if (\Pimcore\Tool\Admin::isExtJS6()) { $editmodeLibraries = ["/pimcore/static6/js/pimcore/namespace.js", "/pimcore/static6/js/lib/prototype-light.js", "/pimcore/static6/js/lib/jquery.min.js", "/pimcore/static6/js/lib/ext/ext-all" . $debugSuffix . ".js", "/pimcore/static6/js/lib/ckeditor/ckeditor.js"]; $editmodeScripts = ["/pimcore/static6/js/pimcore/functions.js", "/pimcore/static6/js/pimcore/element/tag/imagehotspotmarkereditor.js", "/pimcore/static6/js/pimcore/element/tag/imagecropper.js", "/pimcore/static6/js/pimcore/document/edit/helper.js", "/pimcore/static6/js/pimcore/elementservice.js", "/pimcore/static6/js/pimcore/document/edit/dnd.js", "/pimcore/static6/js/pimcore/document/tag.js", "/pimcore/static6/js/pimcore/document/tags/block.js", "/pimcore/static6/js/pimcore/document/tags/date.js", "/pimcore/static6/js/pimcore/document/tags/href.js", "/pimcore/static6/js/pimcore/document/tags/multihref.js", "/pimcore/static6/js/pimcore/document/tags/checkbox.js", "/pimcore/static6/js/pimcore/document/tags/image.js", "/pimcore/static6/js/pimcore/document/tags/input.js", "/pimcore/static6/js/pimcore/document/tags/link.js", "/pimcore/static6/js/pimcore/document/tags/select.js", "/pimcore/static6/js/pimcore/document/tags/snippet.js", "/pimcore/static6/js/pimcore/document/tags/textarea.js", "/pimcore/static6/js/pimcore/document/tags/numeric.js", "/pimcore/static6/js/pimcore/document/tags/wysiwyg.js", "/pimcore/static6/js/pimcore/document/tags/renderlet.js", "/pimcore/static6/js/pimcore/document/tags/table.js", "/pimcore/static6/js/pimcore/document/tags/video.js", "/pimcore/static6/js/pimcore/document/tags/multiselect.js", "/pimcore/static6/js/pimcore/document/tags/areablock.js", "/pimcore/static6/js/pimcore/document/tags/area.js", "/pimcore/static6/js/pimcore/document/tags/pdf.js", "/pimcore/static6/js/pimcore/document/tags/embed.js", "/pimcore/static6/js/pimcore/document/edit/helper.js"]; $editmodeStylesheets = ["/pimcore/static6/css/icons.css", "/pimcore/static6/css/editmode.css?_dc=" . time()]; } else { $editmodeLibraries = ["/pimcore/static/js/pimcore/namespace.js", "/pimcore/static/js/lib/prototype-light.js", "/pimcore/static/js/lib/jquery.min.js", "/pimcore/static/js/lib/ext/adapter/jquery/ext-jquery-adapter-debug.js", "/pimcore/static/js/lib/ext/ext-all-debug.js", "/pimcore/static/js/lib/ext-plugins/ux/Spinner.js", "/pimcore/static/js/lib/ext-plugins/ux/SpinnerField.js", "/pimcore/static/js/lib/ext-plugins/ux/MultiSelect.js", "/pimcore/static/js/lib/ext-plugins/GridRowOrder/roworder.js", "/pimcore/static/js/lib/ckeditor/ckeditor.js", "/pimcore/static/js/pimcore/libfixes.js"]; $editmodeScripts = ["/pimcore/static/js/pimcore/functions.js", "/pimcore/static/js/pimcore/element/tag/imagehotspotmarkereditor.js", "/pimcore/static/js/pimcore/element/tag/imagecropper.js", "/pimcore/static/js/pimcore/document/edit/helper.js", "/pimcore/static/js/pimcore/document/edit/dnd.js", "/pimcore/static/js/pimcore/document/tag.js", "/pimcore/static/js/pimcore/document/tags/block.js", "/pimcore/static/js/pimcore/document/tags/date.js", "/pimcore/static/js/pimcore/document/tags/href.js", "/pimcore/static/js/pimcore/document/tags/multihref.js", "/pimcore/static/js/pimcore/document/tags/checkbox.js", "/pimcore/static/js/pimcore/document/tags/image.js", "/pimcore/static/js/pimcore/document/tags/input.js", "/pimcore/static/js/pimcore/document/tags/link.js", "/pimcore/static/js/pimcore/document/tags/select.js", "/pimcore/static/js/pimcore/document/tags/snippet.js", "/pimcore/static/js/pimcore/document/tags/textarea.js", "/pimcore/static/js/pimcore/document/tags/numeric.js", "/pimcore/static/js/pimcore/document/tags/wysiwyg.js", "/pimcore/static/js/pimcore/document/tags/renderlet.js", "/pimcore/static/js/pimcore/document/tags/table.js", "/pimcore/static/js/pimcore/document/tags/video.js", "/pimcore/static/js/pimcore/document/tags/multiselect.js", "/pimcore/static/js/pimcore/document/tags/areablock.js", "/pimcore/static/js/pimcore/document/tags/area.js", "/pimcore/static/js/pimcore/document/tags/pdf.js", "/pimcore/static/js/pimcore/document/edit/helper.js"]; $editmodeStylesheets = ["/pimcore/static/css/icons.css", "/pimcore/static/css/editmode.css?asd=" . time()]; } //add plugin editmode JS and CSS try { $pluginConfigs = ExtensionManager::getPluginConfigs(); $jsPaths = []; $cssPaths = []; if (!empty($pluginConfigs)) { //registering plugins foreach ($pluginConfigs as $p) { $pluginJsPaths = []; $pluginVersions = [""]; if (\Pimcore\Tool\Admin::isExtJS6()) { $pluginVersions = ["-extjs6", ""]; } foreach ($pluginVersions as $pluginVersion) { if (array_key_exists("pluginDocumentEditmodeJsPaths" . $pluginVersion, $p['plugin']) && is_array($p['plugin']['pluginDocumentEditmodeJsPaths' . $pluginVersion]) && isset($p['plugin']['pluginDocumentEditmodeJsPaths' . $pluginVersion]['path'])) { if (is_array($p['plugin']['pluginDocumentEditmodeJsPaths' . $pluginVersion]['path'])) { $pluginJsPaths = $p['plugin']['pluginDocumentEditmodeJsPaths' . $pluginVersion]['path']; break; } elseif ($p['plugin']['pluginDocumentEditmodeJsPaths' . $pluginVersion]['path'] != null) { $pluginJsPaths[] = $p['plugin']['pluginDocumentEditmodeJsPaths' . $pluginVersion]['path']; break; } } } //manipulate path for frontend if (is_array($pluginJsPaths) and count($pluginJsPaths) > 0) { for ($i = 0; $i < count($pluginJsPaths); $i++) { if (is_file(PIMCORE_PLUGINS_PATH . $pluginJsPaths[$i])) { $jsPaths[] = "/plugins" . $pluginJsPaths[$i]; } } } $pluginCssPaths = []; foreach ($pluginVersions as $pluginVersion) { if (array_key_exists("pluginDocumentEditmodeCssPaths" . $pluginVersion, $p['plugin']) && is_array($p['plugin']['pluginDocumentEditmodeCssPaths' . $pluginVersion]) && isset($p['plugin']['pluginDocumentEditmodeCssPaths' . $pluginVersion]['path'])) { if (is_array($p['plugin']['pluginDocumentEditmodeCssPaths' . $pluginVersion]['path'])) { $pluginCssPaths = $p['plugin']['pluginDocumentEditmodeCssPaths' . $pluginVersion]['path']; break; } elseif ($p['plugin']['pluginDocumentEditmodeCssPaths' . $pluginVersion]['path'] != null) { $pluginCssPaths[] = $p['plugin']['pluginDocumentEditmodeCssPaths' . $pluginVersion]['path']; break; } } } //manipulate path for frontend if (is_array($pluginCssPaths) and count($pluginCssPaths) > 0) { for ($i = 0; $i < count($pluginCssPaths); $i++) { if (is_file(PIMCORE_PLUGINS_PATH . $pluginCssPaths[$i])) { $cssPaths[] = "/plugins" . $pluginCssPaths[$i]; } } } } } $editmodeScripts = array_merge($editmodeScripts, $jsPaths); $editmodeStylesheets = array_merge($editmodeStylesheets, $cssPaths); } catch (\Exception $e) { Logger::alert("there is a problem with the plugin configuration"); Logger::alert($e); } $editmodeHeadHtml = "\n\n\n<!-- pimcore editmode -->\n"; $editmodeHeadHtml .= '<meta name="google" value="notranslate">'; $editmodeHeadHtml .= "\n\n"; // include stylesheets foreach ($editmodeStylesheets as $sheet) { $editmodeHeadHtml .= '<link rel="stylesheet" type="text/css" href="' . $sheet . '?_dc=' . Version::$revision . '" />'; $editmodeHeadHtml .= "\n"; } $editmodeHeadHtml .= "\n\n"; $editmodeHeadHtml .= '<script type="text/javascript">var jQueryPreviouslyLoaded = (typeof jQuery == "undefined") ? false : true;</script>' . "\n"; // include script libraries foreach ($editmodeLibraries as $script) { $editmodeHeadHtml .= '<script type="text/javascript" src="' . $script . '?_dc=' . Version::$revision . '"></script>'; $editmodeHeadHtml .= "\n"; } // combine the pimcore scripts in non-devmode if ($conf->general->devmode) { foreach ($editmodeScripts as $script) { $editmodeHeadHtml .= '<script type="text/javascript" src="' . $script . '?_dc=' . Version::$revision . '"></script>'; $editmodeHeadHtml .= "\n"; } } else { $scriptContents = ""; foreach ($editmodeScripts as $scriptUrl) { $scriptContents .= file_get_contents(PIMCORE_DOCUMENT_ROOT . $scriptUrl) . "\n\n\n"; } $editmodeHeadHtml .= '<script type="text/javascript" src="' . \Pimcore\Tool\Admin::getMinimizedScriptPath($scriptContents) . '"></script>' . "\n"; } $user = \Pimcore\Tool\Authentication::authenticateSession(); $lang = $user->getLanguage(); $editmodeHeadHtml .= '<script type="text/javascript" src="/admin/misc/json-translations-system/language/' . $lang . '/?_dc=' . Version::$revision . '"></script>' . "\n"; $editmodeHeadHtml .= '<script type="text/javascript" src="/admin/misc/json-translations-admin/language/' . $lang . '/?_dc=' . Version::$revision . '"></script>' . "\n"; $editmodeHeadHtml .= "\n\n"; // set var for editable configurations which is filled by Document\Tag::admin() $editmodeHeadHtml .= '<script type="text/javascript"> var editableConfigurations = new Array(); var pimcore_document_id = ' . $request->getParam("document")->getId() . '; if(jQueryPreviouslyLoaded) { jQuery.noConflict( true ); } </script>'; $editmodeHeadHtml .= "\n\n<!-- /pimcore editmode -->\n\n\n"; // add scripts in html header for pages in editmode if ($this->controller->editmode && Document\Service::isValidType($this->controller->document->getType())) { //ckogler include_once "simple_html_dom.php"; $html = $this->getResponse()->getBody(); if ($html) { $htmlElement = preg_match("/<html[^a-zA-Z]?(\\s[^>]+)?>/", $html); $headElement = preg_match("/<head[^a-zA-Z]?(\\s[^>]+)?>/", $html); $bodyElement = preg_match("/<body[^a-zA-Z]?(\\s[^>]+)?>/", $html); $skipCheck = false; // if there's no head and no body, create a wrapper including these elements // add html headers for snippets in editmode, so there is no problem with javascript if (!$headElement && !$bodyElement && !$htmlElement) { $html = "<!DOCTYPE html>\n<html>\n<head></head><body>" . $html . "</body></html>"; $skipCheck = true; } if ($skipCheck || $headElement && $bodyElement && $htmlElement) { $html = preg_replace("@</head>@i", $editmodeHeadHtml . "\n\n</head>", $html, 1); $startupJavascript = "/pimcore/static6/js/pimcore/document/edit/startup.js"; if (!\Pimcore\Tool\Admin::isExtJS6()) { $startupJavascript = "/pimcore/static/js/pimcore/document/edit/startup.js"; } $editmodeBodyHtml = "\n\n" . '<script type="text/javascript" src="' . $startupJavascript . '?_dc=' . Version::$revision . '"></script>' . "\n\n"; $html = preg_replace("@</body>@i", $editmodeBodyHtml . "\n\n</body>", $html, 1); $this->getResponse()->setBody($html); } else { $this->getResponse()->setBody('<div style="font-size:30px; font-family: Arial; font-weight:bold; color:red; text-align: center; margin: 40px 0">You have to define a <html>, <head>, <body><br />HTML-tag in your view/layout markup!</div>'); } } } }