Ol
С нами с 18 мая 2018; Место в рейтинге пользователей: #1063vk 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;
Но, замечания приветствуются.