Vanilla 1.1.2 Forum von Lussumo. Weitere Informationen: Dokumentation, Community.

    • CommentAuthorSpica
    • CommentTime17.06.2012
     permalink
    ich möchte auf die db Einträge von FormSave zugreifen, versuche das so:

    $formEntry = $modx->getCollection('fsForm', array('published'=>'1'));

    foreach ($formEntry as $formEntry) {
    $fid .= $formEntry->get('id');
    }
    return $fid;


    Ich bekomme aber gar keinen return. Welchen classkey brauche ich. geht das überhaupt so?
    • CommentAuthorBruno
    • CommentTime17.06.2012 bearbeitet
     permalink
    das entsprechende package ist geladen?

    falls ja, probiere es mal so:

    $classname = 'fsForm';
    $c = $modx->newQuery('fsForm');
    $c->where(array('published'=>'1'));
    if ($formEntrys = $modx->getCollection($classname, $c)){
    $ids = array();
    foreach ($formEntrys as $formEntry) {
    $ids [] = $formEntry->get('id');
    }
    return implode(',',$ids);
    }

    return 'kein Datensatz gefunden';
    • CommentAuthorSpica
    • CommentTime18.06.2012
     permalink
    danke, das geht – teilweise.
    habe das formular und die Ausgabe des snippets auf der gleichen seite. wenn ich das formular abschicke, werden die ids ausgegeben. wenn ich einen einfachen Seitenaufruf mache kommt 'kein Datensatz gefunden'. Steht die classe nicht immer zur Verfügung?
    • CommentAuthorSpica
    • CommentTime18.06.2012
     permalink
    ich habs jetzt mit rowboat gemacht. bisschen umständlicher mit verschachtelten chunks und snippets, aber geht. Würde mich aber trotzdem interessieren, was mit der classe ist.
    • CommentAuthorBruno
    • CommentTime18.06.2012
     permalink
    Du wirst ein $modx->addPackage benötigen.

    Vermutlich wird das addPackage innerhalb formSave nur ausgeführt, wenn ein Formular abgechickt wurde.
    • CommentAuthorSpica
    • CommentTime18.06.2012
     permalink
    dachtes mir.
    wie kann ich denn rowboat innherhalb eines snippets einsetzen, wenn ich mir die vielen verschachtelten Chunks sparen will? Sollte doch dann auch schneller gehn.
    • CommentAuthorBruno
    • CommentTime18.06.2012
     permalink
    Ähm, ich weiß ja nicht wo Du wie irgendwelche Verschachtelungen hast.

    Evtl. wäre bloX für Revo eine Option.
    Damit kannst Du alle Daten mit einem mal in ein verschachteltes array holen und auf verschachtelte chunks aufteilen.

    Aber ohne mehr zu wissen, kann ich nicht sagen, ob das hier die effektivste Lösung wäre.
    • CommentAuthorSpica
    • CommentTime18.06.2012 bearbeitet
     permalink
    ich habs so gemacht: In der Ressource wo auch die Form ist, die mit FormSave die Post in DB schreibt:

    [[!Rowboat?
    &table=`modx_formsave_forms`
    &columns=`{"data":""}`
    &where=`{"topic:LIKE":"%My-Submit","published:LIKE":"%1%"}`
    &sortBy=`time`
    &sortDir=`DESC`
    &tpl=`Entries`
    &cacheResults=`0`
    &limit=`0`
    ]]

    chunk Entries:

    [[!EntriesFromJson? &jsonString=`[[+data]]`]]

    das snippet:
    <?php
    $entriesAsArray = json_decode($jsonString, true);
    unset($entriesAsArray['email']);
    foreach ($entriesAsArray as $key => $value) {
    $modx->setPlaceholder('play.'.$key.'.key' , $key);
    $modx->setPlaceholder('play.'.$key.'.value' , $value);
    }
    return $modx->getChunk('Entries-Format');


    und das verwendetedte chunk Entries-Format (gekürzt):
    [[+play.name.value]] schrieb:<br>
    [[+play.kommentar.value]]


    die ersten drei teile muss ich machen, um das json array aus der db zu holen und wieder in ein array zu wandeln. besser wäre es, das direkt in einem snippet machen zu können.