vBulletin 5.6.5 API

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
result

mixed

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
result

mixed

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
result

mixed

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
result

mixed

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
result

mixed

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
result

mixed

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
result

mixed

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
result

mixed

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
Return values
mixed —

Search results