0

「Kategorie」という名前のテレビがあり、このテレビでグループ化された特定のリソース(27)の下にあるすべてのリソースのリストが必要です。特別な私見はありません。これが私のアプローチです:

<?php
$resource_ids = $modx->getTree(27,1); # => 27 is the Container with the desired resources
# We need the 'Kategorie'-TV of the resources
$cat = $modx->getObject('modTemplateVar', array('name' => 'Kategorie'));

# Map Resources to Category
$resources_by_cat = array();
foreach ($resource_ids as $id) { 
  $resources_by_cat[$cat->getValue($id)][] = $id; 
}

# Iterate over categories and output the resources
foreach ($resources_by_cat as $cat => $ids) {
  $joined_ids = join(",",$ids); # => eg "33,34,56"
  print "<h2>".$cat."</h2>";
  print '<table class="references">';
  print '
    <tr>
      <th class="title">Titel</th>
      <th class="author">Von</th>
    </tr>
    ';
  print $modx->runSnippet('getResources', array(
    "resources" => $joined_ids,
    "includeTVs" => "1",
    "tpl" => "referenceRow"
  ));
  print '</table>';
}
?>

…これは私には問題ないように見えますが、このエラーを私にスローします。

[2011-01-05 12:26:24] (ERROR @ /index.php) Error 42000 executing statement: Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,2,15,18,27,23,30,3,4,22,24,26,47,5,6,7,8,9,10,11,12,14,13,17,16,19,20,49,50,21' at line 1 )

誰もがここで何が起こっているのか知っていますか?それとも、私の目標に対するより良いアプローチはありますか?

アップデート

getResourcesの最新バージョンに更新しました。今、私はそのエラーメッセージを受け取りません。しかし、それは機能しません。ただし、「親」オプションも機能しません。

4

1 に答える 1

1

$modx->getDocument($id)代わりに使用しましたが、期待どおりに動作するようになりました。

  foreach($ids as $rid) {
    $doc = $modx->getDocument($rid);
    var_dump($doc);
    // real output trimmed
  }
于 2011-01-05T15:22:12.467 に答える