Beispiel #1
0
function plugin_pre_item_update_tag($parm)
{
    global $DB;
    if (isset($_REQUEST['plugin_tag_tag_id']) && isset($_REQUEST['plugin_tag_tag_itemtype'])) {
        $already_present = array();
        $itemtype = PluginTagTag::getItemtype($_REQUEST['plugin_tag_tag_itemtype'], $_REQUEST['plugin_tag_tag_id']);
        $query_part = "`items_id`=" . $_REQUEST['plugin_tag_tag_id'] . " \n                     AND `itemtype` = '" . $itemtype . "'";
        $item = new PluginTagTagItem();
        foreach ($item->find($query_part) as $indb) {
            if (isset($_REQUEST["_plugin_tag_tag_values"]) && in_array($indb["plugin_tag_tags_id"], $_REQUEST["_plugin_tag_tag_values"])) {
                $already_present[] = $indb["plugin_tag_tags_id"];
            } else {
                $item->delete(array("id" => $indb['id']));
            }
        }
        if (isset($_REQUEST["_plugin_tag_tag_values"])) {
            foreach ($_REQUEST["_plugin_tag_tag_values"] as $tag_id) {
                if (!in_array($tag_id, $already_present)) {
                    $item->add(array('plugin_tag_tags_id' => $tag_id, 'items_id' => $_REQUEST['plugin_tag_tag_id'], 'itemtype' => ucfirst($itemtype)));
                }
            }
        }
    }
    return $parm;
}