Ergebnis 1 bis 7 von 7

Thema: Katalog Modul - Zeichenkette des Titels formatieren

  1. #1
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Standard Katalog Modul - Zeichenkette des Titels formatieren

    Guten Tag zusammen,

    ersteinmal großes Lob für das hervorragende Katalog-Modul.
    Es lässt sich wirklich sehr vielseitig einsetzen, bishin zur Vereinfachung der Pflege im Backend.
    Prinzipiell nutze ich den Formatierungsstring in den Katalogeinstellungen sehr häufig, allerdings hätte ich gern gewusst, ob man den gespeicherten Wert einer Auswahl (Verknüpfung zweier Kataloge) angeben kann?
    der Versuch mit
    Code:
    {{select_field::title}}
    oder nur
    Code:
    {{select_field}}
    funktionierten leider nicht.

    Jemand eine Idee?

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo davod enke,
    bisher habe ich es noch nicht geschaft das so auszugeben.
    Wäre natürlich sehr gut das auch ausgeben zu können. Daher bin ich mit den Entwicklern der nächsten Version am Handeln, das sowas aufgenommen wird.
    Das Problem ist nur gerade, das thyon sagt sowas wäre schon drinn. Es aber irgendwie auch in der neusten source (noch alpha) noch nicht so klappen will *g*

    Also übe dich noch ein wenig in Geduld und dann wird auch dir dieser Wunsch erfüllt ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Daumen hoch

    super, kein problem.
    bei checkboxen scheint es ja schon zu funktionieren....

    dabei hätte ich auch gleich noch eine idee: ich hab mal einem katalog (projekte) per tags die tl_member (projektteam) auswählbar gemacht.
    läuft super, nur leider ist das titelfeld auf den nachnamen beschränkt.

    da wäre doch ein weiterer fprmatierungsstring echt praktisch, anstelle des titel-feldes!

  4. #4
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo david,
    im Moment ist es auf jeden Fall möglich Tags anzeigen zu lassen, die mit einem select Element ausgewählt werden und in Taxonomie drinn sind.
    Es kann sein das es nicht möglich ist aus anderen Katalogen so etwas hinzubekommen wegen der Architektur von TL. Aber ich bleib mal am Ball.

    Dein nächste Wunsch wird so dann nun wirklich nicht so funktionieren, da ja nur der Nachname eingebunden ist und nicht die ganze Tabelle verfügbar ist...
    Ansonsten versuchs doch selber mal mit nem Ticket dazu: http://code.google.com/p/typolight-catalog/

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  5. #5
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Standard

    dank dir,
    werd ich wohl machen.

  6. #6
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Standard

    Um euch eine Lösung nicht vorzuenthalten, hier ein (noch) inoffizieller minimal-eingriff, der es ermöglicht verknüpfte Kataloge/ Tabellen im Backend via Format-String anzuzeigen.

    Und zwar gibt man der function generateTitle in der Catalog.php des Catalog-Moduls auf Zeile 782:
    PHP-Code:
    private function generateTitle($strFormat$values$tableName$row
    die ergänzende $row-Var, und darin dem switch:
    PHP-Code:
    case 'select':
        
    $replace $fieldConf['options'][$row[$params[0]]];
        break; 
    Darüber, beim Aufruf der Methode durch die
    PHP-Code:
    public function renderField($row
    auf Zeile 777, kommt noch eine var dazu:
    PHP-Code:
    return $this->generateTitle($strFormat$values$tableName$row); 
    Aufgerufen wird dann mit
    Code:
    {{fieldname::relatedValue}}
    nochmal die beiden geänderten Methoden in Gänze:
    PHP-Code:
    /**
     * Row Label
     */    
        
        
    public function renderField($row)
        {
        
            if (!
    $row['pid'])
            {
                return 
    'ID:'.$row['id'];
            }

            if (isset(
    $this->tableNames[$row['pid']]) && isset($this->strFormat[$row['pid']]))
            {
                
    $tableName $this->tableNames[$row['pid']];
                
    $strFormat $this->strFormat[$row['pid']];
            }
            else
            {
                
    $objType $this->Database->prepare("SELECT tableName, format FROM tl_catalog_types WHERE id=?")
                        ->
    limit(1)
                        ->
    execute($row['pid']);
                
                
    $tableName $objType->tableName;
                
    $strFormat $objType->format;
                
    $this->tableNames[$row['pid']] = $tableName;
                
    $this->strFormat[$row['pid']] = $strFormat;
            }
            
            
    $fields $GLOBALS['TL_DCA'][$tableName]['list']['label']['fields'];

            
    $values = array();
            foreach(
    $fields as $field)
            {
                
    $values[$field] = $this->formatTitle($row[$field], $GLOBALS['TL_DCA'][$tableName]['fields'][$field]);
            }

            if (!
    strlen($strFormat))
            {
                return 
    implode(', '$values);
            }
            else
            {
                return 
    $this->generateTitle($strFormat$values$tableName$row);
            }
        }


        private function 
    generateTitle($strFormat$values$tableName$row)
        {
            
    $fields $GLOBALS['TL_DCA'][$tableName]['list']['label']['fields'];
            
    preg_match_all('/{{([^}]+)}}/'$strFormat$matches);
            
    //$strFormat = '';
            
    foreach ($matches[1] as $match)
            {
                
    $params split('::'$match);
                
    $fieldConf $GLOBALS['TL_DCA'][$tableName]['fields'][$params[0]];
                if (
    $fieldConf)
                {    
                    
    $replace $values[$params[0]];
                    if (
    $params[1])
                    {
                        switch (
    $fieldConf['eval']['catalog']['type'])
                        {
                            case 
    'file':
                                    if (
    $fieldConf['eval']['catalog']['showImage'])
                                    { 
                                        
    $replace $this->generateThumbnail($replace$params[1], $fieldConf['label'][0]);
                                    }
                                    break;

                            case 
    'checkbox':
                                    
    // only use image if checkbox == true
                                    
    $replace = ($replace $this->generateThumbnail($replace$params[1], $fieldConf['label'][0]) : '');
                                    break;

                            case 
    'select':
                                    
    $replace $fieldConf['options'][$row[$params[0]]];
                                    break;

                            default:;

                        }                    
                    }
                    
    $strFormat str_replace('{{'.$match.'}}'$replace$strFormat);
                }
            }
            return 
    $strFormat;
        } 

  7. #7
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    OffTopic: Kann das bitte einer in den Katalogbereich schieben?

    OnTopic:
    Ich werde mir deine Aenderung bei Gelegenheit ansehen und ggf. in den neuen Katalog mit einbauen. Habe bitte jedoch Geduld und erstelle bei sowas auch bitte immer eifrig tickets auf der google code Homepage, gerne auch mit Patches wie von dir hier getan, dann geht es nicht verloren.

    Gruss
    Chris
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Datum beim eigenen Modul Formatieren (dca)
    Von TheGeek im Forum Entwickler-Fragen
    Antworten: 4
    Letzter Beitrag: 26.02.2010, 07:59
  2. Modul (Erweiterung) PM mit CSS formatieren
    Von rantanplan1304 im Forum Layout / Templates / Holy Grail
    Antworten: 2
    Letzter Beitrag: 05.02.2010, 20:25
  3. Modul Zufallsbild - formatieren?
    Von elli im Forum Sonstiges zu Contao
    Antworten: 17
    Letzter Beitrag: 18.10.2009, 19:46

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •