/** * Keywords update */ function mediashare_editapi_updateKeywords($args) { $dom = ZLanguage::getModuleDomain('mediashare'); $itemId = (int) $args['itemId']; $type = DataUtil::formatForStore($args['type']); $keywords = mediashareStripKeywords($args['keywords']); $pntable = pnDBGetTables(); $keywordsColumn = $pntable['mediashare_keywords_column']; // First remove existing keywords $where = "{$keywordsColumn['itemId']} = '{$itemId}' AND {$keywordsColumn['type']} = '{$type}'"; $result = DBUtil::deleteWhere('mediashare_keywords', $where); if ($result === false) { return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('editapi.updateKeywords', 'Could not update the keywords.'), $dom)); } // Split keywords string into keywords array $keywordsArray = preg_split('/[\\s,]+/', $keywords); // Insert new keywords $keywordsArray = array_filter($keywordsArray); // strip empty keywords foreach ($keywordsArray as $keyword) { $keyword = array('itemId' => $itemId, 'type' => $type, 'keyword' => $keyword); $keyword = DBUtil::insertObject($keyword, 'mediashare_keywords', 'itemId'); if ($keyword === false) { return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('editapi.updateKeywords', 'Could not insert the keywords.'), $dom)); } } return true; }
/** * Keywords */ function mediashareAddKeywords(&$item) { $k = trim(mediashareStripKeywords($item['keywords'])); if (strlen($k) > 0) { $item['keywordsArray'] = preg_split("/[\\s,]+/", $k); $item['hasKeywords'] = true; } else { $item['keywordsArray'] = array(); $item['hasKeywords'] = false; } }