@4Geka
PHP

Как организовать вывод рандомно?

Здравствуйте, у меня имеются два чанка с блоками:
1) $lib.block.profile.3
2) $lib.block.profile.7

Нужно вывести их в шаблоне, только чтобы каждый раз при посещении страницы, они менялись местами.
У меня есть сниппет, который я вывожу в шаблоне, сейчас он выглядит так:

<?php

$output = 'lib.block.profile.7';
if ($modx->resource->id==54) {
  $output = 'lib.block.profile.3';
}

return $modx->getChunk($output);


Какое условие необходимо прописать для рандомного вывода?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 3
kimono
@kimono
Web developer
$output = random_int(0, 1) ? 'lib.block.profile.7' : 'lib.block.profile.3';
Ответ написан
Комментировать
i__dmitry
@i__dmitry
Weaving a web
// Список чанков оформляется в массив
$chunks = [
    'lib.block.profile.7',
    'lib.block.profile.3',
];
if ($modx->resource->id==54) {
    $output = $chunks[1]; // Не знаю, нужно ли вам это условие
} else {
    // Но если оно не выполняется, в $output кладется случайное значение чанка из массива
    $output = $chunks[rand(0, count($chunks) - 1)];
}
// Возвращается обработанный чанк
return $modx->getChunk($output);
Ответ написан
Комментировать
@granty
Нужно вывести их в шаблоне, только чтобы каждый раз при посещении страницы, они менялись местами

Если надо менять местами - рандом не совсем подходит. Надо садить посетителю куку, по которой будет понятно какой порядок блоков был при предыдущем посещении. Менять порядок блоков, и при выводе страницы снова садить куку уже с этим порядком блоков. Тогда блоки будут точно меняться местами.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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