sets given tags to element and removes all other tags
to remove all tags from element, provide empty array of tags
public static setTagsForElement ( $cType, $cId, array $tags ) | ||
$cType | ||
$cId | ||
$tags | array |
\Pimcore::getEventManager()->attach(["admin.object.get.preSendData", "admin.asset.get.preSendData", "admin.document.get.preSendData"], ["\\Pimcore\\WorkflowManagement\\EventHandler", "adminElementGetPreSendData"]); // backed search foreach (["asset", "object", "document"] as $type) { \Pimcore::getEventManager()->attach($type . ".postAdd", ["Pimcore\\Search\\EventHandler", "postAddElement"]); \Pimcore::getEventManager()->attach($type . ".postUpdate", ["Pimcore\\Search\\EventHandler", "postUpdateElement"]); \Pimcore::getEventManager()->attach($type . ".preDelete", ["Pimcore\\Search\\EventHandler", "preDeleteElement"]); } // UUID $conf = \Pimcore\Config::getSystemConfig(); if ($conf->general->instanceIdentifier) { foreach (["asset", "object", "document", "object.class"] as $type) { \Pimcore::getEventManager()->attach($type . ".postAdd", function ($e) { \Pimcore\Model\Tool\UUID::create($e->getTarget()); }); \Pimcore::getEventManager()->attach($type . ".postDelete", function ($e) { $uuidObject = \Pimcore\Model\Tool\UUID::getByItem($e->getTarget()); if ($uuidObject instanceof \Pimcore\Model\Tool\UUID) { $uuidObject->delete(); } }); } } //assign tags after copying an element Pimcore::getEventManager()->attach(["document.postCopy", "asset.postCopy", "object.postCopy"], function (\Zend_EventManager_Event $e) { $elementType = strtok($e->getName(), '.'); /** @var \Pimcore\Model\Element\AbstractElement $copiedElement */ $copiedElement = $e->getTarget(); /** @var \Pimcore\Model\Element\AbstractElement $baseElement */ $baseElement = $e->getParam('base_element'); \Pimcore\Model\Element\Tag::setTagsForElement($elementType, $copiedElement->getId(), \Pimcore\Model\Element\Tag::getTagsForElement($elementType, $baseElement->getId())); });
<?php /** * Pimcore * * This source file is subject to the GNU General Public License version 3 (GPLv3) * For the full copyright and license information, please view the LICENSE.md and gpl-3.0.txt * files that are distributed with this source code. * * @copyright Copyright (c) 2009-2015 pimcore GmbH (http://www.pimcore.org) * @license http://www.pimcore.org/license GNU General Public License version 3 (GPLv3) */ /** * this file is included at end of startup and attaches event listeners for pimcore internal events */ // attach global shutdown event Pimcore::getEventManager()->attach("system.shutdown", array("Pimcore", "shutdown"), 9999); // remove assets on element delete Pimcore::getEventManager()->attach("asset.postDelete", function (\Zend_EventManager_Event $e) { $asset = $e->getTarget(); \Pimcore\Model\Element\Tag::setTagsForElement("asset", $asset->getId(), []); }, 9999);