[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.222.110.240: ~ $
<?php

//######################################################################
// Builds the global array DBstruct out of two subarrays. DBStruct holds the column definition for the database
// tables. A table definition must be in either $DBstructuser or $DBstructphplist. The global array 'tables' will be
// constructed out of DBStruct and will hold only the table names. Plugins can have their own DBStructs and these
// will be added to $DBstructphplist.
//######################################################################

if (!defined('PHPLISTINIT')) {
    die();
} //# avoid direct access

//# don't remove spaces
if (!defined('STRUCTUREVERSION')) {
    define('STRUCTUREVERSION',"3.6.14");
}

$DBstructuser = array( // order of tables is essential for smooth upgrade
    'attribute' => array( // attributes of a user or a message
        'id'            => array('integer not null primary key auto_increment', 'ID'),
        'name'          => array('varchar(255) not null', 'Name'),
        'type'          => array('varchar(30)', 'Type of attribute'),
        'listorder'     => array('integer', 'order of listing'),
        'default_value' => array('varchar(255)', 'Default value'),
        'required'      => array('tinyint', 'Required for subscriber to fill out'),
        'tablename'     => array('varchar(255)', 'Name of table with values'),
        'index_1'       => array('nameindex (name)', ''),
        'index_2'       => array('idnameindex (id,name)', ''),
    ),
    'user_attribute' => array(
        'attributeid' => array('integer not null', 'attribute'),
        'userid'      => array('integer not null', 'subscriber id'),
        'value'       => array('text', 'Value of this attribute for this subscriber'),
        'primary key' => array('(attributeid,userid)', 'PKey'),
        'index_1'     => array('userindex (userid)', ''),
        'index_2'     => array('attindex (attributeid)', ''),
        //    "index_3" => array("userattid (attributeid,userid)",""), ## already Pk
        'index_4' => array('attuserid (userid,attributeid)', ''),
    ),
    'user' => array( // a user in the system
        'id'              => array('integer not null primary key auto_increment', 'sysexp:ID'),
        'email'           => array('varchar(255) not null', 'Email'),
        'confirmed'       => array('tinyint default 0', 'sysexp:Is this subscriber confirmed'),
        'blacklisted'     => array('tinyint default 0', 'sysexp:Is this subscriber blacklisted'),
        'optedin'         => array('tinyint default 0', 'sysexp:Did this subscriber manually confirm'),
        'bouncecount'     => array('integer default 0', 'sysexp:Number of bounces'),
        'entered'         => array('datetime', 'sysexp:Entered'),
        'modified'        => array('timestamp', 'sysexp:Last Modified'),
        'uniqid'          => array('varchar(255)', 'sysexp:Unique ID'),
        'uuid'            => array('varchar(36) default ""', 'sys:UUID'),
        'htmlemail'       => array('tinyint default 0', 'Send this subscriber HTML emails'),
        'subscribepage'   => array('integer', 'sys:Which page was used to subscribe'),
        'rssfrequency'    => array('varchar(100)', 'RSS Frequency'), //# no longer used, but keep to avoid Sql Errors
        'password'        => array('varchar(255)', 'sys:Password'),
        'passwordchanged' => array('date', 'sys:Last time password was changed'),
        'disabled'        => array('tinyint default 0', 'Is this account disabled?'),
        'extradata'       => array('text', 'Additional data'),
        'foreignkey'      => array('varchar(100)', 'Foreign Key'),
        'unique_1'        => array(' email (email)', 'sys:unique'),
        'index_1'         => array('foreignkey (foreignkey)', 'sys:Foreign Key'),
        'index_2'         => array('idxuniqid (uniqid)', 'sys:index'),
        //    "index_3" => array("emailidx (email)","sys:index"),
        'index_4' => array('enteredindex (entered)', 'sys:index'),
        'index_5' => array('confidx (confirmed)', 'sys:index'),
        'index_6' => array('blidx (blacklisted)', 'sys:index'),
        'index_7' => array('optidx (optedin)', 'sys:index'),
        'index_8' => array('uuididx (uuid)', 'sys:index'),
    ),
    'user_history' => array(
        'id'         => array('integer not null primary key auto_increment', 'sys:ID'),
        'userid'     => array('integer not null', ''),
        'ip'         => array('varchar(255)', ''),
        'date'       => array('datetime', ''),
        'summary'    => array('varchar(255)', 'History Summary'),
        'detail'     => array('text', 'History Detail'),
        'systeminfo' => array('text', 'System Information'),
        'index_1'    => array('userididx (userid)', 'sys:index'),
        'index_2'    => array('dateidx (date)', 'sys:index'),
    ),
);

$DBstructphplist = array(
    'list' => array( // a list in the system
        'id'          => array('integer not null primary key auto_increment', 'ID'),
        'name'        => array('varchar(255) not null', 'Name'),
        'description' => array('Text', 'Description'),
        'entered'     => array('datetime', 'Entered'),
        'listorder'   => array('integer', 'Order of listing'),
        'prefix'      => array('varchar(10)', 'Subject prefix'),
        'rssfeed'     => array('varchar(255)', 'Rss Feed'),
        'modified'    => array('timestamp', 'Modified'),
        'active'      => array('tinyint', 'Active'),
        'owner'       => array('integer', 'Admin who is owner of this list'),
        'category'    => array('varchar(255) default ""', 'List category'),
        'index_1'     => array('nameidx (name)', ''),
        'index_2'     => array('listorderidx (listorder)', ''),
    ),
    //"listrss" => array( # rss details for a RSS source of a list, obsolete...
    //"listid" => array("integer not null","List ID"),
    //"type" => array("varchar(255) not null","Type of this entry"),
    //"entered" => array("datetime not null",""),
    //"info" => array("text",""),
    //"index_1" => array("listididx (listid)",""),
    //"index_2" => array("enteredidx (entered)",""),
    //),
    'listuser' => array( // user subscription to a list
        'userid'      => array('integer not null', 'Subscriber ID'),
        'listid'      => array('integer not null', 'List ID'),
        'entered'     => array('datetime', 'Entered'),
        'modified'    => array('timestamp', 'Modified'),
        'primary key' => array('(userid,listid)', 'Primary Key'),
        'index_1'     => array('userenteredidx (userid,entered)', ''),
        'index_2'     => array('userlistenteredidx (userid,listid,entered)', ''),
        'index_3'     => array('useridx (userid)', ''),
        'index_4'     => array('listidx (listid)', ''),
    ),
    'message' => array( // a message
        'id'              => array('integer not null primary key auto_increment', 'ID'),
        'uuid'            => array('varchar(36) default ""', 'UUID'),
        'subject'         => array("varchar(255) not null default '(no subject)'", 'subject'),
        'fromfield'       => array("varchar(255) not null default ''", 'from'),
        'tofield'         => array("varchar(255) not null default ''", 'tofield'),
        'replyto'         => array("varchar(255) not null default ''", 'reply-to'),
        'message'         => array('longtext', 'Message'),
        'textmessage'     => array('longtext', 'Text version of Message'),
        'footer'          => array('text', 'Footer for a message'),
        'entered'         => array('datetime', 'Entered'),
        'modified'        => array('timestamp', 'Modified'),
        'embargo'         => array('datetime', 'Time to send message'),
        'repeatinterval'  => array('integer default 0', 'Number of seconds to repeat the message'),
        'repeatuntil'     => array('datetime', 'Final time to stop repetition'),
        'requeueinterval' => array('integer default 0', 'Number of seconds to requeue the message'),
        'requeueuntil'    => array('datetime', 'Final time to stop requeueing'),
//        "status" => array("enum('submitted','inprocess','sent','cancelled','prepared','draft')","Status"),
        'status'        => array('varchar(255)', 'Status'),
        'userselection' => array('text', 'query to select the subscribers for this message'),
        'sent'          => array('datetime', 'sent'),
        'htmlformatted' => array('tinyint default 0', 'Is this message HTML formatted'),
        'sendformat'    => array('varchar(20)', 'Format to send this message in'),
        'template'      => array('integer', 'Template to use'),
        'processed'     => array('integer unsigned default 0', 'Number Processed'),
        'astext'        => array('integer default 0', 'Sent as text'),
        'ashtml'        => array('integer default 0', 'Sent as HTML'),
        'astextandhtml' => array('integer default 0', 'Sent as Text and HTML'), // obsolete
        'aspdf'         => array('integer default 0', 'Sent as PDF'),
        'astextandpdf'  => array('integer default 0', 'Sent as Text and PDF'),
        'viewed'        => array('integer default 0', 'Was the message viewed'),
        'bouncecount'   => array('integer default 0', 'How many bounces on this message'),
        'sendstart'     => array('datetime', 'When did sending of this message start'),
        'rsstemplate'   => array('varchar(100)', 'if used as a RSS template, what frequency'),
        'owner'         => array('integer', 'Admin who is owner'),
        'index_1'       => array('uuididx (uuid)', 'sys:index'),
    ),
    'messagedata' => array(
        'name'        => array('varchar(100) not null', 'Name of field'),
        'id'          => array('integer not null', 'Message ID'),
        'data'        => array('longtext', 'Data'),
        'primary key' => array('(name,id)', ''),
    ),
    'listmessage' => array( // linking messages to a list
        'id'        => array('integer not null primary key auto_increment', 'ID'),
        'messageid' => array('integer not null', 'Message ID'),
        'listid'    => array('integer not null', 'List ID'),
        'entered'   => array('datetime', 'Entered'),
        'modified'  => array('timestamp', 'Modified'),
        'unique_1'  => array('(messageid,listid)', ''),
        'index_1'   => array('listmessageidx (listid,messageid)', ''),
    ),
    'user_blacklist' => array(
        'email'   => array('varchar(255) not null unique', 'Email'),
        'added'   => array('datetime', 'When added to blacklist'),
        'index_1' => array('emailidx (email)', ''),
    ),
    'user_blacklist_data' => array(
        'email'   => array('varchar(150) not null unique', 'Email'),
        'name'    => array('varchar(25) not null', 'Name of Dataitem'),
        'data'    => array('text', ''),
        'index_1' => array('emailidx (email)', ''),
        'index_2' => array('emailnameidx (email,name)', ''),
    ),

    'message_attachment' => array( // attachments for a message
        'id'           => array('integer not null primary key auto_increment', 'ID'),
        'messageid'    => array('integer not null', 'Message ID'),
        'attachmentid' => array('integer not null', 'Attachment ID'),
        'index_1'      => array('messageidx (messageid)', ''),
        'index_2'      => array('messageattidx (messageid,attachmentid)', ''),
    ),
    'attachment' => array(
        'id'          => array('integer not null primary key auto_increment', 'ID'),
        'filename'    => array('varchar(255)', 'file'),
        'remotefile'  => array('varchar(255)', 'The original location on the uploader machine'),
        'mimetype'    => array('varchar(255)', 'The type of attachment'),
        'description' => array('text', 'Description'),
        'size'        => array('integer', 'Size of the file'),
    ),
    'usermessage' => array( // linking messages to a user
        //"id" => array("integer not null primary key auto_increment","ID"),
        'messageid'   => array('integer not null', 'Message ID'),
        'userid'      => array('integer not null', 'subscriber ID'),
        'entered'     => array('datetime not null', 'Entered'),
        'viewed'      => array('datetime', 'When viewed'),
        'status'      => array('varchar(255)', 'Status of message'),
        'primary key' => array('(userid,messageid)', 'Primary key'),
        'index_1'     => array('messageidindex (messageid)', ''),
        'index_2'     => array('useridindex (userid)', ''),
        'index_3'     => array('enteredindex (entered)', ''),
        'index_4'     => array('statusidx (status)', ''),
        'index_5'     => array('viewedidx (viewed)', ''),
    ),
    'user_message_view' => array( // allow recording each view
        "id"          => array("integer not null primary key auto_increment","ID"),
        'messageid'   => array('integer not null', 'Message ID'),
        'userid'      => array('integer not null', 'subscriber ID'),
        'viewed'      => array('datetime', 'When viewed'),
        'ip'          => array('varchar(255)','IP'),
        'data'        => array('longtext',''),
        'index_1'     => array('usermsgidx (userid,messageid)', ''),
        'index_2'     => array('msgidx (messageid)', ''),
        'index_3'     => array('useridx (userid)', ''),
    ),
    'sendprocess' => array( // keep track of running send processes to avoid to many running concurrently
        'id'        => array('integer not null primary key auto_increment', 'ID'),
        'started'   => array('datetime', 'Start Time'),
        'modified'  => array('timestamp', 'Modified'),
        'alive'     => array('integer default 1', 'Is this process still alive?'),
        'ipaddress' => array('varchar(50)', 'IP Address of who started it'),
        'page'      => array('varchar(100)', 'The page that this process runs in'),
    ),
    'template' => array(
        'id'        => array('integer not null primary key auto_increment', 'ID'),
        'title'     => array('varchar(255) not null', 'Title'),
        'template'  => array('longblob', 'The template'),
        'template_text' => array('longblob', 'The template (text version)'),
        'listorder' => array('integer', ''),
        'unique_1'  => array('(title)', ''),
    ),
    'templateimage' => array(
        'id'       => array('integer not null primary key auto_increment', 'ID'),
        'template' => array('integer not null default 0', 'id of template'),
        'mimetype' => array('varchar(100)', 'Mime Type'),
        'filename' => array('varchar(100)', 'Filename'),
        'data'     => array('longblob', 'The image'),
        'width'    => array('integer', ''),
        'height'   => array('integer', ''),
        'index_1'  => array('templateidx (template)', ''),
    ),
    'bounce' => array(
        'id'      => array('integer not null primary key auto_increment', 'ID'),
        'date'    => array('datetime', 'Date received'),
        'header'  => array('text', 'Header of bounce'),
        'data'    => array('mediumblob', 'The bounce'),
        'status'  => array('varchar(255)', 'Status of this bounce'),
        'comment' => array('text', 'System Comment'),
        'index_1' => array('dateindex (date)', ''),
        'index_2' => array('statusidx (status(20))', ''),
    ),
    'user_message_bounce' => array( // bounce. We can have one usermessage bounce multiple times
        'id'      => array('integer not null primary key auto_increment', 'ID'),
        'user'    => array('integer not null', 'subscriber ID'),
        'message' => array('integer not null', 'Message ID'),
        'bounce'  => array('integer not null', 'Bounce ID'),
        'time'    => array('timestamp', 'When did it bounce'),
        'index_1' => array('umbindex (user,message,bounce)', 'index'),
        'index_2' => array('useridx (user)', 'index'),
        'index_3' => array('msgidx (message)', 'index'),
        'index_4' => array('bounceidx (bounce)', 'index'),
    ),
    'user_message_forward' => array(
        'id'      => array('integer not null primary key auto_increment', 'ID'),
        'user'    => array('integer not null', 'subscriber ID'),
        'message' => array('integer not null', 'Message ID'),
        'forward' => array('varchar(255)', 'Forward email'),
        'status'  => array('varchar(255)', 'Status of forward'),
        'time'    => array('timestamp', 'When was it forwarded'),
        'index_1' => array('usermessageidx (user,message)', 'index'),
        'index_2' => array('useridx (user)', 'index'),
        'index_3' => array('messageidx (message)', 'index'),
    ),
    'config' => array(
        'item'     => array('varchar(35) not null primary key', 'ID'),
        'value'    => array('longtext', 'Value'),
        'editable' => array('tinyint default 1', 'Editable?'),
        'type'     => array('varchar(25)', 'Type of data'),
    ),
    'admin' => array(
        'id'              => array('integer not null primary key auto_increment', 'sys:ID'),
        'loginname'       => array('varchar(66) not null', 'Login Name (max 66 chars)'),
        'namelc'          => array('varchar(255)', 'sys:Normalised loginname'),
        'email'           => array('varchar(255) not null', 'Email'),
        'created'         => array('datetime', 'sys:Time Created'),
        'modified'        => array('timestamp', 'sys:Time modified'),
        'modifiedby'      => array('varchar(66)', 'sys:Modified by'),
        'password'        => array('varchar(255)', 'sys:Password'),
        'passwordchanged' => array('date', 'sys:Last time password was changed'),
        'superuser'       => array('tinyint default 0', 'Is this admin Super Admin?'),
        'disabled'        => array('tinyint default 0', 'Is this account disabled?'),
        'unique_1'        => array('loginnameidx (loginname)', ''),
        'privileges'      => array('text', 'sys:Privileges'),
//          "index_1" => array("loginnameidx (loginname)",""),
    ),
    'adminattribute' => array( // attributes for an admin
        'id'            => array('integer not null primary key auto_increment', 'ID'),
        'name'          => array('varchar(255) not null', 'Name'),
        'type'          => array('varchar(30)', 'Type of attribute'),
        'listorder'     => array('integer', 'order of listing'),
        'default_value' => array('varchar(255)', 'Default value'),
        'required'      => array('tinyint', 'Required'),
        'tablename'     => array('varchar(255)', 'Name of table with values'),
    ),
    'admin_attribute' => array( // attributes of an admin
        'adminattributeid' => array('integer not null', 'attribute number'),
        'adminid'          => array('integer not null', 'id of admin'),
        'value'            => array('varchar(255)', 'Value of this attribute for this admin'),
        'primary key'      => array('(adminattributeid,adminid)', 'PKey'),
    ),
    'admin_password_request' => array( // password changes, 2.11.4 an up
        'id_key'    => array('integer not null primary key auto_increment', 'Id'),
        'date'      => array('datetime', 'When the password change request was made'),
        'admin'     => array('integer', "Admin's Id"),
        'key_value' => array('varchar (32) not null', 'Key'),
    ),
    /*
     * obsolete tables
          "task" => array(
              "id" => array("integer not null primary key auto_increment","ID"),
              "page" => array("varchar(25) not null","Page, page in system"),
              "type" => array("varchar(25) not null","Type: system, list, user, message, admin"),
              "unique_1" => array("(page)",""),
              "index_1" => array("pageidx (page)","index"),
              "index_2" => array("pagetypeidx (page,type)","index"),
          ),
          "admin_task" => array(
              "adminid" => array("integer not null","id of admin"),
              "taskid" => array("integer not null","id of task"),
              "level" => array("integer","Level: all,none,view,add,edit,delete,self"),
              "primary key" => array("(adminid,taskid)","PKey")
          ),
    */
    'subscribepage' => array(
        'id'     => array('integer not null primary key auto_increment', 'ID'),
        'title'  => array('varchar(255) not null', 'Title'),
        'active' => array('tinyint default 0', ''),
        'owner'  => array('integer', 'Admin who is owner of this page'),
    ),
    'subscribepage_data' => array(
        'id'          => array('integer not null', 'ID'),
        'name'        => array('varchar(100) not null', 'Name of field'),
        'data'        => array('text', 'data'),
        'primary key' => array('(id,name)', ''),
    ),
    'eventlog' => array(
        'id'      => array('integer not null primary key auto_increment', 'ID'),
        'entered' => array('datetime', ''),
        'page'    => array('varchar(100)', 'page this log was for'),
        'entry'   => array('text', ''),
        'index_1' => array('enteredidx (entered)', 'index'),
        'index_2' => array('pageidx (page)', 'index'),
    ),
    'urlcache' => array(
        'id'           => array('integer not null primary key auto_increment', 'ID'),
        'url'          => array('varchar(2083) not null', ''),
        'lastmodified' => array('integer', ''),
        'added'        => array('datetime', ''),
        'content'      => array('longblob', ''),
        'index_1'      => array('urlindex (url(255))', ''),
    ),
    //"gchartcache" => array(
    //"url" => array("text not null",""),
    //"lastmodified" => array("timestamp",""),
    //"added" => array("datetime",""),
    //"content" => array("blob",""),
    //"index_1" => array("urlindex (url (1000))",""),
    //),
    // obsoleted table, but may still contain data

    //# keep it in for now, but could be dropped at some point
    //# once all dependencies have been removed
    // tables that have unique indexes on hash values :  linktrack_forward, bounceregex
    'linktrack' => array(
        'linkid'      => array('integer not null primary key auto_increment', 'Link ID'),
        'messageid'   => array('integer not null', 'Message ID'),
        'userid'      => array('integer not null', 'subscriber ID'),
        'url'         => array('varchar(255)', 'URL to log'),
        'forward'     => array('varchar(255)', 'URL to forward to'),
        'firstclick'  => array('datetime', 'When first clicked'),
        'latestclick' => array('timestamp', 'When last clicked'),
        'clicked'     => array('integer default 0', 'Number of clicks'),
        'index_1'     => array('midindex (messageid)', ''),
        'index_2'     => array('uidindex (userid)', ''),
        'index_3'     => array('urlindex (url)', ''),
        'index_4'     => array('miduidindex (messageid,userid)', ''),
//          "index_5" => array("miduidurlindex (messageid,userid,url)",""),
        'unique_1' => array('miduidurlindex (messageid,userid,url)', ''),
    ),
    'linktrack_ml' => array( // ml -> message link
        'messageid'   => array('integer not null', 'Message ID'),
        'forwardid'   => array('integer not null', 'ID in forward table'),
        'firstclick'  => array('datetime', 'When first clicked'),
        'latestclick' => array('datetime', 'When last clicked'),
        'total'       => array(
            'integer default 0',
            'Number of times this link has been sent to subscribers for this message',
        ),
        'clicked'     => array('integer default 0', 'Number of clicks'),
        'htmlclicked' => array('integer default 0', 'Number of clicks from HTML emails'),
        'textclicked' => array('integer default 0', 'Number of clicks from text emails'),
        'primary key' => array('(messageid,forwardid)', ''),
        'index_1'     => array('midindex (messageid)', ''),
        'index_2'     => array('fwdindex (forwardid)', ''),
    ),
    'linktrack_uml_click' => array( // uml -> user message link, click
        'id'          => array('integer not null primary key auto_increment', 'ID'),
        'messageid'   => array('integer not null', 'Message ID'),
        'userid'      => array('integer not null', 'subscriber ID'),
        'forwardid'   => array('integer', 'ID in forward table'),
        'firstclick'  => array('datetime', 'When first clicked'),
        'latestclick' => array('datetime', 'When last clicked'),
        'clicked'     => array('integer default 0', 'Number of clicks'),
        'htmlclicked' => array('integer default 0', 'Number of clicks from HTML emails'),
        'textclicked' => array('integer default 0', 'Number of clicks from text emails'),
        'index_1'     => array('midindex (messageid)', ''),
        'index_2'     => array('uidindex (userid)', ''),
        'index_4'     => array('miduidindex (messageid,userid)', ''),
        'unique_1'    => array('miduidfwdid (messageid,userid,forwardid)', ''),
    ),
    'linktrack_forward' => array(
        'id'   => array('integer not null primary key auto_increment', 'forward ID'),
        'url'  => array('varchar(2083)', 'URL to log'),
        'urlhash'     => array('char(32)', 'hash value of URL'),
        'uuid' => array('varchar(36) default ""', 'UUID'),
        //        "forward" => array("text","URL to forward to"),
        'personalise' => array('tinyint default 0', 'Forward adding the UID?'),
        'index_1'     => array('urlindex (url(255))', ''),
        //        "index_2" => array("urlforwardindex (url,forward(255))",""),
        //        'unique_1' => array('fwdunique (forward (500))','Forward should be unique'),
        'unique_1' => array('urlunique (urlhash)', 'URL should be unique'),
        'index_2'  => array('uuididx (uuid)', 'sys:index'),
    ),
    'linktrack_userclick' => array(
        'linkid'    => array('integer not null', ''),
        'userid'    => array('integer not null', ''),
        'messageid' => array('integer not null', ''),
        'name'      => array('varchar(255)', 'Name of data'),
        'data'      => array('text', ''),
        'date'      => array('datetime', ''),
        'index_1'   => array('linkindex (linkid)', ''),
        'index_2'   => array('uidindex (userid)', ''),
        'index_3'   => array('midindex (messageid)', ''),
        'index_4'   => array('linkuserindex (linkid,userid)', ''),
        'index_5'   => array('linkusermessageindex (linkid,userid,messageid)', ''),
    ),
    'userstats' => array(
        'id'       => array('integer not null primary key auto_increment', ''),
        'unixdate' => array('integer', 'date in unix format'),
        'item'     => array('varchar(255)', ''),
        'listid'   => array('integer default 0', ''),
        'value'    => array('integer default 0', ''),
        'index_1'  => array('dateindex (unixdate)', ''),
        'index_2'  => array('itemindex (item)', ''),
        'index_3'  => array('listindex (listid)', ''),
        'index_4'  => array('listdateindex (listid,unixdate)', ''),
        'unique_1' => array('entry (unixdate,item,listid)', ''),
    ),
    // session table structure, table is created as the name identified in the config file
    //   "sessiontable" => array(
    //      "sessionid" => array("CHAR(32) NOT NULL PRIMARY KEY",""),
    //      "lastactive" => array("INTEGER NOT NULL",""),
    //      "data" => array("LONGTEXT",""),
    //    ),
    'bounceregex' => array(
        'id'        => array('integer not null primary key auto_increment', 'ID'),
        'regex'     => array('varchar(2083)', 'Regex'),
        'regexhash'   => array('char(32)', 'hash value of regex'),
        'action'    => array('varchar(255)', 'Action on rule'),
        'listorder' => array('integer default 0', ''),
        'admin'     => array('integer', ''),
        'comment'   => array('text', ''),
        'status'    => array('varchar(255)', ''),
        'count'     => array('integer default 0', 'Count of matching bounces on this rule'),
        'unique_1'  => array('regex (regexhash)', ''),
    ),
    'bounceregex_bounce' => array(
        'regex'       => array('integer not null', 'Related regex'),
        'bounce'      => array('integer not null', 'Related bounce'),
        'primary key' => array('(regex,bounce)', ''),
    ),
    'admintoken' => array(
        'id'      => array('integer not null primary key auto_increment', 'ID'),
        'adminid' => array('integer not null', 'adminid'),
        'value'   => array('varchar(255)', ''),
        'entered' => array('integer not null', ''),
        'expires' => array('datetime not null', ''),
    ),
    'i18n' => array(
        'lan'         => array('varchar(10) not null', 'Language ISO'),
        'original'    => array('text not null', 'Original string'),
        'translation' => array('text not null', 'Translated string'),
        'index_1'     => array('lanorigidx (lan(10),original(200))', 'index'),
        'unique_1'    => array('lanorigunq (lan(10),original(200))', 'unique'),
    ),

    /*    "translation" => array(
          "id" => array("integer not null primary key auto_increment",""),
          "translator" => array("varchar(255)","Name of translator"),
          "email" => array("varchar(255)","email of translator"),
          "pass" => array("varchar(255)","encrypted password for translation"),
          "ident" => array("varchar(255)","Translation identifier")
        ),
        "translation_data" => array(
          "id" => array("integer not null","Translation ID"),
          "item" => array("varchar(100)","Item to translate"),
          "primary key" => array("(id,item)","")
        )
    */
    //   "querycount" => array(
    //     "query" => array('text',''),
    //     "count" => array('integer default 0',''),
    //     'frontend' => array('integer default 0',''),
    //     'unique_1' => array('qindex (query (500))',''),
    //   ),

);

$DBstruct = $DBstructuser + $DBstructphplist; # order of tables is essential for smooth upgrade

Filemanager

Name Type Size Permission Actions
PEAR Folder 0755
PHPMailer Folder 0755
PHPMailer6 Folder 0755
actions Folder 0755
css Folder 0755
data Folder 0755
help Folder 0755
images Folder 0755
inc Folder 0755
info Folder 0755
js Folder 0755
locale Folder 0755
onyxrss Folder 0755
plugins Folder 0755
tests Folder 0755
ui Folder 0755
.gitignore File 20 B 0644
.htaccess File 489 B 0644
.minceconf File 994 B 0644
AnalyticsQuery.php File 985 B 0644
CsvReader.php File 1.27 KB 0644
EmailSender.php File 477 B 0644
Updater.php File 193 B 0644
about.php File 7.4 KB 0644
accesscheck.php File 715 B 0644
addprefix.php File 1.01 KB 0644
adduser.php File 46 B 0644
admin.php File 12.77 KB 0644
adminattributes.php File 7.46 KB 0644
admins.php File 5.16 KB 0644
analytics.php File 2.84 KB 0644
attributes.php File 26.2 KB 0644
blacklistemail.php File 1.22 KB 0644
bounce.php File 11.14 KB 0644
bouncemgt.php File 1.44 KB 0644
bouncerule.php File 4.27 KB 0644
bouncerules.php File 6.33 KB 0644
bounces.php File 7.57 KB 0644
catlists.php File 3.34 KB 0644
checkbouncerules.php File 1.43 KB 0644
checki18n.php File 3.13 KB 0644
checkprerequisites.php File 1.62 KB 0644
class.image.inc File 3.9 KB 0644
class.phplistmailer.php File 30.73 KB 0644
class.phplistmailerbase.php File 1.67 KB 0644
community.php File 3.5 KB 0644
communityfeed.php File 2.36 KB 0644
configure.php File 7.85 KB 0644
connect.php File 89.86 KB 0644
convertstats.php File 5.83 KB 0644
converttoutf8.php File 3.78 KB 0644
cron.php File 3.34 KB 0644
date.php File 7.65 KB 0644
dbcheck.php File 3.7 KB 0644
defaultFrontendTexts.php File 9.79 KB 0644
defaultconfig.php File 30.66 KB 0644
defaultplugin.php File 31.59 KB 0644
defaults.php File 3.64 KB 0644
defaultsystemtemplate.php File 15.29 KB 0644
defaulttest.php File 1.23 KB 0644
dlusers.php File 235 B 0644
domainbounces.php File 507 B 0644
domainstats.php File 371 B 0644
editattributes.php File 8.78 KB 0644
editlist.php File 7.4 KB 0644
eventlog.php File 4.68 KB 0644
export.php File 6.86 KB 0644
exportuserdata.php File 8.26 KB 0644
fckphplist.php File 49.84 KB 0644
gchart.php File 903 B 0644
generatebouncerules.php File 5.51 KB 0644
home.php File 6.56 KB 0644
hostedprocessqueuesetup.php File 3.09 KB 0644
htaccess File 311 B 0644
image.php File 2.01 KB 0644
import.php File 2.75 KB 0644
import1.php File 11.09 KB 0644
import2.php File 34.16 KB 0644
import3.php File 22.72 KB 0644
import4.php File 16.86 KB 0644
importadmin.php File 17.08 KB 0644
importsimple.php File 7.32 KB 0644
index.php File 32.82 KB 0644
info.php File 1.07 KB 0644
init.php File 27.36 KB 0644
initialise.php File 12.05 KB 0644
initlanguages.php File 867 B 0644
languages.php File 21.37 KB 0644
lib.php File 86.79 KB 0644
list.php File 11.32 KB 0644
listbounces.php File 4.13 KB 0644
login.php File 6.39 KB 0644
logout.php File 865 B 0644
massremove.php File 2.55 KB 0644
mclicks.php File 7.28 KB 0644
members.php File 19.99 KB 0644
mergeduplicates.php File 4.48 KB 0644
message.php File 9.08 KB 0644
messages.php File 26.27 KB 0644
minify.txt File 201 B 0644
msgbounces.php File 3.4 KB 0644
msgstatus.php File 1.27 KB 0644
mviews.php File 6.27 KB 0644
mysql.inc File 40 B 0644
mysqli.inc File 14.02 KB 0644
pageaction.php File 1.11 KB 0644
phpListAdminAuthentication.php File 6.82 KB 0644
pluginlib.php File 9.43 KB 0644
plugins.php File 17.78 KB 0644
preparesend.php File 669 B 0644
processbounces.php File 35.36 KB 0644
processqueue.php File 3.71 KB 0644
readtestmail.php File 11.59 KB 0644
reconcileusers.php File 27.71 KB 0644
redirecttoupdater.php File 187 B 0644
reindex.php File 1.82 KB 0644
rsslib.php File 3.17 KB 0644
runcommand.php File 583 B 0644
send.php File 6.17 KB 0644
send_core.php File 63.91 KB 0644
sendemaillib.php File 69.84 KB 0644
sendprepared.php File 4.87 KB 0644
sessionlib.php File 2.7 KB 0644
setpermissions.php File 2.08 KB 0644
setup.php File 2.56 KB 0644
spage.php File 4.35 KB 0644
spageedit.php File 19.08 KB 0644
statsmgt.php File 1.23 KB 0644
statsoverview.php File 6.19 KB 0644
stresstest.php File 4.82 KB 0644
structure.php File 29.21 KB 0644
subscribelib2.php File 70.22 KB 0644
subscriberstats.php File 617 B 0644
suppressionlist.php File 1.71 KB 0644
system.php File 795 B 0644
systemstats.php File 5.73 KB 0644
template.php File 16.4 KB 0644
templates.php File 3.01 KB 0644
tests.php File 1.67 KB 0644
uclicks.php File 6.74 KB 0644
update.php File 187 B 0644
updateLib.php File 2.2 KB 0644
updatetlds.php File 358 B 0644
updatetranslation.php File 2.51 KB 0644
upgrade.php File 23.82 KB 0644
user.php File 23.08 KB 0644
usercheck.php File 2.55 KB 0644
userclicks.php File 11.57 KB 0644
userhistory.php File 8.25 KB 0644
usermgt.php File 1.9 KB 0644
users.php File 19.3 KB 0644
vCard.php File 1.9 KB 0644
viewmessage.php File 635 B 0644
viewtemplate.php File 1.86 KB 0644
vote.php File 38 B 0644