Ergebnis 1 bis 38 von 38

Thema: Referenced items Hilfe

  1. #1
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard Referenced items Hilfe

    Hallo,
    ich habe vor kurzem einen Beitrag gelesen:
    https://community.contao.org/de/show...ferenced+items

    Ich würde das gerne so umsetzten, dass es zu Jedem Produkt einen Ansprechpartner gibt. Dazu habe ich die MM Liste mm_products worin die Produkte liegen und die Tabelle mm_pr_mitarbeiter inder die zuständigen Mitarbeiter stehen. Bei dem MM für die Produkte habe ich ein Select Artibut mit der Sourcetable mm_pr_mitarbeiter. Leider weis ich nicht wo genau in meinem Template ich den Code einfügen muss bzw. warum wenn ich es einfüge das gesamte Css der Seite verschwindet und nur die Inhalte des Templates zu sehen sind . Ich hoffe ihr könnt mir da ein wenig weiterhelfen. Danke!

    Hier mein Template:
    PHP-Code:
    <?php $strRendersettings = ($this->settings)? 'settings' 'view'?> 
    <?php if (count($this->data)): ?> 

    <div class="layout_full"> 

    <?php foreach ($this->data as $arrItem): ?> 

    <div class="item <?php echo $arrItem['class']; ?>"> 

    <?php foreach ($arrItem['attributes'] as $field => $strName): ?> 
    <?php if (($strValue $arrItem[$this->getFormat()][$field]) || ($strValue $arrItem['text'][$field])): ?> 
    <div class="field <?php echo $field?>"> 
        <?php if(!$this->$strRendersettings->get('hideLabels')): ?> 
        <?php endif; ?> 
        <div class="value"> <?php echo $strValue?></div> 
    </div> 
    <?php endif; ?> 
    <?php endforeach; ?> 
    <?php if ($arrItem['jumpTo']['deep']): ?> 
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>"><?php echo $this->details?></a> 
    <?php endif; ?> 
    </div> 
    <?php endforeach; ?> 
    </div> 
    <?php else: ?> 
    <p class="info"><?php echo $this->noItemsMsg?></p> 
    <?php endif; ?>

  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

    Für sowas brauchst du kein Template. Du musst eigentlich nur ein Listen Element anlegen, wo du dann die Mitarbeiter ausgibst. Dazu dann noch ein Filter, der die Mitarbeiter so filtert, das es zum aktuellen Item passt (im Grunde so wie du das mit dem Filter für die Detailseite machst, nur eben beim Mitarbeiter).

    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
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Danke erstmal für die schnelle Antwort! Ich bin leider noch relativ ungeübt im Umgang mit MM von daher wollte ich nochmal nachfragen wo genau ich den Filter einrichten muss? Bei dem MM der Produkte oder bei dem der Mitarbeiter und was genau muss ich dann angeben als Atribut. Wie kann ich das dann verknüpfen? Oder muss ich sogar eigenes SQL dazu schreiben? Vielen Dank!
    Grüße

  4. #4
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Für sowas brauchst du kein Template. Du musst eigentlich nur ein Listen Element anlegen, wo du dann die Mitarbeiter ausgibst. Dazu dann noch ein Filter, der die Mitarbeiter so filtert, das es zum aktuellen Item passt (im Grunde so wie du das mit dem Filter für die Detailseite machst, nur eben beim Mitarbeiter).

    Viele Grüße
    Ich finde irgendwie keine Verbindung wo sich die beiden MM Verknüpfen lassen über so ein Filter

  5. #5
    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

    Bei den Mitarbeitern musst du einen Filter erstellen, der genau so eingestellt ist, wie der Filter für die Detailseite bei den Produkten. Verknüpft wird das ganze ja über das Select Feld, was du im Backend benutzt.

    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."

  6. #6
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Genau so habe ich das ja zuerst auch gemacht aber irgendwie ist das recht seltsam. Ich habe den Filter zur Detailseite als Link dort Betitelt (Wie in der Anleitung die es dazu gibt als) "FE Link Detail" dort habe ich eine Einfache Abfrage zum Attribut Alias. Nun habe ich ein neues Modul erstellt, mit der MM Liste für die Mitarbeiter. Aber jetzt hierzu einen Filter für den Alias des Mitarbeiters zu erstellen ist doch eher sinnlos oder? Hab ich da irgenwie einen Filter übersehen? Oder hab ich das einfach falsch aufgefasst? Danke!
    Grüße

  7. #7
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Ich habe jetzt nochmal alles durchprobiert nur auf diese Art scheint es nicht zu funktionieren oder mache ich da was falsch?

  8. #8

  9. #9
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Ich kann da leider keinen Sinn raus ziehen, wie ich damit mein Problem damit lösen kann, aber der Lösungsansatz von MacKP gefällt mir gut. Wenn das denn dann auch so umsetzbar ist. Deshalb die Frage ob du mir da nochmal weiterhelfen könntest?

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    o.k. - nochmal auf Start (ohne 4.000 DM) :-)

    Du hast

    * MM_Mitarbeiter
    * MM_Produkte mit einer Referenzierung aus MM_Mitarbeiter als Mehrfachauswahl

    => richtig verstanden?

    Nun möchtest Du eine Liste aller Mitarbeiter ausgeben und dabei sollen die zum MA zugehörigen Produkte auftauchen - like

    Herr Alois Mayer
    Zuständig für Staubsauger, Seifenspender

    Frau Ilse Küstennebel
    Zustädig für Dampframmen, Schiffsglockenpoliturmaschinen

    ??

  11. #11
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Danke erstmal für die Antwort. Nein ich meine es so. Die Abhängigkeiten stimmen so aber:
    Ich drücke auf ein Produkt und komme auf eine Detailseite des Produkts. Dort auf der Detailseite soll neben den Produktdetails noch der Mitarbeiter angegeben werden der für dieses Produkt (Beratung usw.) zuständig ist. Daher soll dort Bild, Name, Telefon.. usw. erscheinen.
    Das heißt:

    Testprodukt wird betreut von Max Mustermann

    Tut mir leid wenn das aus dem ersten Post nicht so ersichtlich war. Danke!
    LG

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    hat "Produkt" genau nur einen "Mitarbeiter"?

    aber

    ein "Mitarbeiter" betreut ein/mehrere "Produkte"?

  13. #13
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    hat "Produkt" genau nur einen "Mitarbeiter"?

    aber

    ein "Mitarbeiter" betreut ein/mehrere "Produkte"?
    Korrekt! Wobei ich die Möglichkeit nicht ausschließen möchte das ein Produkt mehrere Mitarbeiter haben kann. Aber wenn es mit nur einem gehen würde wäre ich schon überglücklich!

  14. #14
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    dann sehe ich das Problem nicht...

    * MM_Mitarbeiter anlegen (Name, Vorname, Tel., E-Mail...)
    * MM_Produkte anlegen (Bezeichnung, Typ,...) UND Attribut Auswahl für Zuordnung ein MA oder Mehrfachauswahl für Zuordnung ein, oder mehrerer MA
    ...
    * Ausgabeliste der Produkte erstellen

    ggf. in der metamodels_prerendered ein print_r($this->data) machen und mal nachsehen was da so kommt...

  15. #15
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    dann sehe ich das Problem nicht...

    * MM_Mitarbeiter anlegen (Name, Vorname, Tel., E-Mail...)
    * MM_Produkte anlegen (Bezeichnung, Typ,...) UND Attribut Auswahl für Zuordnung ein MA oder Mehrfachauswahl für Zuordnung ein, oder mehrerer MA
    ...
    * Ausgabeliste der Produkte erstellen

    ggf. in der metamodels_prerendered ein print_r($this->data) machen und mal nachsehen was da so kommt...
    Suuuuper tausend Dank es funktioniert Bis auf eins:
    ich möchte ja gerne auch noch ein Bild des Mitarbeiters ausgeben. Im Array ist nur eine komische Aneinanderreihung von Zeichen. Das kommt dann wahrscheinlich von dem BLOB Format in dem die Bilder in der DB eingetragen sind. Frage nun wie zeige ich mir das Bild an? Ist es möglich eine allg. Ausgabe aller Elemente des Arrays zu machen, so wie das bei dem prerendered normal mit foreach gelöst wurde? Habe ein bisschen rumprobiert aber leider ohne Erfolg, da ich überhaupt nicht weis wie das mit der Format Zuordnung innerhalb des Arrays funktioniert. Das array wo die Infos drinne liegen rufe ich mit $arrItem['raw']['pr_mitarbeiter'] auf.
    Danke nochmal!
    LG

  16. #16
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Notfalls lös ich das halt mit nem Link zum Bild welchen ich dann ja einfach einfügen könnte. Aber anders wäre es natürlich besser und cleaner.

  17. #17
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    dat Ding ist serialisiert, nehme ich an... sende mal den "Auswurf" von print_r

    aber so, dass man das lesen kann!

  18. #18
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    HTML-Code:
    Array ( [id] => 1 [pid] => 0 [sorting] => 128 [tstamp] => 1408443812 [name] => Max Mustermann [alias] => max-mustermann [telefon] => 012345678910 [image] =>�q�'����i���� [mm_products_id] => 5 )
    das ist jetzt der print_r Auswurf des Arrays. leider bekomme ich den Inhalt des Felds "image" nicht leserlich hin. Hab es mit konvertierungen und und utf8_decode probiert nur leider ist dabei kein brauchbares Ergebnis bei rumgekommen.
    LG

  19. #19
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    och mano...

    entweder das Array in der Quelltext-Ansicht kopieren oder per <pre>...</pre> formatieren

    oder sende einen Link!

  20. #20
    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

    Du bekommst da einfach die UUID ausgegeben. Die kannst du im Template umwandeln (lassen). Wurde hier im Forum schon öfter angesprochen.

    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."

  21. #21
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Array
    (
    [id] => 1
    [pid] => 0
    [sorting] => 128
    [tstamp] => 1408443812
    [name] => Max Mustermann
    [alias] => max-mustermann
    [telefon] => 012345678910
    [image] => �q�'����i����
    [mm_products_id] => 5
    )

    sorry

  22. #22
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Du bekommst da einfach die UUID ausgegeben. Die kannst du im Template umwandeln (lassen). Wurde hier im Forum schon öfter angesprochen.

    Viele Grüße
    Alles klar! Ich schau mal ob ich ein Beitrag finde.

  23. #23
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    scheint so, als ob irgendwas nicht auf UTF8 läuft - die UUIDs sind reine ASCII-7 Zeichen aber kommen als UTF8...

    Stell mal in Deinem Browser unter Ansicht > Zeichenkodierung um...

  24. #24
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Habe leider nichts wirkliches zum Thema gefunden. Bevor ich mich mit irgendwelchen falschen Begriffen tot suche könnte wer bitte einen Link Posten.

    Und meine Frage war ja auch noch ob man das wie beim prerendered verallgemeinern kann. D.h. alle Inhalte mit Foreach ausgeben aber gleichzeitig auch das Format (z.B. Bild ) berücksichtigen kann.

  25. #25
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    scheint so, als ob irgendwas nicht auf UTF8 läuft - die UUIDs sind reine ASCII-7 Zeichen aber kommen als UTF8...

    Stell mal in Deinem Browser unter Ansicht > Zeichenkodierung um...
    Hab meinen Browser auf Unicode. Daran sollte es eigentlich nicht liegen oder?

  26. #26
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    $objFile = \FilesModel::findByUuid(<meine-UUID>);

    und guck mal was in $objFile steht

  27. #27
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    poste mal den Link oder sende den per PN - da wird man ja irre!

  28. #28
    Contao-Nutzer Avatar von Dr. Jo
    Registriert seit
    11.08.2009.
    Ort
    Riehen (CH)
    Beiträge
    205

    Standard

    Hallo, vermutlich hilft das hier weiter (Code von dort):

    PHP-Code:
    <?php
    $foto_img 
    $arrItem['raw']]['referent']['foto'];
    $file = \FilesModel::findByUuid($foto_img); $logo_path $file->path$image = \Image::get($logo_path10085'box'); $html = \Image::getHtml($image);
    ?>
    <img src="<?php echo $image?>" ....
    https://community.contao.org/de/show...l=1#post330156

    Kann ich mich aus purer Verzweiflung gerade einmal dranhängen? Mein Problem ist nämlich ganz ähnlich gelagert, allerdings will ich nicht ein Bild, sondern mehrere aus einem Array (aus einem verknüpften MM) ausgeben lassen. Das Array kann ich ja im Prinzip so ausgeben wie unten (dort halt erst einmal nur der Pfad). Aber wenn ich dann noch den Inhalt ganzer Ordner ausgeben will, Meta-Informationen etc. ... äh ... dann wird das ja etwas *komplexer*. Gibts da nicht was von ratiopharm einfacheres ...

    PHP-Code:
      <?php
    foreach($arrItem['raw']['meine_bilder_auswahl'] as $Item)
    {
      
    $foto_img $Item['meine_bilder_auswahl'];
      
    $foto_img deserialize($foto_img);
      
    $objFiles = \FilesModel::findMultipleByUuids($foto_img);

      while (
    $objFiles->next())
      {
        
    print_r($objFiles->path);
      }
    }
    ?>

  29. #29
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    erstmal zu freshmojojo

    was damit?
    PHP-Code:
    $objFile = FilesModel::findByPk(<UUID>);
    <img src="<?php echo $objFile->path?>" alt="..." >

  30. #30
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Dr. Jo:

    was s den alles in $Item drinn?

  31. #31
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    erstmal zu freshmojojo

    was damit?
    PHP-Code:
    $objFile = FilesModel::findByPk(<UUID>);
    <img src="<?php echo $objFile->path?>" alt="..." >
    Gott sei dank es hat funktioniert

  32. #32
    Contao-Nutzer Avatar von Dr. Jo
    Registriert seit
    11.08.2009.
    Ort
    Riehen (CH)
    Beiträge
    205

    Standard

    Naja, wenn ich $Item per print_r ausgebe, kommt sowas:
    Code:
    a:3:{i:0;s:16:"L~/~ä¨É¼0[5gL";i:1;s:16:"L}î/~ä¨É¼0[5gL";i:2;s:16:"L}ä/~ä¨É¼0[5gL";}
    weshalb ich deserialize brauche ...

    Mit
    PHP-Code:
    print_r($objFiles->path); 
    bekomme ich dann zwar auch den Pfad zur Datei, aber eben noch keine verkleinerte Voransicht etc. Wenn ich aber den Code aus dem verlinkten Fred wie folgt anpasse, legt Contao ein verkleinertes Voransichtsbild an und $image gibt den Pfad dorthin an (bspw. assets/images/5/kastanie-f9de3625.jpg):

    PHP-Code:
    $objFiles = \FilesModel::findMultipleByUuids($foto_img); $logo_path $objFiles->path$image = \Image::get($logo_path10085'box'); $html = \Image::getHtml($image); 
    Jetzt fehlt da im Prinzip nur noch die Magie für die Meta-Angaben ...

  33. #33
    Contao-Nutzer Avatar von Dr. Jo
    Registriert seit
    11.08.2009.
    Ort
    Riehen (CH)
    Beiträge
    205

    Standard

    ... nä, stimmt nicht.

    PHP-Code:
    $objFiles = \FilesModel::findMultipleByUuids($foto_img); $logo_path $objFiles->path$image = \Image::get($logo_path10085'box'); $html = \Image::getHtml($image); 
    ... erzeugt natürlich nur ein Bild bzw. immer das gleiche, wenn ich $image ausgebe ...

  34. #34
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    61

    Standard

    Was genau möchtest du denn jetzt am Ende machen? Du willst nur den Path so abändern, dass sich eine Lightbox öffnen kann?

  35. #35
    Contao-Nutzer Avatar von Dr. Jo
    Registriert seit
    11.08.2009.
    Ort
    Riehen (CH)
    Beiträge
    205

    Standard

    Naja, schön wärs halt, wenn ich über ein paar Parameter automatischer Vorschaubilder und deren Größe/Dimensionen erzeugen lassen könnte sowie Meta-Informationen ausgeben, und nett wäre natürlich auch, wenn ich den Inhalt ganzer Ordner so ausgeben könnte - momentan geht das ja nicht. Müsste es doch Funktionen für geben, damit man das nicht von Hand zusammenstücken muss ...

  36. #36
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Äh doofe Frage, aber wenn man in den Rendering-Einstellungen das File-Attribut mit "Als Bildfeld mit Vorschaubild benutzen" auswählt, dann geht das doch auch ohne UUID, oder hab ich was verpasst?
    Allerdings in der Form nur für einzelne Bilder …
    /Edit: Okay sorry, es geht um ein verlinktes Model, jetzt hab ich's kapiert. Sorry.

    An die Metadaten kommst du glaube ich hiermit (hab's nicht testen können grade leider):
    Code:
    $this->getMetaData($objFiles->meta, $objPage->language);
    Für mehrere Bilder könntest du einfach den Code aus der ContentGallery.php ab hier übernehmen:
    Code:
    // Folders
      else
    …
    Geändert von pju (09.09.2014 um 00:23 Uhr)

  37. #37
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von freshmojojo Beitrag anzeigen
    Gott sei dank es hat funktioniert
    ...geht doch! ;-)

  38. #38
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Dr. Jo: ich steige nochmal weiter oben ein bei #32

    Dein $Item ist serialisiert - gut erkannt - deshalb deserialisieren

    PHP-Code:
    $arrItems deserialize($Item); 
    nun sind alle UUIDs in dem Array... (Test mit print_r)

    Über das Array gehst Du wieder mit einer foreach-Schleife und werkelst die einzelnen UUIDs ab - ggf. vorher abfangen, ob Elemente im Array ;-)

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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