/** * Add a tag if not already existing. * * @param string Name of the tag. * @param IDF_Project Project of the tag. * @param string Class of the tag (IDF_TAG_DEFAULT_CLASS) * @return IDF_Tag The tag. */ public static function add($name, $project, $class = IDF_TAG_DEFAULT_CLASS) { $class = trim($class); $name = trim($name); $gtag = new IDF_Tag(); $sql = new Pluf_SQL('class=%s AND lcname=%s AND project=%s', array($class, mb_strtolower($name), $project->id)); $tags = $gtag->getList(array('filter' => $sql->gen())); if ($tags->count() < 1) { // create a new tag $tag = new IDF_Tag(); $tag->name = $name; $tag->class = $class; $tag->project = $project; $tag->create(); return $tag; } return $tags[0]; }