Как вывести данные в loadTpl?

index.php имееться такой код
if (@$config['main']['last_buyers'] === true && $pageData['hideLastBuyers'] === false) 
{
    $lastBuyerList = false;
    $buyersQuery = $link->query("SELECT `username`, `data`, `time` FROM `AD_PAYMENTS` WHERE `status` = '1' ORDER BY `time` DESC LIMIT 6");

    while ($buyer = $buyersQuery->fetch()) 
{
        $goods_name = json_decode($buyer['data'], true)['goods_name'];
        $lastBuyerList .= loadTpl("/last_buyers/buyer.html", [
            'buyer' => $buyer,
            'name' => $goods_name,
        ]);
    }

    if (empty($lastBuyerList)) {
        $data = loadTpl("/last_buyers/none.html");
    } else {
        $data = $lastBuyerList;
    }
    $pageData['lastBuyers'] = loadTpl("/last_buyers/parent.html", $data);
}


Дублирую код для вывода новостей из sql базы, но с другими именами переменных ничего не выходит, подскажите что я не так делаю или может я что-то упустил?

в buyers.html шаблоны вот такие переменные
<img src="face.php/?name=<?=$data['buyer']['username'];?>" alt="<?=$data['buyer']['username'];?>" class="img-circle" data-toggle="tooltip" data-placement="top" title="<?=$data['name'] . date(' d.m в H:i', $data['buyer']['time']);?>">
    <p><?=$data['buyer']['username'];?></p>


Вот как я сделал но 0 результат
if (@$config['main']['last_news'] === true && $pageData['hideLastNews'] === false) {
    $lastNewsList = false;
    $NewsQuery = $link->query("SELECT `id`, `name`, `title`, `content`, `created_at` FROM `news` ORDER BY created_at DESC LIMIT 4");

    while ($buyer = $NewsQuery->fetch()) {
        $lastNewsList .= loadTpl("/last_news/news.html");
    }

    if (empty($lastNewsList)) {
        $data = loadTpl("/last_news/none.html");
    } else {
        $data = $lastNewsList;
    }
    $pageData['lastNews'] = loadTpl("/last_news/parent.html", $data);
}
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Скорее всего вызов шаблона при переборе строк будет такой:
while ($news = $NewsQuery->fetch())
{
   $lastNewsList .= loadTpl("/last_news/news.html", 
[
  "created_at" => $news['created_at'],
  "title" => $news['title'],
  "content" => $news['content']
]);
}

... или даже еще проще:
while ($news = $NewsQuery->fetch())
{
   $lastNewsList .= loadTpl("/last_news/news.html",  $news);
}

Как поведет себя шаблон в этой строчке -
$pageData['lastNews'] = loadTpl("/last_news/parent.html", $data);

Без кода parent.html - не ясно.
Как обрабатывается $pageData при наличии ключа 'lastNews', тоже нужно поинтересоваться, а надо ли намерено где-то еще указывать 'lastNews', чтобы отрисовать этот контент.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы