2011-01-05 27 views
0

我有一臺名爲「Kategorie」的電視,我想要一個指定資源(27)下的所有資源的列表由此電視分組。沒什麼特別的imho。這是我的方法:getResources-Snippet與指定resourceIDs不起作用

<?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) 

任何人都知道這是怎麼回事呢?還是有更好的方法來實現我的目標?

UPDATE

我已更新到最新版本的getResources。現在我沒有得到那個錯誤信息。但它不起作用。但「父母」選項也不起作用。

回答

1

我用$modx->getDocument($id)代替,它現在按預期工作。

foreach($ids as $rid) { 
    $doc = $modx->getDocument($rid); 
    var_dump($doc); 
    // real output trimmed 
    }