2013-03-17 2 views

ответ

3

Если вам нужно получить значение переменной шаблона, вы можете использовать этот

$id = $modx->resource->get('id');//ID of current resource 
$name = $modx->resource->get('pagetitle');//title of current resource 
$val = $modx->resource->getTVValue('name_of_tv');//get tv value of current resource by name 
$val = $modx->resource->getTVValue($tv_id);//get tv value of current resource by ID 

Чтобы получить IDX из migx телевидения вам нужно что-то вроде этого -

<?php 
$docid = $modx->resource->get('id'); // id of curent resource 
$tvname = 'name_of_your_tv'; // change to yours 
$tv = $modx->getObject('modTemplateVar', array('name' => $tvname)); 
$outputvalue = $tv->renderOutput($docid); 
$items = $modx->fromJSON($outputvalue); 
$idx = 0; // initialize idx 
$output = array(); 
foreach ($items as $key => $item) { 
    $idx++; // increase idx 
    $output[] = print_r($item,1); // test output 
} 
$outputSeparator = "\n"; 
$o = implode($outputSeparator, $output); // implode output 
return $o; 

Взятые из migx SNIPPET https://github.com/Bruno17/MIGX/blob/master/core/components/migx/elements/snippets/snippet.getImagelist.php

+0

Спасибо, [[+ IDX]] является идентификатор migx элемента, как я могу получить это значение? – user1758935

+0

Проверьте обновленный ответ. – Vasis

0

так как вы, вероятно, называете свой фрагмент из рассматриваемого ресурса [вы?], Вы можете просто передать idx в фрагмент ...

[[!callMySnippet? &idx=[[+idx]] ]] 

затем в вашем фрагменте кода:

$output = ''; 
$idx = $scriptProperties['idx']; 

if ($idx==1) { 
$output = "0"; 
} 

return $output; 
+1

'([[+ idx]] == 1)' В фрагментах modx используется чистый php, и это вызывает ошибку. Может быть, вы хотели написать '($ idx == 1)'? – Vasis

+0

@vasis - right - Я просто скопировал это из OP, не задумываясь. отредактировано и исправлено. –

Смежные вопросы