Ol

Ol

С нами с 18 мая 2018; Место в рейтинге пользователей: #1063

vk api wall.get

Борюсь с выводом со стены фото + текста. На просторах нашел пару скриптов, «доработал» под себя. Выводится на странице только одна новость… Параметр limit не срабатывает. Дайте пинок пенсионеру в нужном направлении )))
Сам сниппет:
<?php
$oid = $modx->getOption('oid',$scriptProperties,'0');
$limit=$modx->getOption('limit',$scriptProperties,'2');
$token = "токен";
$class = $modx->getOption('class',$scriptProperties,'');
$tpl = $modx->getOption('tpl',$scriptProperties,'');
// Получаем информацию, подставив все данные выше.
$api = file_get_contents("https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id={$oid}&count={$limit}&v=5.58&access_token={$token}");
$wall = json_decode($api);
$wall = $wall->response->items;
$pdo = $modx->getService('pdoTools');
for ($i = 0; $i < count($wall); $i++) {
    $text = $wall[$i]->text;
    $header = mb_strimwidth($text,0, 50, "...");
    $time_head = date("Y", $wall[$i]->date);;
    $time = date("Y-m-d", $wall[$i]->date);
    $photo = $wall[$i]->attachments[0]->photo->photo_604;
    $res = array('text'=>$text, 'header'=>$header, 'time_head'=>$time_head, 'time'=>$time, 'photo'=>$photo);
    $res .= $pdo->getChunk($tpl, $res);
}
return $res;
Чанк tpl_vkNews с разметкой html кода и плейсхолдерами.

Вызов сниппета в шаблоне:
[[getVKwall?
		&oid=`id пользователя`
		&limit=`3`
		&tpl=`tpl_vkNews`
		]]
UPD Проблема решилась изменением вывода результата в сниппете (правильный вариант):
<?php
$oid = $modx->getOption('oid',$scriptProperties,'0');
$limit=$modx->getOption('limit',$scriptProperties,'2');
$token = "токен";
$class = $modx->getOption('class',$scriptProperties,'');
$tpl = $modx->getOption('tpl',$scriptProperties,'');
// Получаем информацию, подставив все данные выше.
$api = file_get_contents("https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id={$oid}&count={$limit}&v=5.58&access_token={$token}");
$wall = json_decode($api);
$wall = $wall->response->items;
$pdo = $modx->getService('pdoTools');
for ($i = 0; $i < count($wall); $i++) {
    $text = $wall[$i]->text;
    $header = mb_strimwidth($text,0, 50, "...");
    $time_head = date("Y", $wall[$i]->date);;
    $time = date("Y-m-d", $wall[$i]->date);
    $photo = $wall[$i]->attachments[0]->photo->photo_604;
    $res .= $pdo->getChunk($tpl, array('text'=>$text, 'header'=>$header, 'time_head'=>$time_head, 'time'=>$time, 'photo'=>$photo));
}
return $res;
Но, замечания приветствуются.
Ol
Ol
26 мая 2018, 09:29
modx.pro
1 868
+1