Hallo,

Ich habe gerade den Auftrag abgeschlossen die Tag-Erstellung (Tags auswählen dürfen alle User) nur einer bestimmten Usergruppe zu ermöglichen.
Da dies evt. auch andere User hier interessieren könnte:

Achtung: derzeit nicht updatesicher, werde evt. später eine updatesichere Version nachreichen.

Ersetzt in der datei TL-ROOT/system/modules/tags/TagField.php die function savetags durch folgende Funktion. Weiters müsst die 10 in
PHP-Code:
if($this->User->isMemberOf(10) OR $this->User->isAdmin
durch die ID eurer, zur Festlegung der Tags bestimmten, Gruppe ersetzen.
PHP-Code:
protected function saveTags($value)
    {
        if (!
$this->blnSubmitInput)
        {    
            
$this->import('BackendUser','User');
            
$this->import('Database');
            
            
// Nur wenn der aktuelle Benutzer der "Tags"-Gruppe angehört oder Admin ist
            // ist er auch berechtigt neue Tags zu erstellen 
            // ergo -> Standardverfahren! 
            
if($this->User->isMemberOf(10) OR $this->User->isAdmin)
            {
                
$this->Database->prepare("DELETE FROM tl_tag WHERE from_table = ? AND id = ?")
                    ->
execute($this->table$this->currentRecord);
                
$tags array_filter(trimsplit(","$value), 'strlen');
                foreach (
$tags as $tag)
                {
                    
$this->Database->prepare("INSERT INTO tl_tag (id, tag, from_table) VALUES (?, ?, ?)")
                        ->
execute($this->currentRecord$tag$this->table);
                }
                return 
"";
            }
            
// Wenn der eingeloggte User nicht Mitglied der Gruppe "Tags" ist
            // ergo -> Custom-Verfahren
            
else{
                
// Bisher im System vorhandene Tags abfragen!
                
$res $this->Database->prepare("SELECT `tag` FROM tl_tag WHERE from_table = ?")
                ->
execute($this->table);
                
$AllTags $res->fetchAllAssoc();
                
                
$tags array_filter(trimsplit(","$value), 'strlen');
        
                
$tags_for_this_record = array();
                
                foreach(
$AllTags as $AT)
                {
                    
$i 0;
                    foreach (
$tags as $tag)
                    {
                        if(
$AT['tag'] == $tag)
                        {
                            if(!
in_array($tag,$tags_for_this_record))
                            {
                                
$tags_for_this_record[] = $tag;
                            }
                        }
                        
$i++;
                    }
                }
                
// Löschen aller zu diesem Datensatz eigetragenen Tags
                
$this->Database->prepare("DELETE FROM tl_tag WHERE from_table = ? AND id = ?")
                    ->
execute($this->table$this->currentRecord);
                
                
// Eintragen der neuen Tags
                
foreach ($tags_for_this_record as $t4r)
                {
                    
$this->Database->prepare("INSERT INTO tl_tag (id, tag, from_table) VALUES (?, ?, ?)")
                        ->
execute($this->currentRecord$t4r$this->table);
                }
            }
            return 
"";
        }
        else return 
$value;
    } 
Ich hoffe Ich konnte damit jemanden helfen ;-)