2011-09-13 11 views
3

ploneに焼き付けられた連絡先フォームを私のサイトのmain_templateに取り込もうとしています。私はthis siteの "手に触れる"ナビゲーションボタンの機能をplone設定で動作させるためにこの作業を行っています。私のアプローチは、contact-info.cptを少し修正してマクロにし、そのマクロをmain_template.pt内で使うことでした。 contact-info.cptからtal:define="errors options/state/getErrors"行を削除しない限り、自分のサイトの任意のページを表示しようとするとLocationErrorが発生します。main_template.ptへのPlone連絡フォーム

Thisは、コード内にその行が表示されるエラーです。私がその行を削除すると、ページはレンダリングされ、実際には私が望むように正確に見えますが、フォームを送信するとエラーになります。 Thisはその状況のエラーです。私は基本的に両方の状況で困っていて、アドバイスを感謝します。

UPDATE(私が使用した溶液):

はちょうど私が実際にこれが動作するようになった方法でアップデートを投稿したかったです。 Martijn Pietersの情報は、それがなぜ機能していないのかを理解するのに非常に役立ちましたが、私は本当にそこから働く立場にいませんでした。私はjQueryに戻り、site_actionsと私のカスタムドロップダウンでこれを動作させました。私はフォームの内容を<metal:main>タグの間に、単純なID "contact-info"を付けたdivにラップしました。次に、メインテンプレートでは、単純なID「load-area」を持つジェネリックdivも入力しました。

<tal:block define="portal_url context/@@plone_portal_state/portal_url"> 
    jq('#load-area').load('<span tal:replace="portal_url"></span>/contact-info #contact-info'); 
    </tal:block> 

思想は、私は、このことは、後で他の誰かを助けることができる包み投稿する必要があります。パズルの最後のピースはcontact.js.ptであることを私contact.jsファイルを変更し、これらの3行を入力することでした。

+0

としてそれを表示することができ

http://svn.quintagroup.com/products/quintagroup.portlet.pfg/trunk/

を試してみてください、あなたはコンタクト情報をコピーしましたあなたのテーマに.cpt.metadataファイルもありますか? –

+0

はい、私は実際にあなたのチュートリアルをリソースとして使用して、どのファイルが連絡フォームに含まれているかを知っていました。 – keiththomps

+0

私はPloneが何らかの形でcontact-infoが制御されたページテンプレートではなく、通常のページテンプレートだと思うと思います。テンプレートのグローバル変数に "state"がありません。しかし、私はこれの理由を推測することはできません。 –

答えて

4

コントローラページテンプレート(.cpt)をそのまま使用することはできません。

まず、Controller Python Scriptは、TAL文を再利用するときには存在しない「環境」(options/state構造の1つです)の中にいくつかのパラメータが必要です。これらの部分に依存しないようにテンプレートを修正する必要があります。

第2に、これはHTMLフォームであり、フォームにはデータを送信するためのターゲットが必要です。コントローラーページテンプレートでは、これは.metadataファイルで制御されているため、ターゲットを明示的に設定する必要があります。

0

はPloneFormGenとの組み合わせで

かかわらず、サポートされていないようですあなたはコンタクトフォームを作成し、ポートレット

関連する問題