public function testAlertLevel() { $this->expectOutputString('alert: Message contents'); $echo = new Adaptors\EchoAdaptor('debug', '{level}: {message}'); $logger = new Logger($echo); $logger->alert('Message contents'); }
/** * 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"); } }
private static function existsByName($categoryData) { try { $result = VtexConnector::$ws->CategoryGetByName(array("nameCategory" => $categoryData->Name)); return $result->CategoryGetByNameResult ? $result : null; } catch (SoapFault $e) { Logger::alert('Erro ao verificar se categoria existe.', $e, VtexConnector::$ws->__getLastRequest()); } }
public function getById($id, $orderKey = '', $orderSense = '') { global $wpdb; $entityRequest = $wpdb->prepare('SELECT * FROM ' . $this->table . ' WHERE id=%s', $id); $entity = $wpdb->get_row($entityRequest); if (!isset($entity) || empty($entity)) { Logger::alert('Entity : Not found row for request', [$entityRequest, $entity]); return 0; } $optionsRequest = $wpdb->prepare('SELECT options_id, value FROM ' . $wpdb->prefix . 'sm_entity_options WHERE entity_id = %s', $entity->id); $options = $wpdb->get_results($optionsRequest); $options = json_decode(json_encode($options), true); foreach ($options as $key => &$value) { $value = (object) $value; } $entity->options = $options; return $entity; }
public function test_methods_Magento() { $CONFIG_FILE_NAME = __DIR__ . '/logging_exception.yaml'; $LOGGER_NAME = 'defaultLoggerName'; /** * Perform testing. */ $log = new Logger($CONFIG_FILE_NAME, $LOGGER_NAME); $context = ['test' => true, 'env' => ['param1' => 'value1']]; $log->debug('debug', $context); $log->info('info', $context); $log->notice('notice', $context); $log->warning('warning', $context); $log->error('error', $context); $log->alert('alert', $context); $log->critical('critical', $context); $log->emergency('emergency', $context); }
public function create() { self::getConnection(); $values = get_object_vars($this); $has_many = self::checkRelationship("has_many", $values); //Logger::debug("db",self::$db); $result = self::$db->insert(static::$table, $values); if ($result) { $result = array('error' => 0, 'getID' => self::$db->getInsertedId(), 'message' => 'Objeto Creado'); $this->id = $result["getID"]; } else { $result = array('error' => 1, 'getID' => null, 'message' => self::$db->getError()); } if ($has_many) { $rStatus = self::saveRelationships($has_many); if ($rStatus["error"]) { Logger::alert("Error saving relationships", $rStatus["trace"], "create"); } } //Logger::debug("result",$result,"create"); return $result; }
/** * @param \Zend_Controller_Request_Abstract $request */ public function postDispatch(\Zend_Controller_Request_Abstract $request) { $conf = Config::getSystemConfig(); // add scripts to editmode if (\Pimcore\Tool\Admin::isExtJS6()) { $editmodeLibraries = array("/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.js", "/pimcore/static6/js/lib/ckeditor/ckeditor.js"); $editmodeScripts = array("/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/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/edit/helper.js"); $editmodeStylesheets = array("/pimcore/static6/css/icons.css", "/pimcore/static6/css/editmode.css?_dc=" . time()); } else { $editmodeLibraries = array("/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 = array("/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 = array("/pimcore/static/css/icons.css", "/pimcore/static/css/editmode.css?asd=" . time()); } //add plugin editmode JS and CSS try { $pluginConfigs = ExtensionManager::getPluginConfigs(); $jsPaths = array(); $cssPaths = array(); if (!empty($pluginConfigs)) { //registering plugins foreach ($pluginConfigs as $p) { $pluginJsPaths = array(); if (array_key_exists("pluginDocumentEditmodeJsPaths", $p['plugin']) && is_array($p['plugin']['pluginDocumentEditmodeJsPaths']) && isset($p['plugin']['pluginDocumentEditmodeJsPaths']['path'])) { if (is_array($p['plugin']['pluginDocumentEditmodeJsPaths']['path'])) { $pluginJsPaths = $p['plugin']['pluginDocumentEditmodeJsPaths']['path']; } else { if ($p['plugin']['pluginDocumentEditmodeJsPaths']['path'] != null) { $pluginJsPaths[] = $p['plugin']['pluginDocumentEditmodeJsPaths']['path']; } } } //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 = array(); if (array_key_exists("pluginDocumentEditmodeCssPaths", $p['plugin']) && is_array($p['plugin']['pluginDocumentEditmodeCssPaths']) && isset($p['plugin']['pluginDocumentEditmodeCssPaths']['path'])) { if (is_array($p['plugin']['pluginDocumentEditmodeCssPaths']['path'])) { $pluginCssPaths = $p['plugin']['pluginDocumentEditmodeCssPaths']['path']; } else { if ($p['plugin']['pluginDocumentEditmodeCssPaths']['path'] != null) { $pluginCssPaths[] = $p['plugin']['pluginDocumentEditmodeCssPaths']['path']; } } } //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"; // 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) . '?_dc=' . Version::$revision . '"></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"; $body = $this->getResponse()->getBody(); $html = str_get_html($body); if ($html) { $htmlElement = $html->find("html", 0); $head = $html->find("head", 0); $bodyElement = $html->find("body", 0); // 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 (!$head && !$bodyElement && !$htmlElement) { $body = "<!DOCTYPE html>\n<html>\n<head></head><body>" . $body . "</body></html>"; $html = str_get_html($body); // get them again with the updated html markup $htmlElement = $html->find("html", 0); $head = $html->find("head", 0); $bodyElement = $html->find("body", 0); } if ($head && $bodyElement && $htmlElement) { $head->innertext = $head->innertext . "\n\n" . $editmodeHeadHtml; $bodyElement->onunload = "pimcoreOnUnload();"; if (\Pimcore\Tool\Admin::isExtJS6()) { $bodyElement->innertext = $bodyElement->innertext . "\n\n" . '<script type="text/javascript" src="/pimcore/static6/js/pimcore/document/edit/startup.js?_dc=' . Version::$revision . '"></script>' . "\n\n"; } else { $bodyElement->innertext = $bodyElement->innertext . "\n\n" . '<script type="text/javascript" src="/pimcore/static/js/pimcore/document/edit/startup.js?_dc=' . Version::$revision . '"></script>' . "\n\n"; } $body = $html->save(); $this->getResponse()->setBody($body); } 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>'); } $html->clear(); unset($html); } } // IE compatibility //$this->getResponse()->setHeader("X-UA-Compatible", "IE=8; IE=9", true); }
public function manageMessages($entity) { $requester = new Requester(); $publisher = new Publisher(); $entityObject = new Entity(); $downloader = new FileDownloader(); $published = new Published(); $summary = ''; $title = ''; $readmoreLabel = ''; // get author id $author = $entity->author_id; // The entity is not active if (!$entity->activate) { return 0; } // Retrieve the entity categories $entityListCategory = []; $readmoreLabel = ''; foreach ($entity->options as $key => $value) { if ($value->options_id == 1) { $entityListCategory[] = $value->value; } if ($value->options_id == 2) { $entityDisplayType = $value->value; } if ($value->options_id == 3) { $entityPublishType = $value->value; } if ($value->options_id == 5) { $entityImage = $value->value; } if ($value->options_id == 6) { $readmoreLabel = $value->value; } } // Try request to sociallymap on response try { if ($_ENV['ENVIRONNEMENT'] === 'dev') { $requester = new MockRequester(); $jsonData = $requester->getMessages(); } else { $_POST['entityId'] = esc_html($_POST['entityId']); $_POST['token'] = esc_html($_POST['token']); $_POST['environment'] = esc_html($_POST['environment']); $jsonData = $requester->launch($_POST['entityId'], $_POST['token'], $_POST['environment']); } if (empty($jsonData)) { throw new Exception('No data returned from request', 1); exit; } Logger::messageReceive('See return data', $jsonData); foreach ($jsonData as $key => $value) { $summary = ''; $contentArticle = ''; $readmore = ''; // Check Link object existing if (isset($value->link)) { // Check if Title existing if (!empty($value->link->title)) { $title = $value->link->title; } if (!empty($value->link->summary)) { $summary = $value->link->summary; } // Check if Link URL existing if (!empty($value->link->url)) { $readmoreLabel = stripslashes($readmoreLabel); $readmore = $this->templater->loadReadMore($value->link->url, $entityDisplayType, $entity->id, $readmoreLabel); } else { Logger::alert('This article not contain url'); } } $contentArticle = $summary; // add readmore to content if $readmore is not empty if ($readmore != '') { $contentArticle .= $readmore; } $imageTag = ''; $imageSrc = ''; // Check if article posted $canBePublish = true; $messageId = $value->guid; if ($published->isPublished($messageId)) { $contextMessageId = '(id message=' . $messageId . ')'; Logger::alert('Message of sociallymap existing, so he is not publish', $contextMessageId); $canBePublish = false; continue; } $pathTempory = plugin_dir_path(__FILE__) . 'tmp/'; // Check if Media object exist if (isset($value->media) && $value->media->type == 'photo') { try { $returnDownload = $downloader->download($value->media->url, $pathTempory); $filename = $returnDownload['filename']; $fileExtension = $returnDownload['extension']; $mediaManager = new MediaWordpressManager(); $imageSrc = $mediaManager->integrateMediaToWordpress($filename, $fileExtension); } catch (fileDownloadException $e) { Logger::error('error download' . $e); } // WHEN NO ERROR : FORMAT if (gettype($imageSrc) == 'string') { $imageTag = '<img class="aligncenter" src="' . $imageSrc . '" alt="">'; } else { $imageTag = ''; } } elseif (isset($value->link) && !empty($value->link->thumbnail) && $value->link->thumbnail != ' ') { // Check if Image thumbnail existing try { $returnDownload = $downloader->download($value->link->thumbnail, $pathTempory); $filename = $returnDownload['filename']; $fileExtension = $returnDownload['extension']; } catch (fileDownloadException $e) { Logger::error('error download' . $e); } $mediaManager = new MediaWordpressManager(); $imageSrc = $mediaManager->integrateMediaToWordpress($filename, $fileExtension); // Create the img tag if (gettype($imageSrc) == 'string') { $imageTag = '<img class="aligncenter" src="' . $imageSrc . '" alt="">'; } else { $imageTag = ''; } } // check if video exist $downloadVideo = false; if (isset($value->media) && $value->media->type == 'video') { $returnDownload = $downloader->download($value->media->url, $pathTempory); $filename = $returnDownload['filename']; $fileExtension = $returnDownload['extension']; $mediaManager = new MediaWordpressManager(); $videoSrc = $mediaManager->integrateMediaToWordpress($filename, $fileExtension); $mediaVideo = '<video class="sm-video-display" controls> <source src="' . $videoSrc . '" type="video/mp4"> <div class="sm-video-nosupport"></div> </video>'; $contentArticle .= $mediaVideo; Logger::info('download VIDEO', $videoSrc); } // If imageTag is '' so is false else $isDownload is true $isDownloaded = $imageTag !== ''; // Attach image accordingly to options $imageAttachment = ''; if ($isDownloaded) { // Add image in the post content if (in_array($entityImage, ['content', 'both'])) { $contentArticle = $imageTag . $contentArticle; } // Add image as featured image if (in_array($entityImage, ['thumbnail', 'both'])) { $imageAttachment = $imageSrc; } } // Publish the post $title = $value->content; if ($canBePublish == true) { $dataPublish = [$title, $contentArticle, $author, $imageAttachment, $entityListCategory, $entityPublishType]; Logger::info('Try publish : ', $dataPublish); $contentArticle = $this->prePosting($contentArticle); $articlePublished = $publisher->publish($title, $contentArticle, $author, $imageAttachment, $entityListCategory, $entityPublishType); if (!$articlePublished) { // throw new Exception('Error from post publish', 1); Logger::error('Error from post publish', [$title]); } else { $entityObject->updateHistoryPublisher($entity->id, $entity->counter); // save published article $published->add($messageId, $entity->id, $articlePublished); } } } } catch (Exception $e) { Logger::alert('Error exeption', $e->getMessage()); } return true; }
/** * */ public static function initPlugins() { // add plugin include paths $autoloader = \Zend_Loader_Autoloader::getInstance(); try { $pluginConfigs = ExtensionManager::getPluginConfigs(); if (!empty($pluginConfigs)) { $includePaths = array(get_include_path()); //adding plugin include paths and namespaces if (count($pluginConfigs) > 0) { foreach ($pluginConfigs as $p) { if (!ExtensionManager::isEnabled("plugin", $p["plugin"]["pluginName"])) { continue; } if (is_array($p['plugin']['pluginIncludePaths']['path'])) { foreach ($p['plugin']['pluginIncludePaths']['path'] as $path) { $includePaths[] = PIMCORE_PLUGINS_PATH . $path; } } else { if ($p['plugin']['pluginIncludePaths']['path'] != null) { $includePaths[] = PIMCORE_PLUGINS_PATH . $p['plugin']['pluginIncludePaths']['path']; } } if (is_array($p['plugin']['pluginNamespaces']['namespace'])) { foreach ($p['plugin']['pluginNamespaces']['namespace'] as $namespace) { $autoloader->registerNamespace($namespace); } } else { if ($p['plugin']['pluginNamespaces']['namespace'] != null) { $autoloader->registerNamespace($p['plugin']['pluginNamespaces']['namespace']); } } } } set_include_path(implode(PATH_SEPARATOR, $includePaths)); $broker = \Pimcore\API\Plugin\Broker::getInstance(); //registering plugins foreach ($pluginConfigs as $p) { if (!ExtensionManager::isEnabled("plugin", $p["plugin"]["pluginName"])) { continue; } $jsPaths = array(); $isExtJs5 = \Pimcore\Tool\Admin::isExtJS5(); if ($isExtJs5 && is_array($p['plugin']['pluginJsPaths-extjs5']) && isset($p['plugin']['pluginJsPaths-extjs5']['path']) && is_array($p['plugin']['pluginJsPaths-extjs5']['path'])) { $jsPaths = $p['plugin']['pluginJsPaths-extjs5']['path']; } else { if ($isExtJs5 && is_array($p['plugin']['pluginJsPaths-extjs5']) && $p['plugin']['pluginJsPaths-extjs5']['path'] != null) { $jsPaths[0] = $p['plugin']['pluginJsPaths-extjs5']['path']; } else { if (is_array($p['plugin']['pluginJsPaths']) && isset($p['plugin']['pluginJsPaths']['path']) && is_array($p['plugin']['pluginJsPaths']['path'])) { $jsPaths = $p['plugin']['pluginJsPaths']['path']; } else { if (is_array($p['plugin']['pluginJsPaths']) && $p['plugin']['pluginJsPaths']['path'] != null) { $jsPaths[0] = $p['plugin']['pluginJsPaths']['path']; } } } } //manipulate path for frontend if (is_array($jsPaths) and count($jsPaths) > 0) { for ($i = 0; $i < count($jsPaths); $i++) { if (is_file(PIMCORE_PLUGINS_PATH . $jsPaths[$i])) { $jsPaths[$i] = "/plugins" . $jsPaths[$i]; } } } $cssPaths = array(); if ($isExtJs5 && is_array($p['plugin']['pluginCssPaths-extjs5']) && isset($p['plugin']['pluginCssPaths-extjs5']['path']) && is_array($p['plugin']['pluginCssPaths-extjs5']['path'])) { $cssPaths = $p['plugin']['pluginCssPaths-extjs5']['path']; } else { if ($isExtJs5 && is_array($p['plugin']['pluginCssPaths-extjs5']) && $p['plugin']['pluginCssPaths-extjs5']['path'] != null) { $cssPaths[0] = $p['plugin']['pluginCssPaths-extjs5']['path']; } else { if (is_array($p['plugin']['pluginCssPaths']) && isset($p['plugin']['pluginCssPaths']['path']) && is_array($p['plugin']['pluginCssPaths']['path'])) { $cssPaths = $p['plugin']['pluginCssPaths']['path']; } else { if (is_array($p['plugin']['pluginCssPaths']) && $p['plugin']['pluginCssPaths']['path'] != null) { $cssPaths[0] = $p['plugin']['pluginCssPaths']['path']; } } } } //manipulate path for frontend if (is_array($cssPaths) and count($cssPaths) > 0) { for ($i = 0; $i < count($cssPaths); $i++) { if (is_file(PIMCORE_PLUGINS_PATH . $cssPaths[$i])) { $cssPaths[$i] = "/plugins" . $cssPaths[$i]; } } } try { $className = $p['plugin']['pluginClassName']; if (!empty($className) && Tool::classExists($className)) { $plugin = new $className($jsPaths, $cssPaths); if ($plugin instanceof \Pimcore\API\Plugin\AbstractPlugin) { $broker->registerPlugin($plugin); } } } catch (\Exception $e) { \Logger::err("Could not instantiate and register plugin [" . $p['plugin']['pluginClassName'] . "]"); } } \Zend_Registry::set("Pimcore_API_Plugin_Broker", $broker); } } catch (\Exception $e) { \Logger::alert("there is a problem with the plugin configuration"); \Logger::alert($e); } }
protected function execute(InputInterface $input, OutputInterface $output) { $newsletter = Model\Tool\Newsletter\Config::getByName($input->getArgument("id")); if ($newsletter) { $pidFile = $newsletter->getPidFile(); if (file_exists($pidFile)) { \Logger::alert("Cannot send newsletters because there's already one active sending process"); exit; } $elementsPerLoop = 10; $objectList = "\\Pimcore\\Model\\Object\\" . ucfirst($newsletter->getClass()) . "\\Listing"; $list = new $objectList(); $conditions = array("(newsletterActive = 1 AND newsletterConfirmed = 1)"); if ($newsletter->getObjectFilterSQL()) { $conditions[] = $newsletter->getObjectFilterSQL(); } if ($newsletter->getPersonas()) { $class = Model\Object\ClassDefinition::getByName($newsletter->getClass()); if ($class && $class->getFieldDefinition("persona")) { $personas = array(); $p = explode(",", $newsletter->getPersonas()); if ($class->getFieldDefinition("persona") instanceof \Pimcore\Model\Object\ClassDefinition\Data\Persona) { foreach ($p as $value) { if (!empty($value)) { $personas[] = $list->quote($value); } } $conditions[] = "persona IN (" . implode(",", $personas) . ")"; } else { if ($class->getFieldDefinition("persona") instanceof \Pimcore\Model\Object\ClassDefinition\Data\Personamultiselect) { $personasCondition = array(); foreach ($p as $value) { $personasCondition[] = "persona LIKE " . $list->quote("%," . $value . ",%"); } $conditions[] = "(" . implode(" OR ", $personasCondition) . ")"; } } } } $list->setCondition(implode(" AND ", $conditions)); $list->setOrderKey("email"); $list->setOrder("ASC"); $elementsTotal = $list->getTotalCount(); $count = 0; $pidContents = array("start" => time(), "lastUpdate" => time(), "newsletter" => $newsletter->getName(), "total" => $elementsTotal, "current" => $count); $this->writePid($pidFile, $pidContents); for ($i = 0; $i < ceil($elementsTotal / $elementsPerLoop); $i++) { $list->setLimit($elementsPerLoop); $list->setOffset($i * $elementsPerLoop); $objects = $list->load(); foreach ($objects as $object) { try { $count++; \Logger::info("Sending newsletter " . $count . " / " . $elementsTotal . " [" . $newsletter->getName() . "]"); \Pimcore\Tool\Newsletter::sendMail($newsletter, $object, null, $input->getArgument("hostUrl")); $note = new Model\Element\Note(); $note->setElement($object); $note->setDate(time()); $note->setType("newsletter"); $note->setTitle("sent newsletter: '" . $newsletter->getName() . "'"); $note->setUser(0); $note->setData(array()); $note->save(); \Logger::info("Sent newsletter to: " . $this->obfuscateEmail($object->getEmail()) . " [" . $newsletter->getName() . "]"); } catch (\Exception $e) { \Logger::err($e); } } // check if pid exists if (!file_exists($pidFile)) { \Logger::alert("Newsletter PID not found, cancel sending process"); exit; } // update pid $pidContents["lastUpdate"] = time(); $pidContents["current"] = $count; $this->writePid($pidFile, $pidContents); \Pimcore::collectGarbage(); } // remove pid @unlink($pidFile); } else { \Logger::emerg("Newsletter '" . $input->getArgument("id") . "' doesn't exist"); } }
$note = new Model\Element\Note(); $note->setElement($object); $note->setDate(time()); $note->setType("newsletter"); $note->setTitle("sent newsletter: '" . $newsletter->getName() . "'"); $note->setUser(0); $note->setData(array()); $note->save(); \Logger::info("Sent newsletter to: " . obfuscateEmail($object->getEmail()) . " [" . $newsletter->getName() . "]"); } catch (\Exception $e) { \Logger::err($e); } } // check if pid exists if (!file_exists($pidFile)) { \Logger::alert("Newsletter PID not found, cancel sending process"); exit; } // update pid $pidContents["lastUpdate"] = time(); $pidContents["current"] = $count; writePid($pidFile, $pidContents); \Pimcore::collectGarbage(); } // remove pid @unlink($pidFile); } else { \Logger::emerg("Newsletter '" . $argv[1] . "' doesn't exist"); } function obfuscateEmail($email) {
/** * @param string[] $validLinkRegexes * @param string[] $invalidLinkRegexes * @return void */ public function __construct($validLinkRegexes, $invalidLinkRegexes, $maxRedirects = 10, $timeout = 30, $searchStartIndicator = null, $searchEndIndicator = null, $maxThreads = 20, $maxLinkDepth = 15) { $this->validLinkRegexes = $validLinkRegexes; $this->invalidLinkRegexes = $invalidLinkRegexes; $this->maxRedirects = $maxRedirects; $this->timeout = $timeout; $this->searchEndIndicator = $searchEndIndicator; $this->searchStartIndicator = $searchStartIndicator; $this->maxThreads = $maxThreads; $this->maxLinkDepth = $maxLinkDepth; $db = Pimcore_Resource_Mysql::get(); $this->db = $db; $db->query("DROP TABLE IF EXISTS `plugin_searchphp_contents_temp`;"); $db->query("CREATE TABLE `plugin_searchphp_contents_temp` (\r\n `id` VARCHAR(255) NOT NULL,\r\n `uri` TEXT NOT NULL,\r\n `host` VARCHAR(255) NOT NULL,\r\n `content` LONGTEXT NOT NULL ,\r\n `html` LONGTEXT NOT NULL ,\r\n PRIMARY KEY (`id`)\r\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("DROP TABLE IF EXISTS `plugin_searchphp_frontend_crawler_todo`;"); $db->query("CREATE TABLE `plugin_searchphp_frontend_crawler_todo` (\r\n `id` VARCHAR(255) NOT NULL,\r\n `uri` TEXT NOT NULL,\r\n `depth` int(11) unsigned,\r\n `cookiejar` TEXT,\r\n PRIMARY KEY (`id`)\r\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("DROP TABLE IF EXISTS `plugin_searchphp_frontend_crawler_noindex`;"); $db->query("CREATE TABLE `plugin_searchphp_frontend_crawler_noindex` (\r\n `id` VARCHAR(255) NOT NULL,\r\n `uri` TEXT NOT NULL,\r\n PRIMARY KEY (`id`)\r\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("DROP TABLE IF EXISTS `plugin_searchphp_indexer_todo`;"); $db->query("CREATE TABLE `plugin_searchphp_indexer_todo` (\r\n `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\r\n `content` LONGTEXT NOT NULL,\r\n PRIMARY KEY (`id`)\r\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $result = null; try { $result = $db->describeTable("plugin_searchphp_contents_temp"); $this->readyToCrawl = !empty($result); } catch (Zend_Db_Statement_Exception $e) { Logger::alert(get_class($this) . ": could not set up table for crawler contents.", Zend_Log::ERR); $this->readyToCrawl = false; } }
/** * Action must be taken immediately. * * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * * @param string $message * @param array $context * * @return null */ public function alert($message, array $context = array()) { \Logger::alert($message); }
public function postDispatch(Zend_Controller_Request_Abstract $request) { // add scripts to editmode $editmodeLibraries = array("/pimcore/static/js/pimcore/namespace.js", "/pimcore/static/js/lib/prototype-light.js", "/pimcore/static/js/lib/jquery-1.4.2.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/ux/Portal.js", "/pimcore/static/js/lib/ext-plugins/ux/PortalColumn.js", "/pimcore/static/js/lib/ext-plugins/ux/Portlet.js", "/pimcore/static/js/lib/ext-plugins/GridRowOrder/roworder.js", "/pimcore/static/js/lib/ckeditor/ckeditor.js", "/pimcore/static/js/pimcore/libfixes.js"); $editmodeScripts = array("/pimcore/static/js/pimcore/functions.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/edit/helper.js"); $conf = Pimcore_Config::getSystemConfig(); $themeUrl = "/pimcore/static/js/lib/ext/resources/css/xtheme-blue.css"; if ($conf->general->theme) { $themeUrl = $conf->general->theme; } $editmodeStylesheets = array("/pimcore/static/js/lib/ext/resources/css/ext-all.css", $themeUrl, "/pimcore/static/css/icons.css", "/pimcore/static/css/editmode.css", "/pimcore/static/js/lib/ext-plugins/ux/css/Spinner.css", "/pimcore/static/js/lib/ext-plugins/ux/css/MultiSelect.css", "/pimcore/static/js/lib/ext-plugins/ux/css/Portal.css"); //add plugin editmode JS and CSS try { $pluginConfigs = Pimcore_ExtensionManager::getPluginConfigs(); $jsPaths = array(); $cssPaths = array(); if (!empty($pluginConfigs)) { //registering plugins foreach ($pluginConfigs as $p) { if (is_array($p['plugin']['pluginDocumentEditmodeJsPaths']['path'])) { $jsPaths = $p['plugin']['pluginDocumentEditmodeJsPaths']['path']; } else { if ($p['plugin']['pluginDocumentEditmodeJsPaths']['path'] != null) { $jsPaths[0] = $p['plugin']['pluginDocumentEditmodeJsPaths']['path']; } } //manipulate path for frontend if (is_array($jsPaths) and count($jsPaths) > 0) { for ($i = 0; $i < count($jsPaths); $i++) { if (is_file(PIMCORE_PLUGINS_PATH . $jsPaths[$i])) { $jsPaths[$i] = "/plugins" . $jsPaths[$i]; } } } if (is_array($p['plugin']['pluginDocumentEditmodeCssPaths']['path'])) { $cssPaths = $p['plugin']['pluginDocumentEditmodeCssPaths']['path']; } else { if ($p['plugin']['pluginDocumentEditmodeCssPaths']['path'] != null) { $cssPaths[0] = $p['plugin']['pluginDocumentEditmodeCssPaths']['path']; } } //manipulate path for frontend if (is_array($cssPaths) and count($cssPaths) > 0) { for ($i = 0; $i < count($cssPaths); $i++) { if (is_file(PIMCORE_PLUGINS_PATH . $cssPaths[$i])) { $cssPaths[$i] = "/plugins" . $cssPaths[$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"; // include stylesheets foreach ($editmodeStylesheets as $sheet) { $editmodeHeadHtml .= '<link rel="stylesheet" type="text/css" href="' . $sheet . '?_dc=' . Pimcore_Version::$revision . '" />'; $editmodeHeadHtml .= "\n"; } // include script libraries foreach ($editmodeLibraries as $script) { $editmodeHeadHtml .= '<script type="text/javascript" src="' . $script . '?_dc=' . Pimcore_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=' . Pimcore_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) . '?_dc=' . Pimcore_Version::$revision . '"></script>' . "\n"; } $ns = new Zend_Session_Namespace("pimcore_admin"); $user = User::getById($ns->user->getId()); $lang = $user->getLanguage(); $editmodeHeadHtml .= '<script type="text/javascript" src="/admin/misc/json-translations-system/language/' . $lang . '/?_dc=' . Pimcore_Version::$revision . '"></script>' . "\n"; $editmodeHeadHtml .= '<script type="text/javascript" src="/admin/misc/json-translations-admin/language/' . $lang . '/?_dc=' . Pimcore_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() . '; </script>'; $editmodeHeadHtml .= "\n\n<!-- /pimcore editmode -->\n\n\n"; // add html headers for snippets in editmode, so there is no problem with javascript $body = $this->getResponse()->getBody(); if ($this->controller->editmode && strpos($body, "</body>") === false && !$request->getParam("blockAutoHtml")) { $body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head><body>' . $body . "</body></html>"; $this->getResponse()->setBody($body); } // add scripts in html header for pages in editmode if ($this->controller->editmode && ($this->controller->document->getType() == "page" || $this->controller->document->getType() == "snippet")) { include_once "simple_html_dom.php"; $body = $this->getResponse()->getBody(); $html = str_get_html($body); if ($html) { if ($head = $html->find("head", 0)) { $head->innertext = $head->innertext . "\n\n" . $editmodeHeadHtml; $bodyElement = $html->find("body", 0); $bodyElement->onunload = "pimcoreOnUnload();"; $bodyElement->innertext = $bodyElement->innertext . "\n\n" . '<script type="text/javascript" src="/pimcore/static/js/pimcore/document/edit/startup.js?_dc=' . Pimcore_Version::$revision . '"></script>' . "\n\n"; $body = $html->save(); $this->getResponse()->setBody($body); } } } }
private static function getSkuByRefId($ref) { try { return VtexConnector::$ws->StockKeepingUnitGetByRefId(array('refId' => $ref)); } catch (Exception $e) { Logger::alert('Falha ao recuperar sku pela referencia', $e, VtexConnector::$ws->__getLastRequest()); } }
public function testAlert() { $this->object->alert('message'); }