Hallo, lieber Forumbenutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
elsethos
Beiträge: 27
Registriert: 17. Okt 2008, 07:55

ycom, yform User und Kategorie in DB speichern

14. Jun 2017, 07:03

Hallo zusammen,

ich habe mir bereits die Finger wund gegoogelt und auch im Forum nichts passendes gefunden. Mein Problem:

Ich habe das Community Addon installiert und möchte folgendes realisieren. Der ngemeldete User soll Dateien in den Medienpool hochladen können. Das klappt auch. In einer im Tablemanager (YForm) angelegten Tabelle sollen zusätzlich der angemeldete User, die aktuelle Kategorie, die ID des Bildes, sowie das Datum gespeichert werden.

Das Formular sieht wie folgt aus:

Code: Alles auswählen

mediafile|file|Dateiupload|50000|.jpg,.png,.pdf,.xls,.txt,.doc,.docx,.xlsx|pflicht=1|Datei zu klein,Datei zu groß,falsches Dateiformat,Datei ist leer|[no_db]|4|upload
be_link|cat|Link zu Artikel|
article|article_id
generate_key|datum|Datum|[no_db][0]
ycom_user|user|user|Fieldlabel|hidden|[no_db]|showlabel
1. Problem: Die Medienpool Kategorie wird nicht in der angegebenen Tabelle gespeichert, obwohl im Table Manager im Feld mediafile die Mediakategorie ID eingetragen wurde.

2. be_link ??? keine Doku gefunden. Wie kann ich die aktuelle Kategorie oder den aktuellen Artikel speichern? Im frontend wird angezeigt "Kein Artikel vorhanden"

Code im Frontend:

Code: Alles auswählen

<input class="form-control" type="text" name="REX_LINK_NAME[1]" value="" id="REX_LINK_1_NAME" readonly="readonly">
<input type="hidden" name="FORM[formular][1]" id="REX_LINK_1" value="">
<span class="input-group-btn">
                        <a href="#" class="btn btn-popup" onclick="openLinkMap('REX_LINK_1', '&amp;clang=1');return false;" title="Link auswählen"><i class="rex-icon rex-icon-open-linkmap"></i></a>
                        <a href="#" class="btn btn-popup" onclick="deleteREXLink(1);return false;" title="Ausgewählten Link löschen"><i class="rex-icon rex-icon-delete-link"></i></a></span>
3. Wie speichere ich den aktuellen Benutzer? Beim absenden erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Error while executing statement using params {"file":"logo_1.png","cat":"","datum":"8ae1f247c7279a5a7a83f0427faae7ad","user":null}! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user' cannot be null

ErrorCode - InsertQueryError

elsethos
Beiträge: 27
Registriert: 17. Okt 2008, 07:55

Re: ycom, yform User und Kategorie in DB speichern

14. Jun 2017, 13:27

kann geschlossen werden. Habe es über php gelöst:

Code: Alles auswählen

 $ycom_user = rex_ycom_auth::getUser()->getValue('login');
    $catid=REX_ARTICLE_ID;
    $yform = new rex_yform();
    $yform->setObjectparams('form_action',rex_getUrl('REX_ARTICLE_ID'));
    $yform->setObjectparams('form_ytemplate', 'bootstrap');
    $yform->setObjectparams('form_showformafterupdate', 0);
    $yform->setObjectparams('getdata', FALSE);
    $yform->setObjectparams('main_table', 'rex_file_frontend');
    //$yform->setObjectparams('main_where', 'id=5');
    //$yform->setObjectparams('real_field_names', true);


    $yform->setValueField('mediafile', array("file","Datei","50000",".jpg,.png,.pdf,.xls,.txt,.doc,.docx,.xlsx","1","Datei zu klein,Datei zu groß,falsches Dateiformat,Datei ist leer","rex_file_frontend","4","upload/upload"));  

    $yform->setValueField('select', array("select","Select","schlecht=-1,ok=0,gut=1","","0","0"));
    $yform->setValueField('hidden', array('user',$ycom_user));
    $yform->setValueField('hidden', array('datum',date('Y-m-d H:i:s')));
    $yform->setActionField('db', array("rex_file_frontend"));
    $yform->setActionField('html', array('<div class="alert alert-success">Daten wurden gespeichert.</div><a class="btn btn-primary" href="'.rex_getUrl('REX_ARTICLE_ID').'">weitere Datei hochladen.</a>'));


    echo $yform->getForm();
    

Zurück zu „AddOns / Packages [R5]“