HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/mailing.wb-cloud.nl/private_html/admin/plugins/Common/Populator.php
<?php

namespace phpList\plugin\Common;

/**
 * CommonPlugin for phplist.
 *
 * This file is a part of CommonPlugin.
 *
 * @category  phplist
 *
 * @author    Duncan Cameron
 * @copyright 2016-2018 Duncan Cameron
 * @license   http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3
 */

/**
 * This class provides a facade allowing anonymous functions to be used in a IPopulator.
 */
class Populator implements IPopulator
{
    private $populateCallback;
    private $totalCallback;

    /**
     * Constructor.
     *
     * @param callable $populate
     * @param callable $total
     */
    public function __construct($populate, $total)
    {
        $this->populateCallback = $populate;
        $this->totalCallback = $total;
    }

    /**
     * Calls the populate callback.
     *
     * @param WebblerListing $w     the Webbler listing
     * @param int            $start the start index
     * @param int            $limit the number of items to display
     */
    public function populate(\WebblerListing $w, $start, $limit)
    {
        $callback = $this->populateCallback;
        $callback($w, $start, $limit);
    }

    /**
     * Calls the total callback.
     *
     * @return int the total number of items
     */
    public function total()
    {
        $callback = $this->totalCallback;

        return $callback();
    }
}