Liste der Anhänge anzeigen (Anzahl: 1)
Metamodels Select SQL Einschränkung mit Insert Tags
Hallo Leute,
ich habe ein Metamodel erstellt, welches ein Select (Auswahlliste) Attribut beinhaltet.
Dieses Select-Attrbut zeigt Daten (Kategorien) von einem anderen Metamodel an.
Nun möchte ich gerne einige Einträge von der Auswahlliste per SQL (Feld bei den Attribut-Einstellungen) einschränken lassen, dafür bräuchte ich aber die ID oder Benutzernamen vom aktuell eingeloggten Benutzer in der SQL Einschränkung.
Meine Idee war, einfach in das SQL Feld einen Inserttag als Einschränkung zu verwenden. (Siehe Bild)
https://community.contao.org/de/atta...0&d=1428054968
Leider scheinen aber Insert Tags im SQL Feld nicht zu greifen :-(
Welche Möglichkeiten gäbe es noch um eine solche Filterung im Backend zu reaisieren?
Ich möchte einfach gesagt manchen Benutzern nur gewisse Kategorien bei der Backend-Eingbe (Bei der Auswahlliste) zur Verfügung stellen.
Contao Version: 3.3.4
Danke für eure Hilfe.
Metamodels Select SQL Einschränkung mit Insert Tags
Hallo !
Ich stehe vor dem selben Problem, hat da jemand eine Lösung ?!
lg
Liste der Anhänge anzeigen (Anzahl: 1)
Da ich diese Funktion wieder mal gebraucht habe möchte ich kurz erläutern was ich gemacht habe:
1.) Habe ich einen eigenen replaceInsertTags Hook erstellt, welcher mit alle Daten vom eingeloggten Backend User zurückgibt
PHP-Code:
class MyInsertTags extends Backend
{
public function outputTagContent($strTag)
{
$elements = explode('::', $strTag);
// Replace the tag
switch (strtolower($elements[0]))
{
case 'beuser':
if (TL_MODE != 'FE' || BE_USER_LOGGED_IN)
{
$this->import('BackendUser', 'User');
return $this->User->$elements[1];
}
break;
}
return false;
}
}
2.) Habe ich in der Datei \composer\vendor\metamodels\attribute_select\src\M etaModels\Attribute\Select\Select.php die Methode getAdditionalWhere verändert (Zeile 131)
Somit greifen nun auch Insert-Tags beim MetaModel Attribut-Typ "Auswahl", im Feld SQL
https://community.contao.org/de/atta...5&d=1433158313
PHP-Code:
protected function getAdditionalWhere()
{
$additionalWhere = $this->get('select_where') ? html_entity_decode($this->get('select_where')) : false;
return ContaoController::getInstance()->replaceInsertTags($additionalWhere, false);
}
Anscheinend wurde aber die Methode "replaceInsertTags" im Controller protected, daher musste ich diese zusätzlich noch public setzen.
Hat jemand vielleicht einen Tipp, ob es noch eine andere (public) Methode gibt, welche mir die InserTags auflößt, ohne dass ich in den Controller greifen muss?
Danke und lg