php MODX Snippet - 来自文件夹的随机图片[MODXСниппет - выводслучайногоизображенияиздиректории]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php MODX Snippet - 来自文件夹的随机图片[MODXСниппет - выводслучайногоизображенияиздиректории]相关的知识,希望对你有一定的参考价值。

<?php
    $img_dir = (isset($dir)) ? $dir : ('/assets/img/staff/'); //папка с картинками
    $img_ext = (isset($ext)) ? $ext : 'jpg';    //рассширение картинок
    $error_img = (isset($errimg)) ? $errimg : ('/assets/img/error.jpg');    //картинка, если картинок нет
    $mode = (isset($defimg)) ? $defimg : 1;
    $img_array = array(); // Массив для названий изображений

    $error = [
        'not_img' => 'В папке нет картинок с расширением - ' . $img_ext,
        'not_dir' => 'Переменная img_dir не содержит путь к папке',
    ];

    if (is_dir(MODX_BASE_PATH . $img_dir)) {  // Проверяем действительно ли переменная содержит путь к папке
        if ($od = opendir(MODX_BASE_PATH . $img_dir)) { // Открываем папку
            while ( ($file = readdir($od)) !== false ) { // Проверяем все файлы что находятся в папке
                if ( strtolower(strstr($file, ".")) === "." . $img_ext ) { // Выделяем с всех файлов только изображения.
                    array_push($img_array, $file); // Если файл действительно имеет расширение изображения добавляем его в массив
                }
            }
            if (empty($img_array)) {
                 $modx->log(MODX_LOG_LEVEL_ERROR, 'Snippet - random_foto: ' . $error['not_img']);
                 if ($mode) {
                    return '<img src="' . $error_img . '">';
                 } else {
                    return;
                 }
            }
            closedir($od); // Закрываем папку
        }
    } else {
        $modx->log(MODX_LOG_LEVEL_ERROR, 'Snippet - random_foto: ' . $error['not_dir']);
        if ($mode) {
            return '<img src="' . $error_img . '">';
         } else {
            return;
         }
    }

    $rd = rand(0, count($img_array)-1); // Получаем случайное число от 1 до количества записей в массиве
    return '<img src=' . $img_dir.$img_array[$rd] . '>'; // Выводим изображение с директории

以上是关于php MODX Snippet - 来自文件夹的随机图片[MODXСниппет - выводслучайногоизображенияиздиректории]的主要内容,如果未能解决你的问题,请参考以下文章

Modx Evo / Debian 9:无法打开文件(/assets/cache//sitePublishing.idx.php)

ModX/PHP:在连接到数据库的根目录中有我自己的文件吗?

ModX 两个域,一个站点

php MODX所有资源都改变了模板

php 读取时间MODX输出滤波器。

php 读取时间MODX输出滤波器。