vB_dB_MYSQL_QueryDefs
extends vB_dB_QueryDefs
in package
Table of Contents
- $db_type : mixed
- The database type
- $query_data : mixed
- This is the definition for queries we will process through. We could also put them in the database, but this eliminates a query.
- $saveDbCacheErrorState : bool
- Flag to determine if we are in a state of database error. Used by saveDbCache method.
- $table_data : mixed
- This is the definition for tables we will process through. It saves a database query to put them here.
- __serialize() : mixed
- __sleep() : mixed
- __unserialize() : mixed
- __wakeup() : mixed
- addLanguageFromPackage() : mixed
- Add the language columns from a package
- anyAdminAsSecondaryExists() : mixed
- buildUserInfractions() : bool
- "Magic" Function that builds all the information regarding infractions (only used in Cron)
- deleteOldPhrases() : mixed
- deleteOrphans() : mixed
- fetchAdminusersFromUsergroup() : mixed
- fetchApiActivity() : mixed
- fetchApiLogs() : mixed
- fetchApiLogsCount() : mixed
- fetchApiLogsCountDatecut() : mixed
- fetchCountInfractionsByCond() : mixed
- fetchCountPhrasesByLang() : mixed
- fetchCronLog() : mixed
- fetchCronLogCount() : mixed
- fetchInfractionsByCondLimit() : mixed
- fetchKeepNames() : mixed
- fetchLanguage() : mixed
- fetchLanguages() : mixed
- fetchMailingList() : mixed
- Fetches the mailing list for users regarding the user adminemail option.
- fetchMailingListCount() : mixed
- fetchMemberList() : mixed
- fetchModlogCount() : mixed
- fetchModlogs() : mixed
- fetchPermsOrdered() : mixed
- fetchPhraseInfo() : mixed
- fetchPhrases() : mixed
- fetchPhrasesForDisplay() : mixed
- fetchPhrasesForExport() : mixed
- fetchPhrasesOrderedPaged() : mixed
- fetchPromotions() : mixed
- fetchPruneUsers() : mixed
- Fetch list of users to prune
- fetchSearchTagsForCloud() : mixed
- fetchStylevarsArray() : mixed
- fetchSubs2Del() : mixed
- fetchTagsForCloud() : mixed
- fetchTagsForTagNavigation() : mixed
- fetchUserinfo() : mixed
- fetchUsersForPromotion() : mixed
- fetchUsersFromCriteria() : mixed
- Fetches userlist from a given criteria.
- fetchUsersInfractionGroups() : mixed
- fetchUsersSubscriptions() : mixed
- fetchWol() : mixed
- fetchWolAllUsers() : mixed
- fetchWolCount() : mixed
- getChangelogData() : mixed
- getInfractionsByType() : mixed
- getLock() : mixed
- getModeratorInfo() : mixed
- getModLogsByConds() : mixed
- getQueryData() : mixed
- This returns the query definitions
- getSiteThreads() : mixed
- Get all the site threads limitted by the given parentids.
- getStyle() : mixed
- getStyleByConds() : mixed
- getTableData() : mixed
- This returns the table definitions
- getUsersForPrivacyDeletion() : mixed
- insertignoreValues() : mixed
- Creates an INSERT IGNORE query based on the params that are passed
- isFreeLock() : mixed
- keepOrphans() : mixed
- lockTables() : mixed
- Lock tables
- pruneCronLog() : mixed
- releaseLock() : mixed
- removeLanguageFromPackage() : mixed
- Remove the language columns from a package
- replaceSetting() : mixed
- replaceTemplates() : mixed
- replaceValues() : mixed
- saveDbCache() : mixed
- saveDbCacheEvents() : mixed
- searchPhrases() : mixed
- searchTemplates() : mixed
- truncateTable() : mixed
- Your basic table truncate
- unlockTables() : mixed
- Unlock tables
- updateCron() : mixed
- updateCronEnabled() : mixed
- updateHookStatus() : mixed
- Updates the plugin active status
- updateInvisible() : mixed
- updateLanguagePhrases() : mixed
- updateMemberForDeletedUsergroup() : mixed
- updatePhraseByProduct() : mixed
- updatePhraseDefLanguage() : mixed
- updatePhraseLanguage() : mixed
- updateSubscribeEvent() : mixed
- updateUserInfractions() : mixed
- userFind() : mixed
- userFindCount() : mixed
- userInsertAnnouncementread() : mixed
- userInsertSubscribeevent() : mixed
- userReferrers() : mixed
- Generate a report of user referrals for the given time period
- userSearchIPUsage() : mixed
- userSearchRegisterIP() : mixed
- executeWriteQuery() : mixed
- Handles a write query -- pretty much anything that doesn't return a result set.
- fetchApiLogsSqlconds() : mixed
- getIncludeVisibleChannelsSQL() : mixed
- getNodePermTerms() : mixed
- Composes the terms for the flags to enforce the starter-node-specific permissions.
- getQueryBuilder() : mixed
- getResultSet() : mixed
- Returns the resultset for a particular query string
- getVisibleChannels() : mixed
- sparsifyChannelAccess() : mixed
- baseFindQuery() : mixed
- fetch_field_like_sql() : string
- Fetch SQL clause for haystack LIKE needle
- fetchMailingListClean() : mixed
- fetchMailingListWhere() : mixed
- getInfractionsSearchSql() : mixed
- getLocationCheckWhere() : mixed
Properties
$db_type
The database type
protected
mixed
$db_type
= 'MYSQL'
Should be overriden by child classes.
$query_data
This is the definition for queries we will process through. We could also put them in the database, but this eliminates a query.
protected
mixed
$query_data
= array(
'mysqlVersion' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT version() AS version"),
'getFoundRows' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT FOUND_ROWS()"),
'fetch_options' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => 'SELECT * FROM {TABLE_PREFIX}datastore WHERE title in ({option_names})'),
'datastore_lock' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}adminutil SET text = UNIX_TIMESTAMP() WHERE title = 'datastorelock' AND text < UNIX_TIMESTAMP() - 15"),
//should look into generalizing this as a type of table query to replace "insertIgnore"
//note the use of VALUES is techincally deprecated, but it was deprecated mere months after the
//alternative to it was released and the non deprecated code won't run on most MySql installs
//as of this writing.
'updateDatastore' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => '
INSERT INTO {TABLE_PREFIX}datastore (title, data, unserialize) VALUES({title}, {data}, {unserialize})
ON DUPLICATE KEY UPDATE data=VALUES(data), unserialize=VALUES(unserialize)
'),
'verifyUsername' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT userid, username FROM {TABLE_PREFIX}user
WHERE userid != {userid}
AND
(
username = {username}
OR
username = {username_raw}
)", 'forcetext' => array('username', 'username_raw')),
'replaceTachyforumcounterForum' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "REPLACE INTO {TABLE_PREFIX}tachyforumcounter
(userid, forumid, threadcount, replycount)
VALUES
({userid}), {forumid}, {threadcount}, {replycount})"),
'replaceTachyforumpostForum' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "REPLACE INTO {TABLE_PREFIX}tachyforumpost
(userid, forumid, lastpost, lastposter, lastposterid, lastpostid, lastthread, lastthreadid, lasticonid, lastprefixid)
VALUES
({userid}, {forumid}, {lastpost}, {lastposter}, {lastposterid}, {lastpostid}, {lastthread}, {lastthreadid}, {lasticonid}, {lastprefixid})"),
'getRecipientsPM' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT usertextfield.*, user.*
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}usertextfield AS usertextfield ON (usertextfield.userid = user.userid)
WHERE username IN({username})
ORDER BY user.username"),
'getUsersWithRank' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.*, usertextfield.`rank`
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}usertextfield AS usertextfield ON (user.userid = usertextfield.userid)
WHERE user.userid >= {startid}
ORDER BY user.userid
LIMIT {limit}
"),
/* Template API SQL Start */
'template_get_existing' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT templateid, styleid, product FROM {TABLE_PREFIX}template
WHERE title = {title}
AND templatetype = 'template'"),
'template_savehistory' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "INSERT INTO {TABLE_PREFIX}templatehistory
(styleid, title, template, dateline, username, version, comment)
VALUES
({dostyleid}, {title}, {template_un}, {dateline}, {username}, {version}, {comment})"),
'template_fetchbystyleandtitle' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT templateid
FROM {TABLE_PREFIX}template
WHERE styleid = {styleid} AND title = {title}"),
'template_fetchbystyleandtitle2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT templateid, title, styleid, dateline, username, version
FROM {TABLE_PREFIX}template
WHERE title = {title}
AND styleid IN (-1, {styleid})"),
'template_update' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}template SET
title = {title},
template = {template},
template_un = {template_un},
dateline = {dateline},
username = {username},
version = {version},
product = {product},
textonly = {textonly},
mergestatus = 'none'
WHERE templateid = {templateid} AND
(
MD5(template_un) = {hash} OR
template_un = {template_un}
)"),
'template_deletefrom_templatemerge' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE FROM {TABLE_PREFIX}templatemerge
WHERE templateid IN (
SELECT templateid
FROM {TABLE_PREFIX}template
WHERE styleid = {styleid}
)
"),
'template_updatecustom_product' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}template
SET product = {product}
WHERE title = {title}
AND styleid <> -1"),
'template_fetchoriginal' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT templateid, styleid, title, template_un
FROM {TABLE_PREFIX}template
WHERE styleid IN (-1,0) AND title = {title}"),
'template_update_mergestatus' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}template
SET mergestatus = 'none'
WHERE templateid IN ({templateids})"),
'template_getrevertingtemplates' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT DISTINCT t1.templateid, t1.title
FROM {TABLE_PREFIX}template AS t1
INNER JOIN {TABLE_PREFIX}template AS t2 ON
(t2.styleid IN ({styleparentlist}) AND t2.styleid <> {styleid} AND t2.title = t1.title)
WHERE t1.templatetype = 'template'
AND t1.styleid = {styleid}"),
'template_getmasters' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT templateid, title
FROM {TABLE_PREFIX}template
WHERE templatetype = 'template'
AND styleid IN (-1,0)
ORDER BY title"),
'template_getmasters2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT title, templateid FROM {TABLE_PREFIX}template WHERE styleid IN (-1,0)"),
'template_fetch_css_svg_templates' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT DISTINCT title
FROM {TABLE_PREFIX}template
WHERE styleid IN ({styleidlist}) AND
templatetype = 'template' AND
(title LIKE '%.css' OR title LIKE '%.svg')
"),
/* Template API SQL End */
/* Style API SQL Start */
'style_updateparent' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}style
SET parentid = {parentid},
parentlist = {parentlist}
WHERE parentid = {styleid}
"),
/* Style API SQL End */
/* User API SQL Start */
'user_fetchforupdating' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.*, avatar.avatarpath, customavatar.dateline AS avatardateline, customavatar.width AS avatarwidth, customavatar.height AS avatarheight,
NOT ISNULL(customavatar.userid) AS hascustomavatar, usertextfield.signature, usergroup.adminpermissions,
NOT ISNULL(sigpic.userid) AS hassigpic,
sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight, sigpic.dateline AS sigpicdateline
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}avatar AS avatar ON(avatar.avatarid = user.avatarid)
LEFT JOIN {TABLE_PREFIX}customavatar AS customavatar ON(customavatar.userid = user.userid)
LEFT JOIN {TABLE_PREFIX}sigpic AS sigpic ON(sigpic.userid = user.userid)
LEFT JOIN {TABLE_PREFIX}usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
LEFT JOIN {TABLE_PREFIX}usergroup AS usergroup ON(usergroup.usergroupid = user.usergroupid)
WHERE user.userid = {userid}
"),
'user_fetchmoderate' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT userid, username, email, ipaddress
FROM {TABLE_PREFIX}user
WHERE usergroupid = 4
ORDER BY username
"),
'user_fetchusergroup' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT title
FROM {TABLE_PREFIX}usergroup
WHERE usergroupid = {usergroupid}
"),
'user_updateusergroup' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}user
SET displaygroupid = IF(displaygroupid = usergroupid, 0, displaygroupid),
usergroupid = {usergroupid}
WHERE userid IN({userids})
"),
'user_fetchwithtextfield' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT *
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}usertextfield AS usertextfield USING(userid)
WHERE user.userid = {userid}
"),
'user_insertuserlist' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
INSERT IGNORE INTO {TABLE_PREFIX}userlist
(userid, relationid, type, friend)
SELECT {destuserid}, relationid, type, friend
FROM {TABLE_PREFIX}userlist
WHERE userid = {sourceuserid}
"),
'user_updateuserlist' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE IGNORE {TABLE_PREFIX}userlist
SET relationid = {destuserid}
WHERE relationid = {sourceuserid}
AND relationid <> {destuserid}
"),
'user_fetchuserlistcount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) FROM {TABLE_PREFIX}userlist
WHERE userid = {userid}
AND type = 'buddy'
AND friend = 'yes'
"),
'user_fetchinfractiongroup' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT usergroupid, orusergroupid, pointlevel, override
FROM {TABLE_PREFIX}infractiongroup
ORDER BY pointlevel
"),
'user_updateannouncement' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}announcement
SET userid = {destuserid}
WHERE userid = {sourceuserid}
"),
'user_updateattachment' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}attachment
SET userid = {destuserid}
WHERE userid = {sourceuserid}
"),
'user_updatedeletionlog' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}deletionlog SET
userid = {destuserid},
username = {destusername}
WHERE userid = {sourceuserid}
"),
'user_updatepostedithistory' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}postedithistory SET
userid = {destuserid},
username = {destusername}
WHERE userid = {sourceuserid}
"),
'user_updateeditlog' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}editlog SET
userid = {destuserid},
username = {destusername}
WHERE userid = {sourceuserid}
"),
'usermerge_conflictedpolls' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT DISTINCT sourcevote.nodeid
FROM {TABLE_PREFIX}pollvote AS sourcevote
INNER JOIN {TABLE_PREFIX}pollvote AS destvote ON (destvote.nodeid = sourcevote.nodeid AND destvote.userid = {destuserid})
WHERE sourcevote.userid = {sourceuserid}
"),
'usermerge_updatelastpollvote' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}poll AS poll
SET lastvote = (SELECT max(pollvote.votedate) FROM {TABLE_PREFIX}pollvote AS pollvote WHERE poll.nodeid = pollvote.nodeid)
WHERE poll.nodeid IN ({nodeid});
"),
'user_updateusernote' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}usernote
SET posterid = {destuserid}
WHERE posterid = {sourceuserid}
"),
'user_updateusernote2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}usernote
SET userid = {destuserid}
WHERE userid = {sourceuserid}
"),
'user_updatereputation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}reputation
SET userid = {destuserid}
WHERE userid = {sourceuserid}
"),
'user_updatereputation2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}reputation
SET whoadded = {destuserid}
WHERE whoadded = {sourceuserid}
"),
'user_updateinfraction' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}infraction
SET infracteduserid = {destuserid}
WHERE infracteduserid = {sourceuserid}
"),
'user_updateinfraction2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}node AS n
INNER JOIN {TABLE_PREFIX}infraction AS i ON(i.nodeid = n.nodeid)
SET n.userid = {destuserid}
WHERE n.userid = {sourceuserid}
"),
'user_updatepaymentinfo' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}paymentinfo
SET userid = {destuserid}
WHERE userid = {sourceuserid}
"),
'user_updatesubscriptionlog' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}subscriptionlog
SET userid = {destuserid}
WHERE userid = {sourceuserid}
"),
'user_fetchsubscriptionlog' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT
subscriptionlogid, subscriptionid, expirydate
FROM {TABLE_PREFIX}subscriptionlog
WHERE
userid = {userid}
AND
status = 1
"),
'user_deletesubscriptionlog' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE FROM {TABLE_PREFIX}subscriptionlog
WHERE subscriptionlogid IN ({ids})
"),
'user_updatesubscriptionlog2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}subscriptionlog
SET expirydate = {expirydate}
WHERE subscriptionlogid = {subscriptionlogid}
"),
'user_searchpostip' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT DISTINCT ipaddress
FROM {TABLE_PREFIX}node
WHERE userid = {userid} AND
ipaddress <> {ipaddress} AND
ipaddress <> ''
ORDER BY ipaddress
"),
'user_fetchcontacts' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT type, friend
FROM {TABLE_PREFIX}userlist AS userlist
WHERE userlist.userid = {user1}
AND userlist.relationid = {user2}
"),
'user_useractivation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT useractivationid, activationid, dateline, reset_attempts, reset_locked_since
FROM {TABLE_PREFIX}useractivation
WHERE type = 1
AND userid = {userid}
"),
'user_deleteactivationid' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE FROM {TABLE_PREFIX}useractivation
WHERE userid = {userid} AND type = 1
"),
'user_replaceuseractivation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}useractivation
(userid, dateline, activationid, type, usergroupid, emailchange)
VALUES
({userid}, {timenow}, {activateid} , {type}, {usergroupid}, {emailchange})
"),
'user_replaceuseractivation2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}useractivation
(userid, dateline, activationid, type, usergroupid)
VALUES
({userid}, {timenow}, {activateid} , {type}, {usergroupid})
"),
'user_fetchstrikes' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS strikes, MAX(striketime) AS lasttime
FROM {TABLE_PREFIX}strikes
WHERE ip_4 = {ip_4} AND ip_3 = {ip_3} AND ip_2 = {ip_2} AND ip_1 = {ip_1}"),
'user_fetchprofilefieldsforregistration' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT *
FROM {TABLE_PREFIX}profilefield
WHERE editable > 0 AND required <> 0
ORDER BY displayorder"),
'user_fetchcurrentbans' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.userid, userban.liftdate, userban.bandate
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}userban AS userban ON(userban.userid = user.userid)
WHERE user.userid IN ({userids})"),
/* User API SQL End */
/* Userrank API SQL Start */
'userrank_fetchranks' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT ranks.rankid, ranks.ranklevel, ranks.minposts, ranks.rankimg, ranks.usergroupid,
ranks.type, ranks.display, ranks.stack, usergroup.title
FROM {TABLE_PREFIX}ranks AS ranks
LEFT JOIN {TABLE_PREFIX}usergroup AS usergroup USING(usergroupid)
ORDER BY ranks.usergroupid, ranks.minposts
"),
/* Userrank API SQL End */
/* User Datamanager Start */
'userdm_reputationlevel' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT reputationlevelid
FROM {TABLE_PREFIX}reputationlevel
WHERE {reputation} >= minimumreputation
ORDER BY minimumreputation DESC
LIMIT 1"),
'userdm_verifyusername' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT userid, username FROM {TABLE_PREFIX}user
WHERE userid != {userid}
AND
(
username = {username}
OR
username = {username_raw}
)", 'forcetext' => array('username', 'username_raw')),
'userdm_unregisteredphrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT text
FROM {TABLE_PREFIX}phrase
WHERE varname = 'unregistered'
AND fieldname = 'global'"),
'userdm_showusercol' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SHOW COLUMNS FROM {TABLE_PREFIX}user LIKE 'username'"),
'userdm_usertitle' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT title
FROM {TABLE_PREFIX}usertitle
WHERE minposts <= {minposts}
ORDER BY minposts DESC
LIMIT 1
"),
'userdm_profilefields' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT profilefieldid
FROM {TABLE_PREFIX}profilefield
WHERE editable > 0 AND required <> 0
"),
'userdm_updateuseractivation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}useractivation
SET usergroupid = {usergroupid}
WHERE userid = {userid}
AND type = 0"),
'userdm_friendlist' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT relationid, friend
FROM {TABLE_PREFIX}userlist
WHERE userid = {userid}
AND type = 'buddy'
AND friend IN('pending','yes')
"),
'userdm_updatefriendcount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}user
SET friendcount = IF(friendcount > 0, friendcount - 1, 0)
WHERE userid IN ({userids})
"),
'userdm_picture' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT a.attachmentid, a.filedataid, a.userid
FROM {TABLE_PREFIX}attachment AS a
WHERE
a.userid = {userid}
AND
a.contenttypeid IN ({contenttypeids})
"),
'userdm_updatefriendcount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}pmtext SET
touserarray = REPLACE(touserarray,
'i:{userid};s:{usernamelength}:"{username}";',
'i:{userid};s:{username2length}:"{username2}";'
)
WHERE touserarray LIKE '%i:{userid};s:{usernamelength}:"{username}";%'
"),
'userdm_infractiongroup' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT orusergroupid, override
FROM {TABLE_PREFIX}infractiongroup AS infractiongroup
WHERE infractiongroup.usergroupid IN (-1, {usergroupid})
AND infractiongroup.pointlevel <= {ipoints}
ORDER BY pointlevel
"),
/* User Datamanager End */
/* Usergroup API SQL Start */
'usergroup_checkadmin' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS usergroups
FROM {TABLE_PREFIX}usergroup
WHERE (adminpermissions & {cancontrolpanel}) AND
usergroupid <> {usergroupid}
"),
'usergroup_makeuservisible' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}user
SET options = (options & ~{invisible})
WHERE usergroupid = {usergroupid}
"),
'usergroup_fetchausers' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.userid
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}administrator as administrator ON (user.userid = administrator.userid)
WHERE administrator.userid IS NULL AND
user.usergroupid = {usergroupid}
"),
'usergroup_insertprefixpermission' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}prefixpermission (usergroupid, prefixid)
SELECT {newugid}, prefixid FROM {TABLE_PREFIX}prefix
WHERE options & {deny_by_default}
"),
'usergroup_inserteventhighlightpermission' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}eventhighlightpermission (eventhighlightid, usergroupid)
SELECT eventhighlightid, {newugid} FROM {TABLE_PREFIX}eventhighlight
WHERE denybydefault = 1
"),
'usergroup_fetchmarkups' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT usergroupid, opentag, closetag
FROM {TABLE_PREFIX}usergroup
WHERE opentag <> '' OR
closetag <> ''
"),
'getUserGroupIdCountByPromotion' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT COUNT(*) AS count, usergroupid
FROM {TABLE_PREFIX}userpromotion GROUP BY usergroupid"),
'getUserPromotionsAndUserGroups' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT userpromotion.*, usergroup.title
FROM {TABLE_PREFIX}userpromotion AS userpromotion, {TABLE_PREFIX}usergroup AS usergroup
WHERE userpromotionid = {userpromotionid} AND userpromotion.usergroupid = usergroup.usergroupid"),
'getUserPromotionBasicFields' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT userpromotionid, usergroup.title
FROM {TABLE_PREFIX}userpromotion AS userpromotion
INNER JOIN {TABLE_PREFIX}usergroup AS usergroup ON (userpromotion.usergroupid = usergroup.usergroupid)
WHERE userpromotionid = {userpromotionid}"),
'deleteUserPromotion' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE FROM {TABLE_PREFIX}userpromotion
WHERE usergroupid = {usergroupid} OR joinusergroupid = {usergroupid}
"),
'usergroup_fetchmemberstoremove' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT userid, username, membergroupids, infractiongroupids
FROM {TABLE_PREFIX}user
WHERE FIND_IN_SET({usergroupid}, membergroupids)
OR FIND_IN_SET({usergroupid}, infractiongroupids)
"),
'usergroup_updatemembergroup' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}user SET
membergroupids = IF(membergroupids = '', {usergroupid}, CONCAT(membergroupids, ',{usergroupid}'))
WHERE userid IN ({auth})
"),
'usergroup_fetchusertitle' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT *
FROM {TABLE_PREFIX}usertitle
WHERE minposts < {posts}
ORDER BY minposts DESC
LIMIT 1
"),
/* Usergroup API SQL End */
/* Phrase API SQL Start */
'phrase_fetchorphans' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT orphan.varname, orphan.languageid, orphan.fieldname
FROM {TABLE_PREFIX}phrase AS orphan
LEFT JOIN {TABLE_PREFIX}phrase AS phrase ON (phrase.languageid IN(-1, 0) AND phrase.varname = orphan.varname AND phrase.fieldname = orphan.fieldname)
WHERE orphan.languageid NOT IN (-1, 0)
AND phrase.phraseid IS NULL
ORDER BY orphan.varname
"),
'phrase_fetchupdates' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT pGlobal.phraseid, pCustom.varname, pCustom.languageid,
pCustom.username AS customuser, pCustom.dateline AS customdate, pCustom.version AS customversion,
pGlobal.username AS globaluser, pGlobal.dateline AS globaldate, pGlobal.version AS globalversion,
pGlobal.product, phrasetype.title AS phrasetype_title
FROM {TABLE_PREFIX}phrase AS pCustom
INNER JOIN {TABLE_PREFIX}phrase AS pGlobal ON (pGlobal.languageid = -1 AND pGlobal.varname = pCustom.varname AND pGlobal.fieldname = pCustom.fieldname)
LEFT JOIN {TABLE_PREFIX}phrasetype AS phrasetype ON (phrasetype.fieldname = pGlobal.fieldname)
WHERE pCustom.languageid <> -1
ORDER BY pCustom.varname
"),
'phrase_replace' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}phrase
(languageid, varname, text, fieldname, product, username, dateline, version)
VALUES
({languageid}, {varname}, {text}, {fieldname}, {product}, {username}, {dateline}, {version})
"),
/* Phrase API SQL End */
/* Language API SQL Start */
'language_count' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS total FROM {TABLE_PREFIX}language
"),
/* Language API SQL End */
/* Cron API SQL Start */
'cron_fetchphrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT varname, text
FROM {TABLE_PREFIX}phrase
WHERE languageid = {languageid} AND
fieldname = 'cron' AND
varname IN ({title}, {desc}, {logphrase})
"),
'cron_fetchall' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT cron.*, IF(product.productid IS NULL OR product.active = 1, cron.active, 0) AS effective_active
FROM {TABLE_PREFIX}cron AS cron
LEFT JOIN {TABLE_PREFIX}product AS product ON (cron.product = product.productid)
ORDER BY effective_active DESC, nextrun
"),
'cron_insertphrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}phrase
(languageid, fieldname, varname, text, product, username, dateline, version)
VALUES
(
{new_languageid},
'cron',
CONCAT('task_', {varname}, '_title'),
{title},
{product},
{username},
{timenow},
{product_version}
),
(
{new_languageid},
'cron',
CONCAT('task_', {varname}, '_desc'),
{description},
{product},
{username},
{timenow},
{product_version}
),
(
{new_languageid},
'cron',
CONCAT('task_', {varname}, '_log'),
{logphrase},
{product},
{username},
{timenow},
{product_version}
)
"),
'cron_fetchswitch' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT cron.*,
IF(product.productid IS NULL OR product.active = 1, 1, 0) AS product_active,
product.title AS product_title
FROM {TABLE_PREFIX}cron AS cron
LEFT JOIN {TABLE_PREFIX}product AS product ON (cron.product = product.productid)
WHERE cronid = {cronid}
"),
'cron_switchactive' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}cron SET
active = IF(active = 1, 0, 1)
WHERE cronid = {cronid}
"),
'cron_fetchnext' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT MIN(nextrun) AS nextrun
FROM {TABLE_PREFIX}cron AS cron
LEFT JOIN {TABLE_PREFIX}product AS product ON (cron.product = product.productid)
WHERE cron.active = 1
AND (product.productid IS NULL OR product.active = 1)
"),
/* Cron API SQL End */
'fetch_page_pagetemplate_screenlayout' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT page.*, pagetemplate.screenlayoutid, screenlayout.template AS screenlayouttemplate, pagetemplate.title AS templatetitle
FROM {TABLE_PREFIX}page AS page
LEFT JOIN {TABLE_PREFIX}pagetemplate AS pagetemplate ON(page.pagetemplateid = pagetemplate.pagetemplateid)
LEFT JOIN {TABLE_PREFIX}screenlayout AS screenlayout ON(pagetemplate.screenlayoutid = screenlayout.screenlayoutid)
WHERE page.pageid = {pageid}
'),
/*
* While this is an *or* query, the specific circumstances will
* allow mysql to use indexes (it does a seperate lookup for each of the
* items in the in clause and one for the "ishomeroute" selection. This isn't
* ideal but is better than two seperate queries or a union.
*/
'get_best_routes' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT routenew.*
FROM {TABLE_PREFIX}routenew AS routenew
WHERE routenew.prefix IN ({prefix}) OR ishomeroute = 1
'),
'get_update_route_301' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT routeid
FROM {TABLE_PREFIX}routenew
WHERE redirect301 = {oldrouteid} OR routeid = {oldrouteid}
'),
'getPageInfoExport' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT p.*, t.guid as pageTemplateGuid, r.guid as routeGuid, p2.guid as parentGuid
FROM {TABLE_PREFIX}page p
LEFT JOIN {TABLE_PREFIX}page p2 ON p.parentid = p2.pageid
INNER JOIN {TABLE_PREFIX}pagetemplate t ON p.pagetemplateid = t.pagetemplateid
INNER JOIN {TABLE_PREFIX}routenew r ON p.routeid = r.routeid
WHERE p.product = {productid}
'),
'fetchPageList' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT page.*
FROM {TABLE_PREFIX}page as page,
{TABLE_PREFIX}routenew as routenew
WHERE routenew.routeid = page.routeid
AND routenew.prefix = routenew.regex
'),
'getUsernameAndId' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT userid, username
FROM {TABLE_PREFIX}user
WHERE userid != {userid}
AND (username = {username} OR username = {username_raw})
', 'forcetext' => array('username', 'username_raw')),
'getColumnUsername' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SHOW COLUMNS FROM {TABLE_PREFIX}user LIKE {field}"),
'getInfractiongroups' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT orusergroupid, override
FROM {TABLE_PREFIX}infractiongroup AS infractiongroup
WHERE infractiongroup.usergroupid IN (-1, {usergroupid})
AND infractiongroup.pointlevel <= {pointlevel}
ORDER BY pointlevel"),
'updFriendReqCount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}user
SET friendreqcount = IF(friendreqcount > 0, friendreqcount - 1, 0)
WHERE userid IN ({userid})"),
'updFriendCount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}user
SET friendcount = IF(friendcount > 0, friendcount - 1, 0)
WHERE userid IN ({userid})"),
'delUserList' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "DELETE FROM {TABLE_PREFIX}userlist
WHERE userid = {userid} OR relationid = {relationid}"),
'updPmText' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}pmtext SET
touserarray = REPLACE(touserarray,
'i:{userid};s:{exusrstrlen}:"{exusername}";',
'i:{userid};s:{usrstrlen}:"{username}";'
)
WHERE touserarray LIKE '%i:{userid};s:{usrstrlen}:"{username}";%'"),
'getUserPictures' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT album.userid
FROM {TABLE_PREFIX}attachment AS a
INNER JOIN {TABLE_PREFIX}album AS album ON (a.contentid = album.albumid)
WHERE a.attachmentid = {attachmentid AND
a.contenttypeid = {contenttypeid} AND
album.state IN ({state}) AND
album.userid = {userid} AND
album.albumid = {albumid}"),
'fetch_page_template_list' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => '
SELECT pagetemplate.*, screenlayout.varname AS screenlayoutvarname
FROM {TABLE_PREFIX}pagetemplate AS pagetemplate
LEFT JOIN {TABLE_PREFIX}screenlayout AS screenlayout ON(screenlayout.screenlayoutid = pagetemplate.screenlayoutid)
WHERE pagetemplate.title <> '' OR
pagetemplate.pagetemplateid = {pagetemplateid}
'),
'updateFiledataRefCount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => '
UPDATE {TABLE_PREFIX}filedata
SET refcount = IF((refcount <= 0 AND {countChange} < 0), 0, (refcount + {countChange}))
WHERE filedataid = {filedataid}'),
'getSuperGroups' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT user.*, usergroup.usergroupid
FROM {TABLE_PREFIX}usergroup AS usergroup
INNER JOIN {TABLE_PREFIX}user AS user ON(user.usergroupid = usergroup.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
WHERE (usergroup.adminpermissions & {ismoderator})
GROUP BY user.userid
ORDER BY user.username"),
//appears unused
'getCategoryTitle' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT text AS title
FROM {TABLE_PREFIX}phrase
WHERE varname = CONCAT(CONCAT('category', {category}), '_title') AND fieldname = 'vbblogcat' AND languageid = 0"),
//appears unused
'getProfileAlbums' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT
album.title, album.albumid,
a.dateline, a.attachmentid, a.caption,
fd.filesize, fdr.resize_filesize, fdr.resize_dateline, fdr.resize_width, fdr.resize_height, IF(fdr.resize_filesize > 0, 1, 0) AS hasthumbnail
FROM {TABLE_PREFIX}album AS album
INNER JOIN {TABLE_PREFIX}attachment AS a ON (a.contentid = album.albumid)
INNER JOIN {TABLE_PREFIX}filedata AS fd ON (fd.filedataid = a.filedataid)
LEFT JOIN {TABLE_PREFIX}filedataresize AS fdr ON (fd.filedataid = fdr.filedataid AND fdr.type = 'thumb')
WHERE
album.state = 'profile'
AND
album.userid = {userid}
AND
a.state = 'visible'
AND
a.contenttypeid = {contenttypeid}
ORDER BY
album.albumid, a.attachmentid"),
'getForumAds' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT ad.*
FROM {TABLE_PREFIX}ad AS ad
LEFT JOIN {TABLE_PREFIX}adcriteria AS adcriteria ON(adcriteria.adid = ad.adid)
WHERE (adcriteria.criteriaid = 'browsing_forum_x' OR adcriteria.criteriaid = 'browsing_forum_x_and_children')"),
'fetchUncachablePhrase' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT text, languageid
FROM {TABLE_PREFIX}phrase AS phrase
INNER JOIN {TABLE_PREFIX}phrasetype USING(fieldname)
WHERE phrase.fieldname = {phrasegroup}
AND varname = {phrasekey} AND languageid IN (-1, 0, {languageid})"),
'perminfoquery' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT node.nodeid, node.htmltitle AS nodetitle,usergroup.title AS grouptitle
FROM {TABLE_PREFIX}permission AS permission
INNER JOIN {TABLE_PREFIX}node AS node ON (node.nodeid = permission.nodeid)
INNER JOIN {TABLE_PREFIX}usergroup AS usergroup ON (usergroup.usergroupid = permission.groupid)
WHERE permissionid = {permissionid}
"),
'fetchpermgroups' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT usergroup.usergroupid, title, COUNT(permission.permissionid) AS permcount
FROM {TABLE_PREFIX}usergroup AS usergroup
LEFT JOIN {TABLE_PREFIX}permission AS permission ON (usergroup.usergroupid = permission.groupid)
GROUP BY usergroup.usergroupid
HAVING permcount > 0
ORDER BY title
"),
'fetchinherit' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT groupid, closure.parent as nodeid, IF(permission.nodeid = closure.parent, 0, 1) AS inherited
FROM {TABLE_PREFIX}permission AS permission
INNER JOIN {TABLE_PREFIX}closure AS closure ON (closure.child = permission.nodeid)
"),
'replacePermissions' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}permission(
nodeid, groupid, forumpermissions, moderatorpermissions, createpermissions, forumpermissions2, edit_time,
maxtags, maxstartertags, maxothertags, maxattachments, maxchannels, channeliconmaxsize
)
VALUES (
{nodeid}, {usergroupid}, '{forumpermissions}', '{moderatorpermissions}', '{createpermissions}', '{forumpermissions2}', '{edit_time}',
'{maxtags}', '{maxstartertags}', '{maxothertags}', '{maxattachments}', '{maxchannels}', '{channeliconmaxsize}'
)
"),
'fetchperms' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT permissionid, usergroup.title AS ug_title, node.htmltitle AS node_title, IF({order_first} = 'usergroup', CONCAT(usergroup.title, node.htmltitle), CONCAT(node.htmltitle, usergroup.title)) as sortfield
FROM {TABLE_PREFIX}permission AS permission
INNER JOIN {TABLE_PREFIX}usergroup AS usergroup ON (usergroup.usergroupid = permission.groupid)
INNER JOIN {TABLE_PREFIX}node AS node ON (node.nodeid = permission.nodeid)
GROUP BY usergroup.usergroupid
ORDER BY sortfield
"),
'fetchExistingPermsForGroup' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT permission.nodeid
FROM {TABLE_PREFIX}permission AS permission
INNER JOIN {TABLE_PREFIX}node AS node ON (node.nodeid = permission.nodeid)
WHERE permission.groupid = {groupid}
"),
'fetchExistingPermsForGroupLimit' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT permission.nodeid
FROM {TABLE_PREFIX}permission AS permission
INNER JOIN {TABLE_PREFIX}node AS node ON (node.nodeid = permission.nodeid)
INNER JOIN {TABLE_PREFIX}closure AS closure ON (closure.child = permission.nodeid)
WHERE permission.groupid = {groupid}
AND closure.parent = {parentid}
"),
'fetchTemplateWithStyle' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT template.*, style.title AS style, IF(template.styleid = 0, -1, template.styleid) AS styleid, MD5(template.template_un) AS hash
FROM {TABLE_PREFIX}template AS template
LEFT JOIN {TABLE_PREFIX}style AS style USING(styleid)
WHERE templateid = {templateid}
"),
'replaceIntoPhrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}phrase (languageid, fieldname, varname, text, product, username, dateline, version)
VALUES ({languageid}, {fieldname}, {varname}, {text}, {product}, {enteredBy}, {dateline}, {version})
"),
'fetchInfractionsByUser' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT infraction.*, node.userid, user.username AS whoadded_username, user2.username
FROM {TABLE_PREFIX}infraction AS infraction
LEFT JOIN {TABLE_PREFIX}node AS node ON (infraction.nodeid = node.nodeid)
LEFT JOIN {TABLE_PREFIX}user AS user ON (node.userid = user.userid)
LEFT JOIN {TABLE_PREFIX}user AS user2 ON (infraction.infracteduserid = user2.userid)
WHERE infraction.nodeid = {nodeid}
"),
'fetchInfractionsByUser2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT infraction.*, node.userid, user.username AS whoadded_username, user2.username, user3.username AS action_username, node.publishdate
FROM {TABLE_PREFIX}infraction AS infraction
LEFT JOIN {TABLE_PREFIX}node AS node ON (infraction.nodeid = node.nodeid)
LEFT JOIN {TABLE_PREFIX}user AS user ON (node.userid = user.userid)
LEFT JOIN {TABLE_PREFIX}user AS user2 ON (infraction.infracteduserid = user2.userid)
LEFT JOIN {TABLE_PREFIX}user AS user3 ON (infraction.actionuserid = user3.userid)
WHERE infraction.nodeid = {nodeid}
"),
'fetchCountInfractionsByInfractionLvl' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS count, infractionlevelid
FROM {TABLE_PREFIX}infraction
GROUP BY infractionlevelid
ORDER BY count DESC
"),
/* Class BBCode */
'fetchSmilies' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT *, LENGTH(smilietext) AS smilielen
FROM {TABLE_PREFIX}smilie
ORDER BY smilielen DESC
"),
/* Human Verify Question */
'hv_question_fetch_answer' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT hvquestion.questionid, COUNT(*) AS answers
FROM {TABLE_PREFIX}hvquestion AS hvquestion
LEFT JOIN {TABLE_PREFIX}hvanswer AS hvanswer
ON (hvquestion.questionid = hvanswer.questionid)
WHERE hvanswer.answerid IS NOT NULL
OR hvquestion.regex <> ''
GROUP BY hvquestion.questionid
ORDER BY RAND()
LIMIT 1
"),
'hv_question_fetch' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT question.questionid, question.regex
FROM {TABLE_PREFIX}humanverify AS hv
LEFT JOIN {TABLE_PREFIX}hvquestion AS question ON (hv.answer = question.questionid)
WHERE hash = {hash}
AND viewed = 1
"),
//PM Recipients
'fetchPmRecipients' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT usertextfield.*, user.*, userlist.type
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
LEFT JOIN {TABLE_PREFIX}userlist AS userlist ON(user.userid = userlist.userid AND userlist.relationid = {userid} AND userlist.type = 'buddy')
WHERE user.username IN({usernames})
"),
'chooseModLog' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT DISTINCT moderatorlog.userid, user.username
FROM {TABLE_PREFIX}moderatorlog AS moderatorlog
INNER JOIN {TABLE_PREFIX}user AS user USING(userid)
ORDER BY username
"),
/* Admincp API Log */
'api_fetchclientnames' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT DISTINCT clientname
FROM {TABLE_PREFIX}apiclient AS apiclient
ORDER BY clientname
"),
'api_fetchclientusers' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT DISTINCT apiclient.userid, user.username
FROM {TABLE_PREFIX}apiclient AS apiclient
LEFT JOIN {TABLE_PREFIX}user AS user USING(userid)
ORDER BY username
"),
'api_fetchclientbyid' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT apiclient.*, user.username FROM {TABLE_PREFIX}apiclient AS apiclient
LEFT JOIN {TABLE_PREFIX}user AS user using(userid)
WHERE apiclientid = {apiclientid}
"),
/* Admincp API Stats */
'api_fetchmaxclient' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT apilog.apiclientid, apiclient.clientname, COUNT(*) as c
FROM {TABLE_PREFIX}apilog AS apilog
LEFT JOIN {TABLE_PREFIX}apiclient AS apiclient using(apiclientid)
GROUP BY apilog.apiclientid
ORDER BY c DESC
"),
'api_fetchmaxmethod' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT apilog.method, COUNT(*) as c
FROM {TABLE_PREFIX}apilog AS apilog
GROUP BY apilog.method
ORDER BY c DESC
"),
'api_methodcount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS total FROM (
SELECT method, COUNT(*) FROM {TABLE_PREFIX}apilog AS apilog
GROUP BY method
) AS t
"),
'api_methodlogs' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT method, COUNT(*) AS c
FROM {TABLE_PREFIX}apilog AS apilog
GROUP BY method
ORDER BY c DESC
LIMIT {startat}, {limit}
"),
'api_clientcount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS total FROM (
SELECT apiclientid, COUNT(*)
FROM {TABLE_PREFIX}apilog AS apilog
GROUP BY apiclientid
) AS t
"),
'api_clientlogs' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT apilog.apiclientid, apiclient.userid, apiclient.clientname, user.username, COUNT(*) as c
FROM {TABLE_PREFIX}apilog AS apilog
LEFT JOIN {TABLE_PREFIX}apiclient AS apiclient ON (apiclient.apiclientid = apilog.apiclientid)
LEFT JOIN {TABLE_PREFIX}user AS user ON (apiclient.userid = user.userid)
GROUP BY apilog.apiclientid
ORDER BY c DESC
LIMIT {startat}, {limit}
"),
'updt_style_parentlist' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}style SET
parentid = -1,
parentlist = CONCAT(styleid,',-1')
WHERE parentid = 0
"),
'fetchPhrassesByLanguage' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT * FROM {TABLE_PREFIX}phrase
WHERE varname = {varname} AND
fieldname = {fieldname}
ORDER BY languageid
LIMIT 1"),
'fetchProfileFields' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT * FROM {TABLE_PREFIX}profilefield AS profilefield
LEFT JOIN {TABLE_PREFIX}profilefieldcategory AS profilefieldcategory ON
(profilefield.profilefieldcategoryid = profilefieldcategory.profilefieldcategoryid)
ORDER BY profilefield.form, profilefieldcategory.displayorder, profilefield.displayorder"),
'fetchActiveSubscriptions' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT status, regdate, expirydate, subscriptionlogid, subscription.subscriptionid
FROM {TABLE_PREFIX}subscriptionlog AS subscriptionlog
INNER JOIN {TABLE_PREFIX}subscription AS subscription USING (subscriptionid)
WHERE userid = {userid}
ORDER BY status DESC, regdate"),
'node_checktopicread' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS count
FROM {TABLE_PREFIX}node AS node
LEFT JOIN {TABLE_PREFIX}noderead AS noderead ON (noderead.nodeid = node.nodeid AND noderead.userid = {userid})
WHERE node.parentid = {parentid}
AND node.inlist = 1
AND node.protected = 0
AND IF(node.lastcontent >0, node.lastcontent, node.created) > {noderead}
AND (noderead.nodeid IS NULL OR noderead.readtime < IF(node.lastcontent >0, node.lastcontent, node.created))
"),
'node_checktopicreadinchannels' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS count
FROM {TABLE_PREFIX}node AS node
LEFT JOIN {TABLE_PREFIX}noderead AS topicread ON (topicread.nodeid = node.nodeid AND topicread.userid = {userid})
LEFT JOIN {TABLE_PREFIX}noderead AS channelread ON (channelread.nodeid = node.parentid AND channelread.userid = {userid})
WHERE node.parentid IN ({children})
AND node.nodeid = node.starter
AND node.inlist = 1
AND node.protected = 0
AND IF(node.lastcontent >0, node.lastcontent, node.created) > IF(topicread.readtime IS NULL, {cutoff}, topicread.readtime)
AND IF(node.lastcontent >0, node.lastcontent, node.created) > IF(channelread.readtime IS NULL, {cutoff}, channelread.readtime)
AND IF(node.lastcontent >0, node.lastcontent, node.created) > {cutoff}
"),
'mailqueue_updatecount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}datastore SET data = data + {counter} WHERE title = 'mailqueue'
"),
'mailqueue_updatecount2' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}datastore SET
data = {newmail},
data = IF(data < 0, 0, data)
WHERE title = 'mailqueue'
"),
'mailqueue_locktable' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
LOCK TABLES {TABLE_PREFIX}mailqueue WRITE
"),
'fcmqueue_locktable' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
LOCK TABLES {TABLE_PREFIX}fcmessage_queue WRITE
"),
'mailqueue_fetch' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT *
FROM {TABLE_PREFIX}mailqueue
ORDER BY mailqueueid
LIMIT {limit}
"),
'unlock_tables' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UNLOCK TABLES
"),
/* AD API */
'ad_replaceadtemplate' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}template SET
styleid = {styleid},
title = {title},
template = {template},
template_un = {template_un},
templatetype = 'template',
dateline = {timenow},
username = {username},
version = {templateversion},
product = {product}
"),
/* needed for assert_cp_sessionhash() */
'cpSessionUpdate' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE LOW_PRIORITY {TABLE_PREFIX}cpsession
SET dateline = {timenow}
WHERE userid = {userid}
AND hash = {hash}
"),
// assertor in admincp/language.php [START]
'getLanguagePhrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT phrase.varname, phrase.text, phrase.fieldname
FROM {TABLE_PREFIX}phrase AS phrase
LEFT JOIN {TABLE_PREFIX}phrasetype AS phrasetype USING (fieldname)
WHERE languageid = -1 AND phrasetype.special = 0
ORDER BY varname
"),
// assertor in admincp/language.php [END]
'getNewThreads' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT
user.userid, user.username, user.email, user.languageid, user.usergroupid, user.membergroupids,
user.timezoneoffset, IF(user.options & {dstonoff}, 1, 0) AS dstonoff,
user.emailnotification,
node.nodeid, node.routeid, node.htmltitle, node.publishdate, node.parentid, node.lastcontentid,
node.lastcontent, node.userid AS authorid, node.authorname,
node.open, node.totalcount, node.lastcontentauthor, node.lastauthorid, node.prefixid,
subscribediscussion.subscribediscussionid
FROM {TABLE_PREFIX}subscribediscussion AS subscribediscussion
INNER JOIN {TABLE_PREFIX}node AS node ON (node.nodeid = subscribediscussion.discussionid)
INNER JOIN {TABLE_PREFIX}user AS user ON (user.userid = subscribediscussion.userid)
LEFT JOIN {TABLE_PREFIX}usergroup AS usergroup ON (usergroup.usergroupid = user.usergroupid)
WHERE
node.lastcontent > {lastdate} AND
node.showpublished = 1 AND
node.nodeid = node.starter AND
user.usergroupid <> 3 AND
(usergroup.genericoptions & {isnotbannedgroup})
"),
'getNewPosts' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT
IFNULL(user.username, node.authorname) AS postusername,
node.nodeid, node.routeid, node.userid, node.htmltitle, node.publishdate, node.contenttypeid
FROM {TABLE_PREFIX}node AS node
LEFT JOIN {TABLE_PREFIX}user AS user ON (user.userid = node.userid)
INNER JOIN {TABLE_PREFIX}closure AS closure ON ( closure.child = node.nodeid )
WHERE closure.parent = {threadid} AND closure.depth = 1 AND
node.showpublished = 1 AND
user.usergroupid <> 3 AND
node.publishdate > {lastdate}
ORDER BY node.publishdate
"),
'getNewForums' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.userid, user.username, user.email, user.languageid, user.usergroupid, user.membergroupids,
user.timezoneoffset, IF(user.options & {dstonoff}, 1, 0) AS dstonoff,
node.nodeid AS forumid, node.routeid, node.htmltitle AS title_clean, node.title
FROM {TABLE_PREFIX}subscribediscussion AS subscribediscussion
INNER JOIN {TABLE_PREFIX}node AS node
ON (node.nodeid = subscribediscussion.discussionid AND
node.contenttypeid = {channelcontenttype})
INNER JOIN {TABLE_PREFIX}user AS user
ON (user.userid = subscribediscussion.userid)
LEFT JOIN {TABLE_PREFIX}usergroup AS usergroup
ON (usergroup.usergroupid = user.usergroupid)
WHERE user.emailnotification = {type} AND
node.lastcontent > {lastdate} AND
user.usergroupid <> 3 AND
(usergroup.genericoptions & {isnotbannedgroup})
"),
'fetchForumThreads' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT forum.htmltitle AS forumhtmltitle, thread.nodeid, thread.routeid, thread.htmltitle,
thread.publishdate, thread.parentid AS forumid, thread.lastcontent, thread.open, thread.textcount AS replycount,
thread.authorname, thread.userid, thread.lastcontentauthor, thread.publishdate AS dateline, thread.prefixid
FROM {TABLE_PREFIX}node AS thread
INNER JOIN {TABLE_PREFIX}closure AS closure ON ( closure.child = thread.nodeid )
INNER JOIN {TABLE_PREFIX}node AS forum ON ( forum.nodeid = thread.parentid)
WHERE closure.parent = {forumid} AND closure.depth >= 1 AND
thread.nodeid = thread.starter AND
thread.lastcontent > {lastdate} AND
thread.showpublished = 1
"),
'getSubscriptionsReminders' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT subscriptionlog.subscriptionid, subscriptionlog.userid, subscriptionlog.expirydate, user.username, user.email, user.languageid
FROM {TABLE_PREFIX}subscriptionlog AS subscriptionlog
LEFT JOIN {TABLE_PREFIX}user AS user ON (user.userid = subscriptionlog.userid)
WHERE subscriptionlog.expirydate >= {time1}
AND subscriptionlog.expirydate <= {time2}
AND subscriptionlog.status = 1
"),
'getBannedUsers' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.*,
userban.usergroupid AS banusergroupid, userban.displaygroupid AS bandisplaygroupid, userban.customtitle AS bancustomtitle, userban.usertitle AS banusertitle
FROM {TABLE_PREFIX}userban AS userban
INNER JOIN {TABLE_PREFIX}user AS user USING(userid)
WHERE liftdate <> 0 AND liftdate < {liftdate}
"),
'cleanupUA' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE FROM {TABLE_PREFIX}useractivation
WHERE dateline < {time} AND
(type = 1 OR (type = 0 and usergroupid = 2))
"),
'fetchEvents' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT event.eventid, event.title, recurring, recuroption, dateline_from, dateline_to, IF (dateline_to = 0, 1, 0) AS singleday,
dateline_from AS dateline_from_user, dateline_to AS dateline_to_user, utc, dst, event.calendarid,
subscribeevent.userid, subscribeevent.lastreminder, subscribeevent.subscribeeventid, subscribeevent.reminder,
user.email, user.languageid, user.usergroupid, user.username, user.timezoneoffset, IF(user.options & 128, 1, 0) AS dstonoff,
calendar.title AS calendar_title
FROM {TABLE_PREFIX}event AS event
INNER JOIN {TABLE_PREFIX}subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.eventid)
INNER JOIN {TABLE_PREFIX}user AS user ON (user.userid = subscribeevent.userid)
LEFT JOIN {TABLE_PREFIX}calendar AS calendar ON (event.calendarid = calendar.calendarid)
WHERE ((dateline_to >= {beginday} AND dateline_from < {endday}) OR (dateline_to = 0 AND dateline_from >= {beginday} AND dateline_from <= {endday} ))
AND event.visible = 1
"),
'fetchFeeds' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT rssfeed.*, rssfeed.options AS rssoptions, user.*, channel.nodeid as channelid
FROM {TABLE_PREFIX}rssfeed AS rssfeed
INNER JOIN {TABLE_PREFIX}user AS user ON (user.userid = rssfeed.userid)
INNER JOIN {TABLE_PREFIX}node AS channel ON(channel.nodeid = rssfeed.nodeid)
WHERE rssfeed.options & {bf_misc_feedoptions_enabled}
"),
'fetchRSSFeeds' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT *, node.title AS threadtitle
FROM {TABLE_PREFIX}rsslog AS rsslog
INNER JOIN {TABLE_PREFIX}rssfeed AS rssfeed ON(rssfeed.rssfeedid = rsslog.rssfeedid)
INNER JOIN {TABLE_PREFIX}node AS node ON(node.nodeid = rsslog.itemid AND node.starter = node.nodeid)
WHERE rsslog.topicactioncomplete = 0
AND rsslog.itemtype = 'topic'
AND rsslog.topicactiontime <> 0
AND rsslog.topicactiontime < {TIMENOW}
"),
'fetchUsersToActivate' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT user.userid, user.usergroupid, username, email, activationid, user.languageid
FROM {TABLE_PREFIX}user AS user
LEFT JOIN {TABLE_PREFIX}useractivation AS useractivation ON (user.userid=useractivation.userid AND type = 0)
WHERE user.usergroupid = 3
AND ((joindate >= {time1} AND joindate <= {time2}) OR (joindate >= {time3} AND joindate <= {time4}))
AND NOT (user.options & {noactivationmails})
"),
'removeProfileVisits' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT userid
FROM {TABLE_PREFIX}profilevisitor
WHERE visible = 1
GROUP BY userid
HAVING COUNT(*) > {profilemaxvisitors}
"),
'getUserExpiredInfractions' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT i.nodeid, i.infracteduserid, i.infractednodeid, i.points, u.username
FROM {TABLE_PREFIX}infraction AS i
LEFT JOIN {TABLE_PREFIX}user AS u ON(u.userid = i.infracteduserid)
WHERE i.expires <= {timenow}
AND i.expires <> 0
AND i.action = 0
"),
'updateSettingsDefault' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}setting
SET value = defaultvalue
WHERE varname = 'templateversion'
"),
// admincp - index [START]
'getCustomAvatarFilesizeSum' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT SUM(filesize) AS size FROM {TABLE_PREFIX}customavatar
"),
'showVariablesLike' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SHOW VARIABLES LIKE {var}
"),
'getIncompleteAdminMessages' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT adminmessage.adminmessageid
FROM {TABLE_PREFIX}adminmessage AS adminmessage
INNER JOIN {TABLE_PREFIX}adminlog AS adminlog ON (adminlog.script = adminmessage.script AND adminlog.action = adminmessage.action)
WHERE adminmessage.status = 'undone'
AND adminmessage.script <> ''
AND adminlog.dateline > adminmessage.dateline
GROUP BY adminmessage.adminmessageid
"),
'getUserSessionsCount' => [B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT DISTINCT userid FROM {TABLE_PREFIX}session WHERE userid <> 0 AND lastactivity > {datecut}"],
// admincp - index [END]
'getUserStats' => [B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS users, MAX(userid) AS maxid
FROM vb_user
WHERE usergroupid NOT IN ({excludedgroups})
"],
'admincpSearch' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT varname, fieldname, MATCH (text) AGAINST ({terms} IN BOOLEAN MODE) AS relevance
FROM {TABLE_PREFIX}phrase
WHERE fieldname IN ('cphelptext', 'cphome', 'cpglobal', 'global', 'vbsettings')
AND MATCH (text) AGAINST ({terms} IN BOOLEAN MODE)
ORDER BY relevance DESC"),
// admincp - email [START]
'emailReplaceUserActivation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}useractivation
(userid, dateline, activationid, type, usergroupid)
VALUES
({userid}, {dateline}, {activateid} , {type}, {usergroupid})
"),
// admincp - email [END]
// admincp - deployads [START]
'updateTemplateAdDeploy' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}template
SET
template = {template},
template_un = {template_un},
dateline = {dateline},
username = {username}
WHERE
title = {title} AND
styleid = -1 AND
product IN ('', 'vbulletin')
"),
// admincp - deployads [END]
// admincp - plugin [START]
'getHookInfo' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT hook.*,
IF(product.productid IS NULL, 0, 1) AS foundproduct,
IF(hook.product = 'vbulletin', 1, product.active) AS productactive
FROM {TABLE_PREFIX}hook AS hook
LEFT JOIN {TABLE_PREFIX}product AS product ON(product.productid = hook.product)
WHERE hookid = {hookid}
"),
'getHooktypePhrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT varname
FROM {TABLE_PREFIX}phrase
WHERE varname LIKE 'hooktype_%'
"),
'getHookProductInfo' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT hook.*, IF(hook.product = '', 'vbulletin', product.title) AS producttitle,
description, version, url, versioncheckurl, product.active AS productactive
FROM {TABLE_PREFIX}hook AS hook
LEFT JOIN {TABLE_PREFIX}product AS product ON (hook.product = product.productid)
ORDER BY producttitle, hook.title
"),
'getHookProductList' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT hook.hookname, hook.template, hook.arguments, hook.hookid, hook.product
FROM {TABLE_PREFIX}hook AS hook
LEFT JOIN {TABLE_PREFIX}product AS product ON (hook.product = product.productid)
WHERE hook.active = 1 AND (IFNULL(product.active, 0) = 1 OR hook.product = 'vbulletin')
ORDER BY hook.hookname, hook.hookorder
"),
// @TODO define how to remove package related info
'removePackage' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE package, route, contenttype
FROM {TABLE_PREFIX}package AS package
LEFT JOIN {TABLE_PREFIX}routenew AS route
ON route.packageid = package.packageid
LEFT JOIN {TABLE_PREFIX}contenttype AS contenttype
ON contenttype.packageid = package.packageid
WHERE productid = {productid}
"),
'removePackageTemplate' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE t1
FROM {TABLE_PREFIX}template AS t1
INNER JOIN {TABLE_PREFIX}template AS t2 ON (t1.title = t2.title AND t2.product = {productid} AND t2.styleid = -1)
WHERE t1.styleid = -10
"),
'removePackageTypesFetch' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT contenttypeid
FROM {TABLE_PREFIX}contenttype AS c
INNER JOIN {TABLE_PREFIX}package AS p ON (c.packageid = p.packageid)
WHERE
p.productid = {productid}
AND
c.canattach = 1
"),
'installProductPhraseTypeInsert' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
INSERT IGNORE INTO {TABLE_PREFIX}phrasetype
(fieldname, title, editrows, product)
VALUES
({fieldname}, {title}, {editrows}, {product})
"),
// admincp - plugin [END]
// we assume that there's only one instance of this type of container
'getBlogSidebarModules' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT m.*, w2.guid
FROM {TABLE_PREFIX}widgetinstance container
INNER JOIN {TABLE_PREFIX}widget w ON w.widgetid = container.widgetid AND w.guid = 'vbulletin-widget_container-4eb423cfd6dea7.34930867'
INNER JOIN {TABLE_PREFIX}widgetinstance m ON m.containerinstanceid = container.widgetinstanceid
INNER JOIN {TABLE_PREFIX}widget w2 ON w2.widgetid = m.widgetid
WHERE container.pagetemplateid = {blogPageTemplate}
"),
'getWidgetTemplates' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT m.widgetinstanceid, w.widgetid, w.template
FROM {TABLE_PREFIX}widgetinstance m
INNER JOIN {TABLE_PREFIX}widget w ON w.widgetid = m.widgetid
WHERE m.widgetinstanceid IN ({modules})
"),
'updateWidgetInstanceDisplayOrder' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}widgetinstance
SET displayorder = displayorder + 1
WHERE pagetemplateid = {pagetemplateid} AND
displaysection = {displaysection} AND
displayorder >= {mindisplayorder}
"),
'fetchUserFields' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SHOW COLUMNS FROM {TABLE_PREFIX}userfield
"),
// mostly needed for unit test.
'addUserField' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
ALTER TABLE {TABLE_PREFIX}userfield ADD field{profilefieldid} MEDIUMTEXT NOT NULL
"),
'cacheExpireDelete' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE cache, cacheevent
FROM {TABLE_PREFIX}cache AS cache
LEFT JOIN {TABLE_PREFIX}cacheevent AS cacheevent USING (cacheid)
WHERE cache.expires BETWEEN {timefrom} AND {timeto}
"),
'cacheAndEventDelete' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_DELETE, 'query_string' => "
DELETE cache, cacheevent
FROM {TABLE_PREFIX}cache AS cache
LEFT JOIN {TABLE_PREFIX}cacheevent AS cacheevent USING (cacheid)
WHERE cache.cacheid IN ({cacheid})
"),
'getStylesForMaster' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT styleid
FROM {TABLE_PREFIX}style
WHERE INSTR(CONCAT(',', parentlist, ','), {masterid})
"),
'getStylevarData' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT stylevar.*
FROM {TABLE_PREFIX}stylevar AS stylevar
INNER JOIN {TABLE_PREFIX}stylevardfn AS stylevardfn
ON (stylevar.stylevarid = stylevardfn.stylevarid)
WHERE stylevar.styleid IN ({styles})
AND stylevardfn.styleid = {masterid}
"),
'deleteStylevarData' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
DELETE stylevar, stylevardfn
FROM {TABLE_PREFIX}stylevar AS stylevar
INNER JOIN {TABLE_PREFIX}stylevardfn AS stylevardfn
ON (stylevar.stylevarid = stylevardfn.stylevarid)
WHERE stylevardfn.stylevarid = {stylevar}
AND stylevardfn.product IN ({products})
AND stylevar.styleid IN ({styles})
"),
'deleteStylevarPhrases' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
DELETE FROM {TABLE_PREFIX}phrase
WHERE fieldname = 'style'
AND product IN ({products})
AND varname IN ({phrases})
"),
'updateLastVisit' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "
UPDATE {TABLE_PREFIX}user
SET lastvisit = lastactivity,
lastactivity = {timenow}
WHERE userid = {userid}
"),
'decrementFiledataRefcount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}filedata
SET refcount = (refcount - 1)
WHERE filedataid IN ({filedataid}) AND refcount > 0"),
'incrementFiledataRefcountAndMakePublic' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}filedata
SET refcount = (refcount + 1),
publicview = 1
WHERE filedataid IN ({filedataid})"),
'checkFiledataConsistency' => array(
B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT,
// LENGTH counts bytes, not chars. Also, we shouldn't need to check if filedata is
// null/empty, which is the case when attachments are stored in the filesystem, since
// this query is only called when attachments are stored in the database.
'query_string' => "
SELECT
IF(filehash = MD5(filedata), 1, 0) AS filehash_matches,
IF(filesize = LENGTH(filedata), 1, 0) AS filesize_matches
FROM {TABLE_PREFIX}filedata AS fd
WHERE filedataid = {filedataid}
",
),
'attachmentsByContentType' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT a.attachmentid, a.contenttypeid
FROM {TABLE_PREFIX}filedata AS fd
LEFT JOIN {TABLE_PREFIX}attachment AS a ON (a.filedataid = fd.filedataid)
WHERE contenttypeid = {ctypeid}
"),
'getModLogs' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT type, username, dateline
FROM {TABLE_PREFIX}moderatorlog AS modlog
INNER JOIN {TABLE_PREFIX}user AS user USING(userid)
WHERE nodeid = {nodeid}
ORDER BY modlog.dateline DESC
"),
'editlog_replacerecord' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}editlog
(nodeid, userid, username, dateline, reason, hashistory)
VALUES
({nodeid}, {userid}, {username}, {timenow}, {reason}, {hashistory})
"),
'getModeratedTopics' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS count
FROM {TABLE_PREFIX}node
INNER JOIN {TABLE_PREFIX}closure
WHERE showapproved = 0
AND child = nodeid
AND starter = nodeid
AND parent IN ({rootids})
AND contenttypeid NOT IN ({typeids})
"),
'getModeratedReplies' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*) AS count
FROM {TABLE_PREFIX}node
INNER JOIN {TABLE_PREFIX}closure
WHERE showapproved = 0
AND child = nodeid
AND starter != nodeid
AND parent IN ({rootids})
AND contenttypeid NOT IN ({typeids})
"),
'getModeratedVisitorMessages' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(nodeid) AS count
FROM {TABLE_PREFIX}node
WHERE showapproved = 0
AND parentid = {typeid}
"),
'getSiteForums' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT n.nodeid, n.title, n.htmltitle AS title_clean, n.lastcontent AS lastpost, n.routeid
FROM {TABLE_PREFIX}node n
WHERE n.nodeid IN ({viewable_forums}) AND n.nodeid >= {startat} AND n.showapproved > 0 AND n.showpublished > 0 AND n.open = 1 AND n.inlist = 1
ORDER BY n.nodeid
LIMIT {perpage}
"),
'writeAdminUtilSession' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "
REPLACE INTO {TABLE_PREFIX}adminutil
(title, text)
VALUES
('sitemapsession', {session})
"),
'getUserInfractions' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT infraction.*, node.publishdate
FROM {TABLE_PREFIX}infraction AS infraction
LEFT JOIN {TABLE_PREFIX}node AS node ON(node.nodeid = infraction.nodeid)
WHERE infraction.infracteduserid = {infracteduserid}
ORDER BY node.publishdate DESC
"),
'getReplacementTemplates' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT templateid, title, styleid, template
FROM {TABLE_PREFIX}template
WHERE templatetype = 'replacement'
AND templateid IN({templateids})
ORDER BY title
"),
'userstylevarCount' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT COUNT(*)
FROM {TABLE_PREFIX}userstylevar
WHERE userid = {userid}
"),
'getWidgetdefinition' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "
SELECT widgetdefinition.*, widget.template
FROM {TABLE_PREFIX}widgetdefinition AS widgetdefinition
JOIN {TABLE_PREFIX}widget AS widget ON (widgetdefinition.widgetid = widget.widgetid)
WHERE widgetdefinition.widgetid IN({widgetid})
"),
'fetchPhraseList' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT p.languageid, p.varname, p.text
FROM {TABLE_PREFIX}phrase AS p
WHERE p.varname IN ({varname}) AND p.languageid IN ({languageid}) ORDER BY p.languageid DESC
"),
'getChannelsToMark' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT ch.nodeid FROM {TABLE_PREFIX}closure AS cl
INNER JOIN {TABLE_PREFIX}channel AS ch ON ch.nodeid = cl.child
INNER JOIN {TABLE_PREFIX}node AS n ON n.nodeid = ch.nodeid
WHERE cl.parent = {nodeid} AND ch.nodeid IN ({canview}) AND n.lastcontent > {cutoff}
"),
'channelsMarkRead' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "INSERT INTO {TABLE_PREFIX}noderead (nodeid, userid, readtime)
SELECT ch.nodeid, {userid}, {readtime}
FROM {TABLE_PREFIX}closure AS cl
INNER JOIN {TABLE_PREFIX}channel AS ch ON ch.nodeid = cl.child
INNER JOIN {TABLE_PREFIX}node AS n ON n.nodeid = ch.nodeid
WHERE cl.parent = {nodeid} AND ch.nodeid IN ({canview}) AND n.lastcontent > {cutoff}
ON DUPLICATE KEY UPDATE readtime = {readtime};
"),
'startersMarkRead' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_INSERT, 'query_string' => "INSERT INTO {TABLE_PREFIX}noderead (nodeid, userid, readtime)
SELECT n.nodeid, {userid}, {readtime}
FROM {TABLE_PREFIX}closure AS cl
INNER JOIN {TABLE_PREFIX}channel AS ch ON ch.nodeid = cl.child
INNER JOIN {TABLE_PREFIX}node AS n ON n.parentid = ch.nodeid AND n.starter = n.nodeid
WHERE cl.parent = {nodeid} AND ch.nodeid IN ({canview}) AND n.lastcontent > {cutoff}
ON DUPLICATE KEY UPDATE readtime = {readtime};
"),
'decUserReputation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}user SET reputation = reputation - {penalty}
WHERE userid = {userid}
"),
'incUserReputation' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "UPDATE {TABLE_PREFIX}user SET reputation = reputation + {bonus}
WHERE userid = {userid}
"),
'usersCountStartsWithNumber' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT COUNT(*) FROM {TABLE_PREFIX}user
WHERE username REGEXP '^[^a-z].?' AND
usergroupid IN ({usergroupid})
"),
'replaceSigpic' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "REPLACE INTO {TABLE_PREFIX}sigpicnew (userid, filedataid)
VALUES
({userid}, {filedataid})
"),
'getPagesWithoutGUID' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT * FROM {TABLE_PREFIX}page
WHERE guid = '' OR guid IS NULL
"),
'showWidgetTableColumns' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SHOW COLUMNS FROM {TABLE_PREFIX}widget"),
'showWidgetDefintionTableColumns' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SHOW COLUMNS FROM {TABLE_PREFIX}widgetdefinition"),
'fetchMasterStylevars' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT stylevar.stylevarid
FROM {TABLE_PREFIX}stylevar AS stylevar
LEFT JOIN {TABLE_PREFIX}stylevardfn AS stylevardfn
USING (stylevarid)
WHERE stylevar.styleid = -1
AND stylevardfn.product IS NULL"),
// vB4 api
'fetchDataForBuddyList' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_SELECT, 'query_string' => "SELECT user.userid,
user.username,
user.options & {bit_useroptions_invisible} AS invisible,
session.lastactivity
FROM {TABLE_PREFIX}userlist AS userlist
INNER JOIN {TABLE_PREFIX}user AS user
ON user.userid = userlist.relationid
LEFT JOIN {TABLE_PREFIX}session AS session
ON session.userid = user.userid
AND session.lastactivity > {cutoff}
WHERE userlist.userid = {userid}
AND userlist.type = 'follow'
AND userlist.friend = 'yes'
ORDER BY user.username ASC,
session.lastactivity DESC
"),
//this is a bit awkward because it's very inside baseball for MySQL and ideally would
//be part of the query that needs it, but I can't figure a good way to do that. We
//need to make sure that the group_concat is has a big enough limit to handle the
//values procesed. The default 1024 isn't that generous and hitting it quietly truncates
//instead of causing an error.
'setGroupConcatSize' => array(B_dB_Query::QUERYTYPE_KEY => B_dB_Query::QUERY_UPDATE, 'query_string' => "SET SESSION group_concat_max_len = {maxlen}"),
)
$saveDbCacheErrorState
Flag to determine if we are in a state of database error. Used by saveDbCache method.
protected
bool
$saveDbCacheErrorState
= alse
$table_data
This is the definition for tables we will process through. It saves a database query to put them here.
protected
mixed
$table_data
= ['ad' => ['key' => 'adid', 'structure' => ['active', 'adid', 'adlocation', 'displayorder', 'snippet', 'title'], 'forcetext' => ['adlocation', 'snippet', 'title']], 'adcriteria' => ['key' => ['adid', 'criteriaid'], 'structure' => ['adid', 'condition1', 'condition2', 'condition3', 'conditionjson', 'criteriaid'], 'forcetext' => ['condition1', 'condition2', 'condition3', 'conditionjson', 'criteriaid']], 'adminlog' => ['key' => 'adminlogid', 'structure' => ['action', 'adminlogid', 'dateline', 'extrainfo', 'ipaddress', 'script', 'userid'], 'forcetext' => ['action', 'extrainfo', 'ipaddress', 'script']], 'adminmessage' => ['key' => 'adminmessageid', 'structure' => ['action', 'adminmessageid', 'args', 'dateline', 'dismissable', 'execurl', 'method', 'script', 'status', 'statususerid', 'varname'], 'forcetext' => ['action', 'args', 'execurl', 'method', 'script', 'status', 'varname']], 'adminutil' => ['key' => 'title', 'structure' => ['text', 'title'], 'forcetext' => ['text', 'title']], 'apiclient' => ['key' => 'apiclientid', 'structure' => ['apiaccesstoken', 'apiclientid', 'clienthash', 'clientname', 'clientversion', 'dateline', 'initialipaddress', 'lastactivity', 'platformname', 'platformversion', 'secret', 'uniqueid', 'userid'], 'forcetext' => ['apiaccesstoken', 'clienthash', 'clientname', 'clientversion', 'initialipaddress', 'platformname', 'platformversion', 'secret', 'uniqueid']], 'apilog' => ['key' => 'apilogid', 'structure' => ['apiclientid', 'apilogid', 'dateline', 'ipaddress', 'method', 'paramget', 'parampost'], 'forcetext' => ['ipaddress', 'method', 'paramget', 'parampost']], 'bbcode' => ['key' => 'bbcodeid', 'structure' => ['bbcodeexample', 'bbcodeexplanation', 'bbcodeid', 'bbcodereplacement', 'bbcodetag', 'buttonimage', 'options', 'title', 'twoparams'], 'forcetext' => ['bbcodeexample', 'bbcodeexplanation', 'bbcodereplacement', 'bbcodetag', 'buttonimage', 'title']], 'bbcode_video' => ['key' => 'providerid', 'structure' => ['embed', 'priority', 'provider', 'providerid', 'regex_scrape', 'regex_url', 'tagoption', 'url'], 'forcetext' => ['embed', 'provider', 'regex_scrape', 'regex_url', 'tagoption', 'url']], 'cache' => ['key' => 'cacheid', 'structure' => ['cacheid', 'created', 'data', 'expires', 'locktime', 'serialized'], 'forcetext' => ['data', 'serialized']], 'cacheevent' => ['key' => ['cacheid', 'event'], 'structure' => ['cacheid', 'event']], 'contentpriority' => ['key' => ['contenttypeid', 'sourceid'], 'structure' => ['contenttypeid', 'prioritylevel', 'sourceid'], 'forcetext' => ['contenttypeid']], 'cpsession' => ['key' => ['userid', 'hash'], 'structure' => ['dateline', 'hash', 'userid'], 'forcetext' => ['hash']], 'cron' => ['key' => 'cronid', 'structure' => ['active', 'cronid', 'day', 'filename', 'hour', 'loglevel', 'minute', 'nextrun', 'product', 'varname', 'volatile', 'weekday'], 'forcetext' => ['filename', 'minute', 'product', 'varname']], 'customavatar' => ['key' => 'userid', 'structure' => ['dateline', 'extension', 'filedata', 'filedata_thumb', 'filename', 'filesize', 'height', 'height_thumb', 'userid', 'visible', 'width', 'width_thumb'], 'forcetext' => ['extension', 'filename']], 'datastore' => ['key' => 'title', 'structure' => ['data', 'title', 'unserialize'], 'forcetext' => ['data', 'title']], 'deletionlog' => ['key' => ['primaryid', 'type'], 'structure' => ['dateline', 'primaryid', 'reason', 'type', 'userid', 'username'], 'forcetext' => ['reason', 'type', 'username']], 'editlog' => ['key' => 'nodeid', 'structure' => ['dateline', 'hashistory', 'nodeid', 'postid', 'reason', 'userid', 'username'], 'forcetext' => ['reason', 'username']], 'externalcache' => ['key' => 'cachehash', 'structure' => ['cachehash', 'dateline', 'forumid', 'headers', 'text'], 'forcetext' => ['cachehash', 'headers', 'text']], 'filedata' => ['key' => 'filedataid', 'structure' => ['dateline', 'extension', 'filedata', 'filedataid', 'filehash', 'filesize', 'height', 'publicview', 'refcount', 'userid', 'width'], 'forcetext' => ['extension', 'filehash']], 'filedataresize' => ['key' => ['filedataid', 'resize_type'], 'structure' => ['filedataid', 'reload', 'resize_dateline', 'resize_filedata', 'resize_filesize', 'resize_height', 'resize_type', 'resize_width'], 'forcetext' => ['resize_type']], 'hook' => ['key' => 'hookid', 'structure' => ['active', 'arguments', 'hookid', 'hookname', 'hookorder', 'product', 'template', 'title'], 'forcetext' => ['arguments', 'hookname', 'product', 'template', 'title']], 'humanverify' => ['key' => '', 'structure' => ['answer', 'dateline', 'hash', 'viewed'], 'forcetext' => ['answer', 'hash']], 'hvanswer' => ['key' => 'answerid', 'structure' => ['answer', 'answerid', 'dateline', 'questionid'], 'forcetext' => ['answer']], 'hvquestion' => ['key' => 'questionid', 'structure' => ['dateline', 'questionid', 'regex'], 'forcetext' => ['regex']], 'icon' => ['key' => 'iconid', 'structure' => ['displayorder', 'iconid', 'iconpath', 'imagecategoryid', 'title'], 'forcetext' => ['iconpath', 'title']], 'infraction' => ['key' => 'nodeid', 'structure' => ['action', 'actiondateline', 'actionreason', 'actionuserid', 'customreason', 'expires', 'infractednodeid', 'infracteduserid', 'infractionlevelid', 'nodeid', 'note', 'points', 'reputation_penalty'], 'forcetext' => ['actionreason', 'customreason', 'note']], 'infractionban' => ['key' => 'infractionbanid', 'structure' => ['amount', 'banusergroupid', 'infractionbanid', 'method', 'period', 'usergroupid'], 'forcetext' => ['method', 'period']], 'infractiongroup' => ['key' => 'infractiongroupid', 'structure' => ['infractiongroupid', 'orusergroupid', 'override', 'pointlevel', 'usergroupid']], 'infractionlevel' => ['key' => 'infractionlevelid', 'structure' => ['expires', 'extend', 'infractionlevelid', 'period', 'points', 'reputation_penalty', 'warning'], 'forcetext' => ['period']], 'ipaddressinfo' => ['key' => 'ipaddressinfoid', 'structure' => ['created', 'ipaddress', 'ipaddressinfoid', 'location'], 'forcetext' => ['ipaddress', 'location']], 'language' => ['key' => 'languageid', 'structure' => ['calformat1override', 'calformat2override', 'charset', 'dateoverride', 'decimalsep', 'eventdateformatoverride', 'languagecode', 'languageid', 'locale', 'logdateoverride', 'options', 'phrasegroup_advertising', 'phrasegroup_album', 'phrasegroup_attachment_image', 'phrasegroup_banning', 'phrasegroup_bbcode', 'phrasegroup_calendar', 'phrasegroup_ckeditor', 'phrasegroup_contenttypes', 'phrasegroup_cpcms', 'phrasegroup_cpglobal', 'phrasegroup_cphome', 'phrasegroup_cpoption', 'phrasegroup_cppermission', 'phrasegroup_cprank', 'phrasegroup_cprofilefield', 'phrasegroup_cpuser', 'phrasegroup_cpusergroup', 'phrasegroup_cron', 'phrasegroup_diagnostic', 'phrasegroup_forum', 'phrasegroup_forumdisplay', 'phrasegroup_fronthelp', 'phrasegroup_global', 'phrasegroup_help_faq', 'phrasegroup_holiday', 'phrasegroup_hooks', 'phrasegroup_infraction', 'phrasegroup_infractionlevel', 'phrasegroup_inlinemod', 'phrasegroup_language', 'phrasegroup_logging', 'phrasegroup_maintenance', 'phrasegroup_messaging', 'phrasegroup_moderator', 'phrasegroup_navbarlinks', 'phrasegroup_notice', 'phrasegroup_pm', 'phrasegroup_poll', 'phrasegroup_postbit', 'phrasegroup_posting', 'phrasegroup_prefix', 'phrasegroup_prefixadmin', 'phrasegroup_profilefield', 'phrasegroup_promotion', 'phrasegroup_register', 'phrasegroup_reputation', 'phrasegroup_reputationlevel', 'phrasegroup_search', 'phrasegroup_showthread', 'phrasegroup_socialgroups', 'phrasegroup_sql', 'phrasegroup_stats', 'phrasegroup_style', 'phrasegroup_subscription', 'phrasegroup_tagscategories', 'phrasegroup_thread', 'phrasegroup_threadmanage', 'phrasegroup_timezone', 'phrasegroup_user', 'phrasegroup_vb5blog', 'phrasegroup_vbblock', 'phrasegroup_vbblocksettings', 'phrasegroup_wol', 'pickerdateformatoverride', 'registereddateoverride', 'revision', 'thousandsep', 'timeoverride', 'title', 'userselect', 'vblangcode'], 'forcetext' => ['calformat1override', 'calformat2override', 'charset', 'dateoverride', 'decimalsep', 'eventdateformatoverride', 'languagecode', 'locale', 'logdateoverride', 'phrasegroup_advertising', 'phrasegroup_album', 'phrasegroup_attachment_image', 'phrasegroup_banning', 'phrasegroup_bbcode', 'phrasegroup_calendar', 'phrasegroup_ckeditor', 'phrasegroup_contenttypes', 'phrasegroup_cpcms', 'phrasegroup_cpglobal', 'phrasegroup_cphome', 'phrasegroup_cpoption', 'phrasegroup_cppermission', 'phrasegroup_cprank', 'phrasegroup_cprofilefield', 'phrasegroup_cpuser', 'phrasegroup_cpusergroup', 'phrasegroup_cron', 'phrasegroup_diagnostic', 'phrasegroup_forum', 'phrasegroup_forumdisplay', 'phrasegroup_fronthelp', 'phrasegroup_global', 'phrasegroup_help_faq', 'phrasegroup_holiday', 'phrasegroup_hooks', 'phrasegroup_infraction', 'phrasegroup_infractionlevel', 'phrasegroup_inlinemod', 'phrasegroup_language', 'phrasegroup_logging', 'phrasegroup_maintenance', 'phrasegroup_messaging', 'phrasegroup_moderator', 'phrasegroup_navbarlinks', 'phrasegroup_notice', 'phrasegroup_pm', 'phrasegroup_poll', 'phrasegroup_postbit', 'phrasegroup_posting', 'phrasegroup_prefix', 'phrasegroup_prefixadmin', 'phrasegroup_profilefield', 'phrasegroup_promotion', 'phrasegroup_register', 'phrasegroup_reputation', 'phrasegroup_reputationlevel', 'phrasegroup_search', 'phrasegroup_showthread', 'phrasegroup_socialgroups', 'phrasegroup_sql', 'phrasegroup_stats', 'phrasegroup_style', 'phrasegroup_subscription', 'phrasegroup_tagscategories', 'phrasegroup_thread', 'phrasegroup_threadmanage', 'phrasegroup_timezone', 'phrasegroup_user', 'phrasegroup_vb5blog', 'phrasegroup_vbblock', 'phrasegroup_vbblocksettings', 'phrasegroup_wol', 'pickerdateformatoverride', 'registereddateoverride', 'thousandsep', 'timeoverride', 'title', 'vblangcode']], 'location' => ['key' => 'locationid', 'structure' => ['locationcodes', 'locationid', 'title'], 'forcetext' => ['locationcodes', 'title']], 'mailqueue' => ['key' => 'mailqueueid', 'structure' => ['dateline', 'fromemail', 'header', 'mailqueueid', 'message', 'subject', 'toemail'], 'forcetext' => ['fromemail', 'header', 'message', 'subject', 'toemail']], 'moderatorlog' => ['key' => 'moderatorlogid', 'structure' => ['action', 'dateline', 'id1', 'id2', 'id3', 'id4', 'id5', 'ipaddress', 'moderatorlogid', 'nodeid', 'nodetitle', 'product', 'type', 'userid'], 'forcetext' => ['action', 'ipaddress', 'nodetitle', 'product']], 'noderead' => ['key' => ['userid', 'nodeid'], 'structure' => ['nodeid', 'readtime', 'userid']], 'package' => ['key' => 'packageid', 'structure' => ['class', 'packageid', 'productid'], 'forcetext' => ['productid']], 'page' => ['key' => 'pageid', 'structure' => ['displayorder', 'guid', 'metadescription', 'moderatorid', 'pageid', 'pagetemplateid', 'pagetype', 'parentid', 'product', 'routeid', 'title'], 'forcetext' => ['guid', 'metadescription', 'pagetype', 'product', 'title']], 'pagetemplate' => ['key' => 'pagetemplateid', 'structure' => ['content', 'guid', 'pagetemplateid', 'product', 'screenlayoutid', 'screenlayoutsectiondata', 'title'], 'forcetext' => ['content', 'guid', 'product', 'screenlayoutsectiondata', 'title']], 'passwordhistory' => ['key' => '', 'structure' => ['passworddate', 'scheme', 'token', 'userid'], 'forcetext' => ['scheme', 'token']], 'phrase' => ['key' => 'phraseid', 'structure' => ['dateline', 'fieldname', 'languageid', 'phraseid', 'product', 'text', 'username', 'varname', 'version'], 'forcetext' => ['fieldname', 'product', 'text', 'username', 'varname', 'version']], 'phrasetype' => ['key' => 'fieldname', 'structure' => ['editrows', 'fieldname', 'product', 'special', 'title'], 'forcetext' => ['fieldname', 'product', 'title']], 'privacyconsent' => ['key' => 'privacyconsentid', 'structure' => ['consent', 'created', 'ipaddress', 'privacyconsentid'], 'forcetext' => ['ipaddress']], 'product' => ['key' => 'productid', 'structure' => ['active', 'description', 'productid', 'title', 'url', 'version', 'versioncheckurl'], 'forcetext' => ['description', 'productid', 'title', 'url', 'version', 'versioncheckurl']], 'productcode' => ['key' => 'productcodeid', 'structure' => ['installcode', 'productcodeid', 'productid', 'uninstallcode', 'version'], 'forcetext' => ['installcode', 'productid', 'uninstallcode', 'version']], 'productdependency' => ['key' => 'productdependencyid', 'structure' => ['dependencytype', 'maxversion', 'minversion', 'parentproductid', 'productdependencyid', 'productid'], 'forcetext' => ['dependencytype', 'maxversion', 'minversion', 'parentproductid', 'productid']], 'profilevisitor' => ['key' => ['visitorid', 'userid'], 'structure' => ['dateline', 'userid', 'visible', 'visitorid']], 'routenew' => ['key' => 'routeid', 'structure' => ['action', 'arguments', 'class', 'contentid', 'controller', 'guid', 'ishomeroute', 'name', 'prefix', 'product', 'redirect301', 'regex', 'routeid', 'template'], 'forcetext' => ['action', 'arguments', 'class', 'controller', 'guid', 'name', 'prefix', 'product', 'regex', 'template']], 'screenlayout' => ['key' => 'screenlayoutid', 'structure' => ['admintemplate', 'columncount', 'displayorder', 'guid', 'screenlayoutid', 'sectiondata', 'template', 'title', 'varname'], 'forcetext' => ['admintemplate', 'guid', 'sectiondata', 'template', 'title', 'varname']], 'session' => ['key' => 'sessionhash', 'structure' => ['apiaccesstoken', 'apiclientid', 'badlocation', 'bypass', 'emailstamp', 'host', 'idhash', 'incalendar', 'inforum', 'inthread', 'languageid', 'lastactivity', 'location', 'loggedin', 'pagekey', 'profileupdate', 'sessionhash', 'styleid', 'useragent', 'userid', 'wol'], 'forcetext' => ['apiaccesstoken', 'host', 'idhash', 'location', 'pagekey', 'sessionhash', 'useragent', 'wol']], 'setting' => ['key' => 'varname', 'structure' => ['adminperm', 'advanced', 'blacklist', 'datatype', 'defaultvalue', 'displayorder', 'grouptitle', 'ispublic', 'optioncode', 'product', 'validationcode', 'value', 'varname', 'volatile'], 'forcetext' => ['adminperm', 'datatype', 'defaultvalue', 'grouptitle', 'optioncode', 'product', 'validationcode', 'value', 'varname']], 'settinggroup' => ['key' => 'grouptitle', 'structure' => ['adminperm', 'displayorder', 'grouptitle', 'product', 'volatile'], 'forcetext' => ['adminperm', 'grouptitle', 'product']], 'smilie' => ['key' => 'smilieid', 'structure' => ['displayorder', 'imagecategoryid', 'smilieid', 'smiliepath', 'smilietext', 'title'], 'forcetext' => ['smiliepath', 'smilietext', 'title']], 'spamlog' => ['key' => 'nodeid', 'structure' => ['nodeid']], 'stats' => ['key' => 'dateline', 'structure' => ['ausers', 'dateline', 'npost', 'nthread', 'nuser']], 'style' => ['key' => 'styleid', 'structure' => ['dateline', 'displayorder', 'editorstyles', 'filedataid', 'guid', 'newstylevars', 'parentid', 'parentlist', 'previewfiledataid', 'replacements', 'styleattributes', 'styleid', 'templatelist', 'title', 'userselect'], 'forcetext' => ['editorstyles', 'guid', 'newstylevars', 'parentlist', 'replacements', 'templatelist', 'title']], 'stylevar' => ['key' => ['stylevarid', 'styleid'], 'structure' => ['dateline', 'styleid', 'stylevarid', 'username', 'value'], 'forcetext' => ['stylevarid', 'username']], 'subscribeevent' => ['key' => 'subscribeeventid', 'structure' => ['eventid', 'lastreminder', 'reminder', 'subscribeeventid', 'userid']], 'template' => ['key' => 'templateid', 'structure' => ['dateline', 'mergestatus', 'product', 'styleid', 'template', 'template_un', 'templateid', 'templatetype', 'textonly', 'title', 'username', 'version'], 'forcetext' => ['mergestatus', 'product', 'template', 'template_un', 'templatetype', 'title', 'username', 'version']], 'templatehistory' => ['key' => 'templatehistoryid', 'structure' => ['comment', 'dateline', 'styleid', 'template', 'templatehistoryid', 'title', 'username', 'version'], 'forcetext' => ['comment', 'template', 'title', 'username', 'version']], 'templatemerge' => ['key' => 'templateid', 'structure' => ['savedtemplateid', 'template', 'templateid', 'version'], 'forcetext' => ['template', 'version']], 'user' => ['key' => 'userid', 'structure' => ['adminoptions', 'aim', 'assetposthash', 'autosubscribe', 'avatarid', 'avatarrevision', 'birthday', 'birthday_search', 'customtitle', 'daysprune', 'displaygroupid', 'editorstate', 'email', 'emailnotification', 'emailstamp', 'fbjoindate', 'fbname', 'fbuserid', 'friendcount', 'friendreqcount', 'gmmoderatedcount', 'google', 'homepage', 'icq', 'infractiongroupid', 'infractiongroupids', 'infractions', 'ipaddress', 'ipoints', 'joindate', 'languageid', 'lastactivity', 'lastpost', 'lastpostid', 'lastvisit', 'location', 'maxposts', 'membergroupids', 'moderatoremailnotificationoptions', 'moderatornotificationoptions', 'msn', 'notification_options', 'options', 'parentemail', 'passworddate', 'pcmoderatedcount', 'pcunreadcount', 'pmpopup', 'pmtotal', 'pmunread', 'posts', 'privacy_options', 'privacyconsent', 'privacyconsentupdated', 'profilevisits', 'referrerid', 'reputation', 'reputationlevelid', 'scheme', 'secret', 'showbirthday', 'showvbcode', 'sigpicrevision', 'skype', 'socgroupinvitecount', 'socgroupreqcount', 'startofweek', 'styleid', 'threadedmode', 'timezoneoffset', 'token', 'usergroupid', 'userid', 'username', 'usertitle', 'vmmoderatedcount', 'vmunreadcount', 'warnings', 'yahoo'], 'forcetext' => ['aim', 'assetposthash', 'birthday', 'email', 'fbname', 'fbuserid', 'google', 'homepage', 'icq', 'infractiongroupids', 'ipaddress', 'location', 'membergroupids', 'msn', 'parentemail', 'privacy_options', 'scheme', 'secret', 'skype', 'timezoneoffset', 'token', 'username', 'usertitle', 'yahoo']], 'useractivation' => ['key' => 'useractivationid', 'structure' => ['activationid', 'dateline', 'emailchange', 'reset_attempts', 'reset_locked_since', 'type', 'useractivationid', 'usergroupid', 'userid'], 'forcetext' => ['activationid']], 'userban' => ['key' => 'userid', 'structure' => ['adminid', 'bandate', 'customtitle', 'displaygroupid', 'liftdate', 'reason', 'usergroupid', 'userid', 'usertitle'], 'forcetext' => ['reason', 'usertitle']], 'userchangelog' => ['key' => 'changeid', 'structure' => ['adminid', 'change_time', 'change_uniq', 'changeid', 'fieldname', 'ipaddress', 'newvalue', 'oldvalue', 'userid'], 'forcetext' => ['change_uniq', 'fieldname', 'ipaddress', 'newvalue', 'oldvalue']], 'usergroup' => ['key' => 'usergroupid', 'structure' => ['adminpermissions', 'albummaxpics', 'albummaxsize', 'albumpermissions', 'albumpicmaxheight', 'albumpicmaxwidth', 'attachlimit', 'avatarmaxheight', 'avatarmaxsize', 'avatarmaxwidth', 'calendarpermissions', 'canoverride', 'closetag', 'description', 'forumpermissions', 'forumpermissions2', 'genericoptions', 'genericpermissions', 'genericpermissions2', 'groupiconmaxsize', 'maximumsocialgroups', 'opentag', 'passwordexpires', 'passwordhistory', 'pmpermissions', 'pmquota', 'pmsendmax', 'pmthrottlequantity', 'sigmaxchars', 'sigmaximages', 'sigmaxlines', 'sigmaxrawchars', 'sigmaxsizebbcode', 'signaturepermissions', 'sigpicmaxheight', 'sigpicmaxsize', 'sigpicmaxwidth', 'socialgrouppermissions', 'systemgroupid', 'title', 'usercsspermissions', 'usergroupid', 'usertitle', 'visitormessagepermissions', 'wolpermissions'], 'forcetext' => ['closetag', 'description', 'opentag', 'title', 'usertitle']], 'userlist' => ['key' => ['userid', 'relationid', 'type'], 'structure' => ['friend', 'relationid', 'type', 'userid'], 'forcetext' => ['friend', 'type']], 'userloginmfa' => ['key' => 'userid', 'structure' => ['dateline', 'enabled', 'secret', 'userid'], 'forcetext' => ['secret']], 'usernote' => ['key' => 'usernoteid', 'structure' => ['allowsmilies', 'dateline', 'message', 'posterid', 'title', 'userid', 'username', 'usernoteid'], 'forcetext' => ['message', 'title', 'username']], 'userpromotion' => ['key' => 'userpromotionid', 'structure' => ['date', 'joinusergroupid', 'posts', 'reputation', 'strategy', 'type', 'usergroupid', 'userpromotionid']], 'userstylevar' => ['key' => ['stylevarid', 'userid'], 'structure' => ['dateline', 'stylevarid', 'userid', 'value'], 'forcetext' => ['stylevarid']], 'usertitle' => ['key' => 'usertitleid', 'structure' => ['minposts', 'title', 'usertitleid'], 'forcetext' => ['title']], 'videoitem' => ['key' => 'videoitemid', 'structure' => ['code', 'nodeid', 'provider', 'url', 'videoitemid'], 'forcetext' => ['code', 'provider', 'url']], 'widget' => ['key' => 'widgetid', 'structure' => ['admintemplate', 'canbemultiple', 'category', 'cloneable', 'guid', 'icon', 'isthirdparty', 'parentid', 'product', 'template', 'titlephrase', 'widgetid'], 'forcetext' => ['admintemplate', 'category', 'guid', 'icon', 'product', 'template', 'titlephrase']], 'widgetchannelconfig' => ['key' => ['widgetinstanceid', 'nodeid'], 'structure' => ['channelconfig', 'nodeid', 'widgetinstanceid']], 'widgetdefinition' => ['key' => '', 'structure' => ['data', 'defaultvalue', 'descriptionphrase', 'displayorder', 'field', 'ishiddeninput', 'isrequired', 'isusereditable', 'labelphrase', 'name', 'product', 'validationmethod', 'validationtype', 'widgetid'], 'forcetext' => ['data', 'descriptionphrase', 'field', 'labelphrase', 'name', 'product', 'validationmethod', 'validationtype']], 'widgetinstance' => ['key' => 'widgetinstanceid', 'structure' => ['adminconfig', 'containerinstanceid', 'displayorder', 'displaysection', 'pagetemplateid', 'widgetid', 'widgetinstanceid'], 'forcetext' => ['adminconfig']], 'widgetuserconfig' => ['key' => ['widgetinstanceid', 'userid'], 'structure' => ['userconfig', 'userid', 'widgetinstanceid']]]
Methods
__serialize()
public
__serialize() : mixed
Return values
mixed —__sleep()
public
__sleep() : mixed
Return values
mixed —__unserialize()
public
__unserialize(mixed $serialized) : mixed
Parameters
- $serialized : mixed
Return values
mixed —__wakeup()
public
__wakeup() : mixed
Return values
mixed —addLanguageFromPackage()
Add the language columns from a package
public
addLanguageFromPackage(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —anyAdminAsSecondaryExists()
public
anyAdminAsSecondaryExists(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —buildUserInfractions()
"Magic" Function that builds all the information regarding infractions (only used in Cron)
public
buildUserInfractions(mixed $params, mixed $db[, mixed $check_only = false ]) : bool
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
bool —Whether infractions info was updated.
deleteOldPhrases()
public
deleteOldPhrases(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —deleteOrphans()
public
deleteOrphans(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchAdminusersFromUsergroup()
public
fetchAdminusersFromUsergroup(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchApiActivity()
public
fetchApiActivity(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchApiLogs()
public
fetchApiLogs(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchApiLogsCount()
public
fetchApiLogsCount(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchApiLogsCountDatecut()
public
fetchApiLogsCountDatecut(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchCountInfractionsByCond()
public
fetchCountInfractionsByCond(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchCountPhrasesByLang()
public
fetchCountPhrasesByLang(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchCronLog()
public
fetchCronLog(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchCronLogCount()
public
fetchCronLogCount(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchInfractionsByCondLimit()
public
fetchInfractionsByCondLimit(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchKeepNames()
public
fetchKeepNames(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchLanguage()
public
fetchLanguage(mixed $params, mixed $dbobject[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $dbobject : mixed
- $check_only : mixed = false
Return values
mixed —fetchLanguages()
public
fetchLanguages(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchMailingList()
Fetches the mailing list for users regarding the user adminemail option.
public
fetchMailingList(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —fetchMailingListCount()
public
fetchMailingListCount(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchMemberList()
public
fetchMemberList(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchModlogCount()
public
fetchModlogCount(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchModlogs()
public
fetchModlogs(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPermsOrdered()
public
fetchPermsOrdered(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPhraseInfo()
public
fetchPhraseInfo(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPhrases()
public
fetchPhrases(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPhrasesForDisplay()
public
fetchPhrasesForDisplay(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPhrasesForExport()
public
fetchPhrasesForExport(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPhrasesOrderedPaged()
public
fetchPhrasesOrderedPaged(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPromotions()
public
fetchPromotions(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchPruneUsers()
Fetch list of users to prune
public
fetchPruneUsers(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —fetchSearchTagsForCloud()
public
fetchSearchTagsForCloud(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchStylevarsArray()
public
fetchStylevarsArray(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchSubs2Del()
public
fetchSubs2Del(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchTagsForCloud()
public
fetchTagsForCloud(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchTagsForTagNavigation()
public
fetchTagsForTagNavigation(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchUserinfo()
public
fetchUserinfo(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchUsersForPromotion()
public
fetchUsersForPromotion(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchUsersFromCriteria()
Fetches userlist from a given criteria.
public
fetchUsersFromCriteria(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —fetchUsersInfractionGroups()
public
fetchUsersInfractionGroups(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchUsersSubscriptions()
public
fetchUsersSubscriptions(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchWol()
public
fetchWol(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchWolAllUsers()
public
fetchWolAllUsers(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —fetchWolCount()
public
fetchWolCount(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getChangelogData()
public
getChangelogData(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getInfractionsByType()
public
getInfractionsByType(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getLock()
public
getLock(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getModeratorInfo()
public
getModeratorInfo(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getModLogsByConds()
public
getModLogsByConds(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getQueryData()
This returns the query definitions
public
getQueryData() : mixed
Return values
mixed —getSiteThreads()
Get all the site threads limitted by the given parentids.
public
getSiteThreads(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —getStyle()
public
getStyle(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getStyleByConds()
public
getStyleByConds(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —getTableData()
This returns the table definitions
public
getTableData() : mixed
Return values
mixed —getUsersForPrivacyDeletion()
public
getUsersForPrivacyDeletion(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —insertignoreValues()
Creates an INSERT IGNORE query based on the params that are passed
public
insertignoreValues(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —isFreeLock()
public
isFreeLock(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —keepOrphans()
public
keepOrphans(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —lockTables()
Lock tables
public
lockTables(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —pruneCronLog()
public
pruneCronLog(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —releaseLock()
public
releaseLock(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —removeLanguageFromPackage()
Remove the language columns from a package
public
removeLanguageFromPackage(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —replaceSetting()
public
replaceSetting(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —replaceTemplates()
public
replaceTemplates(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —replaceValues()
public
replaceValues(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —saveDbCache()
public
saveDbCache(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —saveDbCacheEvents()
public
saveDbCacheEvents(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —searchPhrases()
public
searchPhrases(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —searchTemplates()
public
searchTemplates(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —truncateTable()
Your basic table truncate
public
truncateTable(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —unlockTables()
Unlock tables
public
unlockTables(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateCron()
public
updateCron(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateCronEnabled()
public
updateCronEnabled(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateHookStatus()
Updates the plugin active status
public
updateHookStatus(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Tags
Return values
mixed —updateInvisible()
public
updateInvisible(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateLanguagePhrases()
public
updateLanguagePhrases(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateMemberForDeletedUsergroup()
public
updateMemberForDeletedUsergroup(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updatePhraseByProduct()
public
updatePhraseByProduct(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updatePhraseDefLanguage()
public
updatePhraseDefLanguage(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updatePhraseLanguage()
public
updatePhraseLanguage(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateSubscribeEvent()
public
updateSubscribeEvent(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —updateUserInfractions()
public
updateUserInfractions(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userFind()
public
userFind(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userFindCount()
public
userFindCount(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userInsertAnnouncementread()
public
userInsertAnnouncementread(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userInsertSubscribeevent()
public
userInsertSubscribeevent(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userReferrers()
Generate a report of user referrals for the given time period
public
userReferrers(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userSearchIPUsage()
public
userSearchIPUsage(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —userSearchRegisterIP()
public
userSearchRegisterIP(mixed $params, mixed $db[, mixed $check_only = false ]) : mixed
Parameters
- $params : mixed
- $db : mixed
- $check_only : mixed = false
Return values
mixed —executeWriteQuery()
Handles a write query -- pretty much anything that doesn't return a result set.
protected
executeWriteQuery(object $db, string $sql[, string $tag = '' ]) : mixed
Intend for use by method queries to reduce repetative code and increase standardization
Parameters
- $db : object
-
-- the internal db connection object for this DB type
- $sql : string
-
-- the query string for this DB type.
- $tag : string = ''
-
-- if provided this will append and indentifying comment to the query to assist determining where the query resulted from. This will involve more than simply the tag text. (The tag should not contain any user generated content -- if you don't know where it came from, don't use it).
Return values
mixed —fetchApiLogsSqlconds()
protected
fetchApiLogsSqlconds(mixed $params, mixed $db) : mixed
Parameters
- $params : mixed
- $db : mixed
Return values
mixed —getIncludeVisibleChannelsSQL()
protected
getIncludeVisibleChannelsSQL(mixed $channelAccess) : mixed
Parameters
- $channelAccess : mixed
Return values
mixed —getNodePermTerms()
Composes the terms for the flags to enforce the starter-node-specific permissions.
protected
getNodePermTerms([ $excludeUserSpecific = false ][, $userid = null ][, $onlyIncludeTheseChannels = [] ][, $skipChannels = false ][, $skipStarterJoin = false ]) : mixed
Parameters
- $excludeUserSpecific : = false
-
bool Exclude user specific queries. Used for precaching
- $userid : = null
-
bool User whose context will be used. If not set, it'll be the current user.
- $onlyIncludeTheseChannels : = []
-
int[] Optional, if provided it is used to trim the various channel lists. Used with inc/exc channel filter.
- $skipChannels : = false
-
bool Default false. Set True if the search filters specify a channel-type exclusion (e.g. "exclude_type": "vBForum_Channel"). In such a case we can skip the "node is a visible channel" part of the where clause.
- $skipStarterJoin : = false
-
bool Default false. If True this function will replace all "starter" alias references with "node" and skip joins.starter in the return array. Used when the caller is aware that there is a starter_only or similar search filter that allows for an optimization via this skip.
Return values
mixed —getQueryBuilder()
protected
getQueryBuilder(mixed $db) : mixed
Parameters
- $db : mixed
Return values
mixed —getResultSet()
Returns the resultset for a particular query string
protected
getResultSet(object $db, string $sql[, string $tag = '' ]) : mixed
Intend for use by method queries to reduce repetative code and increase standardization
Parameters
- $db : object
-
-- the internal db connection object for this DB type
- $sql : string
-
-- the query string for this DB type.
- $tag : string = ''
-
-- if provided this will append and indentifying comment to the query to assist determining where the query resulted from. This will involve more than simply the tag text. (The tag should not contain any user generated content -- if you don't know where it came from, don't use it).
Return values
mixed —getVisibleChannels()
protected
getVisibleChannels(mixed $channelAccess) : mixed
Parameters
- $channelAccess : mixed
Return values
mixed —sparsifyChannelAccess()
protected
sparsifyChannelAccess(mixed &$channelAccess, mixed $onlyIncludeTheseChannels) : mixed
Parameters
- $channelAccess : mixed
- $onlyIncludeTheseChannels : mixed
Return values
mixed —baseFindQuery()
private
baseFindQuery(mixed $db, mixed $select, mixed $orderlimit, mixed $params) : mixed
Parameters
- $db : mixed
- $select : mixed
- $orderlimit : mixed
- $params : mixed
Return values
mixed —fetch_field_like_sql()
Fetch SQL clause for haystack LIKE needle
private
fetch_field_like_sql(mixed $searchstring, mixed $field[, mixed $isbinary = false ][, mixed $casesensitive = false ]) : string
Parameters
- $searchstring : mixed
- $field : mixed
- $isbinary : mixed = false
- $casesensitive : mixed = false
Return values
string —'haystack LIKE needle' variant
fetchMailingListClean()
private
fetchMailingListClean(mixed $params) : mixed
Parameters
- $params : mixed
Return values
mixed —fetchMailingListWhere()
private
fetchMailingListWhere(mixed $params, mixed $db) : mixed
Parameters
- $params : mixed
- $db : mixed
Return values
mixed —getInfractionsSearchSql()
private
getInfractionsSearchSql(mixed $select, mixed $params, mixed $db, mixed $joinUsers) : mixed
Parameters
- $select : mixed
- $params : mixed
- $db : mixed
- $joinUsers : mixed
Return values
mixed —getLocationCheckWhere()
private
getLocationCheckWhere(mixed $db, mixed $locations, mixed $checktype) : mixed
Parameters
- $db : mixed
- $locations : mixed
- $checktype : mixed