Ergebnis 1 bis 6 von 6

Thema: Probleme mit übersetztem MCW-Attribut (attribute_translatedmulti)

  1. #1
    Contao-Nutzer Avatar von sevenfour
    Registriert seit
    17.01.2012.
    Ort
    Cottbus
    Beiträge
    36

    Standard Probleme mit übersetztem MCW-Attribut (attribute_translatedmulti)

    Ich habe jetzt ausführlich das von menatwork entwickelte übersetzte MCW-Attribute getestet. Funktioniert soweit gut, großen Dank an die Entwickler. Ich persönlich halte es für ein mehr als sinnvolles Attribut. In einem einzelnen Metamodel funktioniert es ohne Probleme, soweit ich es bis jetzt überblicken konnte. Probleme tauchen aber auf, wenn man zwei Metamodels miteinander "verknüpft". Folgender Fall:

    Es werden zwei Metamodels angelegt (mm_1 und mm_2). mm_2 enthält ein oder mehrere Attribut vom Typ "attribute_translatedmulti"
    mm_1 holt sich einen Datensatz per select-attribut aus mm_2. Ruft man jetzt im Frontend die Detailansicht des Datensatzes aus mm_1 auf, wird im Error-Log folgender Eintrag erstellt:

    PHP-Code:
    PHP WarningInvalid argument supplied for foreach() in /html/energie.s2-web.de_C.3.5.17/system/modules/metamodelsattribute_translatedmulti/templates/mm_attr_translatedmulti.text on line 2
    #0 /system/modules/metamodelsattribute_translatedmulti/templates/mm_attr_translatedmulti.text(2): __error(2, 'Invalid argumen...', '/html/energie.s...', 2, Array)
    #1 /composer/vendor/metamodels/core/src/MetaModels/Render/Template.php(349): include('/html/energie.s...')
    #2 /composer/vendor/metamodels/core/src/MetaModels/Attribute/Base.php(517): MetaModels\Render\Template->parse('text', true)
    #3 /composer/vendor/metamodels/core/src/MetaModels/Attribute/Base.php(528): MetaModels\Attribute\Base->parseValue(Array, 'text', Object(MetaModels\Render\Setting\Simple))
    #4 /composer/vendor/metamodels/core/src/MetaModels/Item.php(115): MetaModels\Attribute\Base->parseValue(Array, 'text', NULL)
    #5 /composer/vendor/metamodels/core/src/MetaModels/Item.php(404): MetaModels\Item->internalParseAttribute(Object(MetaModels\Attribute\TranslatedMulti\TranslatedMulti), 'text', NULL)
    #6 /composer/vendor/metamodels/attribute_select/src/MetaModels/Attribute/Select/MetaModelSelect.php(114): MetaModels\Item->parseValue()
    #7 /composer/vendor/metamodels/attribute_select/src/MetaModels/Attribute/Select/MetaModelSelect.php(148): MetaModels\Attribute\Select\MetaModelSelect->itemsToValues(Object(MetaModels\Items))
    #8 /composer/vendor/metamodels/attribute_select/src/MetaModels/Attribute/Select/MetaModelSelect.php(568): MetaModels\Attribute\Select\MetaModelSelect->getValuesById(Array)
    #9 /composer/vendor/metamodels/core/src/MetaModels/MetaModel.php(403): MetaModels\Attribute\Select\MetaModelSelect->getDataFor(Array)
    #10 /composer/vendor/metamodels/core/src/MetaModels/MetaModel.php(471): MetaModels\MetaModel->fetchAdditionalAttributes(Array, Array, Array)
    #11 /composer/vendor/metamodels/core/src/MetaModels/MetaModel.php(698): MetaModels\MetaModel->getItemsWithId(Array, Array)
    #12 /composer/vendor/metamodels/core/src/MetaModels/ItemList.php(560): MetaModels\MetaModel->findByFilter(Object(MetaModels\Filter\Filter), '', 0, 0, 'ASC', Array)
    #13 /composer/vendor/metamodels/core/src/MetaModels/ItemList.php(774): MetaModels\ItemList->prepare()
    #14 /composer/vendor/metamodels/core/src/MetaModels/FrontendIntegration/HybridList.php(116): MetaModels\ItemList->render('', Object(MetaModels\FrontendIntegration\Content\ModelList))
    #15 /system/modules/core/classes/Hybrid.php(239): MetaModels\FrontendIntegration\HybridList->compile()
    #16 /composer/vendor/metamodels/core/src/MetaModels/FrontendIntegration/MetaModelHybrid.php(109): Contao\Hybrid->generate()
    #17 /composer/vendor/metamodels/core/src/MetaModels/FrontendIntegration/HybridList.php(55): MetaModels\FrontendIntegration\MetaModelHybrid->generate()
    #18 /system/modules/core/library/Contao/Controller.php(484): MetaModels\FrontendIntegration\HybridList->generate()
    #19 /system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao\ContentModel), 'main')
    #20 /system/modules/core/modules/Module.php(287): Contao\ModuleArticle->compile()
    #21 /system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate()
    #22 /system/modules/core/library/Contao/Controller.php(417): Contao\ModuleArticle->generate(false)
    #23 /system/modules/core/library/Contao/Controller.php(277): Contao\Controller::getArticle(Object(Contao\ArticleModel), true, false, 'main')
    #24 /system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main')
    #25 /system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true)
    #26 /index.php(20): Contao\FrontendIndex->run()
    #27 {main} 
    Dabei ist es unerheblich ob die Daten des MVC im Template angezeigt werden oder nicht. Schon das pure Anlegen des Attributes produziert diesen Fehler (d.h. Attribut ist nicht zur Eingabemaske hinzugefügt oder in den Render-Einstellungen).
    Als weitern Test habe ich das Metamodel mm_1 per Interface in mm_2 eingebunden. Gleicher Fehler!!!

    Ich bin echt ratlos und benötige das Attribute unbedingt für mehrere Projekte. Zumal pro Seitenabruf der Fehler genau 46-mal ins Errorlog geschrieben wird. Die Seite benögt ca. 10 Sekunden zum laden und zeigt dann alles an (auch die Daten des attribute_translatedmulti). Aber das ist in Sachen Performance und Serverlast unbefriedigend. Zumal das Error-Log ganz fix auf mehrere Gigabyte ansteigt.

    PHP-Version und Größe RAM:
    Contao-Version: 3.5.24
    MM per Composer
    MM Version core: 2.0.0-alpha15
    DC-General Version: 2.0.0-beta39
    spezielle Hotfix-Pakete eingespielt?: nein


    Gruß
    sev

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

    Standard

    dann wird wohl "$this-raw" kein Array sein... https://github.com/menatwork/attribu...dmulti.text#L2

    mir ist nicht ganz klar, warum das bei mm_1 aufgerufen wird wenn bei mm_2 eingebunden... oder hast du das Select von mm1_auf das MCW von mm_2 gesetzt?

  3. #3
    Contao-Nutzer Avatar von sevenfour
    Registriert seit
    17.01.2012.
    Ort
    Cottbus
    Beiträge
    36

    Standard

    Nein, ich habe das select nicht direkt auf das MCW gesetzt. Aber es steht mir ja trotzdem im Template zur Verfügung.

    Also mm_1 ist z.B. die Abteilung einer Firma mit "Name der Abteilung", "Beschreibung" usw.

    In mm_2 stehen die Mitarbeiter, die ich per Select der Abteilung zuordne. Ich verlinke per Select auf das Textfeld "Name" und die Kommunikationsdaten wie "Telefon", "Fax", "E-Mail" usw. aus dem MCW stehen mir im Template als Item auch zur Verfügung.

    Was mich aber total wundert ist, dass das MCW-Attribut den Fehler trotzdem produziert, auch wenn ich es in mm_2 in den Rendereinstellungen gar nicht zur Verfügung stelle.

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

    Standard

    Zitat Zitat von sevenfour Beitrag anzeigen
    Was mich aber total wundert ist, dass das MCW-Attribut den Fehler trotzdem produziert, auch wenn ich es in mm_2 in den Rendereinstellungen gar nicht zur Verfügung stelle.
    hmm... kann ich auch nicht sagen oder vermuten was da los ist... insbesondere, warum das .text-Template gezogen wird? entweder selbst debuggen oder bei MAW anfragen

  5. #5
    Contao-Nutzer Avatar von chibineko
    Registriert seit
    02.06.2011.
    Beiträge
    120
    Partner-ID
    6306

    Standard

    Schau dir einmal den Raw Bereich vom Item-Array im Template an. Das mm_1 hat ein Select welche auf das mm_2 geht, damit wird im RAW Bereich des mm_1 auch die Daten des mm_2 ausgegeben. der Raw Bereich des Select rendert auch die Text Variante des mm_2 durch. Daher kommt der Fehler.

    Ein Select zeigt immer die Daten der ganzen Tabelle an, auf die es verweist. Bei einem MetaModels wird dann die Text Variante noch mit gerendert.
    Don't assume anything is possible or impossible until you've asked the people who will be doing the work. (Picard management tip)

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

    Standard

    ggf. könnte ein Blick in Dein data-Array Aufschluss geben... damit könnten eventuell "Ahnungen" generiert werden

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
  •