setTagsForElement() публичный статический Метод

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
Пример #1
0
\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()));
});
Пример #2
0
<?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);