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/public_html/admin/plugins/Common/DAO/AttributeTrait.php
<?php
/**
 * CommonPlugin for phplist.
 *
 * This file is a part of CommonPlugin.
 *
 * @category  phplist
 *
 * @author    Duncan Cameron
 * @copyright 2011-2018 Duncan Cameron
 * @license   http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3
 */

namespace phpList\plugin\Common\DAO;

use function phpList\plugin\Common\shortenText;

/**
 * Trait that provides access to the attribute table.
 */
trait AttributeTrait
{
    /**
     * Returns the fields for each attribute keyed by attribute id.
     * Can limit the number of attributes returned and the length of the attribute name.
     *
     * @return array attributes indexed by id
     */
    public function attributesById($attrNameLength = 0, $maxAttrs = 0)
    {
        $limit = $maxAttrs > 0 ? "LIMIT $maxAttrs" : '';
        $sql =
            "SELECT id, name, type, tablename
            FROM {$this->tables['attribute']}
            ORDER BY listorder
            $limit";
        $result = [];

        foreach ($this->dbCommand->queryAll($sql, 'id') as $id => $row) {
            $row['name'] = $this->transformAttributeName($row['name'], $attrNameLength);
            $result[$id] = $row;
        }

        return $result;
    }

    /**
     * Now just an alias for attributesById().
     */
    public function attributes(...$params)
    {
        return $this->attributesById(...$params);
    }

    /*
     * Returns the fields for one attribute
     *
     * @return array attribute fields
     */
    public function getAttribute($attr)
    {
        $sql =
            "SELECT id, name, type, tablename
            FROM {$this->tables['attribute']}
            WHERE id = $attr";
        $row = $this->dbCommand->queryRow($sql);
        $row['name'] = $this->transformAttributeName($row['name']);

        return $row;
    }

    private function transformAttributeName($name, $maxLength = 0)
    {
        $name = stripslashes($name);

        if ($maxLength > 0) {
            $name = shortenText($name, $maxLength);
        }

        return $name;
    }
}