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