1

私はExpressionEngineに比較的慣れていないので、それを学んでいると、WordPressがしばらくの間持っていたものが欠けているのを目にしています。私にとって大きなものはショートコードです。これを使用して、CMSユーザーが他のコンテンツと一緒にさらに複雑なコンテンツを配置できるようにするためです。

プライベートベータ版のプラグインを除いて、EEではこれに相当するものは見当たりません。

最初のテストとして、コンテンツフィールドで区切られた文字列(例:#foo#)を使用してショートコードを偽造し、正規表現を使用してそれらを引き出し、EEのデータベースからコンテンツを取得できる関数に渡します。

これは2番目の質問に私をもたらします。それは、EEのAPIドキュメントを見ると、プログラムでチャネルエントリを取得する簡単な手段がないように見えるということです(WPの組み込みget_posts関数に似たものを考えてください)。

だから私の質問は:

a)これはできますか?b)もしそうなら、それにアプローチする私の方法は合理的ですか?それとも、私のアプローチに欠けている愚かな明白な何かがありますか?

繰り返しになりますが、ここでの私の主な目的は、コンテンツを管理している人々が、チャネルコンテンツに置き換えられるコードをコンテンツにドロップできるようにする手段を持つことです。

あなたが私に与えることができるアドバイスや助けをありがとう。

4

4 に答える 4

3

探している機能の簡単な例を次に示します。

1) Low Replaceをインストールすることから始めます。

2) gv_hello と gv_goodbye という名前の 2 つのグローバル変数を作成し、値をそれぞれ「Hello」と「Goodbye」に設定します。

3) このテキストをエントリの本文に入れます。

[こんにちはと言う]

お会いできてうれしいです。

[さよならを言う]

4) これをテンプレートに入れ、本文フィールドを Low Replace タグで囲みます。

{exp:low_replace find="[say_hello]|[say_goodbye]" replace="{gv_hello}|{gv_goodbye}" multiple="yes" } {body} {/exp:low_replace}

5) これをブラウザに出力する必要があります。

こんにちは

お会いできてうれしいです。

さようなら

明らかに、これは非常に単純な例です。本格的な HTML をグローバル変数に入れることができます。たとえば、これを使用して、編集できないが編集者が簡単にページにドロップできる複雑でインタラクティブなグラフィックをレンダリングしました。

残念ながら、解析順序の問題により、EE タグはグローバル変数内では機能しません。短いコード出力に EE タグが必要な場合は、グローバル変数の代わりに低変数アドオンを使用する必要があります。

于 2012-10-22T20:40:18.553 に答える
1

コメントから続く:

サポート/含めたい種類のショートコードの例はありますか?テキストフィールドまたはwysiwygフィールドからページレイアウトを制御することが道であるかどうか疑問があるためです。

編集者がレイアウトを調整したり、ページ上の追加の部分を表示/非表示にしたりして、チャネル内のいくつかの追加のフィールドにアクセスできるようにする場合は、(imo)はるかに管理しやすく将来性があります。たとえば、一部の選択フィールド、関係(またはプラヤ)フィールド、またはマトリックスを使用して、ページに含める/除外する部分、またはコンテンツをプルする別のチャネルのエントリを選択できます。

コメントで述べたように:いくつかの#foo#タグを別のフィールドの画像またはデータに置き換えたいかどうかは完全に理解しています(他の回答を参照してください:nsm-transplant、low_replace)。ただし、編集者にショートコードへのアクセスを許可してそれらを選択することは、ee-template-engineのee-templateコードを生成するためのtemplate-engineを作成するようなものです。

いくつかのカスタムフィールドを使用して、編集者が埋め込むパーツを選択できるようにする方が、はるかに管理しやすいと思います。

そうは言っても、textareasコンテンツからショートコードを解析するプラグインを作成してから、サポートしたい他のモジュールからデータをフェッチするために多くのプログラムを作成することができます。チャネルエントリの場合、objectiveHTMLによってチャネルデータライブラリから構築できます。https://github.com/objectivehtml/Channel-Data

于 2012-10-29T17:35:29.143 に答える
0

聞いたことがありますが、私も WP のショートコードが恋しいですthe_content()。EE の優れた柔軟性により、ブランケット ソリューションが少なくなります。

NSM Transplantを見ることをお勧めします。それはあなたの法案に合うはずです。

于 2012-07-30T22:26:11.587 に答える
0

There is also a plugin called Shortcode, which you can find here at Devot-ee A quote from the page:

Shortcode aims to allow for more dynamic use of content by authors and editors, allowing for injection of reusable bits of content or even whole pieces of functionality into any field in EE

于 2012-10-27T13:13:19.947 に答える