+/**
+ * Set tags for a contact
+ */
+function ajax_settags($dn,$tags){
+ global $conf;
+ global $LDAP_CON;
+ global $FIELDS;
+ if(!$FIELDS['_marker']) return;
+
+ header('Content-Type: text/html; charset=utf-8');
+
+ $tags = explode(',',$tags);
+ $tags = array_map('trim',$tags);
+ $tags = array_unique($tags);
+ $tags = array_diff($tags, array('')); //strip empty ones
+
+ $entry[$FIELDS['_marker']] = $tags;
+ ldap_mod_replace($LDAP_CON,$dn,$entry);
+
+ foreach ($tags as $tag){
+ print '<a href="index.php?marker=';
+ print rawurlencode($tag);
+ print '" class="tag">';
+ print htmlspecialchars($tag);
+ print '</a> ';
+ }
+}
+
+/**
+ * Load current tags of an entry
+ */
+function ajax_loadtags($dn,$type='plain'){
+ global $conf;
+ global $LDAP_CON;
+ global $FIELDS;
+ if(!$FIELDS['_marker']) return;
+
+ header('Content-Type: text/html; charset=utf-8');
+
+ $sr = ldap_search($LDAP_CON,$dn,'(objectClass=inetOrgPerson)',array($FIELDS['_marker']));
+ if(!ldap_count_entries($LDAP_CON,$sr)) return false;
+ $result = ldap_get_binentries($LDAP_CON, $sr);
+ $entry = $result[0];
+
+ if($type == 'plain'){
+ echo join(', ',(array) $entry[$FIELDS['_marker']]);
+ }else{
+ foreach ((array) $entry[$FIELDS['_marker']] as $tag){
+ echo '<a href="index.php?marker=';
+ echo rawurlencode($tag);
+ echo '" class="tag">';
+ echo htmlspecialchars($tag);
+ echo '</a> ';
+ }
+ }
+}
+