問題タブ [template-tal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
418 参照

python - カメレオンの改行

ピラミッドフレームワークを使用して、大規模なWebアプリケーションを構築しました。

特に、このアプリケーションを使用すると、ユーザーはテキスト領域のフォームフィールドにテキストを入力できます。このテキストはデータベースに保存され、もちろん再度読み取って後で表示することができます。

コンテンツを表示するには、ChameleonTemplateEngineを使用しています。

これは、改行が正しく表示されない(まったく表示されない)ことを除いて、正常に機能します。これはおそらく、テキスト領域に入力された改行が、カメレオンを介して表示されたときにHTMLで新しい行を引き起こさないという事実によるものです。どうすればこれを修正できますか?

<br>デフォルトではChameleonはすべてのHTMLタグをエスケープするため、改行を-Tagに置き換えることは役に立ちません。この機能を無効にできることは承知していますが、クロスサイトスクリプティングを避けるために無効にしたくありません。

0 投票する
1 に答える
374 参照

caching - SQL錬金術 + ピラミッド、「リクエストキャッシュ」

ピラミッド、sqlalchemy、chameleon を使用して Web サイトを作成しています... view.py で sqlalchemy を送信します。

とカメレオン:

しかし、sqlalchemy "user.minions.count()" は 2 回実行されるため、モデルにこれを追加しました。

「.count()」の代わりに「NumFixedMinions」の使用を開始しましたが、これにより、サーバーを再起動するまで_NumFixedMintionsが定義されました。何か不足していますか? または、リクエスト中にのみ単純な「キャッシュ」を作成する方法はありますか..

追伸:これは実際のコードではありません。ウェブサイトがモジュール化されているため、いつ何かが 2 回使用されるかを知るのは困難です。

0 投票する
1 に答える
391 参照

plone - Plone 4ZopeDisplay特定のフォルダーの内容TALES

問題

検索で0の結果が返された場合に、特定のフォルダーのコンテンツ全体(画像を含む)を検索ページに表示したいという顧客がいます。フォルダはmysite.com/imagesにあります

設定:

テスト環境として、次の構造の別のサイトをセットアップしました。

テンプレートを変更してfolder_summar_view、次のコードを含めました(ビューを変更して、ビューを細かく分割して、希望どおりに実行できるかどうかを確認することにしました)。

私が見るもの:

私が試したこととさらなる説明

私は、画像フォルダ内の「オブジェクト」の頭脳を返すときに、その下のステートメントcontext/images/getFolderContentsを使用して各「オブジェクト」を反復処理できると想定していました。tal:repeat次に、それらを私のページに表示します。

次のコードを使用する場合:

私の出力は、上記の「表示内容」セクションと非常によく似ています。

ここで、[...]は別の番号です

私はいくつかの調査を行い、Plone Themingの本を読んでいますが、私のコードは169ページtal:repeatの例に似ています。唯一の違いは、脳でこれを使用していないことです(私が知る限り)。

私はこれを試しましたが、同じ結果が得られました(なぜそうしないと思ったのかわかりません):

戻ってきた脳を「中に入れる」ことができないようです。私がオンラインで探したものはすべてそれほど役に立ちません。またatct_album_viewfolder_listingsテンプレートを調べて、役に立つことを知りました。-何かを見落としている、または見落としていると思います。

私が最初に出くわしたリンクはこれでしたが、それ以来、似ているものの、私がやろうとしていたこととはまったく違うので、先に進みました。

彼らのチャットルームにいるPloneの人たちは親切にも私にcontext/images/getFolderContents声明をくれました。私は再び助けを求めずに押し込もうとしましたが、壁にぶつかったようです。

私が試した他のもの

このリンクをインスピレーションとして使用して、次のことを試してみることにしました。

しかし、テンプレートを表示しようとするとエラーが発生します。エラーは「getFolderContentsブレインには属性getURLがありません」の行に沿って読み取られます-image/Titleフォルダの名前が表示されますが、それは実際には必要なものではありません。

私もこのリンクを見つけましたが、デフォルトの検索を使用しているので、通常のPloneサイト検索に悪影響を与える可能性があるため、Pythonスクリプトを編集する必要はありません。また、このリンクでは、より多くのPythonスクリプトを使用しているようです。-この点を拡張するために、これらのスクリプトがページテンプレートと「リンク」する方法(互いに「話す」ことをどのように知っているか)がわかりません。

結論

結論として、自分のサイトのルートにある「images」という名前のフォルダーに含まれるすべての画像を表示する必要があります。を使用して、返された脳のコンテンツにアクセスできませんgetFolderContents。そして、「画像」フォルダのタイトルまたは脳の識別()を表示する以外に<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>、私は運がありませんでした。どんな助けやアイデアも歓迎します!

0 投票する
1 に答える
260 参照

python - Chameleon で Code ブロックを使用すると builtins.NameError が発生する

このスニペットが機能することを期待していました:

代わりに次のように失敗します。

背景として、アイデアは毎年年を更新する必要を避けることです:

0 投票する
1 に答える
2073 参照

macros - ピラミッド / ZPT (カメレオン) でマクロを使用する方法

ピラミッド+ZPTエンジン(Chameleon)でマクロを使いたい。

ドキュメントには、「1 つのページ テンプレートで複数のマクロに対応できる」と記載されています。 http://chameleon.readthedocs.org/en/latest/reference.html#macros-metal

したがって、ファイルを定義しました macros.pt

main_template.ptスロットを定義するすべての html 要素を含むグローバル テンプレートcontent

スロットを埋めるためにprogress.pt使用する私のビューのテンプレート:main_template.pt

use-macro="main_template.pt"これまでのところ、Zope のように Chameleon がテンプレートを自動的にロードしないため、ただ言うことはできないことを痛感しました。load:したがって、前にスニペットを追加する必要がありました。

に来ていuse-macro="step-0"ます。これにより、 NameError が発生しstep-0ます。macros.ptのようなものをプリロードしようとしました<tal:block tal:define="compile load: macros.pt" />が、これは役に立ちませんでした。

マクロ サマリー ファイルに集められたマクロを使用するにはどうすればよいですか?

0 投票する
1 に答える
450 参照

html - Zope (ZPT) 重複タグ

Zope Page Template で TALを使用してオープンdivタグ条件を作成しdiv、別の条件でタグを閉じようとしましたが、タグをオーバーラップさせることはできません。

これが私のコードです:

重要な部分は次のとおりです。

そして、ここにエラーがあります。

Pythonスクリプトで試しましたが、うまくいきませんでした。

close_divスクリプトを使用:

&lt;/div&gt;代わりに返します</div>

なぜ私がそれをしているのだろうか。表示する必要があるツリー構造があります。私は(私が思うに)再帰的にそれを行うことができないので、LIFO リストを使用してエミュレートしようとします。そしてcurrent、私の現在のノードです。

私はこれを達成しようとします(ノードは辞書の辞書です...ツリーとして使用されます):

どんな助けや提案も大歓迎です

0 投票する
1 に答える
1438 参照

plone - 別の tal:repeat 関数で tal:repeat のインデックスを取得する

ご覧のとおりProcedur_HeadersDiagnosesとの 3 つのリストがありList_Procedurます。 Procedur_headersテーブルのヘッダーを Diagnoses提供し、プロシージャの特定の ID を提供し、 List_Procedur必要なすべてのデータが含まれているリスト (クエリ) のリストです。今私がしたいことは、診断ページのインデックスを

テーブルでデータを取得できること。私はすでにインデックスを取得できます:

しかし、インデックスの場所でこれを行うことはできません。誰かがこのようなものに対する解決策を持っていますか?

0 投票する
1 に答える
284 参照

ajax - zpt と ajax を更新として使用してテーブルを動的に埋める

数秒ごとにテーブルを更新したいピラミッドで webproject を作成しています。私はすでに ajax を使用することに決めましたが、何かに行き詰まっています。

クライアント側では、次のコードを使用しています。

ピラミッド側:

ここで、tal:repeat ステートメントを使用して、このデータを zpt でテーブル内に配置したいと考えています。ページの読み込み時にこのデータをテーブルに配置する方法は知っていますが、これを ajax と組み合わせる方法はわかりません。

anny1 でこの問題を解決できますか? よろしくお願いします。

0 投票する
1 に答える
562 参照

plone - Plone の個人設定フィールドの内容を取得する Python スクリプト

Plone 4 サイトにカスタム登録と @@personal-preferences ページがあります。ソーシャル ネットワーキング リンクを貼り付けるための領域や、会社での地位など、いくつかの追加フィールドがあります。また、日付も表示されます。サイトに登録しました。(私はこれを達成するためにcollective.examples.userdataを使用しました)

以下の定義を使用して、ページ テンプレートでこれらのフィールドを正常に参照できます。

python:user.getProperty('regday')の最後の定義を取得し、サイトに登録されている期間を表示するためにいくつかの計算を行うPython スクリプトを作成しようとしています。

私のスクリプトは memberLength を呼び出しており、カスタム フォルダーにあります。次のように呼び出しています。

私は多くのことを試しましたが、常にトレースバックエラーが発生するため、Pythonにそれらのフィールドの詳細を取得するように指示する方法がよくわかりません..フィールド情報):

Python スクリプト:

ただし、現在の基本的なユーザー情報 (ユーザー名、説明など) の辞書が返されますが、そこには何も役に立ちません。この dict にカスタム フィールドが表示されることはありません。

上記は「見つかりませんでした」というメッセージを返すため、それも機能しません。以下のスクリプトでも同じことが言えます。

私はこれを試しました:

ただし、AttributeError: userトレースバック メッセージが表示されました。

この tal ステートメントも試しcontext/userRegDay/membershipLegthましたが、エラーが発生したため、Python の代替手段を試しましたcontext.userRegDay.membershipLegth()が、機能しませんでした。

上記の私のフィールドはすべて、ZMIPropertiesの私のページのタブにあります。portal_memberdata

Google はここではあまり役に立ちません。私が見つけられるのはこのページだけですが、私が知る限り、私がやろうとしていることは実際にはカバーされていません。

UserRegDay 変数を Python スクリプトに渡す方法を誰か教えてもらえますか? それとも、私はこれについてすべて間違っていますか?

私の試みを読んだ結果として血圧が上昇する可能性がある、経験豊富な Plone の人々に前もってお詫び申し上げます。

どうもありがとう。