0

これを説明するのはかなり難しいです...

modX Revolutionでは、テンプレートでシンボリックリンクの「シンボリックリンク」フィールドを取得して、スニペット(シンボリックリンクが指しているID)で使用しようとしています。

そのフィールドにマウスオーバーすると、提案が表示されますが[[*content]]、それを使用すると、シンボリックリンクでポイントしているページの実際のコンテンツが表示されます。

助言がありますか?ドキュメントは役に立ちません、そして私は今それを1時間グーグルで検索しています。

4

1 に答える 1

0

AFAIK、これはシンボリックリンクに期待される動作です。

テストサーバーで小さなテストを起動しました。結果は次のとおりです。

getResource(パッケージ管理からインストール)はシンボリックリンクを返しません:

6が10のIDを持つページを指すシンボリックリンクのIDである場合:

[[!getResources? &resources=6]]

戻ります:

Array (
    [id] => 6
    [type] => document
    [contentType] => text/html
    [pagetitle] => My Symlink
    [alias] => my-symlink
    [link_attributes] => 
    [published] => 1
    [parent] => 0
    [isfolder] => 
    [introtext] => 
    [content] => 
    [richtext] => 
    [template] => 1
    [menuindex] => 2
    [searchable] => 1
    [cacheable] => 1
    [createdby] => 1
    [createdon] => 2011-03-25 09:43:31
    [editedby] => 1
    [editedon] => 2011-03-25 09:57:30
    [deleted] => 
    [deletedon] => 0
    [deletedby] => 0
    [publishedon] => 2011-03-25 09:43:00
    [publishedby] => 1
    [menutitle] => 
)

コンテンツキーが空であることに注意してください。

MODxフォーラムのユーザーlkossisは、別のアプローチを提案しています。スニペットを使用して[[*content]]値を取得します。

$id= isset($id) && intval($id) ? intval($id) : $modx->resource->get('id');
$field = isset($field) ? $field : 'id';

$thisDocument=$modx->getDocument($id);
return $thisDocument[$field];

そしてあなたのテンプレートで:

[[!getDocumentField? &field=`content`]]

クレジットはMODxフォーラムのlkossisに送られます。 http://modxcms.com/forums/index.php/topic,61784.msg351101.html#msg351101

于 2011-03-25T08:35:00.897 に答える