Ergebnis 1 bis 8 von 8

Thema: Plone und eigene Forms erstellen

  1. #1
    Teeny
    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Plone und eigene Forms erstellen

    Hallo zusammen,

    ich treffe hier auf was -für mich- sehr merkwürdiges

    Ich versuche mal mein Problem so verständlich wie möglich zu definieren:

    Situation:
    Im View-Modus gibt es die Möglichkeit über einen Link im Template auf ein eigenes Formular bzw. Template zuzugreifen. Dies funktioniert ohne Probleme. An dieses Formular werden GET-Variablen übergeben. Auf diese kann ich auch ohne Probleme zugreifen.

    Soll-Zustand:
    Nach abschicken des Formular soll eine eigen-definierte Methode aufgerufen werden.

    File-Struktur:
    view_template.pt
    my_ext_edit_form.pt
    my_ext_edit_form.cpt.metadata
    my_ext_edit_form_action.cpy


    Nun das Problem:
    Wenn ich das Formular abschicke, greift my_ext_edit_form.cpt.metadata auf my_ext_edit_form_action.cpy zu. Allerdings bekomme ich nur den Quellcode angezeigt. Also dieser Code wird nicht ausgeführt sondern 1:1 als HTML-Source ausgeben.


    Über jede Hilfe wäre ich sehr verbunden

    Noch eine Frage nebenbei, da ich es momentan nicht testen kann:
    Wäre meine Objekt-Instanz immernoch im Context, da ich auf einige dieser Variablen zugreifen müßte

    Grüße
    Methusalix

    P.S. Ich hoffe ich habe das Problem halbwegs verständlich erklärt. Wenn nicht, einfach nachhacken
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Bitte gib den Inhalt der Datein mal an. Innerhalb von BBC code-Blöcken. Dann wirds vielleicht etwas klarer.

    Torty
    "Carpe Diem" powered by positiv Feelings

  3. #3
    Teeny
    Themenstarter

    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo,
    ich kann leider mometan mit BBC wenig anfangen, daher poste ich mal die kompletten Codes, außer die ...view:

    my_ext_edit_form.pt: (plonecvs_project_file_delete.pt)
    Code:
    <html xmlns="http&#58;//www.w3.org/1999/xhtml" xml&#58;lang="en" 
          lang="en" 
          metal&#58;use-macro="here/main_template/macros/master" 
          i18n&#58;domain="plone"> 
    <body> 
    
    <metal&#58;main fill-slot="main"> 
      <tal&#58;main-macro metal&#58;define-macro="main"> 
    
        <div metal&#58;use-macro="here/document_actions/macros/document_actions"> 
            Document actions &#40;print, sendto etc&#41; 
        </div> 
    
        <h1 class="documentFirstHeading"> 
          Uploadformular 
        </h1> 
    
        <p class="documentDescription"> 
        </p> 
    
        
    
    </p> 
    
        <form action="" method="post" 
              enctype="multipart/form-data" 
        > 
    
          <div class="field"> 
            <label> 
              Nachricht an die Datei hängen&#58; 
            </label> 
            <span class="fieldRequired" title="Required">&#40;Required&#41;</span> 
            <div class="formHelp"> 
              Geben Sie hier einen Text für die aktuelle Änderung angefügt werden soll.
            </div> 
            <textarea name="message"
                tal&#58;content="python&#58;request.get&#40;'file'&#41;" />
            <textarea name="message"
                tal&#58;content="python&#58;request.get&#40;'path'&#41;" />
          </div> 
    
          <input type="submit" name="form.button.hochladen" value="Abschicken" /> 
    
          <input type="hidden" name="form.submitted" value="1" /> 
    
        </form> 
    
        
    
    </p> 
    
      </tal&#58;main-macro> 
    </metal&#58;main> 
    
    </body> 
    </html>
    my_ext_edit_form.cpt.metadata: (plonecvs_project_file_delete.cpt.metadata)
    Code:
    &#91;default&#93;
    title=Delete File
    
    &#91;validators&#93;
    
    &#91;actions&#93;
    action.success = traverse_to&#58;string&#58;plonecvs_project_file_delete_action
    my_ext_edit_form_action.cpy: (plonecvs_project_file_delete_action.cpy)
    Code:
    ## Controller Python Script "plonecvs_project_file_delete_action"
    ##bind context=context
    ##bind state=state
    ##parameters=file='', path=''
    ##title=Delete File
    ##
    
    username = context.portal_membership.getAuthenticatedMember&#40;&#41;.getUserName&#40;&#41;
    unixname = context.unix_name
    cvs_co_hostname = context.cvs_checkout_hostname
    cvs_co_root = context.cvs_checkout_root
    cvs_exe = context.cvsexe
    cvs_storage = context.cvs_storage_root
    
    msg = context.remove&#40;cvs_co_hostname, cvs_co_root, cvs_exe, cvs_storage, username, unixname, path, file&#41;
    
    state.set&#40;context = new_context, portal_status_message=msg&#41;
    state.setNextAction&#40;'redirect_to&#58;string&#58;plonecvs_project_view'&#41;
    return state
    Bitte nicht an den Dateinamen aufhängen. Ich hab hier nur zur Verdeutlichung Aliasse verwendet. Die Verlinkung sollte stimmen.

    Meine Ausgabe beim Durchführen der Aktion ist der Quellcode der my_ext_edit_form_action.cpy:

    Danke, dass du dir die Codes verinnerlichst.

    Grüße Methusalix


    @edit: Die Aliasse wurden mit den richtigen Dateinamen versehen

  4. #4
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Von hieraus sieht es erstmal ok aus. Wobei ich mich frage:
    1.) wo wird die my_ext_edit_form_action.cpy aufgerufen?
    2.) verwendest du bewusst keinen Validator?
    3.) was steht in plonecvs_project_file_delete_action?

    Logisch würde mir folgender META-Eintrag vorschweben:
    Code:
    &#91;actions&#93;
    action.success = traverse_to&#58;string&#58;my_ext_edit_form_action
    PS: Mit BBC-code meinte ich genau die Tags die du in deinem Post verwendet hast. Hab mich bestimmt n bissel blöd ausgedrückt.

    Torty
    "Carpe Diem" powered by positiv Feelings

  5. #5
    Teeny
    Themenstarter

    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo Torty,

    Ich habe meinen ersten Post abgeändert, und die richtigen Dateinamen in Klammern angefügt.

    1.) wo wird die my_ext_edit_form_action.cpy aufgerufen?
    my_ext_edit_form_action.cpy wird doch in der Metadatei aufgerufen, oder habe ich da ein grundlegendes Verständnisproblem?
    Mein Kenntnisstand ist der: Sobald das Dokument übermittelt wird, wird action auf success gesetzt und damit diese Action durchgeführt, bis man einen anderen State zurückliefert.
    Code:
    action.success = traverse_to&#58;string&#58;plonecvs_project_file_delete_action
    Dies müßte dann der Aufruf für die ...._action.cpy sein, oder täusche ich mich da vollständig

    2.) verwendest du bewusst keinen Validator?
    Momentan ja, da ich zuerst den kompletten Use-Case initialisieren will und danach erst die Validatoren ergänzen will, um das Produkt konsistent zu machen.

    3.) was steht in plonecvs_project_file_delete_action?
    Nach Ergänzung der richtigen Namen bei den Codes, sollte dies nicht mehr vorkommen
    my_ext_form_action.cpy == plonecvs_project_file_delete_action


    Logisch würde mir folgender META-Eintrag vorschweben:
    Code:
    &#91;actions&#93; 
    action.success = traverse_to&#58;string&#58;my_ext_edit_form_action
    dies müßte nach Ergänzung der Namen so aussehen
    Code:
    &#91;actions&#93; 
    action.success = traverse_to&#58;string&#58;plonecvs_project_file_delete_action
    Und dies ist exakt der Code, der bei mir drinsteht. Da bin ich ja froh, dass ich logisch gedacht habe, und wir theoretisch auf das Gleiche gekommen sind

    Hier ist noch der Aufruf zur plonecvs_project_file_delete.pt:
    Vielleicht mache ich auch hier Fehler
    Code:
    <tr 
        tal&#58;define="files python&#58; project_fkt&#40;cvs_hostname, cvs_co_root, cvsexe, cvs_storage, username, unixname, ''&#41;" 
        tal&#58;repeat="row files">
      <td>
        <a tal&#58;attributes="href python&#58; row&#91;0&#93;"
           tal&#58;content="python&#58; row&#91;2&#93;" />
        <a tal&#58;attributes="
               href python&#58;here.absolute_url&#40;&#41;+'/plonecvs_project_file_delete?file='+row&#91;2&#93;+'&path='+row&#91;1&#93;"
           tal&#58;content="string&#58;'delete'" />
      </td>
    </tr>
    Ich erklär nochmal schnell den Produktaufbau und Use-Case:
    Ich habe eine Klasse PloneCvsProject. Diese Klasse besitzt ein View-Template. Aus dieser wird der direkt oben angeführte Code ausgeführt.
    Nach Betätigen des Links wird das neue Template (plonecvs_project_file_delete.pt) aufgerufen. -Da stellt sich mir die Frage, generell besitzt dieses Template ja keine Rechte für die klasse. Könnte der Fehler daher ruhen? Wenn ja, wie könnte ich diesem Template dann Rechte zuordnen, da es ansich kein eigenes Recht für dieses Template gibt?- Nach Abschicken der Daten aus plonecvs_project_file_delete soll die Metadatei aufgerufen werden und durch action.success die Datei plonecvs_project_file_delete_action.cpy
    Dies alles scheint er 100%ig zu machen. Nur erhalte ich den Quell-Code der plonecvs_project_file_delete.cpy zurück.

    Grüße
    Methusalix

  6. #6
    Teeny
    Themenstarter

    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo zusammen,

    ich habe das Problem gelöst, und ich muss sagen es war ein seeeehr grober Flüchtigkeitsfehler. Der mir auch lange nicht aufgefallen ist.
    Hier im Thread habe ich immer von "plonecvs_project_file_delete_action.cpy" gesprochen, allerdings bei mir auf dem Server folgenden Datei gehabt: "plonecvs_project_file_delete.cpt"

    Dadurch, dass er es als Template erkannt hat, ist es logisch wieso er nur den Quell-Code ausgeben hat. Alles andere funktioniert einwandfrei. Könnte man als HowTo aufnehmen Allerdings möchte ich niemanden zumuten, diesen "perfekten" Code zu übernehmen. Ich kann selbst auch noch nicht den Code optimieren, da ich selbst in der Materie neu bin

    Danke für die Hilfe!

    Grüße Methusalix

  7. #7
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hehe - nice!
    Aber sieh es mal von der positiven Seite: wieder was gelernt und du hast dich nun tiefergehend mit Formularen beschäftigt.
    Das ist doch auch was...

    Torty
    "Carpe Diem" powered by positiv Feelings

  8. #8
    Teeny
    Themenstarter

    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Aber sieh es mal von der positiven Seite
    muss ich so machen, sonst würd ich mir nur noch auf den Kopf hauen, und das würde mit der Zeit schmerzhaft
    wieder was gelernt und du hast dich nun tiefergehend mit Formularen beschäftigt
    das stimmt und der Fehler hat mir noch eine Möglichkeit augezeigt, die GUI zu optimieren das kann man ja bis n machen juhu was neues zum spielen^^

    grüße

Ähnliche Themen

  1. Eigene php.ini erstellen,upload_max_filesize v Host zu klein
    Von chessico im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 14.07.2007, 19:04
  2. Eigene Homepage erstellen, wie geht's?
    Von im Forum Computer - Internet Forum
    Antworten: 8
    Letzter Beitrag: 04.05.2007, 12:17
  3. Eigene Homepage erstellen
    Von Tim im Forum Link Tipps
    Antworten: 4
    Letzter Beitrag: 17.09.2005, 00:49
  4. Eigene Homepage erstellen
    Von Supper im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 17.08.2005, 20:16
  5. Eigene Bilder erstellen
    Von Sventsker im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 7
    Letzter Beitrag: 23.12.2004, 14:49

Stichworte

Berechtigungen

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