Functions Summary |
loadSession
|
Attempt to start the session, unless it already has been. |
sessionClose
|
Implementation of sessionClose() replacing the standard close handler.
It simply returns true. |
sessionDestroy
|
Implementation of sessionDestroy() replacing the standard destroy handler. |
sessionGC
|
Implementation of sessionGC() replacing the standard gc handler.
Callback for garbage collection. |
sessionOpen
|
Implementation of sessionOpen() replacing the standard open handler.
It simply returns true. |
sessionRead
|
Implementation of sessionRead() replacing the standard read handler. |
sessionWrite
|
Implementation of sessionWrite() replacing the standard write handler. |
AlignURLsWithSSLSetting
|
Align URLs with SSL Setting.
If force_ssl has changed, ensure all URLs are aligned with the new setting.
This includes:
- $boardurl
- $modSettings['smileys_url']
- $modSettings['avatar_url']
- $modSettings['custom_avatar_url'] - if found
- theme_url - all entries in the themes table
- images_url - all entries in the themes table
This function will NOT overwrite URLs that are not subfolders of $boardurl.
The admin must have pointed those somewhere else on purpose, so they must be updated manually.
A word of caution: You can't trust the http/https scheme reflected for these URLs in $globals
(e.g., $boardurl) or in $modSettings. This is because SMF may change them in memory to comply
with the force_ssl setting - a soft redirect may be in effect... Thus, conditional updates
to these values do not work. You gotta just brute force overwrite them based on force_ssl. |
BoardurlMatch
|
$boardurl Match.
Helper function to see if the url being checked is based off of $boardurl.
If not, it was overridden by the admin to some other value on purpose, and should not
be stepped on by SMF when aligning URLs with the force_ssl setting.
The site admin must change URLs that are not aligned with $boardurl manually. |
ModifyCacheSettings
|
Simply modifying cache functions |
ModifyCookieSettings
|
This function handles cookies settings modifications. |
ModifyDatabaseSettings
|
Basic database and paths settings - database name, host, etc.
- It shows an interface for the settings in Settings.php to be changed.
- It contains the actual array of settings to show from Settings.php.
- Requires the admin_forum permission.
- Uses the edit_settings administration area.
- Accessed from ?action=admin;area=serversettings;sa=database. |
ModifyGeneralSecuritySettings
|
Settings really associated with general security aspects. |
ModifyGeneralSettings
|
General forum settings - forum name, maintenance mode, etc.
Practically, this shows an interface for the settings in Settings.php to be changed.
- Requires the admin_forum permission.
- Uses the edit_settings administration area.
- Contains the actual array of settings to show from Settings.php.
- Accessed from ?action=admin;area=serversettings;sa=general. |
ModifyLoadBalancingSettings
|
Allows to edit load balancing settings. |
ModifySettings
|
This is the main dispatcher. Sets up all the available sub-actions, all the tabs and selects
the appropriate one based on the sub-action.
Requires the admin_forum permission.
Redirects to the appropriate function based on the sub-action.
uses edit_settings adminIndex. |
ShowPHPinfoSettings
|
Allows us to see the servers php settings
- loads the settings into an array for display in a template
- drops cookie values just in case |
loadCacheAPIs
|
Get the installed Cache API implementations. |
prepareDBSettingContext
|
Helper function, it sets up the context for database settings. |
prepareServerSettingsContext
|
Helper function, it sets up the context for the manage server settings.
- The basic usage of the six numbered key fields are
- array (0 ,1, 2, 3, 4, 5
0 variable name - the name of the saved variable
1 label - the text to show on the settings page
2 saveto - file or db, where to save the variable name - value pair
3 type - type of data to save, int, float, text, check
4 size - false or field size
5 help - '' or helptxt variable name
)
the following named keys are also permitted
'disabled' => A string of code that will determine whether or not the setting should be disabled
'postinput' => Text to display after the input field
'preinput' => Text to display before the input field
'subtext' => Additional descriptive text to display under the field's label
'min' => minimum allowed value (for int/float). Defaults to 0 if not set.
'max' => maximum allowed value (for int/float)
'step' => how much to increment/decrement the value by (only for int/float - mostly used for float values). |
registerSMStats
|
Registers the site with the Simple Machines Stat collection. This function
purposely does not use updateSettings.php as it will be called shortly after
this process completes by the saveSettings() function.
See Stats.php SMStats() for more information. |
saveDBSettings
|
Helper function for saving database settings. |
saveSettings
|
Helper function. Saves settings by putting them in Settings.php or saving them in the settings table.
- Saves those settings set from ?action=admin;area=serversettings.
- Requires the admin_forum permission.
- Contains arrays of the types of data to save into Settings.php. |
RecentPosts
|
Find the ten most recent posts. |
UnreadTopics
|
Find unread topics and replies. |
getLastPost
|
Get the latest post made on the system
- respects approved, recycled, and board permissions
- @todo is this even used anywhere? |
AdminBoardRecount
|
Recount many forum totals that can be recounted automatically without harm.
it requires the admin_forum permission.
It shows the maintain_forum admin area.
Totals recounted:
- fixes for topics with wrong num_replies.
- updates for num_posts and num_topics of all boards.
- recounts instant_messages but not unread_messages.
- repairs messages pointing to boards with topics pointing to other boards.
- updates the last message posted in boards and children.
- updates member count, latest member, topic count, and message count.
The function redirects back to ?action=admin;area=maintain when complete.
It is accessed via ?action=admin;area=maintain;sa=database;activity=recount. |
ConvertEntities
|
Converts HTML-entities to their UTF-8 character equivalents.
This requires the admin_forum permission.
Pre-condition: UTF-8 has been set as database and global character set.
It is divided in steps of 10 seconds.
This action is linked from the maintenance screen (if applicable).
It is accessed by ?action=admin;area=maintain;sa=database;activity=convertentities.
uses Admin template, convert_entities sub-template. |
ConvertMsgBody
|
Convert the column "body" of the table {db_prefix}messages from TEXT to MEDIUMTEXT and vice versa.
It requires the admin_forum permission.
This is needed only for MySQL.
During the conversion from MEDIUMTEXT to TEXT it check if any of the posts exceed the TEXT length and if so it aborts.
This action is linked from the maintenance screen (if it's applicable).
Accessed by ?action=admin;area=maintain;sa=database;activity=convertmsgbody.
uses the convert_msgbody sub template of the Admin template. |
Destroy
|
Oh noes! I'd document this but that would give it away |
MaintainCleanCache
|
Wipes the whole cache directory.
This only applies to SMF's own cache directory, though. |
MaintainDatabase
|
Supporting function for the database maintenance area. |
MaintainEmptyUnimportantLogs
|
Empties all uninmportant logs |
MaintainFindFixErrors
|
Find and fix all errors on the forum. |
MaintainMassMoveTopics
|
Moves topics from one board to another.
uses not_done template to pause the process. |
MaintainMembers
|
Supporting function for the members maintenance area. |
MaintainPurgeInactiveMembers
|
Removing old members. Done and out! |
MaintainReattributePosts
|
Re-attribute posts. |
MaintainRecountPosts
|
Recalculate all members post counts
it requires the admin_forum permission.
- recounts all posts for members found in the message table
- updates the members post count record in the members table
- honors the boards post count flag
- does not count posts in the recycle bin
- zeros post counts for all members with no posts in the message table
- runs as a delayed loop to avoid server overload
- uses the not_done template in Admin.template
The function redirects back to action=admin;area=maintain;sa=members when complete.
It is accessed via ?action=admin;area=maintain;sa=members;activity=recountposts |
MaintainRemoveOldDrafts
|
Removing old drafts |
MaintainRemoveOldPosts
|
Removing old posts doesn't take much as we really pass through. |
MaintainRoutine
|
Supporting function for the routine maintenance area. |
MaintainTopics
|
Supporting function for the topics maintenance area. |
ManageMaintenance
|
Main dispatcher, the maintenance access point.
This, as usual, checks permissions, loads language files, and forwards to the actual workers. |
OptimizeTables
|
Optimizes all tables in the database and lists how much was saved.
It requires the admin_forum permission.
It shows as the maintain_forum admin area.
It is accessed from ?action=admin;area=maintain;sa=database;activity=optimize.
It also updates the optimize scheduled task such that the tables are not automatically optimized again too soon.
uses the optimize sub template |
VersionDetail
|
Perform a detailed version check. A very good thing ;).
The function parses the comment headers in all files for their version information,
and outputs that for some javascript to check with simplemachines.org.
It does not connect directly with simplemachines.org, but rather expects the client to.
It requires the admin_forum permission.
Uses the view_versions admin area.
Accessed through ?action=admin;area=maintain;sa=routine;activity=version.
uses Admin template, view_versions sub-template. |
fixchardb__callback
|
Converts html entities to utf8 equivalents
special db wrapper for mysql based on the limitation of mysql/mb3
Callback function for preg_replace_callback
Uses capture group 1 in the supplied array
Does basic checks to keep characters inside a viewable range. |
get_files_recursive
|
Gets all of the files in a directory and its children directories |
get_hook_info_from_raw
|
Parses each hook data and returns an array. |
get_integration_hooks
|
Parses modSettings to create integration hook array |
get_integration_hooks_count
|
Simply returns the total count of integration hooks
Used by the integration hooks list function (list_integration_hooks) |
get_integration_hooks_data
|
Callback function for the integration hooks list (list_integration_hooks)
Gets all of the hooks in the system and their status |
list_integration_hooks
|
Generates a list of integration hooks for display
Accessed through ?action=admin;area=maintain;sa=hooks;
Allows for removal or disabling of selected hooks |
ViewQuery
|
Show the database queries for debugging
What this does:
- Toggles the session variable 'view_queries'.
- Views a list of queries and analyzes them.
- Requires the admin_forum permission.
- Is accessed via ?action=viewquery.
- Strings in this function have not been internationalized. |
PlushSearch1
|
Ask the user what they want to search for.
What it does:
- shows the screen to search forum posts (action=search)
- uses the main sub template of the Search template.
- uses the Search language file.
- requires the search_posts permission.
- decodes and loads search parameters given in the URL (if any).
- the form redirects to index.php?action=search2. |
PlushSearch2
|
Gather the results and show them.
What it does:
- checks user input and searches the messages table for messages matching the query.
- requires the search_posts permission.
- uses the results sub template of the Search template.
- uses the Search language file.
- stores the results into the search cache.
- show the results of the search query. |
findSearchAPI
|
Creates a search API and returns the object. |
prepareSearchContext
|
Callback to return messages - saves memory.
What it does:
- callback function for the results sub template.
- loads the necessary contextual data to show a search result. |
searchSort
|
This function compares the length of two strings plus a little.
What it does:
- callback function for usort used to sort the fulltext results.
- passes sorting duty to the current API. |
MergeDone
|
Shows a 'merge completed' screen.
is accessed with ?action=mergetopics;sa=done.
uses 'merge_done' sub template of the SplitTopics template. |
MergeExecute
|
set merge options and do the actual merge of two or more topics.
the merge options screen:
* shows topics to be merged and allows to set some merge options.
* is accessed by ?action=mergetopics;sa=options.and can also internally be called by QuickModeration() (Subs-Boards.php).
* uses 'merge_extra_options' sub template of the MoveTopic template.
the actual merge:
* is accessed with ?action=mergetopics;sa=execute.
* updates the statistics to reflect the merge.
* logs the action in the moderation log.
* sends a notification is sent to all users monitoring this topic.
* redirects to ?action=mergetopics;sa=done. |
MergeIndex
|
allows to pick a topic to merge the current topic with.
is accessed with ?action=mergetopics;sa=index
default sub action for ?action=mergetopics.
uses 'merge' sub template of the MoveTopic template.
allows to set a different target board. |
MergeTopics
|
merges two or more topics into one topic.
delegates to the other functions (based on the URL parameter sa).
loads the SplitTopics template.
requires the merge_any permission.
is accessed with ?action=mergetopics. |
SplitExecute
|
do the actual split.
is accessed with ?action=splittopics;sa=execute.
uses the main SplitTopics template.
supports three ways of splitting:
(1) only one message is split off.
(2) all messages after and including a given message are split off.
(3) select topics to split (redirects to SplitSelectTopics()).
uses splitTopic function to do the actual splitting. |
SplitIndex
|
screen shown before the actual split.
is accessed with ?action=splittopics;sa=index.
default sub action for ?action=splittopics.
uses 'ask' sub template of the SplitTopics template.
redirects to SplitSelectTopics if the message given turns out to be
the first message of a topic.
shows the user three ways to split the current topic. |
SplitSelectTopics
|
allows the user to select the messages to be split.
is accessed with ?action=splittopics;sa=selectTopics.
uses 'select' sub template of the SplitTopics template or (for
XMLhttp) the 'split' sub template of the Xml template.
supports XMLhttp for adding/removing a message to the selection.
uses a session variable to store the selected topics.
shows two independent page indexes for both the selected and
not-selected messages (;topic=1.x;start2=y). |
SplitSelectionExecute
|
do the actual split of a selection of topics.
is accessed with ?action=splittopics;sa=splitSelection.
uses the main SplitTopics template.
uses splitTopic function to do the actual splitting. |
SplitTopics
|
splits a topic into two topics.
delegates to the other functions (based on the URL parameter 'sa').
loads the SplitTopics template.
requires the split_any permission.
is accessed with ?action=splittopics. |
splitTopic
|
general function to split off a topic.
creates a new topic and moves the messages with the IDs in
array messagesToBeSplit to the new topic.
the subject of the newly created topic is set to 'newSubject'.
marks the newly created message as read for the user splitting it.
updates the statistics to reflect a newly created topic.
logs the action in the moderation log.
a notification is sent to all users monitoring this topic. |
getMembersOnlineStats
|
Retrieve a list and several other statistics of the users currently online.
Used by the board index and SSI.
Also returns the membergroups of the users that are currently online.
(optionally) hides members that chose to hide their online presence. |
trackStatsUsersOnline
|
Check if the number of users online is a record and store it. |
RemindMe
|
This is the controlling delegator
uses Profile language files and Reminder template |
RemindPick
|
Allows the user to pick how they wish to be reminded |
SecretAnswer2
|
Validates the secret answer input by the user |
SecretAnswerInput
|
Allows the user to enter their secret answer |
setPassword
|
Allows the user to set their new password |
setPassword2
|
Actually sets the new password |
EditComment
|
Shows a textarea for editing a moderator comment.
Handles the edited comment and stores it on the DB. |
HandleComment
|
Creates/Deletes moderator comments. |
HandleReport
|
Performs closing/ignoring actions for a given report. |
ReportDetails
|
Shows detailed information about a report. such as report comments and moderator comments.
Shows a list of moderation actions for the specific report. |
ReportedContent
|
Sets and call a function based on the given subaction. Acts as a dispatcher function.
It requires the moderate_forum permission.
uses ModerationCenter template.
uses ModerationCenter language file. |
ShowClosedReports
|
Shows all currently closed reported posts. |
ShowReports
|
Shows all currently open reported posts.
Handles closing multiple reports |
createWaveFile
|
Creates a wave file that spells the letters of $word.
Tries the user's language first, and defaults to english.
Used by VerificationCode() (Register.php). |
get_all_themes
|
Loads and returns all installed themes.
Stores all themes on $context['themes'] for easier use. |
get_file_listing
|
Generates a file listing for a given directory |
get_single_theme
|
Gets a single theme's info. |
get_theme_info
|
Reads an .xml file and returns the data as an array
Removes the entire theme if the .xml file couldn't be found or read. |
remove_dir
|
Removes a directory from the themes dir.
This is a recursive function, it will call itself if there are subdirs inside the main directory. |
remove_theme
|
Removes a theme from the DB, includes all possible places where the theme might be used. |
theme_install
|
Inserts a theme's data to the DataBase.
Ends execution with fatal_lang_error() if an error appears. |
GetJumpTo
|
Get a list of boards and categories used for the jumpto dropdown. |
ListMessageIcons
|
Gets a list of available message icons and sends the info to the template for display |
RetrievePreview
|
Handles retrieving previews of news items, newsletters, signatures and warnings.
Calls the appropriate function based on $_POST['item'] |
XMLhttpMain
|
The main handler and designator for AJAX stuff - jumpto, message icons and previews |
newsletterpreview
|
Handles previewing newsletters |
newspreview
|
Handles previewing news items |
sig_preview
|
Handles previewing signatures |
warning_preview
|
Handles previewing user warnings |
EditBoard
|
Modify a specific board.
..
screen for editing and repositioning a board.
called by ?action=admin;area=manageboards;sa=board
uses the modify_board sub-template of the ManageBoards template.
requires manage_boards permission.
also used to show the confirm deletion of category screen (sub-template confirm_board_delete). |
EditBoard2
|
Make changes to/delete a board.
(function for handling a submitted form saving the board.)
It also handles deletion of a board.
Called by ?action=admin;area=manageboards;sa=board2
Redirects to ?action=admin;area=manageboards.
It requires manage_boards permission. |
EditBoardSettings
|
A screen to set a few general board and category settings.
uses modify_general_settings sub-template. |
EditCategory
|
Modify a specific category.
(screen for editing and repositioning a category.)
Also used to show the confirm deletion of category screen
(sub-template confirm_category_delete).
Called by ?action=admin;area=manageboards;sa=cat
Requires manage_boards permission.
uses ManageBoards template, modify_category sub-template. |
EditCategory2
|
Function for handling a submitted form saving the category.
(complete the modifications to a specific category.)
It also handles deletion of a category.
It requires manage_boards permission.
Called by ?action=admin;area=manageboards;sa=cat2
Redirects to ?action=admin;area=manageboards. |
ManageBoards
|
The main dispatcher; doesn't do anything, just delegates.
This is the main entry point for all the manageboards admin screens.
Called by ?action=admin;area=manageboards.
It checks the permissions, based on the sub-action, and calls a function based on the sub-action.
uses ManageBoards language file. |
ManageBoardsMain
|
The main control panel thing, the screen showing all boards and categories.
Called by ?action=admin;area=manageboards or ?action=admin;area=manageboards;sa=move.
Requires manage_boards permission.
It also handles the interface for moving boards.
uses ManageBoards template, main sub-template. |
ModifyCat
|
Used to retrieve data for modifying a board category |
EditPermissionProfiles
|
Add/Edit/Delete profiles. |
GeneralPermissionSettings
|
A screen to set some general settings for permissions. |
ModifyMembergroup
|
Initializes the necessary to modify a membergroup's permissions. |
ModifyMembergroup2
|
This function actually saves modifications to a membergroup's board permissions. |
ModifyPermissions
|
Dispatches to the right function based on the given subaction.
Checks the permissions, based on the sub-action.
Called by ?action=managepermissions.
uses ManagePermissions language file. |
ModifyPostModeration
|
Present a nice way of applying post moderation. |
PermissionByBoard
|
Handle permissions by board.
.. more or less. :P |
PermissionIndex
|
Sets up the permissions by membergroup index page.
Called by ?action=managepermissions
Creates an array of all the groups with the number of members and permissions.
uses ManagePermissions language file.
uses ManagePermissions template file.
uses ManageBoards template, permission_index sub-template. |
SetQuickGroups
|
Handles permission modification actions from the upper part of the
permission manager index. |
loadIllegalBBCHtmlGroups
|
Loads a list of membergroups who cannot be granted the bbc_html permission.
Stores the groups in $context['permissions_excluded']['bbc_html']. |
loadIllegalGuestPermissions
|
Loads the permissions that can not be given to guests.
Stores the permissions in $context['non_guest_permissions'].
Also populates $context['permissions_excluded'] with the info. |
loadIllegalPermissions
|
Load permissions someone cannot grant. |
loadPermissionProfiles
|
Load permissions profiles. |
removeIllegalBBCHtmlPermission
|
Removes the bbc_html permission from anyone who shouldn't have it |
theme_inline_permissions
|
Show a collapsible box to set a specific permission.
The function is called by templates to show a list of permissions settings.
Calls the template function template_inline_permissions(). |
updateChildPermissions
|
This function updates the permissions of any groups based off this group. |
ModBlockGroupRequests
|
Show a list of all the group requests they can see. |
ModBlockNotes
|
Show an area for the moderator to type into. |
ModBlockReportedMembers
|
Show a list of the most recent reported posts. |
ModBlockReportedPosts
|
Show a list of the most recent reported posts. |
ModBlockWatchedUsers
|
Show a list of the most active watched users. |
ModEndSession
|
This ends a moderator session, requiring authentication to access the MCP again. |
ModerateGroups
|
Act as an entrace for all group related activity. |
ModerationHome
|
This function basically is the home page of the moderation center. |
ModerationMain
|
Entry point for the moderation center. |
ModerationSettings
|
Change moderation preferences. |
ModifyWarningTemplate
|
Edit a warning template. |
ReportedMembers
|
Browse all the reported users.
.. |
ShowNotice
|
Show a notice sent to a user. |
ViewWarningLog
|
Simply put, look at the warning log! |
ViewWarningTemplates
|
Load all the warning templates. |
ViewWarnings
|
Entry point for viewing warning related stuff. |
ViewWatchedUsers
|
View watched users. |
list_getWarningCount
|
Callback for createList(). |
list_getWarningTemplateCount
|
Callback for createList(). |
list_getWarningTemplates
|
Callback for createList(). |
list_getWarnings
|
Callback for createList(). |
list_getWatchedUserCount
|
Callback for createList(). |
list_getWatchedUserPosts
|
Callback for createList(). |
list_getWatchedUserPostsCount
|
Callback for createList(). |
list_getWatchedUsers
|
Callback for createList(). |
countReports
|
Counts how many reports are in total. Used for creating pagination. |
deleteModComment
|
Deletes a moderator comment from the DB. |
editModComment
|
Saves the new information whenever a moderator comment is edited. |
getCommentModDetails
|
Gets specific details about a moderator comment. It also adds a permission for editing/deleting the comment,
by default only admins and the author of the comment can edit/delete it. |
getReportComments
|
Gets both report comments as well as any moderator comment. |
getReportDetails
|
Gets additional information for a specific report. |
getReports
|
Get all possible reports the current user can see. |
recountOpenReports
|
Recount all open reports. Sets a SESSION var with the updated info. |
saveModComment
|
Inserts a new moderator comment to the DB. |
updateReport
|
Updates a report with the given parameters. Logs each action via logAction() |
DisplayStats
|
Display some useful/interesting board statistics.
gets all the statistics in order and puts them in.
uses the Stats template and language file. (and main sub template.)
requires the view_stats permission.
accessed from ?action=stats. |
SMStats
|
This is the function which returns stats to simplemachines.org IF enabled!
called by simplemachines.org.
only returns anything if stats was enabled during installation.
can also be accessed by the admin, to show what stats sm.org collects.
does not return any data directly to sm.org, instead starts a new request for security. |
getDailyStats
|
Loads the statistics on a daily basis in $context.
called by DisplayStats(). |
AdminApprove
|
This function handles the approval, rejection, activation or deletion of members.
Called by ?action=admin;area=viewmembers;sa=approve.
Requires the moderate_forum permission.
Redirects to ?action=admin;area=viewmembers;sa=browse
with the same parameters as the calling page. |
GetMemberActivationCounts
|
Fetches all the activation counts for ViewMembers. |
MembersAwaitingActivation
|
List all members who are awaiting approval / activation, sortable on different columns.
It allows instant approval or activation of (a selection of) members.
Called by ?action=admin;area=viewmembers;sa=browse;type=approve
or ?action=admin;area=viewmembers;sa=browse;type=activate.
The form submits to ?action=admin;area=viewmembers;sa=approve.
Requires the moderate_forum permission.
uses the admin_browse sub template of the ManageMembers template. |
SearchMembers
|
Search the member list, using one or more criteria.
Called by ?action=admin;area=viewmembers;sa=search.
Requires the moderate_forum permission.
form is submitted to action=admin;area=viewmembers;sa=query.
uses the search_members sub template of the ManageMembers template. |
ViewMemberlist
|
View all members list. It allows sorting on several columns, and deletion of
selected members. It also handles the search query sent by
?action=admin;area=viewmembers;sa=search.
Called by ?action=admin;area=viewmembers;sa=all or ?action=admin;area=viewmembers;sa=query.
Requires the moderate_forum permission.
uses the view_members sub template of the ManageMembers template. |
ViewMembers
|
The main entrance point for the Manage Members screen.
As everyone else, it calls a function based on the given sub-action.
Called by ?action=admin;area=viewmembers.
Requires the moderate_forum permission.
uses ManageMembers template
uses ManageMembers language file. |
jeffsdatediff
|
Nifty function to calculate the number of days ago a given date was.
Requires a unix timestamp as input, returns an integer.
Named in honour of Jeff Lewis, the original creator of...this function. |
array_column
|
|
getMemberGroups
|
Returns a list of member groups. Used to upgrade 1.0 and 1.1. |
makeFilesWritable
|
Make files writable. First try to use regular chmod, but if that fails, try to use FTP. |
print_error
|
Prints an error to stderr. |
quickFileWritable
|
The quick version of makeFilesWritable, which does not support FTP. |
smf_mysql_fetch_assoc
|
Database functions below here. |
smf_mysql_fetch_row
|
|
smf_mysql_free_result
|
|
smf_mysql_insert_id
|
|
smf_mysql_num_rows
|
|
smf_mysql_real_escape_string
|
|
smf_strtolower
|
UTF-8 aware strtolower function. |
throw_error
|
Throws a graphical error message. |
upgrade_clean_cache
|
Clean the cache using the SMF 2.1 CacheAPI.
If coming from SMF 2.0 and below it should wipe the cache using the SMF backend. |
template_add_language
|
Add a new language |
template_download_language
|
Simple Machines Forum (SMF) |
template_modify_language_entries
|
Edit language entries. Note that this doesn't always work because of PHP's max_post_vars setting. |
template_by_board
|
THe page that shows which permissions profile applies to each board |
template_edit_profiles
|
Edit permission profiles (predefined). |
template_inline_permissions
|
A form for displaying inline permissions, such as on a settings page. |
template_modify_group
|
Modify a group's permissions |
template_modify_group_display
|
The way of looking at permissions. |
template_permission_index
|
Simple Machines Forum (SMF) |
template_postmod_permissions
|
Edit post moderation permissions. |
ssi_boardNews
|
Show the latest news, with a template.
.. by board. |
ssi_boardStats
|
Show some basic stats: Total This: XXXX, etc. |
ssi_checkPassword
|
Checks whether the specified password is correct for the specified user. |
ssi_copyright
|
Show the forum copyright. Only used in our ssi_examples files. |
ssi_fetchGroupMembers
|
Get al members in the specified group |
ssi_fetchMember
|
Fetch specific members |
ssi_fetchPosts
|
Fetches one or more posts by ID. |
ssi_full_version
|
Show the full SMF version string. |
ssi_latestMember
|
Show a link to the latest member: Please welcome, Someone, our latest member. |
ssi_logOnline
|
Just like whosOnline except it also logs the online presence. |
ssi_login
|
Shows a login box |
ssi_logout
|
Show a logout link. |
ssi_menubar
|
Display a menu bar, like is displayed at the top of the forum. |
ssi_news
|
Show a random forum news item |
ssi_pollVote
|
Handles voting in a poll (done automatically) |
ssi_queryMembers
|
Pulls info about members based on the specified parameters. Used by other functions to eliminate duplication. |
ssi_queryPosts
|
This handles actually pulling post info. Called from other functions to eliminate duplication. |
ssi_quickSearch
|
Shows a search box |
ssi_randomMember
|
Fetches a random member. |
ssi_recentAttachments
|
Shows the most recent attachments that the user can see |
ssi_recentEvents
|
Show the most recent events |
ssi_recentPoll
|
Shows the most recent poll |
ssi_recentPosts
|
Recent post list: [board] Subject by Poster Date |
ssi_recentTopics
|
Recent topic list: [board] Subject by Poster Date |
ssi_showPoll
|
Shows the poll from the specified topic |
ssi_shutdown
|
This shuts down the SSI and shows the footer. |
ssi_software_year
|
Show the SMF software year. |
ssi_todaysBirthdays
|
Show today's birthdays. |
ssi_todaysCalendar
|
Shows today's calendar items (events, birthdays and holidays) |
ssi_todaysEvents
|
|
ssi_todaysHolidays
|
Shows today's holidays. |
ssi_topBoards
|
Shows a list of top boards based on activity |
ssi_topPoll
|
Show the top poll based on votes |
ssi_topPoster
|
Shows a list of top posters |
ssi_topTopics
|
Shows a list of top topics based on views or replies |
ssi_topTopicsReplies
|
Top topics based on replies |
ssi_topTopicsViews
|
Top topics based on views |
ssi_version
|
Show the SMF version. |
ssi_welcome
|
Display a welcome message, like: Hey, User, you have 0 messages, 0 are new. |
ssi_whosOnline
|
Shows a list of online users: YY Guests, ZZ Users and then a list.
.. |
template_homepage_sample1
|
|
template_homepage_sample1_html
|
|
template_homepage_sample1_php
|
|
template_ssi_above
|
|
template_ssi_below
|
|
BackupDatabase
|
|
ConvertUtf8
|
Handles converting your database to UTF-8 |
DatabaseChanges
|
|
DeleteUpgrade
|
|
MySQLConvertOldIp
|
Convert MySQL (var)char ip col to binary |
UpgradeOptions
|
|
WelcomeLogin
|
|
backupTable
|
|
checkChange
|
|
checkLogin
|
|
cli_scheduled_fetchSMfiles
|
|
cmdStep0
|
|
convertSettingsToTheme
|
|
convertSettingstoOptions
|
|
db_version_check
|
|
detectSettingsFileMigrationNeeded
|
Determine if we should auto select the migrate Settings file. This is determined by a variety of missing settings.
Prior to checking these settings, we look for advanced setups such as integrations or if variables have been moved
to another file. If these are detected, we abort. |
fixRelativePath
|
|
fix_serialized_data
|
Attempts to repair corrupted serialized data strings |
loadEssentialData
|
|
migrateSettingsFile
|
Takes the changes to be made during the upgradeOptions step, grabs all known Settings data from Settings.php, then runs
through a process to rebuild onto a brand new Settings template. This should only be done if detection believes the
settings file isn't using any advanced configuration setups in the Settings.php file. A copy is made as Settings_org.php
to preserve all changes prior to migration. |
move_db_last_error_to_cachedir
|
As of 2.1, we want to store db_last_error.php in the cache
To make that happen, Settings.php needs to ensure the $cachedir path is correct before trying to write to db_last_error.php |
nextSubstep
|
|
parse_sql
|
|
php_version_check
|
|
protected_alter
|
|
redirectLocation
|
|
serialize_to_json
|
|
template_backup_database
|
|
template_backup_xml
|
|
template_chmod
|
|
template_convert_utf8
|
|
template_convert_xml
|
|
template_database_changes
|
|
template_database_xml
|
|
template_serialize_json
|
|
template_serialize_json_xml
|
|
template_upgrade_above
|
|
template_upgrade_below
|
|
template_upgrade_complete
|
|
template_upgrade_options
|
|
template_xml_above
|
|
template_xml_below
|
|
textfield_alter
|
Alter a text column definition preserving its character set. |
upgradeExit
|
|
upgradeGetColumnInfo
|
Get the column info. This is basically the same as smf_db_list_columns but we get 1 column, force detail and other checks. |
upgrade_query
|
|
AdminAccount
|
|
CheckFilesWritable
|
|
DatabasePopulation
|
|
DatabaseSettings
|
|
DeleteInstall
|
|
ForumSettings
|
|
Welcome
|
|
fixModSecurity
|
|
initialize_inputs
|
|
installExit
|
|
load_database
|
|
load_lang_file
|
|
template_admin_account
|
|
template_chmod_files
|
|
template_database_settings
|
|
template_delete_install
|
|
template_forum_settings
|
|
template_install_above
|
|
template_install_below
|
|
template_populate_database
|
|
template_warning_divs
|
|
template_welcome_message
|
|
utf8_strtolower
|
Converts the given UTF-8 string into lowercase.
equivalent to mb_strtolower($string, 'UTF-8') |
utf8_strtoupper
|
Convert the given UTF-8 string to uppercase.
equivalent to mb_strtoupper($string, 'UTF-8') |
deleteNotifyPrefs
|
Deletes notification preference |
getNotifyPrefs
|
Fetches the list of preferences (or a single/subset of preferences) for
notifications for one or more users. |
setNotifyPrefs
|
Sets the list of preferences for a single user. |
getBoardList
|
Generates the query to determine the list of available boards for a user
Executes the query and returns the list |
TrackIP
|
Handles tracking a particular IP address |
TrackLogins
|
Tracks a user's logins. |
fetch_alerts
|
Fetch the alerts a member currently has. |
list_getAttachments
|
Get a list of attachments for a member. Callback for the list in showAttachments() |
list_getGroupRequests
|
Loads up information about a user's group requests. Callback for the list in trackGroupReq() |
list_getGroupRequestsCount
|
How many edits? |
list_getIPMessageCount
|
Gets the number of posts made from a particular IP |
list_getIPMessages
|
Gets all the posts made from a particular IP |
list_getLoginCount
|
Finds the total number of tracked logins for a particular user |
list_getLogins
|
Callback for the list in trackLogins. |
list_getNumAttachments
|
Gets the total number of attachments for a member |
list_getNumUnwatched
|
Count the number of topics in the unwatched list |
list_getProfileEditCount
|
How many edits? |
list_getProfileEdits
|
Loads up information about a user's profile edits. Callback for the list in trackEdits() |
list_getUnwatched
|
Gets information about unwatched (disregarded) topics. Callback for the list in show_unwatched |
list_getUserErrorCount
|
Get the number of user errors |
list_getUserErrors
|
Gets all of the errors generated by a user's actions. Callback for the list in track_activity |
showAlerts
|
Shows all alerts for a member |
showAttachments
|
Show all the attachments belonging to a member. |
showPermissions
|
Shows which permissions a user has |
showPosts
|
Show all posts by a member |
showUnwatched
|
Show all the unwatched topics. |
statPanel
|
Gets the user stats for display |
summary
|
View a summary. |
trackActivity
|
Handles tracking a user's activity |
trackEdits
|
Tracks a user's profile edits |
trackGroupReq
|
Display the history of group requests made by the user whose profile we are viewing. |
tracking
|
Loads up the information for the "track user" section of the profile |
viewWarning
|
View a member's warnings |
CreateMessageIndex
|
Create a custom search index for the messages table.
Called by ?action=admin;area=managesearch;sa=createmsgindex.
Linked from the EditSearchMethod screen.
Requires the admin_forum permission.
Depending on the size of the message table, the process is divided in steps.
uses ManageSearch template, 'create_index', 'create_index_progress', and 'create_index_done'
sub-templates. |
EditSearchMethod
|
Edit the search method and search index used.
Calculates the size of the current search indexes in use.
Allows to create and delete a fulltext index on the messages table.
Allows to delete a custom index (that CreateMessageIndex() created).
Called by ?action=admin;area=managesearch;sa=method.
Requires the admin_forum permission.
uses ManageSearch template, 'select_search_method' sub-template. |
EditSearchSettings
|
Edit some general settings related to the search function.
Called by ?action=admin;area=managesearch;sa=settings.
Requires the admin_forum permission. |
EditWeights
|
Edit the relative weight of the search factors.
Called by ?action=admin;area=managesearch;sa=weights.
Requires the admin_forum permission.
uses ManageSearch template, 'modify_weights' sub-template. |
ManageSearch
|
Main entry point for the admin search settings screen.
It checks permissions, and it forwards to the appropriate function based on
the given sub-action.
Defaults to sub-action 'settings'.
Called by ?action=admin;area=managesearch.
Requires the admin_forum permission.
uses ManageSearch template.
uses Search language file. |
detectFulltextIndex
|
Checks if the message table already has a fulltext index created and returns the key name
Determines if a db is capable of creating a fulltext index |
loadSearchAPIs
|
Get the installed Search API implementations.
This function checks for patterns in comments on top of the Search-API files!
In addition to filenames pattern.
It loads the search API classes if identified.
This function is used by EditSearchMethod to list all installed API implementations. |
DeleteMessage
|
Remove just a single post.
On completion redirect to the topic or to the board. |
RemoveOldTopics2
|
So long as you are sure.
.. all old posts will be gone.
Used in ManageMaintenance.php to prune old topics. |
RemoveTopic2
|
Completely remove an entire topic.
Redirects to the board when completed. |
RestoreTopic
|
Move back a topic from the recycle board to its original board. |
mergePosts
|
Take a load of messages from one place and stick them in a topic |
removeDeleteConcurrence
|
Try to determine if the topic has already been deleted by another user. |
removeMessage
|
Remove a specific message (including permission checks).
- normally, local and global should be the localCookies and globalCookies settings, respectively.
- uses boardurl to determine these two things. |
removeTopics
|
Removes the passed id_topic's. (permissions are NOT checked here!). |
ReportToModerator
|
Report a post or profile to the moderator.
.. ask for a comment.
Gathers data from the user to report abuse to the moderator(s).
Uses the ReportToModerator template, main sub template.
Requires the report_any permission.
Uses ReportToModerator2() if post data was sent.
Accessed through ?action=reporttm. |
ReportToModerator2
|
Send the emails.
Sends off emails to all the moderators.
Sends to administrators and global moderators. (1 and 2)
Called by ReportToModerator(), and thus has the same permission and setting requirements as it does.
Accessed through ?action=reporttm when posting. |
reportPost
|
Actually reports a post using information specified from a form |
reportUser
|
Actually reports a user's profile using information specified from a form |
AnnounceTopic
|
Handle the announce topic function (action=announce).
checks the topic announcement permissions and loads the announcement template.
requires the announce_topic permission.
uses the ManageMembers template and Post language file.
call the right function based on the sub-action. |
AnnouncementSelectMembergroup
|
Allow a user to chose the membergroups to send the announcement to.
lets the user select the membergroups that will receive the topic announcement. |
AnnouncementSend
|
Send the announcement in chunks.
splits the members to be sent a topic announcement into chunks.
composes notification messages in all languages needed.
does the actual sending of the topic announcements in chunks.
calculates a rough estimate of the percentage items sent. |
JavaScriptModify
|
Used to edit the body or subject of a message inline
called from action=jsmodify from script and topic js |
Post
|
Handles showing the post screen, loading the post to be modified, and loading any post quoted.
- additionally handles previews of posts.
- uses the Post template and language file, main sub template.
- requires different permissions depending on the actions, but most notably post_new, post_reply_own, and post_reply_any.
- shows options for the editing and posting of calendar events and attachments, as well as the posting of polls.
- accessed from ?action=post. |
Post2
|
Posts or saves the message composed with Post().
requires various permissions depending on the action.
handles attachment, post, and calendar saving.
sends off notifications, and allows for announcements and moderation.
accessed from ?action=post2. |
QuoteFast
|
Loads a post an inserts it into the current editing text box.
uses the Post language file.
uses special (sadly browser dependent) javascript to parse entities for internationalization reasons.
accessed with ?action=quotefast. |
getTopic
|
Get the topic for display purposes.
gets a summary of the most recent posts in a topic.
depends on the topicSummaryPosts setting.
if you are editing a post, only shows posts previous to that post. |
ViewBacktrace
|
View a backtrace specified in $_REQUEST['backtrace'], with php highlighting on it
Preconditions:
- user must have admin_forum permission. |
ViewErrorLog
|
View the forum's error log.
This function sets all the context up to show the error log for maintenance.
It requires the maintain_forum permission.
It is accessed from ?action=admin;area=logs;sa=errorlog.
uses the Errors template and error_log sub template. |
ViewFile
|
View a file specified in $_REQUEST['file'], with php highlighting on it
Preconditions:
- file must be readable,
- full file path must be base64 encoded,
- user must have admin_forum permission.
The line number number is specified by $_REQUEST['line']...
The function will try to get the 20 lines before and after the specified line. |
deleteErrors
|
Delete all or some of the errors in the error log.
It applies any necessary filters to deletion.
This should only be called by ViewErrorLog().
It attempts to TRUNCATE the table to reset the auto_increment.
Redirects back to the error log when done. |
ViewModlog
|
Prepares the information from the moderation log for viewing.
Show the moderation log.
If clearing the log, leaves a message in the log to indicate it was cleared, by whom and when.
Requires the admin_forum permission.
Accessed via ?action=moderate;area=modlog.
uses Modlog template, main sub-template. |
list_getModLogEntries
|
Gets the moderation log entries that match the specified parameters.
Callback for createList() in ViewModlog(). |
list_getModLogEntryCount
|
Get the number of mod log entries.
Callback for createList() in ViewModlog(). |
display_db_error
|
Show an error message for the connection problems.
It shows a complete page independent of language files or themes.
It is used only if there's no way to connect to the database.
It stops further execution of the script. |
display_loadavg_error
|
Show an error message for load average blocking problems.
It shows a complete page independent of language files or themes.
It is used only if the load averages are too high to continue execution.
It stops further execution of the script. |
display_maintenance_message
|
Show a message for the (full block) maintenance mode.
It shows a complete page independent of language files or themes.
It is used only if $maintenance = 2 in Settings.php.
It stops further execution of the script. |
fatal_error
|
An irrecoverable error. This function stops execution and displays an error message.
It logs the error message if $log is specified. |
fatal_lang_error
|
Shows a fatal error with a message stored in the language file.
This function stops execution and displays an error message by key.
- uses the string with the error_message_key key.
- logs the error in the forum's default language while displaying the error
message in the user's language.
- uses Errors language file and applies the $sprintf information if specified.
- the information is logged if log is specified. |
log_error
|
Log an error, if the error logging is enabled.
filename and line should be __FILE__ and __LINE__, respectively.
Example use:
die(log_error($msg)); |
log_error_online
|
Small utility function for fatal error pages.
Used by fatal_error(), fatal_lang_error() |
set_fatal_error_headers
|
Small utility function for fatal error pages.
Used by @link display_db_error() @link display_loadavg_error() and |
setup_fatal_error_context
|
It is called by @link fatal_error() and @link fatal_lang_error().
uses Errors template, fatal_error sub template. |
smf_error_handler
|
Handler for standard error messages, standard PHP error handler replacement.
It dies with fatal_error() if the error_level matches with error_reporting. |
BoardIndex
|
This function shows the board index.
It uses the BoardIndex template, and main sub template.
It updates the most online statistics.
It is accessed by ?action=boardindex. |
EditHoliday
|
This function is used for adding/editing a specific holiday |
ManageCalendar
|
The main controlling function doesn't have much to do.
.. yet.
Just check permissions and delegate to the rest.
uses ManageCalendar language file. |
ModifyCalendarSettings
|
Show and allow to modify calendar settings. Obviously. |
ModifyHolidays
|
The function that handles adding, and deleting holiday data |
CopyTemplate
|
Makes a copy of a template file in a new location
uses Themes template, copy_template sub-template. |
EditTheme
|
Shows an interface for editing the templates.
- uses the Themes template and edit_template/edit_style sub template.
- accessed via ?action=admin;area=theme;sa=edit |
EnableTheme
|
Handles enabling/disabling a theme from the admin center |
InstallCopy
|
Makes a copy from the default theme, assigns a name for it and installs it.
Creates a new .xml file containing all the theme's info. |
InstallDir
|
Install a theme from a specific dir
Assumes the dir is located on the main Themes dir. Ends execution with fatal_lang_error() on any error. |
InstallFile
|
Installs a theme from a theme package.
Stores the theme files on a temp dir, on success it renames the dir to the new theme's name. Ends execution with fatal_lang_error() on any error. |
PickTheme
|
Choose a theme from a list.
allows an user or administrator to pick a new theme with an interface.
- can edit everyone's (u = 0), guests' (u = -1), or a specific user's.
- uses the Themes template. (pick sub template.)
- accessed with ?action=admin;area=theme;sa=pick. |
RemoveTheme
|
Remove a theme from the database.
- removes an installed theme.
- requires an administrator.
- accessed with ?action=admin;area=theme;sa=remove. |
SetJavaScript
|
Set an option via javascript.
- sets a theme option without outputting anything.
- can be used with javascript, via a dummy image... (which doesn't require
the page to reload.)
- requires someone who is logged in.
- accessed via ?action=jsoption;var=variable;val=value;session_var=sess_id.
- does not log access to the Who's Online log. (in index.php..) |
SetThemeOptions
|
Administrative global settings. |
SetThemeSettings
|
Administrative global settings.
- saves and requests global theme settings. ($settings)
- loads the Admin language file.
- calls ThemeAdmin() if no theme is specified. (the theme center.)
- requires admin_forum permission.
- accessed with ?action=admin;area=theme;sa=list&th=xx. |
ThemeAdmin
|
This function allows administration of themes and their settings,
as well as global theme settings.
- sets the settings theme_allow, theme_guests, and knownThemes.
- requires the admin_forum permission.
- accessed with ?action=admin;area=theme;sa=admin.
uses Themes template
uses Admin language file |
ThemeInstall
|
Installs new themes, calls the respective function according to the install type.
- puts themes in $boardurl/Themes.
- assumes the gzip has a root directory in it. (ie default.)
Requires admin_forum.
Accessed with ?action=admin;area=theme;sa=install. |
ThemeList
|
This function lists the available themes and provides an interface to reset
the paths of all the installed themes. |
ThemesMain
|
Subaction handler - manages the action and delegates control to the proper
sub-action.
It loads both the Themes and Settings language files.
Checks the session by GET or POST to verify the sent data.
Requires the user not be a guest. (@todo what?)
Accessed via ?action=admin;area=theme. |
WrapAction
|
Possibly the simplest and best example of how to use the template system.
- allows the theme to take care of actions.
- happens if $settings['catch_action'] is set and action isn't found
in the action array.
- can use a template, layers, sub_template, filename, and/or function. |
displayDebug
|
This function shows the debug information tracked when $db_show_debug = true
in Settings.php |
logAction
|
This function logs an action in the respective log. (database log)
You should use @link logActions() instead. |
logActions
|
Log changes to the forum, such as moderation events or administrative changes.
This behaves just like logAction() in SMF 2.0, except that it is designed to log multiple actions at once. |
logLastDatabaseError
|
Logs the last database error into a file.
Attempts to use the backup file first, to store the last database error
and only update db_last_error.php if the first was successful. |
trackStats
|
Track Statistics.
Caches statistics changes, and flushes them if you pass nothing.
If '+' is used as a value, it will be incremented.
It does not actually commit the changes until the end of the page view.
It depends on the trackStats setting. |
truncateArray
|
Truncate the GET array to a specified length |
writeLog
|
Put this user in the online log. |
EditTask
|
Function for editing a task.
uses ManageScheduledTasks template, edit_scheduled_tasks sub-template |
ManageScheduledTasks
|
Scheduled tasks management dispatcher. This function checks permissions and delegates
to the appropriate function based on the sub-action.
Everything here requires admin_forum permission.
uses ManageScheduledTasks template file
uses ManageScheduledTasks language file |
ScheduledTasks
|
List all the scheduled task in place on the forum.
uses ManageScheduledTasks template, view_scheduled_tasks sub-template |
TaskLog
|
Show the log of all tasks that have taken place.
uses ManageScheduledTasks language file |
TaskSettings
|
|
list_getNumTaskLogEntries
|
Callback function for createList() in TaskLog(). |
list_getScheduledTasks
|
Callback function for createList() in ScheduledTasks(). |
list_getTaskLogEntries
|
Callback function for createList() in TaskLog(). |
cache_getLastPosts
|
Callback-function for the cache for getLastPosts(). |
getLastPosts
|
Get the latest posts of a forum. |
createList
|
Create a new list |
createMenu
|
Create a menu. |
destroyMenu
|
Delete a menu. |
ManagePaidSubscriptions
|
The main entrance point for the 'Paid Subscription' screen, calling
the right function based on the given sub-action.
It defaults to sub-action 'view'.
Accessed from ?action=admin;area=paidsubscribe.
It requires admin_forum permission for admin based actions. |
ModifySubscription
|
Adding, editing and deleting subscriptions.
Accessed from ?action=admin;area=paidsubscribe;sa=modify. |
ModifySubscriptionSettings
|
Set any setting related to paid subscriptions, i.e.
modify which payment methods are to be used.
It requires the moderate_forum permission
Accessed from ?action=admin;area=paidsubscribe;sa=settings. |
ModifyUserSubscription
|
Edit or add a user subscription.
Accessed from ?action=admin;area=paidsubscribe;sa=modifyuser. |
ViewSubscribedUsers
|
View all the users subscribed to a particular subscription.
Requires the admin_forum permission.
Accessed from ?action=admin;area=paidsubscribe;sa=viewsub.
Subscription ID is required, in the form of $_GET['sid']. |
ViewSubscriptions
|
View a list of all the current subscriptions
Requires the admin_forum permission.
Accessed from ?action=admin;area=paidsubscribe;sa=view. |
addSubscription
|
Add or extend a subscription of a user. |
list_getSubscribedUserCount
|
Returns how many people are subscribed to a paid subscription. |
list_getSubscribedUsers
|
Return the subscribed users list, for the given parameters. |
loadPaymentGateways
|
Load all the payment gateways.
Checks the Sources directory for any files fitting the format of a payment gateway,
loads each file to check it's valid, includes each file and returns the
function name and whether it should work with this version of SMF. |
loadSubscriptions
|
This just kind of caches all the subscription data. |
reapplySubscriptions
|
Reapplies all subscription rules for each of the users. |
removeSubscription
|
Removes a subscription from a user, as in removes the groups. |
ManagePostSettings
|
The main entrance point for the 'Posts and topics' screen.
Like all others, it checks permissions, then forwards to the right function
based on the given sub-action.
Defaults to sub-action 'posts'.
Accessed from ?action=admin;area=postsettings.
Requires (and checks for) the admin_forum permission. |
ModifyDraftSettings
|
Modify any setting related to drafts.
Requires the admin_forum permission.
Accessed from ?action=admin;area=postsettings;sa=drafts |
ModifyPostSettings
|
Modify any setting related to posts and posting.
Requires the admin_forum permission.
Accessed from ?action=admin;area=postsettings;sa=posts. |
ModifyTopicSettings
|
Modify any setting related to topics.
Requires the admin_forum permission.
Accessed from ?action=admin;area=postsettings;sa=topics. |
SetCensor
|
Shows an interface to set and test censored words.
It uses the censor_vulgar, censor_proper, censorWholeWord, and censorIgnoreCase
settings.
Requires the admin_forum permission.
Accessed from ?action=admin;area=postsettings;sa=censor.
uses the Admin template and the edit_censored sub template. |
DeleteDraft
|
Deletes one or many drafts from the DB
Validates the drafts are from the user
is supplied an array of drafts will attempt to remove all of them |
ReadDraft
|
Reads a draft in from the user_drafts table
Validates that the draft is the user''s draft
Optionally loads the draft in to context or superglobal for loading in to the form |
SaveDraft
|
Saves a post draft in the user_drafts table
The core draft feature must be enabled, as well as the post draft option
Determines if this is a new or an existing draft
Returns errors in $post_errors for display in the template |
SavePMDraft
|
Saves a PM draft in the user_drafts table
The core draft feature must be enabled, as well as the pm draft option
Determines if this is a new or and update to an existing pm draft |
ShowDrafts
|
Loads in a group of drafts for the user of a given type (0/posts, 1/pm's)
loads a specific draft for forum use if selected.
Used in the posting screens to allow draft selection
Will load a draft if selected is supplied via post |
XmlDraft
|
Returns an xml response to an autosave ajax request
provides the id of the draft saved and the time it was saved |
showPMDrafts
|
Show all PM drafts of the current user
Uses the showpmdraft template
Allows for the deleting and loading/editing of drafts |
showProfileDrafts
|
Show all drafts of a given type by the current user
Uses the showdraft template
Allows for the deleting and loading/editing of drafts |
Ban
|
Ban center. The main entrance point for all ban center functions.
It is accesssed by ?action=admin;area=ban.
It choses a function based on the 'sa' parameter, like many others.
The default sub-action is BanList().
It requires the ban_members permission.
It initializes the admin tabs.
uses ManageBans template. |
BanBrowseTriggers
|
This handles the screen for showing the banned entities
It is accessed by ?action=admin;area=ban;sa=browse
It uses sub-tabs for browsing by IP, hostname, email or username.
uses ManageBans template, browse_triggers sub template. |
BanEdit
|
This function is behind the screen for adding new bans and modifying existing ones.
Adding new bans:
- is accessed by ?action=admin;area=ban;sa=add.
- uses the ban_edit sub template of the ManageBans template.
Modifying existing bans:
- is accessed by ?action=admin;area=ban;sa=edit;bg=x
- uses the ban_edit sub template of the ManageBans template.
- shows a list of ban triggers for the specified ban. |
BanEditTrigger
|
This function handles the ins and outs of the screen for adding new ban
triggers or modifying existing ones.
Adding new ban triggers:
- is accessed by ?action=admin;area=ban;sa=edittrigger;bg=x
- uses the ban_edit_trigger sub template of ManageBans.
Editing existing ban triggers:
- is accessed by ?action=admin;area=ban;sa=edittrigger;bg=x;bi=y
- uses the ban_edit_trigger sub template of ManageBans. |
BanList
|
Shows a list of bans currently set.
It is accessed by ?action=admin;area=ban;sa=list.
It removes expired bans.
It allows sorting on different criteria.
It also handles removal of selected ban items.
uses the main ManageBans template. |
BanLog
|
This handles the listing of ban log entries, and allows their deletion.
Shows a list of logged access attempts by banned users.
It is accessed by ?action=admin;area=ban;sa=log.
How it works:
- allows sorting of several columns.
- also handles deletion of (a selection of) log entries. |
addTriggers
|
This function actually inserts the ban triggers into the database
Errors in $context['ban_errors'] |
banEdit2
|
This function handles submitted forms that add, modify or remove ban triggers. |
banLoadAdditionalIPs
|
Finds additional IPs related to a certain user |
banLoadAdditionalIPsError
|
|
banLoadAdditionalIPsMember
|
|
checkExistingTriggerIP
|
Checks whether a given IP range already exists in the trigger list.
If yes, it returns an error message. Otherwise, it returns an array
optimized for the database. |
getMemberData
|
Gets basic member data for the ban |
insertBanGroup
|
Creates a new ban group
If the group is successfully created the ID is returned
On error the error code is returned or false
Errors in $context['ban_errors'] |
list_getBanItems
|
Retrieves all the ban items belonging to a certain ban group |
list_getBanLogEntries
|
Load a list of ban log entries from the database.
(no permissions check). Callback for $listOptions['get_items'] in BanLog() |
list_getBanTriggers
|
Get ban triggers for the given parameters. Callback from $listOptions['get_items'] in BanBrowseTriggers() |
list_getBans
|
Get bans, what else? For the given options. |
list_getNumBanItems
|
Gets the number of ban items belonging to a certain ban group |
list_getNumBanLogEntries
|
This returns the total count of ban log entries. Callback for $listOptions['get_count'] in BanLog(). |
list_getNumBanTriggers
|
This returns the total number of ban triggers of the given type. Callback for $listOptions['get_count'] in BanBrowseTriggers(). |
list_getNumBans
|
Get the total number of ban from the ban group table |
logTriggersUpdates
|
A small function to unify logging of triggers (updates and new) |
range2ip
|
Convert a range of given IP number into a single string.
It's practically the reverse function of ip2range(). |
removeBanGroups
|
This function removes a bunch of ban groups based on ids
Doesn't clean the inputs |
removeBanLogs
|
Removes logs - by default truncate the table
Doesn't clean the inputs |
removeBanTriggers
|
This function removes a bunch of triggers based on ids
Doesn't clean the inputs |
saveTriggers
|
Saves one or more ban triggers into a ban item: according to the suggestions
checks the $_POST variable to verify if the trigger is present |
updateBanGroup
|
Updates an existing ban group
Errors in $context['ban_errors'] |
updateBanMembers
|
As it says.
.. this tries to review the list of banned members, to match new bans.
Note: is_activated >= 10: a member is banned. |
updateTriggers
|
This function updates an existing ban trigger into the database
Errors in $context['ban_errors'] |
validateTriggers
|
This function validates the ban triggers
Errors in $context['ban_errors'] |
EditSpider
|
Here we can add, and edit, spider info! |
ManageSearchEngineSettings
|
This is really just the settings page. |
SearchEngines
|
Entry point for this section. |
SpiderCheck
|
Do we think the current user is a spider? |
SpiderLogs
|
See what spiders have been up to. |
SpiderStats
|
Show the spider statistics. |
ViewSpiders
|
View a list of all the spiders we know about. |
consolidateSpiderStats
|
This function takes any unprocessed hits and turns them into stats. |
list_getNumSpiderLogs
|
Callback function for createList() |
list_getNumSpiderStats
|
Callback function for createList()
Get the number of spider stat rows from the log spider stats table |
list_getNumSpiders
|
Callback function for createList() |
list_getSpiderLogs
|
Callback function for createList() |
list_getSpiderStats
|
Callback function for createList()
Get a list of spider stats from the log_spider table |
list_getSpiders
|
Callback function for createList() |
logSpider
|
Log the spider presence online. |
recacheSpiderNames
|
Recache spider names? |
db_packages_init
|
Add the file functions to the $smcFunc array. |
smf_db_add_column
|
This function adds a column. |
smf_db_add_index
|
Add an index. |
smf_db_calculate_type
|
Get the schema formatted name for a type. |
smf_db_change_column
|
Change a column. |
smf_db_create_table
|
This function can be used to create a table without worrying about schema
compatibilities across supported database systems.
- If the table exists will, by default, do nothing.
- Builds table with columns as passed to it - at least one column must be sent.
The columns array should have one sub-array for each column - these sub arrays contain:
'name' = Column name
'type' = Type of column - values from (smallint, mediumint, int, text, varchar, char, tinytext, mediumtext, largetext)
'size' => Size of column (If applicable) - for example 255 for a large varchar, 10 for an int etc.
If not set SMF will pick a size.
- 'default' = Default value - do not set if no default required.
- 'null' => Can it be null (true or false) - if not set default will be false.
- 'auto' => Set to true to make it an auto incrementing column. Set to a numerical value to set from what
it should begin counting.
- Adds indexes as specified within indexes parameter. Each index should be a member of $indexes. Values are:
- 'name' => Index name (If left empty SMF will generate).
- 'type' => Type of index. Choose from 'primary', 'unique' or 'index'. If not set will default to 'index'.
- 'columns' => Array containing columns that form part of key - in the order the index is to be created.
- parameters: (None yet)
- if_exists values:
- 'ignore' will do nothing if the table exists. (And will return true)
- 'overwrite' will drop any existing table of the same name.
- 'error' will return false if the table already exists.
- 'update' will update the table if the table already exists (no change of ai field and only colums with the same name keep the data) |
smf_db_drop_table
|
Drop a table and its associated sequences. |
smf_db_list_columns
|
Return column information for a table. |
smf_db_list_indexes
|
Get index information. |
smf_db_remove_column
|
Removes a column. |
smf_db_remove_index
|
Remove an index. |
smf_db_table_structure
|
Get table structure. |
smf_db_create_query_column
|
Creates a query for a column |
db_search_init
|
Add the file functions to the $smcFunc array. |
smf_db_create_word_search
|
Highly specific function, to create the custom word index table. |
smf_db_search_support
|
This function will tell you whether this database type supports this search type. |
smf_db_search_language
|
Return the language for the textsearch index |
smf_db_search_query
|
Returns the correct query for this search type. |
addMembersToGroup
|
Add one or more members to a membergroup
Requires the manage_membergroups permission.
Function has protection against adding members to implicit groups.
Non-admins are not able to add members to the admin group. |
cache_getMembergroupList
|
Retrieve a list of (visible) membergroups used by the cache. |
deleteMembergroups
|
Delete one of more membergroups.
Requires the manage_membergroups permission.
Returns true on success or false on failure.
Has protection against deletion of protected membergroups.
Deletes the permissions linked to the membergroup.
Takes members out of the deleted membergroups. |
listMembergroupMembers_Href
|
Gets the members of a supplied membergroup
Returns them as a link for display |
list_getMembergroups
|
Helper function to generate a list of membergroups for display |
removeMembersFromGroups
|
Remove one or more members from one or more membergroups.
Requires the manage_membergroups permission.
Function includes a protection against removing from implicit groups.
Non-admins are not able to remove members from the admin group. |
emailAdmins
|
Send all the administrators a lovely email.
- loads all users who are admins or have the admin forum permission.
- uses the email template and replacements passed in the parameters.
- sends them an email. |
getFileVersions
|
Search through source, theme and language files to determine their version.
Get detailed version information about the physical SMF files on the server.
- the input parameter allows to set whether to include SSI.php and whether
the results should be sorted.
- returns an array containing information on source files, templates and
language files found in the default theme directory (grouped by language). |
getServerVersions
|
Get a list of versions that are currently installed on the server. |
updateAdminPreferences
|
Saves the admin's current preferences to the database. |
updateDbLastError
|
Saves the time of the last db error for the error log
- Done separately from updateSettingsFile to avoid race conditions
which can occur during a db error
- If it fails Settings.php will assume 0 |
updateSettingsFile
|
Update the Settings.php file.
The most important function in this file for mod makers happens to be the
updateSettingsFile() function, but it shouldn't be used often anyway.
- updates the Settings.php file with the changes supplied in config_vars.
- expects config_vars to be an associative array, with the keys as the
variable names in Settings.php, and the values the variable values.
- does not escape or quote values.
- preserves case, formatting, and additional options in file.
- writes nothing if the resulting file would be less than 10 lines
in length (sanity check for read lock.)
- check for changes to db_last_error and passes those off to a separate handler
- attempts to create a backup file and will use it should the writing of the
new settings file fail |
PrintTopic
|
Format a topic to be printer friendly.
Must be called with a topic specified.
Accessed via ?action=printpage.
uses Printpage template, main sub-template.
uses print_above/print_below later without the main layer. |
BoardNotify
|
Turn off/on notification for a particular board.
Must be called with a board specified in the URL.
Only uses the template if no sub action is used. (on/off)
Redirects the user back to the board after it is done.
Accessed via ?action=notifyboard.
uses Notify template, notify_board sub-template. |
TopicNotify
|
Turn off/on unread replies subscription for a topic as well as sets individual topic's alert preferences
Must be called with a topic specified in the URL.
The mode can be from 0 to 3
0 => unwatched, 1 => no alerts/emails, 2 => alerts, 3 => emails/alerts
Upon successful completion of action will direct user back to topic.
Accessed via ?action=unwatchtopic. |
BookOfUnknown
|
What's this? I dunno, what are you talking about? Never seen this before, nope. No sir. |
db_extra_init
|
Add the functions implemented in this file to the $smcFunc array. |
smf_db_allow_persistent
|
Figures out if persistent connection is allowed |
smf_db_backup_table
|
Backup $table to $backup_table. |
smf_db_get_vendor
|
Return PostgreSQL |
smf_db_get_version
|
Get the version number. |
smf_db_list_tables
|
This function lists all tables in the database.
The listing could be filtered according to $filter. |
smf_db_optimize_table
|
This function optimizes a table. |
smf_db_table_sql
|
Dumps the schema (CREATE) for a table. |
buildEventDatetimes
|
Helper function for getEventRange, getEventProperties, getNewEventDatetimes, etc. |
cache_getOffsetIndependentEvents
|
Retrieve all events for the given days, independently of the users offset.
cache callback function used to retrieve the birthdays, holidays, and events between now and now + days_to_index.
widens the search range by an extra 24 hours to support time offset shifts.
used by the cache_getRecentEvents function to get the information needed to calculate the events taking the users time offset into account. |
cache_getRecentEvents
|
cache callback function used to retrieve the upcoming birthdays, holidays, and events within the given period, taking into account the users time offset.
Called from the BoardIndex to display the current day's events on the board index
used by the board index and SSI to show the upcoming events. |
canLinkEvent
|
Does permission checks to see if an event can be linked to a board/topic.
checks if the current user can link the current topic to the calendar, permissions et al.
this requires the calendar_post permission, a forum moderator, or a topic starter.
expects the $topic and $board variables to be set.
if the user doesn't have proper permissions, an error will be shown. |
getBirthdayRange
|
Get all birthdays within the given time range.
finds all the birthdays in the specified range of days.
works with birthdays set for no year, or any other year, and respects month and year boundaries. |
getCalendarGrid
|
Provides information (link, month, year) about the previous and next month. |
getCalendarList
|
Returns the information needed to show a list of upcoming events, birthdays, and holidays on the calendar. |
getCalendarWeek
|
Returns the information needed to show a calendar for the given week. |
getEventPoster
|
Get the event's poster. |
getEventProperties
|
Gets all the events properties |
getEventRange
|
Get all calendar events within the given time range.
- finds all the posted calendar events within a date range.
- both the earliest_date and latest_date should be in the standard YYYY-MM-DD format.
- censors the posted event titles.
- uses the current user's permissions if use_permissions is true, otherwise it does nothing "permission specific" |
getHolidayRange
|
Get all holidays within the given time range. |
getNewEventDatetimes
|
Gets an initial set of date and time values for creating a new event. |
getTodayInfo
|
Returns date information about 'today' relative to the users time offset.
returns an array with the current date, day, month, and year.
takes the users time offset into account. |
getUserTimezone
|
Gets a member's selected timezone identifier directly from the database |
insertEvent
|
Consolidating the various INSERT statements into this function.
Inserts the passed event information into the calendar table.
Allows to either set a time span (in days) or an end_date.
Does not check any permissions of any sort. |
list_getHolidays
|
Gets all of the holidays for the listing |
list_getNumHolidays
|
Helper function to get the total number of holidays |
modifyEvent
|
modifies an event.
allows to either set a time span (in days) or an end_date.
does not check any permissions of any sort. |
removeEvent
|
Remove an event
removes an event.
does no permission checks. |
removeHolidays
|
Remove a holiday from the calendar |
setEventStartEnd
|
Set the start and end dates and times for a posted event for insertion into the database.
Validates all date and times given to it.
Makes sure events do not exceed the maximum allowed duration (if any).
If passed an array that defines any time or date parameters, they will be used. Otherwise, gets the values from $_POST. |
validateEventPost
|
Makes sure the calendar post is valid. |
BuddyListToggle
|
This simple function adds/removes the passed user from the current users buddy list.
Requires profile_identity_own permission.
Called by ?action=buddy;u=x;session_id=y.
Redirects to ?action=profile;u=x. |
deleteMembers
|
Delete one or more members.
Requires profile_remove_own or profile_remove_any permission for
respectively removing your own account or any account.
Non-admins cannot delete admins.
The function:
- changes author of messages, topics and polls to guest authors.
- removes all log entries concerning the deleted members, except the
error logs, ban logs and moderation logs.
- removes these members' personal messages (only the inbox), avatars,
ban entries, theme settings, moderator positions, poll and votes.
- updates member statistics afterwards. |
generateValidationCode
|
Generate a random validation code. |
groupsAllowedTo
|
Retrieves a list of membergroups that are allowed to do the given
permission. (on the given board)
If board_id is not null, a board permission is assumed.
The function takes different permission settings into account. |
isReservedName
|
Check if a name is in the reserved words list.
(name, current member id, name/username?.)
- checks if name is a reserved name or username.
- if is_name is false, the name is assumed to be a username.
- the id_member variable is used to ignore duplicate matches with the
current member. |
list_getMembers
|
Callback for createList(). |
list_getNumMembers
|
Callback for createList(). |
membersAllowedTo
|
Retrieves a list of members that have a given permission
(on a given board).
If board_id is not null, a board permission is assumed.
Takes different permission settings into account.
Takes possible moderators (on board 'board_id') into account. |
populateDuplicateMembers
|
Find potential duplicate registration members based on the same IP address |
reattributePosts
|
This function is used to reassociate members with relevant posts.
Reattribute guest posts to a specified member.
Does not check for any permissions.
If add_to_post_count is set, the member's post count is increased. |
registerMember
|
Registers a member to the forum.
Allows two types of interface: 'guest' and 'admin'. The first
includes hammering protection, the latter can perform the
registration silently.
The strings used in the options array are assumed to be escaped.
Allows to perform several checks on the input, e.g. reserved names.
The function will adjust member statistics.
If an error is detected will fatal error on all errors unless return_errors is true. |
ShowXmlFeed
|
Outputs xml data representing recent information or a profile.
Can be passed 4 subactions which decide what is output:
'recent' for recent posts,
'news' for news topics,
'members' for recently registered members,
'profile' for a member's profile.
To display a member's profile, a user id has to be given. (;u=1)
Outputs an rss feed instead of a proprietary one if the 'type' $_GET
parameter is 'rss' or 'rss2'.
Accessed via ?action=.xml.
Does not use any templates, sub templates, or template layers.
uses Stats language file. |
cdata_parse
|
Ensures supplied data is properly encapsulated in cdata xml tags
Called from getXmlProfile in News.php |
dumpTags
|
Formats data retrieved in other functions into xml format.
Additionally formats data based on the specific format passed.
This function is recursively called to handle sub arrays of data. |
fix_possible_url
|
Called from dumpTags to convert data to xml
Finds urls for local site and sanitizes them |
getXmlMembers
|
Retrieve the list of members from database.
The array will be generated to match the format. |
getXmlNews
|
Get the latest topics information from a specific board,
to display later.
The returned array will be generated to match the xml_format. |
getXmlProfile
|
Get the profile information for member into an array,
which will be generated to match the xml_format. |
getXmlRecent
|
Get the recent topics to display.
The returned array will be generated to match the xml_format. |
MLAll
|
List all members, page by page, with sorting.
Called from MemberList().
Can be passed a sort parameter, to order the display of members.
Calls printMemberListRows to retrieve the results of the query. |
MLSearch
|
Search for members, or display search results.
- Called by MemberList().
- If variable 'search' is empty displays search dialog box, using the search sub template.
- Calls printMemberListRows to retrieve the results of the query. |
Memberlist
|
Shows a listing of registered members.
- If a subaction is not specified, lists all registered members.
- It allows searching for members with the 'search' sub action.
- It calls MLAll or MLSearch depending on the sub action.
- Requires the view_mlist permission.
- Accessed via ?action=mlist.
uses Memberlist template, main sub template. |
getCustFieldsMList
|
Sets the label, sort and join info for every custom field column. |
printMemberListRows
|
Retrieves results of the request passed to it
Puts results of request into the context for the sub template. |
EditPoll
|
Display screen for editing or adding a poll.
Must be called with a topic specified in the URL.
If the user is adding a poll to a topic, must contain the variable
'add' in the url.
User must have poll_edit_any/poll_add_any permission for the
relevant action, otherwise must be poll starter with poll_edit_own
permission for editing, or be topic starter with poll_add_any permission for adding.
Accessed via ?action=editpoll.
uses Post language file.
uses Poll template, main sub-template. |
EditPoll2
|
Update the settings for a poll, or add a new one.
Must be called with a topic specified in the URL.
The user must have poll_edit_any/poll_add_any permission
for the relevant action. Otherwise they must be poll starter
with poll_edit_own permission for editing, or be topic starter
with poll_add_any permission for adding.
In the case of an error, this function will redirect back to
EditPoll and display the relevant error message.
Upon successful completion of action will direct user back to topic.
Accessed via ?action=editpoll2. |
LockVoting
|
Lock the voting for a poll.
Must be called with a topic specified in the URL.
An admin always has over riding permission to lock a poll.
If not an admin must have poll_lock_any permission, otherwise must
be poll starter with poll_lock_own permission.
Upon successful completion of action will direct user back to topic.
Accessed via ?action=lockvoting. |
RemovePoll
|
Remove a poll from a topic without removing the topic.
Must be called with a topic specified in the URL.
Requires poll_remove_any permission, unless it's the poll starter
with poll_remove_own permission.
Upon successful completion of action will direct user back to topic.
Accessed via ?action=removepoll. |
Vote
|
Allow the user to vote.
It is called to register a vote in a poll.
Must be called with a topic and option specified.
Requires the poll_vote permission.
Upon successful completion of action will direct user back to topic.
Accessed via ?action=vote.
uses Post language file. |
MoveTopic
|
This function allows to move a topic, making sure to ask the moderator
to give reason for topic move.
It must be called with a topic specified. (that is, global $topic must
be set... @todo fix this thing.)
If the member is the topic starter requires the move_own permission,
otherwise the move_any permission.
Accessed via ?action=movetopic.
uses the MoveTopic template, main sub-template. |
MoveTopic2
|
Execute the move of a topic.
It is called on the submit of MoveTopic.
This function logs that topics have been moved in the moderation log.
If the member is the topic starter requires the move_own permission,
otherwise requires the move_any permission.
Upon successful completion redirects to message index.
Accessed via ?action=movetopic2.
uses Subs-Post.php. |
moveTopicConcurrence
|
Called after a topic is moved to update $board_link and $topic_link to point to new location |
moveTopics
|
Moves one or more topics to a specific board. (doesn't check permissions.)
Determines the source boards for the supplied topics
Handles the moving of mark_read data
Updates the posts count of the affected boards |
createCategory
|
Create a new category.
general function to create a new category and set its position.
allows (almost) the same options as the modifyCat() function.
returns the ID of the newly created category. |
deleteCategories
|
Remove one or more categories.
general function to delete one or more categories.
allows to move all boards in the categories to a different category before deleting them.
if moveChildrenTo is set to null, all boards inside the given categories will be deleted.
deletes all information that's associated with the given categories.
updates the statistics to reflect the new situation. |
modifyCategory
|
Edit the position and properties of a category.
general function to modify the settings and position of a category.
used by ManageBoards.php to change the settings of a category. |
AddMailQueue
|
Add an email to the mail queue. |
SpellCheck
|
Spell checks the post for typos ;).
It uses the pspell or enchant library, one of which MUST be installed.
It has problems with internationalization.
It is accessed via ?action=spellcheck. |
adminNotify
|
This simple function gets a list of all administrators and sends them an email
to let them know a new member has joined.
Called by registerMember() function in Subs-Members.php.
Email is sent to all groups that have the moderate_forum permission.
The language set by each member is being used (if available). |
approvePosts
|
Approve (or not) some posts.
.. without permission checks... |
approveTopics
|
Approve topics? |
createPost
|
Create a post, either as new topic (id_topic = 0) or in an existing one.
The input parameters of this function assume:
- Strings have been escaped.
- Integers have been cast to integer.
- Mandatory parameters are set. |
fixTag
|
Fix a specific class of tag - ie. url with =.
Used by fixTags, fixes a specific tag's links. |
fixTags
|
Fix any URLs posted - ie. remove 'javascript:'.
Used by preparsecode, fixes links in message and returns nothing. |
loadEmailTemplate
|
Load a template from EmailTemplates language file. |
mimespecialchars
|
Prepare text strings for sending as email body or header.
In case there are higher ASCII characters in the given string, this
function will attempt the transport method 'quoted-printable'.
Otherwise the transport method '7bit' is used. |
modifyPost
|
Modifying a post.
.. |
preparsecode
|
Takes a message and parses it, returning nothing.
Cleans up links (javascript, etc.) and code/quote sections.
Won't convert \n's and a few other things if previewing is true. |
sendNotifications
|
Sends a notification to members who have elected to receive emails
when things happen to a topic, such as replies are posted.
The function automatically finds the subject and its board, and
checks permissions for each member who is "signed up" for notifications.
It will not send 'reply' notifications more than once in a row. |
sendmail
|
This function sends an email to the specified recipient(s).
It uses the mail_type settings and webmaster_email variable. |
sendpm
|
Sends an personal message from the specified person to the specified people
($from defaults to the user) |
spell_check
|
spell_check()
Determines whether or not the specified word is spelled correctly |
spell_init
|
spell_init()
Sets up a dictionary resource handle. Tries enchant first then falls through to pspell. |
spell_suggest
|
spell_suggest()
Returns an array of suggested replacements for the specified word |
un_preparsecode
|
This is very simple, and just removes things done by preparsecode. |
updateLastMessages
|
Takes an array of board IDs and updates their last messages.
If the board has a parent, that parent board is also automatically
updated.
The columns updated are id_last_msg and last_updated.
Note that id_last_msg should always be updated using this function,
and is not automatically updated upon other changes. |
user_info_callback
|
Callback function for loademaitemplate on subject and body
Uses capture group 1 in array |
AutoSuggestHandler
|
This keeps track of all registered handling functions for auto suggest functionality and passes execution to them. |
AutoSuggest_Search_Member
|
Search for a member - by real_name or member_name by default. |
AutoSuggest_Search_MemberGroups
|
Search for a membergroup by name |
AutoSuggest_Search_SMFVersions
|
Provides a list of possible SMF versions to use in emulation |
bbc_to_html
|
As of SMF 2.1, this is unused. But it is available if any mod wants to use it.
Convert only the BBC that can be edited in HTML mode for the (old) editor. |
create_control_richedit
|
Creates a box that can be used for richedit stuff like BBC, Smileys etc. |
create_control_verification
|
Create a anti-bot verification control? |
fetchTagAttributes
|
Returns an array of attributes associated with a tag. |
getMessageIcons
|
Retrieves a list of message icons.
- Based on the settings, the array will either contain a list of default
message icons or a list of custom message icons retrieved from the database.
- The board_id is needed for the custom message icons (which can be set for
each board individually). |
html_to_bbc
|
Converts HTML to BBC
As of SMF 2.1, only used by ManageBoards.php (and possibly mods) |
legalise_bbc
|
Attempt to clean up illegal BBC caused by browsers like Opera which don't obey the rules |
loadLocale
|
Creates the javascript code for localization of the editor (SCEditor) |
GroupList
|
This very simply lists the groups, nothing snazy. |
GroupRequests
|
Show and manage all group requests. |
Groups
|
Entry point function, permission checks, admin bars, etc.
It allows moderators and users to access the group showing functions.
It handles permission checks, and puts the moderation bar on as required. |
MembergroupMembers
|
Display members of a group, and allow adding of members to a group. Silly function name though ;)
It can be called from ManageMembergroups if it needs templating within the admin environment.
It shows a list of members that are part of a given membergroup.
It is called by ?action=moderate;area=viewgroups;sa=members;group=x
It requires the manage_membergroups permission.
It allows to add and remove members from the selected membergroup.
It allows sorting on several columns.
It redirects to itself.
uses ManageMembergroups template, group_members sub template. |
list_getGroupRequestCount
|
Callback function for createList(). |
getBoardIndex
|
Fetches a list of boards and (optional) categories including
statistical information, child boards and moderators.
- Used by both the board index (main data) and the message index (child
boards).
- Depending on the include_categories setting returns an associative
array with categories->boards->child_boards or an associative array
with boards->child_boards. |
checkGD
|
Sets a global $gd2 variable needed by some functions to determine
whether the GD2 library is present. |
checkImageContents
|
Searches through the file to see if there's potentially harmful non-binary content.
- if extensiveCheck is true, searches for asp/php short tags as well. |
checkImagick
|
Checks whether the Imagick class is present. |
checkMagickWand
|
Checks whether the MagickWand extension is present. |
createThumbnail
|
Create a thumbnail of the given source.
uses resizeImageFile() function to achieve the resize. |
downloadAvatar
|
downloads a file from a url and stores it locally for avatar use by id_member.
- supports GIF, JPG, PNG, BMP and WBMP formats.
- detects if GD2 is available.
- uses resizeImageFile() to resize to max_width by max_height, and saves the result to a file.
- updates the database info for the member's avatar.
- returns whether the download and resize was successful. |
gif_outputAsPng
|
Writes a gif file to disk as a png file. |
imageMemoryCheck
|
See if we have enough memory to thumbnail an image |
imagecopyresamplebicubic
|
Copy image.
Used when imagecopyresample() is not available. |
imagecreatefrombmp
|
It is set only if it doesn't already exist (for forwards compatiblity.)
It only supports uncompressed bitmaps. |
reencodeImage
|
Used to re-econodes an image to a specified image format
- creates a copy of the file at the same location as fileName.
- the file would have the format preferred_format if possible, otherwise the default format is jpeg.
- the function makes sure that all non-essential image contents are disposed. |
resizeImage
|
Resizes src_img proportionally to fit within max_width and max_height limits
if it is too large.
If GD2 is present, it'll use it to achieve better quality.
It saves the new image to destination_filename, as preferred_format
if possible, default is jpeg.
uses Imagemagick (IMagick or MagickWand extension) or GD |
resizeImageFile
|
Resizes an image from a remote location or a local file.
Puts the resized image at the destination location.
The file would have the format preferred_format if possible,
otherwise the default format is jpeg. |
showCodeImage
|
Show an image containing the visual verification code for registration.
Requires the GD extension.
Uses a random font for each letter from default_theme_dir/fonts.
Outputs a gif or a png (depending on whether gif ix supported). |
showLetterImage
|
Show a letter for the visual verification code.
Alternative function for showCodeImage() in case GD is missing.
Includes an image from a random sub directory of default_theme_dir/fonts. |
JavaScriptEscape
|
Escapes (replaces) characters in strings to make them safe for use in javascript |
cleanRequest
|
Clean the request variables - add html entities to GET and slashes if magic_quotes_gpc is Off.
What it does:
- cleans the request variables (ENV, GET, POST, COOKIE, SERVER) and
- makes sure the query string was parsed correctly.
- handles the URLs passed by the queryless URLs option.
- makes sure, regardless of php.ini, everything has slashes.
- sets up $board, $topic, and $scripturl and $_REQUEST['start'].
- determines, or rather tries to determine, the client's IP. |
cleanXml
|
Clean up the XML to make sure it doesn't contain invalid characters.
What it does:
- removes invalid XML characters to assure the input string being
- parsed properly. |
escapestring__recursive
|
Adds slashes to the array/variable.
What it does:
- returns the var, as an array or string, with escapes as required.
- importantly escapes all keys and values!
- calls itself recursively if necessary. |
expandIPv6
|
Expands a IPv6 address to its full form. |
htmlspecialchars__recursive
|
Adds html entities to the array/variable. Uses two underscores to guard against overloading.
What it does:
- adds entities (", <, >) to the array or string var.
- importantly, does not effect keys, only values.
- calls itself recursively if necessary. |
htmltrim__recursive
|
Trim a string including the HTML space, character 160. Uses two underscores to guard against overloading.
What it does:
- trims a string or an the var array using html characters as well.
- does not effect keys, only values.
- may call itself recursively if needed. |
isValidIPv6
|
Validates a IPv6 address. returns true if it is ipv6. |
matchIPtoCIDR
|
Detect if a IP is in a CIDR address
- returns true or false |
ob_sessrewrite
|
Rewrite URLs to include the session ID.
What it does:
- rewrites the URLs outputted to have the session ID, if the user
is not accepting cookies and is using a standard web browser.
- handles rewriting URLs for the queryless URLs option.
- can be turned off entirely by setting $scripturl to an empty
string, ''. (it wouldn't work well like that anyway.)
- because of bugs in certain builds of PHP, does not function in
versions lower than 4.3.0 - please upgrade if this hurts you. |
stripslashes__recursive
|
Remove slashes recursively. Uses two underscores to guard against overloading.
What it does:
- removes slashes, recursively, from the array or string var.
- effects both keys and values of arrays.
- calls itself recursively to handle arrays of arrays. |
unescapestring__recursive
|
Unescapes any array or variable. Uses two underscores to guard against overloading.
What it does:
- unescapes, recursively, from the array or string var.
- effects both keys and values of arrays.
- calls itself recursively to handle arrays of arrays. |
urldecode__recursive
|
Removes url stuff from the array/variable. Uses two underscores to guard against overloading.
What it does:
- takes off url encoding (%20, etc.) from the array or string var.
- importantly, does it to keys too!
- calls itself recursively if there are any sub arrays. |
ApproveAttach
|
Called from a mouse click, works out what we want to do with attachments and actions it. |
ApproveAttachments
|
Approve an attachment, or maybe even more - no permission check! |
BrowseFiles
|
Show a list of attachment or avatar files.
Called by ?action=admin;area=manageattachments;sa=browse for attachments
and ?action=admin;area=manageattachments;sa=browse;avatars for avatars.
Allows sorting by name, date, size and member.
Paginates results. |
MaintainFiles
|
Show several file maintenance options.
Called by ?action=admin;area=manageattachments;sa=maintain.
Calculates file statistics (total file size, number of attachments,
number of avatars, attachment space available).
uses the 'maintain' sub template. |
ManageAttachmentPaths
|
This function lists and allows updating of multiple attachments paths. |
ManageAttachmentSettings
|
Allows to show/change attachment settings.
This is the default sub-action of the 'Attachments and Avatars' center.
Called by index.php?action=admin;area=manageattachments;sa=attachments. |
ManageAttachments
|
The main 'Attachments and Avatars' management function.
This function is the entry point for index.php?action=admin;area=manageattachments
and it calls a function based on the sub-action.
It requires the manage_attachments permission.
uses ManageAttachments template.
uses Admin language file.
uses template layer 'manage_files' for showing the tab bar. |
ManageAvatarSettings
|
This allows to show/change avatar settings.
Called by index.php?action=admin;area=manageattachments;sa=avatars.
Show/set permissions for permissions: 'profile_server_avatar',
'profile_upload_avatar' and 'profile_remote_avatar'. |
RemoveAllAttachments
|
Removes all attachments in a single click
Called from the maintenance screen by
?action=admin;area=manageattachments;sa=removeall. |
RemoveAttachment
|
Remove a selection of attachments or avatars.
Called from the browse screen as submitted form by
?action=admin;area=manageattachments;sa=remove |
RemoveAttachmentByAge
|
Remove attachments older than a given age.
Called from the maintenance screen by
?action=admin;area=manageattachments;sa=byAge.
It optionally adds a certain text to the messages the attachments
were removed from. |
RemoveAttachmentBySize
|
Remove attachments larger than a given size.
Called from the maintenance screen by
?action=admin;area=manageattachments;sa=bySize.
Optionally adds a certain text to the messages the attachments were
removed from. |
RepairAttachments
|
This function should find attachments in the database that no longer exist and clear them, and fix filesize issues. |
TransferAttachments
|
Maintance function to move attachments from one directory to another |
attachDirStatus
|
Checks the status of an attachment directory and returns an array
of the status key, if that status key signifies an error, and
the file count. |
list_getAttachDirs
|
Prepare the actual attachment directories to be displayed in the list. |
list_getBaseDirs
|
Prepare the base directories to be displayed in a list. |
list_getFiles
|
Returns the list of attachments files (avatars or not), recorded
in the database, per the parameters received. |
list_getNumFiles
|
Return the number of files of the specified type recorded in the database.
(the specified type being attachments or avatars). |
pauseAttachmentMaintenance
|
Function called in-between each round of attachments and avatar repairs.
Called by repairAttachments().
If repairAttachments() has more steps added, this function needs updated! |
activateAccount
|
Activate an account. |
deleteAccount
|
Present a screen to make sure the user wants to be deleted |
deleteAccount2
|
Actually delete an account. |
issueWarning
|
Issue/manage an user's warning status. |
list_getUserWarningCount
|
Get the number of warnings a user has. Callback for $listOptions['get_count'] in issueWarning() |
list_getUserWarnings
|
Get the data about a user's warnings. Callback function for the list in issueWarning() |
subscriptions
|
Function for doing all the paid subscription stuff - kinda. |
showAttachment
|
Downloads an avatar or attachment based on $_GET['attach'], and increments the download count.
It requires the view_attachments permission.
It disables the session parser, and clears any previous output.
It depends on the attachmentUploadDir setting being correct.
It is accessed via the query string ?action=dlattach.
Views to attachments do not increase hits and are not logged in the "Who's Online" log. |
AddLanguage
|
Interface for adding a new language
uses ManageLanguages template, add_language sub-template. |
DownloadLanguage
|
Download a language file from the Simple Machines website.
Requires a valid download ID ("did") in the URL.
Also handles installing language files.
Attempts to chmod things as needed.
Uses a standard list to display information about all the files and where they'll be put.
uses ManageLanguages template, download_language sub-template.
uses Admin template, show_list sub-template. |
ManageLanguages
|
This is the main function for the languages area.
It dispatches the requests.
Loads the ManageLanguages template. (sub-actions will use it) |
ModifyLanguage
|
Edit a particular set of language entries. |
ModifyLanguageSettings
|
Edit language related settings. |
ModifyLanguages
|
This lists all the current languages and allows editing of them. |
cleanLangString
|
This function cleans language entries to/from display. |
list_getLanguages
|
Fetch the actual language information.
Callback for $listOptions['get_items']['function'] in ManageLanguageSettings.
Determines which languages are available by looking for the "index.{language}.php" file.
Also figures out how many users are using a particular language. |
list_getLanguagesList
|
Gets a list of available languages from the mother ship
Will return a subset if searching, otherwise all avaialble |
list_getNumLanguages
|
How many languages?
Callback for the list in ManageLanguageSettings(). |
PackageDownload
|
Download a package. |
PackageGBrowse
|
Browse a server's list of packages. |
PackageGet
|
Browse the list of package servers, add servers.
.. |
PackageServerAdd
|
Add a package server to the list. |
PackageServerRemove
|
Remove a server from the list. |
PackageServers
|
Load a list of package servers. |
PackageUpload
|
Upload a new package to the directory. |
assignAttachments
|
Assigns the given attachments to the given message ID. |
attachmentChecks
|
Performs various checks on an uploaded file.
- Requires that $_SESSION['temp_attachments'][$attachID] be properly populated. |
attachments_init_dir
|
Return the first part of a path (i.e. c:\ or / + the first directory), used by automanage_attachments_create_directory |
automanage_attachments_by_space
|
Called when a directory space limit is reached.
Creates a new directory and increments the directory suffix number. |
automanage_attachments_check_directory
|
Check if the current directory is still valid or not.
If not creates the new directory |
automanage_attachments_create_directory
|
Creates a directory |
createAttachment
|
Create an attachment, with the given array of parameters.
- Adds any additional or missing parameters to $attachmentOptions.
- Renames the temporary file.
- Creates a thumbnail if the file is an image and the option enabled. |
getAttachMsgInfo
|
Gets all needed message data associated with an attach ID |
getAttachsByMsg
|
Gets attachment info associated with a message ID |
getRawAttachInfo
|
Gets raw info directly from the attachments table. |
get_directory_tree_elements
|
Split a path into a list of all directories and subdirectories |
loadAttachmentContext
|
This loads an attachment's contextual data including, most importantly, its size if it is an image.
It requires the view_attachments permission to calculate image size.
It attempts to keep the "aspect ratio" of the posted image in line, even if it has to be resized by
the max_image_width and max_image_height settings. |
parseAttachBBC
|
Gets an attach ID and tries to load all its info. |
processAttachments
|
Moves an attachment to the proper directory and set the relevant data into $_SESSION['temp_attachments'] |
db_extend
|
Extend the database functionality. It calls the respective file's init
to add the implementations in that file to $smcFunc array. |
db_fix_prefix
|
Fix up the prefix so it doesn't require the database to be selected. |
smf_db_affected_rows
|
affected_rows |
smf_db_cte_support
|
Function which return the information if the database supports cte with recursive |
smf_db_custom_order
|
Function which constructs an optimize custom order string
as an improved alternative to find_in_set() |
smf_db_error
|
Database error!
Backtrace, log, try to fix. |
smf_db_error_backtrace
|
This function tries to work out additional error information from a back trace. |
smf_db_error_insert
|
Function to save errors in database in a safe way |
smf_db_escape_string
|
Function which return the escaped string |
smf_db_escape_wildcard_string
|
Escape the LIKE wildcards so that they match the character and not the wildcard. |
smf_db_fetch_all
|
Fetches all rows from a result as an array |
smf_db_get_server_info
|
Wrap mysqli_get_server_info so the connection does not need to be specified |
smf_db_initiate
|
Maps the implementations in this file (smf_db_function_name)
to the $smcFunc['db_function_name'] variable. |
smf_db_insert
|
Inserts data into a table |
smf_db_insert_id
|
Gets the ID of the most recently inserted row. |
smf_db_native_replace
|
Function which return the information if the database supports native replace inserts |
smf_db_query
|
Do a query. Takes care of errors too. |
smf_db_quote
|
Just like the db_query, escape and quote a string, but not executing the query. |
smf_db_replacement__callback
|
Callback for preg_replace_callback on the query.
It allows to replace on the fly a few pre-defined strings, for convenience ('query_see_board', 'query_wanna_see_board', etc), with
their current values from $user_info.
In addition, it performs checks and sanitization on the values sent to the database. |
smf_db_select
|
Wrap mysqli_select_db so the connection does not need to be specified |
smf_db_transaction
|
Do a transaction. |
smf_is_resource
|
Validates whether the resource is a valid mysqli instance.
Mysqli uses objects rather than resource. https://bugs.php.net/bug.php?id=42797 |
smf_db_select_db
|
Dummy function really. Doesn't do anything on PostgreSQL. |
smf_db_version
|
Get the current version. |
_safe_serialize
|
Safe serialize() and unserialize() replacements |
_safe_unserialize
|
Safe unserialize() replacement
- accepts a strict subset of PHP's native serialized representation
- does not unserialize objects |
add_integration_function
|
Add a function for integration hook.
does nothing if the function is already added. |
build_query_board
|
Build query_wanna_see_board and query_see_board for a userid
Returns array with keys query_wanna_see_board and query_see_board |
build_regex
|
Creates optimized regular expressions from an array of strings.
An optimized regex built using this function will be much faster than a simple regex built using
`implode('|', $strings)` --- anywhere from several times to several orders of magnitude faster.
However, the time required to build the optimized regex is approximately equal to the time it
takes to execute the simple regex. Therefore, it is only worth calling this function if the
resulting regex will be used more than once.
Because PHP places an upper limit on the allowed length of a regex, very large arrays of $strings
may not fit in a single regex. Normally, the excess strings will simply be dropped. However, if
the $returnArray parameter is set to true, this function will build as many regexes as necessary
to accommodate everything in $strings and return them in an array. You will need to iterate
through all elements of the returned array in order to test all possible matches. |
call_helper
|
Receives a string and tries to figure it out if its a method or a function.
If a method is found, it looks for a "#" which indicates SMF should create a new instance of the given class.
Checks the string/array for is_callable() and return false/fatal_lang_error is the given value results in a non callable string/array.
Prepare and returns a callable depending on the type of method/function found. |
call_integration_hook
|
Process functions of an integration hook.
calls all functions of the given hook.
supports static class method calls. |
check_cron
|
Ensures SMF's scheduled tasks are being run as intended
If the admin activated the cron_is_real_cron setting, but the cron job is
not running things at least once per day, we need to go back to SMF's default
behaviour using "web cron" JavaScript calls. |
comma_format
|
- Formats a number.
- uses the format of number_format to decide how to format the number.
for example, it might display "1 234,50".
- caches the formatting data from the setting for optimization. |
constructPageIndex
|
Constructs a page list.
- builds the page list, e.g. 1 ... 6 7 [8] 9 10 ... 15.
- flexible_start causes it to use "url.page" instead of "url;start=page".
- very importantly, cleans up the start value passed, and forces it to
be a multiple of num_per_page.
- checks that start is not more than max_value.
- base_url should be the URL without any start parameter on it.
- uses the compactTopicPagesEnable and compactTopicPagesContiguous
settings to decide how to display the menu.
an example is available near the function definition.
$pageindex = constructPageIndex($scripturl . '?board=' . $board, $_REQUEST['start'], $num_messages, $maxindex, true); |
create_button
|
Creates an image/text button |
custMinify
|
Get an array of previously defined files and adds them to our main minified files.
Sets a one day cache to avoid re-creating a file on every request. |
deleteAllMinified
|
Clears out old minimized CSS and JavaScript files and ensures $modSettings['browser_cache'] is up to date |
entity_fix__callback
|
Strips out invalid html entities, replaces others with html style { codes
Callback function used of preg_replace_callback in smcFunc $ent_checks, for example
strpos, strlen, substr etc |
fetch_web_data
|
Get the contents of a URL, irrespective of allow_url_fopen.
- reads the contents of an http or ftp address and returns the page in a string
- will accept up to 3 page redirections (redirectio_level in the function call is private)
- if post_data is supplied, the value and length is posted to the given url as form data
- URL must be supplied in lowercase |
fixchar__callback
|
Converts html entities to utf8 equivalents
Callback function for preg_replace_callback
Uses capture group 1 in the supplied array
Does basic checks to keep characters inside a viewable range. |
forum_time
|
Gets the current time with offset.
- always applies the offset in the time_offset setting. |
getAttachmentFilename
|
Get an attachment's encrypted filename. If $new is true, won't check for file existence. |
get_gravatar_url
|
Return a Gravatar URL based on
- the supplied email address,
- the global maximum rating,
- the global default fallback,
- maximum sizes as set in the admin panel.
It is SSL aware, and caches most of the parameters. |
get_proxied_url
|
Gets the appropriate URL to use for images (or whatever) when using SSL
The returned URL may or may not be a proxied URL, depending on the situation.
Mods can implement alternative proxies using the 'integrate_proxy' hook. |
highlight_php_code
|
Highlight any code.
Uses PHP's highlight_string() to highlight PHP syntax
does special handling to keep the tabs in the code available.
used to parse PHP code from inside [code] and [php] tags. |
host_from_ip
|
Lookup an IP; try shell_exec first because we can do a timeout on it. |
httpsOn
|
Check if the connection is using https. |
https_redirect_active
|
Check if the passed url has a redirect to https:// by querying headers.
Returns true if a redirect was found & false if not.
Note that when force_ssl = 2, SMF issues its own redirect... So if this
returns true, it may be caused by SMF, not necessarily an .htaccess redirect. |
inet_dtop
|
|
inet_ptod
|
|
ip2range
|
Convert a single IP to a ranged IP.
internal function used to convert a user-readable format to a format suitable for the database. |
iri_to_url
|
Converts a URL with international characters (an IRI) into a pure ASCII URL
Uses Punycode to encode any non-ASCII characters in the domain name, and uses
standard URL encoding on the rest. |
isValidIP
|
Check the given String if he is a valid IPv4 or IPv6
return true or false |
load_file
|
Receives a string and tries to figure it out if it contains info to load a file.
Checks for a | (pipe) symbol and tries to load a file with the info given.
The string should be format as follows File.php|. You can use the following wildcards: $boarddir, $sourcedir and if available at the moment of execution, $themedir. |
memoryReturnBytes
|
Helper function to convert memory string settings to bytes |
obExit
|
Ends execution. Takes care of template loading and remembering the previous URL. |
parse_bbc
|
Parse bulletin board code in a string, as well as smileys optionally.
- only parses bbc tags which are not disabled in disabledBBC.
- handles basic HTML, if enablePostHTML is on.
- caches the from/to replace regular expressions so as not to reload them every time a string is parsed.
- only parses smileys if smileys is true.
- does nothing if the enableBBC setting is off.
- uses the cache_id as a unique identifier to facilitate any caching it may do.
- returns the modified message. |
parsesmileys
|
Parse smileys in the passed message.
The smiley parsing function which makes pretty faces appear :).
If custom smiley sets are turned off by smiley_enable, the default set of smileys will be used.
These are specifically not parsed in code tags [url=mailto:Dad@blah.com]
Caches the smileys from the database or array in memory.
Doesn't return anything, but rather modifies message directly. |
permute
|
Calculates all the possible permutations (orders) of array.
should not be called on huge arrays (bigger than like 10 elements.)
returns an array containing each permutation. |
prepareLikesContext
|
Prepares an array of "likes" info for the topic specified by $topic |
redirectexit
|
Make sure the browser doesn't come back and repost the form data.
Should be used whenever anything is posted. |
remove_integration_function
|
Remove an integration hook function.
Removes the given function from the given hook.
Does nothing if the function is not available. |
replaceEntities__callback
|
Decode numeric html entities to their ascii or UTF8 equivalent character.
Callback function for preg_replace_callback in subs-members
Uses capture group 2 in the supplied array
Does basic scan to ensure characters are inside a valid range |
safe_serialize
|
Wrapper for _safe_serialize() that handles exceptions and multibyte encoding issues. |
safe_unserialize
|
Wrapper for _safe_unserialize() that handles exceptions and multibyte encoding issue |
sanitizeMSCutPaste
|
Microsoft uses their own character set Code Page 1252 (CP1252), which is a
superset of ISO 8859-1, defining several characters between DEC 128 and 159
that are not normally displayable. This converts the popular ones that
appear from a cut and paste from windows. |
sanitize_iri
|
A wrapper for `filter_var($url, FILTER_SANITIZE_URL)` that can handle URLs
with international characters (a.k.a. IRIs)
Note: The returned value will still be an IRI, not a URL. To convert to URL,
feed the result of this function to iri_to_url() |
send_http_status
|
Sends an appropriate HTTP status header based on a given status code |
sentence_list
|
Concatenates an array of strings into a grammatically correct sentence list
Uses formats defined in the language files to build the list appropropriately
for the currently loaded language. |
setMemoryLimit
|
Helper function to set the system memory to a needed value
- If the needed memory is greater than current, will attempt to get more
- if in_use is set to true, will also try to take the current memory usage in to account |
set_tld_regex
|
Creates an optimized regex to match all known top level domains.
The optimized regex is stored in $modSettings['tld_regex'].
To update the stored version of the regex to use the latest list of valid TLDs from iana.org, set
the $update parameter to true. Updating can take some time, based on network connectivity, so it
should normally only be done by calling this function from a background or scheduled task.
If $update is not true, but the regex is missing or invalid, the regex will be regenerated from a
hard-coded list of TLDs. This regenerated regex will be overwritten on the next scheduled update. |
setupMenuContext
|
Sets up all of the top menu buttons
Saves them in the cache if it is available and on
Places the results in $context |
setupThemeContext
|
Sets up the basic theme context stuff. |
shorten_subject
|
Shorten a subject + internationalization concerns.
- shortens a subject so that it is either shorter than length, or that length plus an ellipsis.
- respects internationalization characters and entities as one character.
- avoids trailing entities.
- returns the shortened string. |
smf_chmod
|
Tries different modes to make file/dirs writable. Wrapper function for chmod() |
smf_json_decode
|
Wrapper function for json_decode() with error handling. |
smf_list_timezones
|
Get a list of timezones. |
smf_seed_generator
|
Generate a random seed and ensure it's stored in settings. |
smf_serverResponse
|
Outputs a response.
It assumes the data is already a string. |
ssl_cert_found
|
Check if the passed url has an SSL certificate.
Returns true if a cert was found & false if not. |
template_css
|
Output the CSS files |
template_footer
|
The template footer |
template_header
|
The header template |
template_javascript
|
Output the Javascript files
- tabbing in this function is to make the HTML source look good and proper
- if deferred is set function will output all JS set to load at page end |
text2words
|
Chops a string into words and prepares them to be inserted into (or searched from) the database. |
theme_copyright
|
Show the copyright. |
timeformat
|
Format a time to make it look purdy.
- returns a pretty formatted version of time based on the user's format in $user_info['time_format'].
- applies all necessary time offsets to the timestamp, unless offset_type is set.
- if todayMod is set and show_today was not not specified or true, an
alternate format string is used to show the date with something to show it is "today" or "yesterday".
- performs localization (more than just strftime would do alone.) |
un_htmlspecialchars
|
Replaces special entities in strings with the real characters.
Functionally equivalent to htmlspecialchars_decode(), except that this also
replaces ' ' with a simple space character. |
updateMemberData
|
Updates the columns in the members table.
Assumes the data has been htmlspecialchar'd.
this function should be used whenever member data needs to be
updated in place of an UPDATE query.
id_member is either an int or an array of ints to be updated.
data is an associative array of the columns to be updated and their respective values.
any string values updated should be quoted and slashed.
the value of any column can be '+' or '-', which mean 'increment'
and decrement, respectively.
if the member's post number is updated, updates their post groups. |
updateSettings
|
Updates the settings table as well as $modSettings.
.. only does one at a time if $update is true.
- updates both the settings table and $modSettings array.
- all of changeArray's indexes and values are assumed to have escaped apostrophes (')!
- if a variable is already set to what you want to change it to, that
variable will be skipped over; it would be unnecessary to reset.
- When use_update is true, UPDATEs will be used instead of REPLACE.
- when use_update is true, the value can be true or false to increment
or decrement it, respectively. |
updateStats
|
Update some basic statistics.
'member' statistic updates the latest member, the total member
count, and the number of unapproved members.
'member' also only counts approved members when approval is on, but
is much more efficient with it off.
'message' changes the total number of messages, and the
highest message id by id_msg - which can be parameters 1 and 2,
respectively.
'topic' updates the total number of topics, or if parameter1 is true
simply increments them.
'subject' updates the log_search_subjects in the event of a topic being
moved, removed or split. parameter1 is the topicid, parameter2 is the new subject
'postgroups' case updates those members who match condition's
post-based membergroups in the database (restricted by parameter1). |
url_image_size
|
Get the size of a specified image with better error handling. |
url_to_iri
|
Decodes a URL containing encoded international characters to UTF-8
Decodes any Punycode encoded characters in the domain name, then uses
standard URL decoding on the rest. |
validate_iri
|
A wrapper for `filter_var($url, FILTER_VALIDATE_URL)` that can handle URLs
with international characters (a.k.a. IRIs) |
InMaintenance
|
Display a message about the forum being in maintenance mode.
- display a login screen with sub template 'maintenance'.
- sends a 503 header, so search engines don't bother indexing while we're in maintenance mode. |
JSMembers
|
Called by index.php?action=findmember.
- is used as a popup for searching members.
- uses sub template find_members of the Help template.
- also used to add members for PM's sent using wap2/imode protocol. |
KickGuest
|
Throws guests out to the login screen when guest access is off.
- sets $_SESSION['login_url'] to $_SERVER['REQUEST_URL'].
- uses the 'kick_guest' sub template found in Login.template.php. |
RequestMembers
|
Outputs each member name on its own line.
- used by javascript to find members matching the request. |
adminLogin
|
Question the verity of the admin by asking for his or her password.
- loads Login.template.php and uses the admin_login sub template.
- sends data to template so the admin is sent on to the page they
wanted if their password is correct, otherwise they can try again. |
adminLogin_outputPostVars
|
Used by the adminLogin() function.
if 'value' is an array, the function is called recursively. |
construct_query_string
|
Properly urlencodes a string to be used in a query |
findMembers
|
Finds members by email address, username, or real name.
- searches for members whose username, display name, or e-mail address match the given pattern of array names.
- searches only buddies if buddies_only is set. |
hash_benchmark
|
Benchmarks the server to figure out an appropriate cost factor (minimum 9) |
hash_length
|
Returns the length for current hash |
hash_password
|
Hashes username with password |
hash_salt
|
Hashes password with salt, this is solely used for cookies. |
hash_verify_password
|
Verifies a raw SMF password against the bcrypt'd string |
rebuildModCache
|
Quickly find out what moderation authority this user has
- builds the moderator, group and board level querys for the user
- stores the information on the current users moderation powers in $user_info['mod_cache'] and $_SESSION['mc'] |
resetPassword
|
Generates a random password for a user and emails it to them.
- called by Profile.php when changing someone's username.
- checks the validity of the new username.
- generates and sets a new password for the given user.
- mails the new password to the email address of the user.
- if username is not set, only a new password is generated and sent. |
setLoginCookie
|
Sets the SMF-style login cookie and session based on the id_member and password passed.
- password should be already encrypted with the cookie salt.
- logs the user out if id_member is zero.
- sets the cookie and session to last the number of seconds specified by cookie_length, or
ends them if cookie_length is less than 0.
- when logging out, if the globalCookies setting is enabled, attempts to clear the subdomain's
cookie too. |
setTFACookie
|
Sets Two Factor Auth cookie |
smf_setcookie
|
A wrapper for setcookie that gives integration hook access to it |
url_parts
|
Get the domain and path for the cookie
- normally, local and global should be the localCookies and globalCookies settings, respectively.
- uses boardurl to determine these two things. |
validatePassword
|
Checks whether a password meets the current forum rules
- called when registering/choosing a password.
- checks the password obeys the current forum settings for password strength.
- if password checking is enabled, will check that none of the words in restrict_in appear in the password.
- returns an error identifier if the password is invalid, or null. |
validateUsername
|
Checks a username obeys a load of rules |
CalendarMain
|
Show the calendar.
It loads the specified month's events, holidays, and birthdays.
It requires the calendar_view permission.
It depends on the cal_enabled setting, and many of the other cal_ settings.
It uses the calendar_start_day theme option. (Monday/Sunday)
It uses the main sub template in the Calendar template.
It goes to the month and year passed in 'month' and 'year' by get or post.
It is accessed through ?action=calendar. |
CalendarPost
|
This function processes posting/editing/deleting a calendar event.
- calls @link Post.php|Post() function if event is linked to a post.
- calls @link Subs-Calendar.php|insertEvent() to insert the event if not linked to post.
It requires the calendar_post permission to use.
It uses the event_post sub template in the Calendar template.
It is accessed with ?action=calendar;sa=post. |
clock
|
Nothing to see here. Move along. |
iCalDownload
|
This function offers up a download of an event in iCal 2.0 format.
Follows the conventions in @link https://tools.ietf.org/html/rfc5546 RFC5546
Sets events as all day events since we don't have hourly events
Will honor and set multi day events
Sets a sequence number if the event has been modified |
addInlineCss
|
Add a block of inline css code to be executed later
- only use this if you have to, generally external css files are better, but for very small changes
or for scripts that require help from PHP/whatever, this can be useful.
- all code added with this function is added to the same <style> tag so do make sure your css is valid! |
addInlineJavaScript
|
Add a block of inline Javascript code to be executed later
- only use this if you have to, generally external JS files are better, but for very small scripts
or for scripts that require help from PHP/whatever, this can be useful.
- all code added with this function is added to the same <script> tag so do make sure your JS is clean! |
addJavaScriptVar
|
Add a Javascript variable for output later (for feeding text strings and similar to JS)
Cleaner and easier (for modders) than to use the function below. |
cache_get_data
|
Gets the value from the cache specified by key, so long as it is not older than ttl seconds.
- It may often "miss", so shouldn't be depended on.
- It supports the same as cache_put_data(). |
cache_put_data
|
Puts value in the cache under key for ttl seconds.
- It may "miss" so shouldn't be depended on
- Uses the cache engine chosen in the ACP and saved in settings.php
- It supports:
Xcache: https://xcache.lighttpd.net/wiki/XcacheApi
memcache: https://php.net/memcache
APC: https://php.net/apc
APCu: https://php.net/book.apcu
Zend: http://files.zend.com/help/Zend-Platform/output_cache_functions.htm
Zend: http://files.zend.com/help/Zend-Platform/zend_cache_functions.htm |
cache_quick_get
|
Try to retrieve a cache entry. On failure, call the appropriate function. |
censorText
|
Replace all vulgar words with respective proper words. (substring or whole words.
.)
What this function does:
- it censors the passed string.
- if the theme setting allow_no_censored is on, and the theme option
show_no_censored is enabled, does not censor, unless force is also set.
- it caches the list of censored words to reduce parsing. |
clean_cache
|
Empty out the cache in use as best it can
It may only remove the files of a certain type (if the $type parameter is given)
Type can be user, data or left blank
- user clears out user data
- data clears out system / opcode data
- If no type is specified will perform a complete cache clearing
For cache engines that do not distinguish on types, a full cache flush will be done |
detectBrowser
|
Loads information about what browser the user is viewing with and places it in $context
- uses the class from @link Class-BrowserDetect.php |
getBoardParents
|
Get all parent boards (requires first parent as parameter)
It finds all the parents of id_parent, and that board itself.
Additionally, it detects the moderators of said boards. |
getLanguages
|
Attempt to reload our known languages.
It will try to choose only utf8 or non-utf8 languages. |
isBrowser
|
Are we using this browser?
Wrapper function for detectBrowser |
loadBoard
|
Check for moderators and see if they have access to the board.
What it does:
- sets up the $board_info array for current board information.
- if cache is enabled, the $board_info array is stored in cache.
- redirects to appropriate post if only message id is requested.
- is only used when inside a topic or board.
- determines the local moderators for the board.
- adds group id 3 if the user is a local moderator for the board they are in.
- prevents access if user is not in proper group nor a local moderator of the board. |
loadCSSFile
|
Add a CSS file for output later |
loadCacheAccelerator
|
Try to load up a supported caching method. This is saved in $cacheAPI if we are not overriding it. |
loadDatabase
|
Initialize a database connection. |
loadJavaScriptFile
|
Add a Javascript file for output later |
loadLanguage
|
Load a language file. Tries the current and default themes as well as the user and global languages. |
loadMemberContext
|
Loads the user's basic values.
.. meant for template/theme usage. |
loadMemberCustomFields
|
Loads the user's custom profile fields |
loadMemberData
|
Loads an array of users' data by ID or member_name. |
loadPermissions
|
Load this user's permissions. |
loadSubTemplate
|
Load a sub-template.
What it does:
- loads the sub template specified by sub_template_name, which must be in an already-loaded template.
- if ?debug is in the query string, shows administrators a marker after every sub template
for debugging purposes. |
loadTemplate
|
Load a template - if the theme doesn't include it, use the default.
What this function does:
- loads a template file with the name template_name from the current, default, or base theme.
- detects a wrong default theme directory and tries to work around it.
uses the template_include() function to include the file. |
loadTheme
|
Load a theme, by ID. |
loadUserSettings
|
Load all the important user information.
What it does:
- sets up the $user_info array
- assigns $user_info['query_wanna_see_board'] for what boards the user can see.
- first checks for cookie or integration validation.
- uses the current session if no integration function or cookie is found.
- checks password length, if member is activated and the login span isn't over.
- if validation fails for the user, $id_member is set to 0.
- updates the last visit time when needed. |
reloadSettings
|
Load the $modSettings array. |
set_avatar_data
|
Helper function to set an array of data for an user's avatar.
Makes assumptions based on the data provided, the following keys are required:
- avatar The raw "avatar" column in members table
- email The user's email. Used to get the gravatar info
- filename The attachment filename |
template_include
|
Load the template/language file using require
- loads the template or language file specified by filename.
- uses eval unless disableTemplateEval is enabled.
- outputs a parse error if the file did not exist or contained errors.
- attempts to detect the error and line, and show detailed information. |
HelpIndex
|
The main page for the Help section |
HelpRules
|
Displays forum rules |
ShowAdminHelp
|
Show some of the more detailed help to give the admin an idea.
..
It shows a popup for administrative or user help.
It uses the help parameter to decide what string to display and where to get
the string from. ($helptxt or $txt?)
It is accessed via ?action=helpadmin;help=?.
uses ManagePermissions language file, if the help starts with permissionhelp.
uses Help template, popup sub template, no layers. |
ShowHelp
|
Redirect to the user help ;).
It loads information needed for the help section.
It is accessed by ?action=help.
uses Help template and Manual language file. |
account
|
Handles the account section of the profile |
alert_configuration
|
Handles configuration of alert preferences |
alert_count
|
Counts how many alerts a user has - either unread or all depending on $unread
We can't use db_num_rows here, as we have to determine what boards the user can see
Possibly in future versions as database support for json is mainstream, we can simplify this. |
alert_delete
|
Deletes a single or a group of alerts by ID |
alert_mark
|
Marks a group of alerts as un/read |
alert_markread
|
Marks all alerts as read for the specified user |
alert_notifications_boards
|
Handles preferences related to board-level notifications |
alert_notifications_topics
|
Handles alerts related to topics and posts |
editBuddies
|
Show all the users buddies, as well as a add/delete interface. |
editBuddyIgnoreLists
|
Show all the users buddies, as well as a add/delete interface. |
editIgnoreList
|
Allows the user to view their ignore list, as well as the option to manage members on it. |
forumProfile
|
Handles the main "Forum Profile" section of the profile |
getAvatars
|
Recursive function to retrieve server-stored avatar files |
groupMembership
|
Function to allow the user to choose group membership etc.
.. |
groupMembership2
|
This function actually makes all the group changes |
ignoreboards
|
Handles the "ignored boards" section of the profile (if enabled) |
list_getBoardNotifications
|
Gets information about all the boards a user has requested notifications for. Callback for the list in alert_notifications_boards |
list_getTopicNotificationCount
|
Determins how many topics a user has requested notifications for |
list_getTopicNotifications
|
Gets information about all the topics a user has requested notifications for. Callback for the list in alert_notifications_topics |
loadProfileFields
|
This defines every profile field known to man. |
loadThemeOptions
|
Loads the theme options for a user |
makeCustomFieldChanges
|
Save any changes to the custom profile fields |
makeNotificationChanges
|
Make any notification changes that need to be made. |
makeThemeChanges
|
Make any theme changes that are sent with the profile. |
notification
|
Display the notifications and settings for changes. |
profileLoadAvatarData
|
Load avatar context data. |
profileLoadGroups
|
Handles the "manage groups" section of the profile |
profileLoadLanguages
|
Load all the languages for the profile
. |
profileLoadSignatureData
|
Load key signature context data. |
profileReloadUser
|
Reload a user's settings. |
profileSaveAvatarData
|
The avatar is incredibly complicated, what with the options.
.. and what not. |
profileSaveGroups
|
Save a members group. |
profileSendActivation
|
Send the user a new activation email if they need to reactivate! |
profileValidateEmail
|
Validate an email address. |
profileValidateSignature
|
Validate the signature |
saveProfileChanges
|
Save the profile changes |
saveProfileFields
|
Save the profile changes. |
setupProfileContext
|
Setup the context for a page load! |
tfadisable
|
Provides interface to disable two-factor authentication in SMF |
tfasetup
|
Provides interface to setup Two Factor Auth in SMF |
theme
|
Handles the "Look and Layout" section of the profile |
ModifyProfile
|
The main designating function for modifying profiles. Loads up info, determins what to do, etc. |
alerts_popup
|
Set up the requirements for the alerts popup - the area that shows all the alerts just quickly for the current user. |
loadCustomFields
|
Load any custom fields for this area.
.. no area means load all, 'summary' loads all public ones. |
profile_popup
|
Set up the requirements for the profile popup - the area that is shown as the popup menu for the current user. |
allowedTo
|
Check the user's permissions.
checks whether the user is allowed to do permission. (ie. post_new.)
If boards is specified, checks those boards instead of the current one.
If any is true, will return true if the user has the permission on any of the specified boards
Always returns true if the user is an administrator. |
banPermissions
|
Fix permissions according to ban status.
Applies any states of banning by removing permissions the user cannot have. |
boardsAllowedTo
|
Return the boards a user has a certain (board) permission on. (array(0) if all.)
- returns a list of boards on which the user is allowed to do the specified permission.
- returns an array with only a 0 in it if the user has permission to do this on every board.
- returns an empty array if he or she cannot do this on any board.
If check_access is true will also make sure the group has proper access to that board. |
checkConfirm
|
Check if a specific confirm parameter was given. |
checkSession
|
Make sure the user's correct session was passed, and they came from here.
Checks the current session, verifying that the person is who he or she should be.
Also checks the referrer to make sure they didn't get sent here.
Depends on the disableCheckUA setting, which is usually missing.
Will check GET, POST, or REQUEST depending on the passed type.
Also optionally checks the referring action if passed. (note that the referring action must be by GET.) |
checkSubmitOnce
|
Check whether a form has been submitted twice.
Registers a sequence number for a form.
Checks whether a submitted sequence number is registered in the current session.
Depending on the value of is_fatal shows an error or returns true or false.
Frees a sequence number from the stack after it's been checked.
Frees a sequence number without checking if action == 'free'. |
cleanTokens
|
Removes old unused tokens from session
defaults to 3 hours before a token is considered expired
if $complete = true will remove all tokens |
createToken
|
Lets give you a token of our appreciation. |
frameOptionsHeader
|
This sets the X-Frame-Options header. |
isAllowedTo
|
Fatal error if they cannot.
Uses allowedTo() to check if the user is allowed to do permission.
Checks the passed boards or current board for the permission.
If $any is true, the user only needs permission on at least one of the boards to pass
If they are not, it loads the Errors language file and shows an error using $txt['cannot_' . $permission].
If they are a guest and cannot do it, this calls is_not_guest(). |
isBannedEmail
|
Checks if a given email address might be banned.
Check if a given email is banned.
Performs an immediate ban if the turns turns out positive. |
is_not_banned
|
Do banning related stuff. (ie. disallow access.
...)
Checks if the user is banned, and if so dies with an error.
Caches this information for optimization purposes. |
is_not_guest
|
Require a user who is logged in. (not a guest.)
Checks if the user is currently a guest, and if so asks them to login with a message telling them why.
Message is what to tell them when asking them to login. |
log_ban
|
Log a ban in the database.
Log the current user in the ban logs.
Increment the hit counters for the specified ban ID's (if any.) |
secureDirectory
|
A generic function to create a pair of index.php and .htaccess files in a directory |
spamProtection
|
This function attempts to protect from spammed messages and the like.
The time taken depends on error_type - generally uses the modSetting. |
validateSession
|
Check if the user is who he/she says he is
Makes sure the user is who they claim to be by requiring a password to be typed in every hour.
Is turned on and off by the securityDisable setting.
Uses the adminLogin() function of Subs-Auth.php if they need to login, which saves all request (post and get) data. |
validateToken
|
Only patrons with valid tokens can ride this ride. |
Activate
|
Activate an users account.
Checks for mail changes, resends password if needed. |
CoppaForm
|
This function will display the contact information for the forum, as well a form to fill in. |
Register
|
Begin the registration process. |
Register2
|
Actually register the member. |
RegisterCheckUsername
|
See if a username already exists. |
SendActivation
|
It doesn't actually send anything, this action just shows a message for a guest. |
VerificationCode
|
Show the verification code or let it be heard. |
AdminRegister
|
This function allows the admin to register a new member by hand.
It also allows assigning a primary group to the member being registered.
Accessed by ?action=admin;area=regcenter;sa=register
Requires the moderate_forum permission.
uses Register template, admin_register sub-template. |
EditAgreement
|
Allows the administrator to edit the registration agreement, and choose whether
it should be shown or not. It writes and saves the agreement to the agreement.txt
file.
Accessed by ?action=admin;area=regcenter;sa=agreement.
Requires the admin_forum permission.
uses Admin template and the edit_agreement sub template. |
ModifyRegistrationSettings
|
This function handles registration settings, and provides a few pretty stats too while it's at it.
General registration settings and Coppa compliance settings.
Accessed by ?action=admin;area=regcenter;sa=settings.
Requires the admin_forum permission. |
RegCenter
|
Entrance point for the registration center, it checks permissions and forwards
to the right function based on the subaction.
Accessed by ?action=admin;area=regcenter.
Requires either the moderate_forum or the admin_forum permission.
uses Login language file
uses Register template. |
SetReserved
|
Set the names under which users are not allowed to register.
Accessed by ?action=admin;area=regcenter;sa=reservednames.
Requires the admin_forum permission.
uses Register template, reserved_words sub-template. |
BrowseMailQueue
|
Display the mail queue.
.. |
ClearMailQueue
|
This function clears the mail queue of all emails, and at the end redirects to browse. |
ManageMail
|
Main dispatcher. This function checks permissions and passes control through to the relevant section. |
ModifyMailSettings
|
Allows to view and modify the mail settings. |
TestMailSend
|
Test mail sending ability. |
list_getMailQueue
|
This function grabs the mail queue items from the database, according to the params given.
Callback for $listOptions['get_items'] in BrowseMailQueue() |
list_getMailQueueSize
|
Returns the total count of items in the mail queue.
Callback for $listOptions['get_count'] in BrowseMailQueue |
pauseMailQueueClear
|
Used for pausing the mail queue. |
time_since
|
Little utility function to calculate how long ago a time was. |
AutoTask
|
This function works out what to do! |
CalculateNextTrigger
|
Calculate the next time the passed tasks should be triggered. |
ReduceMailQueue
|
Send a group of emails from the mail queue. |
loadEssentialThemeData
|
This loads the bare minimum data to allow us to load language files! |
next_time
|
Simply returns a time stamp of the next instance of these time parameters. |
scheduled_birthdayemails
|
Happy birthday!! |
scheduled_daily_digest
|
Send out a daily email of all subscribed topics. |
scheduled_daily_maintenance
|
Do some daily cleaning up. |
scheduled_fetchSMfiles
|
This retieves data (e.g. last version of SMF) from sm.org |
scheduled_paid_subscriptions
|
Perform the standard checks on expiring/near expiring subscriptions. |
scheduled_remove_old_drafts
|
Check for old drafts and remove them |
scheduled_remove_temp_attachments
|
Check for un-posted attachments is something we can do once in a while :P
This function uses opendir cycling through all the attachments |
scheduled_remove_topic_redirect
|
Check for move topic notices that have past their best by date |
scheduled_weekly_digest
|
Like the daily stuff - just seven times less regular ;) |
scheduled_weekly_maintenance
|
Weekly maintenance |
DoLogin
|
Perform the logging in. (set cookie, call hooks, etc) |
Login
|
Ask them for their login information. (shows a page for the user to type
in their username and password.)
It caches the referring URL in $_SESSION['login_url'].
It is accessed from ?action=login.
uses Login template and language file with the login sub-template. |
Login2
|
Actually logs you in.
What it does:
- checks credentials and checks that login was successful.
- it employs protection against a specific IP or user trying to brute force
a login to an account.
- upgrades password encryption on login, if necessary.
- after successful login, redirects you to $_SESSION['login_url'].
- accessed from ?action=login2, by forms.
On error, uses the same templates Login() uses. |
LoginTFA
|
Allows the user to enter their Two-Factor Authentication code |
Logout
|
Logs the current user out of their account.
It requires that the session hash is sent as well, to prevent automatic logouts by images or javascript.
It redirects back to $_SESSION['logout_url'], if it exists.
It is accessed via ?action=logout;session_var=... |
checkActivation
|
Check activation status of the current user. |
md5_hmac
|
MD5 Encryption used for older passwords. (SMF 1.0.x/YaBB SE 1.5.x hashing) |
phpBB3_password_check
|
Custom encryption for phpBB3 based passwords. |
validatePasswordFlood
|
This protects against brute force attacks on a member's password.
Importantly, even if the password was right we DON'T TELL THEM! |
AddMembergroup
|
This function handles adding a membergroup and setting some initial properties.
Called by ?action=admin;area=membergroups;sa=add.
It requires the manage_membergroups permission.
Allows to use a predefined permission profile or copy one from another group.
Redirects to action=admin;area=membergroups;sa=edit;group=x.
uses the new_group sub template of ManageMembergroups. |
DeleteMembergroup
|
Deleting a membergroup by URL (not implemented).
Called by ?action=admin;area=membergroups;sa=delete;group=x;session_var=y.
Requires the manage_membergroups permission.
Redirects to ?action=admin;area=membergroups. |
EditMembergroup
|
Editing a membergroup.
Screen to edit a specific membergroup.
Called by ?action=admin;area=membergroups;sa=edit;group=x.
It requires the manage_membergroups permission.
Also handles the delete button of the edit form.
Redirects to ?action=admin;area=membergroups.
uses the edit_group sub template of ManageMembergroups. |
MembergroupIndex
|
Shows an overview of the current membergroups.
Called by ?action=admin;area=membergroups.
Requires the manage_membergroups permission.
Splits the membergroups in regular ones and post count based groups.
It also counts the number of members part of each membergroup.
uses ManageMembergroups template, main. |
ModifyMembergroups
|
Main dispatcher, the entrance point for all 'Manage Membergroup' actions.
It forwards to a function based on the given subaction, default being subaction 'index', or, without manage_membergroup
permissions, then 'settings'.
Called by ?action=admin;area=membergroups.
Requires the manage_membergroups or the admin_forum permission.
uses ManageMembergroups template.
uses ManageMembers language file. |
ModifyMembergroupsettings
|
Set some general membergroup settings and permissions.
Called by ?action=admin;area=membergroups;sa=settings
Requires the admin_forum permission (and manage_permissions for changing permissions)
Redirects to itself.
uses membergroup_settings sub template of ManageMembergroups. |
BoardPermissionsReport
|
Generate a report on the current permissions by board and membergroup.
functions ending with "Report" are responsible for generating data
for reporting.
they are all called from ReportsMain.
never access the context directly, but use the data handling
functions to do so. |
BoardReport
|
Standard report about what settings the boards have.
functions ending with "Report" are responsible for generating data
for reporting.
they are all called from ReportsMain.
never access the context directly, but use the data handling
functions to do so. |
GroupPermissionsReport
|
Show the large variety of group permissions assigned to each membergroup.
functions ending with "Report" are responsible for generating data
for reporting.
they are all called from ReportsMain.
never access the context directly, but use the data handling
functions to do so. |
MemberGroupsReport
|
Show what the membergroups are made of.
functions ending with "Report" are responsible for generating data
for reporting.
they are all called from ReportsMain.
never access the context directly, but use the data handling
functions to do so. |
ReportsMain
|
Handling function for generating reports.
Requires the admin_forum permission.
Loads the Reports template and language files.
Decides which type of report to generate, if this isn't passed
through the querystring it will set the report_type sub-template to
force the user to choose which type.
When generating a report chooses which sub_template to use.
Depends on the cal_enabled setting, and many of the other cal_
settings.
Will call the relevant report generation function.
If generating report will call finishTables before returning.
Accessed through ?action=admin;area=reports. |
StaffReport
|
Report for showing all the forum staff members - quite a feat!
functions ending with "Report" are responsible for generating data
for reporting.
they are all called from ReportsMain.
never access the context directly, but use the data handling
functions to do so. |
addData
|
Adds an array of data into an existing table.
if there are no existing tables, will create one with default
attributes.
if custom_table isn't specified, it will use the last table created,
if it is specified and doesn't exist the function will return false.
if a set of keys have been specified, the function will check each
required key is present in the incoming data. If this data is missing
the current tables default value will be used.
if any key in the incoming data begins with '#sep#', the function
will add a separator across the table at this point.
once the incoming data has been sanitized, it is added to the table. |
addSeparator
|
Add a separator row, only really used when adding data by rows. |
finishTables
|
This does the necessary count of table data before displaying them.
is (unfortunately) required to create some useful variables for templates.
foreach data table created, it will count the number of rows and
columns in the table.
will also create a max_width variable for the table, to give an
estimate width for the whole table * * if it can. |
newTable
|
This function creates a new table of data, most functions will only use it once.
The core of this file, it creates a new, but empty, table of data in
context, ready for filling using addData().
Fills the context variable current_table with the ID of the table created.
Keeps track of the current table count using context variable table_count. |
setKeys
|
Set the keys in use by the tables - these ensure entries MUST exist if the data isn't sent.
sets the current set of "keys" expected in each data array passed to
addData. It also sets the way we are adding data to the data table.
method specifies whether the data passed to addData represents a new
column, or a new row.
keys is an array whose keys are the keys for data being passed to
addData().
if reverse is set to true, then the values of the variable "keys"
are used as opposed to the keys(! |
EditCustomProfiles
|
Edit some profile fields? |
ModifyAlertsSettings
|
Handles modifying the alerts settings |
ModifyAntispamSettings
|
Let's try keep the spam to a minimum ah Thantos? |
ModifyBBCSettings
|
Set a few Bulletin Board Code settings. It loads a list of Bulletin Board Code tags to allow disabling tags.
Requires the admin_forum permission.
Accessed from ?action=admin;area=featuresettings;sa=bbc. |
ModifyBasicSettings
|
Config array for changing the basic forum settings
Accessed from ?action=admin;area=featuresettings;sa=basic; |
ModifyFeatureSettings
|
This function passes control through to the relevant tab. |
ModifyGeneralModSettings
|
If you have a general mod setting to add stick it here. |
ModifyLayoutSettings
|
Allows modifying the global layout settings in the forum
Accessed through ?action=admin;area=featuresettings;sa=layout; |
ModifyLikesSettings
|
Config array for changing like settings
Accessed from ?action=admin;area=featuresettings;sa=likes; |
ModifyLogSettings
|
Allow to edit the settings on the pruning screen. |
ModifyMentionsSettings
|
Config array for changing like settings
Accessed from ?action=admin;area=featuresettings;sa=mentions; |
ModifyModSettings
|
This my friend, is for all the mod authors out there. |
ModifySignatureSettings
|
You'll never guess what this function does.
.. |
ModifyWarningSettings
|
Moderation type settings - although there are fewer than we have you believe ;) |
ShowCustomProfiles
|
Show all the custom profile fields available to the user. |
custFieldsMaxOrder
|
Returns the maximum field_order value for the custom fields |
list_getProfileFieldSize
|
Callback for createList(). |
list_getProfileFields
|
Callback for createList(). |
loadGeneralSettingParameters
|
This function makes sure the requested subaction does exists, if it doesn't, it sets a default action or. |
pauseSignatureApplySettings
|
Just pause the signature applying thing. |
MarkRead
|
Mark one or more boards as read. |
createBoard
|
Create a new board and set its properties and position.
Allows (almost) the same options as the modifyBoard() function.
With the option inherit_permissions set, the parent board permissions
will be inherited. |
deleteBoards
|
Remove one or more boards.
Allows to move the children of the board before deleting it
if moveChildrenTo is set to null, the child boards will be deleted.
Deletes:
- all topics that are on the given boards;
- all information that's associated with the given boards;
updates the statistics to reflect the new situation. |
fixChildren
|
Fixes the children of a board by setting their child_levels to new values.
Used when a board is deleted or moved, to affect its children. |
getBoardModeratorGroups
|
Returns board's moderator groups with their names and link |
getBoardModerators
|
Returns the given board's moderators, with their names and links |
getBoardTree
|
Load a lot of useful information regarding the boards and categories.
The information retrieved is stored in globals:
$boards properties of each board.
$boardList a list of boards grouped by category ID.
$cat_tree properties of each category. |
getMsgMemberID
|
Get the id_member associated with the specified message. |
getTreeOrder
|
Tries to load up the entire board order and category very very quickly
Returns an array with two elements, cats and boards |
isChildOf
|
Returns whether the child board id is actually a child of the parent (recursive). |
markBoardsRead
|
Mark a board or multiple boards read. |
modifyBoard
|
Modify the settings and position of a board.
Used by ManageBoards.php to change the settings of a board. |
recursiveBoards
|
Recursively get a list of boards.
Used by getBoardTree |
reorderBoards
|
Put all boards in the right order and sorts the records of the boards table.
Used by modifyBoard(), deleteBoards(), modifyCategory(), and deleteCategories() functions |
sortBoards
|
Takes a board array and sorts it |
sortCategories
|
Takes a category array and sorts it |
Credits
|
It prepares credit and copyright information for the credits page or the admin page |
Who
|
Who's online, and what are they doing?
This function prepares the who's online data for the Who template.
It requires the who_view permission.
It is enabled with the who_enabled setting.
It is accessed via ?action=who.
uses Who template, main sub-template
uses Who language file. |
determineActions
|
This function determines the actions of the members passed in urls.
Adding actions to the Who's Online list:
Adding actions to this list is actually relatively easy...
- for actions anyone should be able to see, just add a string named whoall_ACTION.
(where ACTION is the action used in index.php.)
- for actions that have a subaction which should be represented differently, use whoall_ACTION_SUBACTION.
- for actions that include a topic, and should be restricted, use whotopic_ACTION.
- for actions that use a message, by msg or quote, use whopost_ACTION.
- for administrator-only actions, use whoadmin_ACTION.
- for actions that should be viewable only with certain permissions,
use whoallow_ACTION and add a list of possible permissions to the
$allowedActions array, using ACTION as the key. |
ApplyRules
|
This will apply rules to all unread messages. If all_messages is set will, clearly, do it to all! |
LoadRules
|
Load up all the rules for the current user. |
ManageLabels
|
This function handles adding, deleting and editing labels on messages. |
ManageRules
|
List all rules, and allow adding/entering etc.
.. |
MessageActionsApply
|
This function performs all additional stuff.
.. |
MessageDrafts
|
This function allows the user to view their PM drafts |
MessageFolder
|
A folder, ie. inbox/sent etc. |
MessageKillAll
|
Delete ALL the messages! |
MessageKillAllQuery
|
Are you sure you want to PERMANENTLY (mostly) delete ALL your messages? |
MessageMain
|
This helps organize things.
.. |
MessagePopup
|
The popup for when we ask for the popup from the user. |
MessagePost
|
Send a new message? |
MessagePost2
|
Send it! |
MessagePrune
|
This function allows the user to delete all messages older than so many days. |
MessageSearch
|
Allows searching through personal messages. |
MessageSearch2
|
Actually do the search of personal messages. |
MessageSettings
|
Allows to edit Personal Message Settings.
uses Profile.php
uses Profile-Modify.php
uses Profile template.
uses Profile language file. |
ReportMessage
|
Allows the user to report a personal message to an administrator.
- In the first instance requires that the ID of the message to report is passed through $_GET.
- It allows the user to report to either a particular administrator - or the whole admin team.
- It will forward on a copy of the original message without allowing the reporter to make changes.
uses report_message sub-template. |
deleteMessages
|
Delete the specified personal messages. |
isAccessiblePM
|
Check if the PM is available to the current user. |
markMessages
|
Mark the specified personal messages read. |
messageIndexBar
|
A menu to easily access different areas of the PM section |
messagePostError
|
An error in the message.
.. |
prepareMessageContext
|
Get a personal message for the theme. (used to save memory.) |
generateSubscriptionError
|
Log an error then exit |
ExamineFile
|
Display one of the files in a package. |
PackageBrowse
|
Browse a list of installed packages. |
PackageFTPTest
|
Test an FTP connection. |
PackageInstall
|
Apply another type of (avatar, language, etc.) package. |
PackageInstallTest
|
Test install a package. |
PackageList
|
List the files in a package. |
PackageOptions
|
Used when a temp FTP access is needed to package functions |
PackagePermissions
|
Allow the admin to reset permissions on files. |
PackagePermissionsAction
|
Actually action the permission changes they want. |
PackageRemove
|
Delete a package. |
Packages
|
This is the notoriously defunct package manager.
.... :/. |
ViewOperations
|
List operations |
build_special_files__recursive
|
Builds a list of special files recursively for a given path |
count_directories__recursive
|
Counts all the directories under a given path |
fetchPerms__recursive
|
Checkes the permissions of all the areas that will be affected by the package |
list_getPackages
|
Get a listing of all the packages
Determines if the package is a mod, avatar, language package
Determines if the package has been installed or not |
sort_table_first
|
Table sorting function used in usort |
MessageIndex
|
Show the list of topics in this board, along with any child boards. |
QuickModeration
|
Handles moderation from the message index. |
ComposeMailing
|
Shows a form to edit a forum mailing and its recipients.
Called by ?action=admin;area=news;sa=mailingcompose.
Requires the send_mail permission.
Form is submitted to ?action=admin;area=news;sa=mailingsend.
uses ManageNews template, email_members_compose sub-template. |
EditNews
|
Let the administrator(s) edit the news items for the forum.
It writes an entry into the moderation log.
This function uses the edit_news administration area.
Called by ?action=admin;area=news.
Requires the edit_news permission.
Can be accessed with ?action=admin;sa=editnews.
uses ManageNews template, edit_news sub template. |
ManageNews
|
The news dispatcher; doesn't do anything, just delegates.
This is the entrance point for all News and Newsletter screens.
Called by ?action=admin;area=news.
It does the permission checks, and calls the appropriate function
based on the requested sub-action. |
ModifyNewsSettings
|
Set general news and newsletter settings and permissions.
Called by ?action=admin;area=news;sa=settings.
Requires the forum_admin permission.
uses ManageNews template, news_settings sub-template. |
SelectMailingMembers
|
This function allows a user to select the membergroups to send their
mailing to.
Called by ?action=admin;area=news;sa=mailingmembers.
Requires the send_mail permission.
Form is submitted to ?action=admin;area=news;mailingcompose.
uses the ManageNews template and email_members sub template. |
SendMailing
|
Handles the sending of the forum mailing in batches.
Called by ?action=admin;area=news;sa=mailingsend
Requires the send_mail permission.
Redirects to itself when more batches need to be sent.
Redirects to ?action=admin;area=news;sa=mailingmembers after everything has been sent. |
list_getNews
|
Prepares an array of the forum news items for display in the template |
prepareMailingForPreview
|
Prepare subject and message of an email for the preview box
Used in ComposeMailing and RetrievePreview (Xml.php) |
sha1_core
|
This is the core SHA-1 calculation routine, used by sha1(). |
sha1_ft
|
Helper function for the core SHA-1 calculation |
sha1_kt
|
Helper function for the core SHA-1 calculation |
sha1_raw
|
Available since: (PHP 5)
If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20,
otherwise the returned value is a 40-character hexadecimal number. |
sha1_rol
|
Helper function for the core SHA-1 calculation |
sha1_smf
|
Define the old SMF sha1 function. Uses mhash if available |
LockTopic
|
Locks a topic.
.. either by way of a moderator or the topic starter.
What this does:
- locks a topic, toggles between locked/unlocked/admin locked.
- only admins can unlock topics locked by other admins.
- requires the lock_own or lock_any permission.
- logs the action to the moderator log.
- returns to the topic after it is done.
- it is accessed via ?action=lock. |
Sticky
|
Sticky a topic.
Can't be done by topic starters - that would be annoying!
What this does:
- stickies a topic - toggles between sticky and normal.
- requires the make_sticky permission.
- adds an entry to the moderator log.
- when done, sends the user back to the topic.
- accessed via ?action=sticky. |
AddSmiley
|
Add a smiley, that's right. |
EditMessageIcons
|
Handles editing message icons |
EditSmileyOrder
|
Allows to edit smileys order. |
EditSmileySets
|
List, add, remove, modify smileys sets. |
EditSmileySettings
|
Handles modifying smileys settings. |
EditSmileys
|
Add, remove, edit smileys. |
ImportSmileys
|
A function to import new smileys from an existing directory into the database. |
InstallSmileySet
|
Install a smiley set. |
ManageSmileys
|
This is the dispatcher of smileys administration. |
list_getMessageIcons
|
Callback function for createList(). |
list_getNumSmileySets
|
Callback function for createList(). |
list_getNumSmileys
|
Callback function for createList(). |
list_getSmileySets
|
Callback function for createList(). |
list_getSmileys
|
Callback function for createList(). |
compareVersions
|
Compares two versions and determines if one is newer, older or the same, returns
- (-1) if version1 is lower than version2
- (0) if version1 is equal to version2
- (1) if version1 is higher than version2 |
copytree
|
Copies one directory structure over to another.
requires the destination to be writable. |
create_chmod_control
|
Create a chmod control for chmoding files. |
deltree
|
Deletes a directory, and all the files and direcories inside it.
requires access to delete these files. |
getPackageInfo
|
Loads a package's information and returns a representative array.
- expects the file to be a package in Packages/.
- returns a error string if the package-info is invalid.
- otherwise returns a basic array of id, version, filename, and similar information.
- an xmlArray is available in 'xml'. |
list_restoreFiles
|
Get a listing of files that will need to be set back to the original state |
listtree
|
Create a tree listing for a given directory path |
loadInstalledPackages
|
Loads and returns an array of installed packages.
- returns the array of data.
- default sort order is package_installed time |
matchHighestPackageVersion
|
Checks if version matches any of the versions in versions.
- supports comma separated version numbers, with or without whitespace.
- supports lower and upper bounds. (1.0-1.2)
- returns true if the version matched. |
matchPackageVersion
|
Checks if the forum version matches any of the available versions from the package install xml.
- supports comma separated version numbers, with or without whitespace.
- supports lower and upper bounds. (1.0-1.2)
- returns true if the version matched. |
mktree
|
Creates the specified tree structure with the mode specified.
creates every directory in path until it finds one that already exists. |
packageRequireFTP
|
Use FTP functions to work with a package download/install |
package_chmod
|
Try to make a file writable. |
package_create_backup
|
Creates a backup of forum files prior to modifying them |
package_crypt
|
Used to crypt the supplied ftp password in this session |
package_flush_cache
|
Flushes the cache from memory to the filesystem |
package_get_contents
|
Get the physical contents of a packages file |
package_put_contents
|
Writes data to a file, almost exactly like the file_put_contents() function.
uses FTP to create/chmod the file when necessary and available.
uses text mode for text mode file extensions.
returns the number of bytes written. |
parseBoardMod
|
Parses a boardmod-style (.mod) modification file |
parseModification
|
Parses a xml-style modification file (file). |
parsePackageInfo
|
Parses the actions in package-info.xml file from packages.
- package should be an xmlArray with package-info as its base.
- testing_only should be true if the package should not actually be applied.
- method can be upgrade, install, or uninstall. Its default is install.
- previous_version should be set to the previous installed version of this package, if any.
- does not handle failure terribly well; testing first is always better. |
parse_path
|
Parses special identifiers out of the specified path. |
read_tgz_data
|
Extracts a file or files from the .tar.gz contained in data.
detects if the file is really a .zip file, and if so returns the result of read_zip_data
if destination is null
- returns a list of files in the archive.
if single_file is true
- returns the contents of the file specified by destination, if it exists, or false.
- destination can start with * and / to signify that the file may come from any directory.
- destination should not begin with a / if single_file is true.
overwrites existing files with newer modification times if and only if overwrite is true.
creates the destination directory if it doesn't exist, and is is specified.
requires zlib support be built into PHP.
returns an array of the files extracted.
if files_to_extract is not equal to null only extracts file within this array. |
read_tgz_file
|
Reads a .tar.gz file, filename, in and extracts file(s) from it.
essentially just a shortcut for read_tgz_data(). |
read_zip_data
|
Extract zip data. .
If single_file is true, destination can start with * and / to signify that the file may come from any directory.
Destination should not begin with a / if single_file is true. |
read_zip_file
|
Extract zip data. A functional copy of {@list read_zip_data()}. |
smf_crc32
|
crc32 doesn't work as expected on 64-bit functions - make our own.
https://php.net/crc32#79567 |
url_exists
|
Checks the existence of a remote file since file_exists() does not do remote.
will return false if the file is "moved permanently" or similar. |
ApproveMessage
|
Approve a post, just the one. |
PostModerationMain
|
This is a handling function for all things post moderation. |
UnapprovedAttachments
|
View all unapproved attachments. |
UnapprovedPosts
|
View all unapproved posts. |
approveAllData
|
This is a helper function - basically approve everything! |
approveMessages
|
Approve a batch of posts (or topics in their own right) |
list_getNumUnapprovedAttachments
|
Callback function for UnapprovedAttachments
count all the attachments waiting for approval that this approver can approve |
list_getUnapprovedAttachments
|
Callback function for UnapprovedAttachments
retrieve all the attachments waiting for approval the approver can approve |
removeMessages
|
Remove a batch of messages (or topics) |
AdminEndSession
|
This ends a admin session, requiring authentication to access the ACP again. |
AdminHome
|
The main administration section.
It prepares all the data necessary for the administration front page.
It uses the Admin template along with the admin sub template.
It requires the moderate_forum, manage_membergroups, manage_bans,
admin_forum, manage_permissions, manage_attachments, manage_smileys,
manage_boards, edit_news, or send_mail permission.
It uses the index administrative area.
It can be found by going to ?action=admin. |
AdminLogs
|
This function decides which log to load. |
AdminMain
|
The main admin handling function.<br>
It initialises all the basic context required for the admin center.<br>
It passes execution onto the relevant admin section.<br>
If the passed section is not found it shows the admin home page. |
AdminSearch
|
This function allocates out all the search stuff. |
AdminSearchInternal
|
A complicated but relatively quick internal search. |
AdminSearchMember
|
All this does is pass through to manage members.
{@see \ViewMembers()} |
AdminSearchOM
|
This file allows the user to search the SM online manual for a little of help. |
DisplayAdminFile
|
Get one of the admin information files from Simple Machines. |
cleanRequest_cron
|
Cleans up the request variables |
fetch_task
|
The heart of this cron handler.
.. |
obExit_cron
|
The exit function |
perform_task
|
This actually handles the task |
smf_error_handler_cron
|
The error handling function |
RepairBoards
|
Finds or repairs errors in the database to fix possible problems.
Requires the admin_forum permission.
Calls createSalvageArea() to create a new board, if necessary.
Accessed by ?action=admin;area=repairboards.
uses repair_boards sub-template. |
createSalvageArea
|
Create a salvage area for repair purposes, if one doesn't already exist.
Uses the forum's default language, and checks based on that name. |
findForumErrors
|
Checks for errors in steps, until 5 seconds have passed.
It keeps track of the errors it did find, so that the actual repair
won't have to recheck everything. |
loadForumTests
|
Load up all the tests we might want to do ;) |
pauseRepairProcess
|
Show the not_done template to avoid CGI timeouts and similar.
Called when 3 or more seconds have passed while searching for errors.
If max_substep is set, $_GET['substep'] / $max_substep is the percent
done this step is. |
Display
|
The central part of the board - topic display.
This function loads the posts in a topic up so they can be displayed.
It uses the main sub template of the Display template.
It requires a topic, and can go to the previous or next topic from it.
It jumps to the correct post depending on a number/time/IS_MSG passed.
It depends on the messages_per_page, defaultMaxMessages and enableAllMessages settings.
It is accessed by ?topic=id_topic.START. |
Download
|
Once upon a time, this function handled downloading attachments.
Now it's just an alias retained for the sake of backwards compatibility. |
QuickInTopicModeration
|
In-topic quick moderation. |
approved_attach_sort
|
A sort function for putting unapproved attachments first. |
prepareDisplayContext
|
Callback for the message display.
It actually gets and prepares the message context.
This function will start over from the beginning if reset is set to true, which is
useful for showing an index before or after the posts. |
smf_main
|
The main dispatcher.
This delegates to each area. |
random_int
|
Random_* Compatibility Library
for using the new PHP 7 random_* API in PHP 5 projects
The MIT License (MIT)
Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. |
random_bytes
|
Unless open_basedir is enabled, use /dev/urandom for
random numbers in accordance with best practices
Why we use /dev/urandom and not /dev/random |
RandomCompat_intval
|
Cast to an integer if we can, safely.
If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
(non-inclusive), it will sanely cast it to an int. If you it's equal to
~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
lose precision, so the <= and => operators might accidentally let a float
through. |
RandomCompat_strlen
|
strlen() implementation that isn't brittle to mbstring.func_overload
This version just used the default strlen() |
RandomCompat_substr
|
substr() implementation that isn't brittle to mbstring.func_overload
This version just uses the default substr() |
template_body_above
|
The upper part of the main template layer. This is the stuff that shows above the main forum content. |
template_body_below
|
The stuff shown immediately below the main content, including the footer |
template_button_strip
|
Generate a strip of buttons. |
template_html_above
|
The main sub template above the content. |
template_html_below
|
This shows any deferred JavaScript and closes out the HTML |
template_init
|
Simple Machines Forum (SMF) |
template_maint_warning_above
|
The upper part of the maintenance warning box |
template_maint_warning_below
|
The lower part of the maintenance warning box. |
template_menu
|
Show the menu up top. Something like [home] [help] [profile] [logout].
.. |
theme_linktree
|
Show a linktree. This is that thing that shows "My Community | General Category | General Discussion".
. |
template_check_username
|
The XML for instantly showing whether a username is valid on the registration page |
template_generic_xml
|
This prints XML in its most generic form. |
template_generic_xml_recursive
|
Recursive function for displaying generic XML data. |
template_jump_to
|
The XML for the Jump To box |
template_message_icons
|
The XML for displaying a column of message icons and selecting one via AJAX |
template_modifydone
|
The XML for handling things when you're done editing a post inline |
template_modifyfast
|
This defines the XML for the inline edit feature |
template_modifytopicdone
|
This handles things when editing a topic's subject from the messageindex. |
template_pm
|
All the XML for previewing a PM |
template_post
|
The massive XML for previewing posts. |
template_sendbody
|
Simple Machines Forum (SMF) |
template_split
|
The XML for selecting items to split |
template_stats
|
The XML for hiding/showing stats sections via AJAX |
template_warning
|
The XML for previewing a warning |
template_ban_edit
|
Simple Machines Forum (SMF) |
template_ban_edit_trigger
|
Add or edit a ban trigger |
template_admin_register
|
The template for the form allowing an admin to register a user from the admin center. |
template_after
|
After registration.
.. all done ;). |
template_coppa
|
Template for giving instructions about COPPA activation. |
template_coppa_form
|
An easily printable form for giving permission to access the forum for a minor. |
template_edit_agreement
|
Form for editing the agreement shown for people registering to the forum. |
template_edit_reserved_words
|
Template for editing reserved words. |
template_registration_agreement
|
Simple Machines Forum (SMF) |
template_registration_form
|
Before registering - get their information. |
template_verification_sound
|
Show a window containing the spoken verification code. |
template_print
|
The main print page |
template_print_above
|
Header of the print page! |
template_print_below
|
Footer of the print page. |
template_report_type
|
Simple Machines Forum (SMF) |
template_edit_comment
|
Template for editing a mod comment. |
template_reported_members
|
Lists all reported members |
template_reported_members_block
|
A block to show the current top reported member profiles. |
template_reported_posts
|
Simple Machines Forum (SMF) |
template_reported_posts_block
|
A block to show the current top reported posts. |
template_viewmemberreport
|
Template for viewing and managing a specific report about a user's profile |
template_viewmodreport
|
Handles viewing details of and managing a specific report |
template_edit_holiday
|
Simple Machines Forum (SMF) |
template_alert_configuration
|
The template for configuring alerts |
template_alert_notifications_boards
|
Template for showing which boards you're subscribed to |
template_alert_notifications_topics
|
Template for showing which topics you're subscribed to |
template_alerts_all_read
|
A simple template to say "You don't have any unread alerts". |
template_alerts_popup
|
The "popup" showing the user's alerts |
template_deleteAccount
|
Template to show for deleting a user's account - now with added delete post capability! |
template_editBuddies
|
Template for showing and managing the buddy list. |
template_editIgnoreList
|
Template for showing the ignore list of the current user. |
template_edit_options
|
Template for editing profile options. |
template_error_message
|
Small template for showing an error message upon a save problem in the profile. |
template_groupMembership
|
Template for choosing group membership. |
template_ignoreboards
|
Template for managing ignored boards |
template_issueWarning
|
|
template_load_warning_variables
|
Simply loads some theme variables common to several warning templates. |
template_max_size
|
This is just a really little helper to avoid duplicating code unnecessarily |
template_profile_above
|
Simple Machines Forum (SMF) |
template_profile_avatar_select
|
Template for selecting an avatar |
template_profile_below
|
Template for any HTML needed below the profile (closing off divs/tables, etc.) |
template_profile_birthdate
|
Callback function for entering a birthdate! |
template_profile_group_manage
|
Display a load of drop down selectors for allowing the user to change group. |
template_profile_pm_settings
|
Personal Message settings. |
template_profile_popup
|
Template for showing off the spiffy popup of the menu |
template_profile_save
|
Template for the password box/save button stuck at the bottom of every profile page. |
template_profile_signature_modify
|
Show the signature editing box? |
template_profile_smiley_pick
|
Smiley set picker. |
template_profile_tfa
|
Simple template for showing the 2FA area when editing a profile. |
template_profile_theme_pick
|
Template for picking a theme |
template_profile_theme_settings
|
Template for showing theme settings. Note: template_options() actually adds the theme specific options. |
template_profile_timeformat_modify
|
Select the time format! |
template_showAlerts
|
Template for showing alerts within the alerts popup |
template_showDrafts
|
Template for showing all of a user's drafts |
template_showPermissions
|
This template shows an admin which permissions a user have and which group(s) give them each permission. |
template_showPosts
|
Template for showing all the posts of the user, in chronological order. |
template_statPanel
|
Template for user statistics, showing graphs and the like. |
template_summary
|
This template displays a user's details without any option to edit them. |
template_tfadisable
|
Template for disabling two-factor authentication. |
template_tfasetup
|
Template for setting up and managing Two-Factor Authentication. |
template_tfasetup_backup
|
Template for setting up 2FA backup code |
template_trackActivity
|
This template shows an admin information on a users IP addresses used and errors attributed to them. |
template_trackIP
|
The template for trackIP, allowing the admin to see where/who a certain IP has been used. |
template_viewWarning
|
|
template_create_index
|
Create a search index. |
template_create_index_done
|
Done creating a search index. |
template_create_index_progress
|
Display a progress page while creating a search index. |
template_modify_weights
|
Simple Machines Forum (SMF) |
template_select_search_method
|
Select the search method. |
template_show_spider_logs
|
Show.
.. spider... logs... |
template_show_spider_stats
|
Show.
.. spider... stats... |
template_spider_edit
|
Add or edit a search engine spider. |
template_bcd
|
|
template_calendar_top
|
Calendar controls under the title
Creates the view selector (list, month, week), the date selector (either a
select menu or a date range chooser, depending on the circumstances), and the
"Post Event" button. |
template_event_post
|
Template for posting a calendar event. |
template_hms
|
|
template_omfg
|
|
template_show_month_grid
|
Display a monthly calendar grid. |
template_show_upcoming_list
|
Display a list of upcoming events, birthdays, and holidays. |
template_show_week_grid
|
Shows a weekly grid |
template_thetime
|
|
template_merge
|
Merge topic page. |
template_merge_done
|
Confirmation page shown when finished merging topics. |
template_merge_extra_options
|
Extra options related to merging topics. |
template_move
|
Simple Machines Forum (SMF) |
template_redirect_options
|
Redirection topic options |
template_addsmiley
|
Adding a new smiley. |
template_editicon
|
Editing an individual message icon |
template_editicons
|
Editing Message Icons |
template_editsets
|
Simple Machines Forum (SMF) |
template_modifyset
|
Modifying a smiley set. |
template_modifysmiley
|
Editing an individual smiley |
template_setorder
|
Ordering smileys. |
template_browse
|
Simple Machines Forum (SMF) |
template_mailtest
|
Template for testing mail send. |
template_edit_scheduled_tasks
|
A template for, you guessed it, editing a task! |
template_view_scheduled_tasks
|
Simple Machines Forum (SMF) |
template_confirm_board_delete
|
A template used when a user is deleting a board with child boards in it - to see what they want to do with them. |
template_confirm_category_delete
|
A template to confirm if a user wishes to delete a category - and whether they want to save the boards. |
template_modify_board
|
Below is the template for adding/editing a board on the forum. |
template_modify_category
|
Template for editing/adding a category on the forum. |
template_recent
|
Simple Machines Forum (SMF) |
template_replies
|
Template for showing unread replies (eg new replies to topics you've posted in) |
template_unread
|
Template for showing unread posts |
template_convert_entities
|
Template for converting entities to UTF-8 characters |
template_convert_msgbody
|
Template for converting posts to UTF-8. |
template_maintain_database
|
Simple Machines Forum (SMF) |
template_maintain_members
|
Template for the member maintenance tasks. |
template_maintain_routine
|
Template for the routine maintenance tasks. |
template_maintain_topics
|
Template for the topic maintenance tasks. |
template_optimize
|
Simple template for showing results of our optimization.
.. |
template_admin_browse
|
The admin member list. |
template_search_members
|
Simple Machines Forum (SMF) |
template_select
|
The form for selecting which posts to split. |
template_print_options
|
|
template_ask
|
The page that asks a user to answer their secret question |
template_reminder_pick
|
The page to pick an option - secret question/answer (if set) or email |
template_sent
|
Just a simple "We sent you an email. Click the link in it to continue." message |
template_set_password
|
Template for setting the new password |
template_topic_legend
|
Shows a legend for topic icons. |
template_group_requests_block
|
Show all the group requests the user can see. |
template_moderation_center
|
Simple Machines Forum (SMF) |
template_moderation_settings
|
The moderation settings page. |
template_notes
|
Little section for making.
.. notes. |
template_reported_users_block
|
A list of reported users |
template_show_notice
|
Show a notice sent to a user. |
template_unapproved_posts
|
Show a list of all the unapproved posts |
template_user_watch_post_callback
|
Callback function for showing a watched users post in the table. |
template_warn_template
|
Add or edit a warning template. |
template_watched_users
|
A list of watched users |
template_notify_board
|
Board notification bar. |
template_add_edit_group_boards_list
|
The template for determining which boards a group has access to. |
template_edit_group
|
Edit an existing membergroup. |
template_group_members
|
Template for viewing the members of a group. |
template_group_request_reason
|
Allow the moderator to enter a reason to each user being rejected. |
template_new_group
|
Add a new membergroup. |
template_results
|
The search results page. |
template_copy_template
|
The page allowing you to copy a template from one theme to another. |
template_edit_browse
|
This lets you browse a list of files in a theme so you can choose which one to edit. |
template_edit_file
|
This allows you to edit a file |
template_edit_list
|
The page for editing themes. |
template_edit_style
|
Wanna edit the stylesheet? |
template_edit_template
|
This edits the template.
.. |
template_installed
|
Okay, that theme was installed/updated successfully! |
template_list_themes
|
This lists all themes |
template_pick
|
This template allows for the selection of different themes ;) |
template_reset_list
|
This lets you reset themes |
template_set_options
|
This displays the form for setting theme options |
template_set_settings
|
The page for setting and managing theme settings. |
template_action_permissions
|
A progress page showing what permissions changes are being applied |
template_control_chmod
|
CHMOD control form |
template_downloaded
|
Confirmation page showing a package was uploaded/downloaded successfully. |
template_examine
|
Examine a single file within a package |
template_extract_package
|
Extract package contents |
template_file_permissions
|
The file permissions page. |
template_ftp_required
|
Wrapper for the above template function showing that FTP is required |
template_install_options
|
Installation options - FTP info and backup settings |
template_list
|
List files in a package |
template_package_confirm
|
Confirm package operation |
template_package_list
|
List packages. |
template_permission_show_contents
|
Shows permissions for items within a directory (called from template_file_permissions) |
template_servers
|
List package servers |
template_view_operations
|
View operation details. |
template_view_package
|
View package details when installing/uninstalling |
template_announce
|
The form for sending out an announcement |
template_announcement_send
|
The confirmation/progress page, displayed after the admin has clicked the button to send the announcement. |
template_post_header
|
Prints the input fields in the form's header (subject, message icon, guest name & email, etc.)
Mod authors can use the 'integrate_post_end' hook to modify or add to these (see Post.php).
Theme authors can customize the output in a couple different ways:
1. Change specific values in the $context['posting_fields'] array.
2. Add an 'html' element to the 'label' and/or 'input' elements of the field they want to
change. This should contain the literal HTML string to be printed. |
template_quotefast
|
The template for the AJAX quote feature |
template_spellcheck
|
The template for the spellchecker. |
template_choose_payment
|
The "choose payment" dialog. |
template_delete_subscription
|
The page for deleting a subscription. |
template_modify_subscription
|
Simple Machines Forum (SMF) |
template_modify_user_subscription
|
Add or edit an existing subscriber. |
template_paid_done
|
The "thank you" bit.
.. |
template_user_subscription
|
Template for a user to edit/pick their subscriptions. |
template_email_members
|
Simple Machines Forum (SMF) |
template_email_members_compose
|
The form for composing a newsletter |
template_email_members_send
|
The page shown while the newsletter is being sent |
template_news_lists
|
The settings page. |
template_bi_board_children
|
Outputs the board children for a standard board. |
template_bi_board_icon
|
Outputs the board icon for a standard board. |
template_bi_board_info
|
Outputs the board info for a standard board or redirect. |
template_bi_board_lastpost
|
Outputs the board lastposts for a standard board or a redirect.
When on a mobile device, this may be hidden if no last post exists. |
template_bi_board_stats
|
Outputs the board stats for a standard board. |
template_bi_redirect_icon
|
Outputs the board icon for a redirect. |
template_bi_redirect_stats
|
Outputs the board stats for a redirect. |
template_boardindex_outer_above
|
Simple Machines Forum (SMF) |
template_boardindex_outer_below
|
The lower part of the outer layer of the board index |
template_ic_block_calendar
|
The calendar section of the info center |
template_ic_block_online
|
The who's online section of the admin center |
template_ic_block_recent
|
The recent posts section of the info center |
template_ic_block_stats
|
The stats section of the info center |
template_info_center
|
Displays the info center |
template_newsfader
|
This shows the newsfader |
template_generic_menu
|
|
template_generic_menu_dropdown_above
|
Simple Machines Forum (SMF) |
template_generic_menu_dropdown_below
|
Part of the admin layer - used with generic_menu_dropdown_above to close the admin content div. |
template_generic_menu_tabs
|
The code for displaying the menu |
template_find_members
|
The template for the popup for finding members |
template_manual
|
The main help page |
template_popup
|
Simple Machines Forum (SMF) |
template_terms
|
The rules page |
template_control_richedit
|
Simple Machines Forum (SMF) |
template_control_richedit_buttons
|
This template shows the form buttons at the bottom of the editor |
template_control_verification
|
This template displays a verification form |
template_credits
|
This displays a nice credits page |
template_add_rule
|
Template for adding/editing a rule. |
template_ask_delete
|
This template asks the user whether they wish to empty out their folder/messages. |
template_folder
|
Shows a particular folder (eg inbox or outbox), all the PMs in it, etc. |
template_labels
|
Here we allow the user to setup labels, remove labels and change rules for labels (i.e, do quite a bit) |
template_pm_above
|
Simple Machines Forum (SMF) |
template_pm_below
|
Just the end of the index bar, nothing special. |
template_pm_popup
|
|
template_prune
|
This template asks the user what messages they want to prune. |
template_report_message
|
Template for reporting a personal message. |
template_report_message_complete
|
Little template just to say "Yep, it's been submitted" |
template_rules
|
Manage rules. |
template_search
|
The form for the PM search feature |
template_search_results
|
Displays results from a PM search |
template_send
|
The form for sending a new PM |
template_showPMDrafts
|
Template for showing all of a user's PM drafts. |
template_subject_list
|
Just list all the personal message subjects - to make templates easier. |
template_admin_login
|
This is for the security stuff - makes administrators login every so often. |
template_kick_guest
|
Tell a guest to get lost or login! |
template_login
|
Simple Machines Forum (SMF) |
template_login_tfa
|
TFA authentication form |
template_resend
|
The form for resending the activation code. |
template_retry_activate
|
Activate your account manually? |
template_admin
|
Simple Machines Forum (SMF) |
template_admin_quick_search
|
This shows the admin search form |
template_admin_search_results
|
Results page for an admin search. |
template_callback_question_answer_list
|
This little beauty shows questions and answer from the captcha type feature. |
template_clean_cache_button_above
|
|
template_clean_cache_button_below
|
Content shown below the clean cache button? |
template_edit_censored
|
Form for stopping people using naughty words, etc. |
template_edit_profile_field
|
|
template_not_done
|
This is the page shown when we've temporarily paused things such as during maintenance tasks, sending newsletters, etc. |
template_php_info
|
Retrieves info from the php_info function, scrubs and preps it for display |
template_repair_boards
|
Repairing boards. |
template_show_custom_profile
|
Template for showing custom profile fields. |
template_show_settings
|
Template for showing settings (Of any kind really!) |
template_view_versions
|
Displays information about file versions installed, and compares them to current version. |
template_options
|
Simple Machines Forum (SMF) |
template_settings
|
This pseudo-template defines all the available theme settings (but not their actual values) |
template_generic
|
A generic template that outputs any data passed to it.
.. |
template_like
|
Display a like button and info about how many people liked something |
template_additional_rows
|
This template displays additional rows above or below the list. |
template_create_list_menu
|
This function creates a menu |
template_show_list
|
Simple Machines Forum (SMF) |
template_quickreply
|
The template for displaying the quick reply box. |
template_single_post
|
Template for displaying a single post. |
template_attachment_paths
|
The page that handles managing attachment paths. |
template_attachment_repair
|
The file repair page |
template_avatar_settings_above
|
Simple Machines Forum (SMF) |
template_avatar_settings_below
|
JavaScript to be output below the simple settings page |
template_maintenance
|
The attachment maintenance page |
template_attachment_errors
|
This template handles showing attachment-related errors |
template_error_log
|
This template handles the error log in the admin center. |
template_fatal_error
|
Simple Machines Forum (SMF) |
template_show_backtrace
|
This template shows a backtrace of the given error |
template_show_file
|
This template shows a snippet of code from a file and highlights which line caused the error. |
template_main
|
Simple Machines Forum (SMF) |
password_get_info
|
Get information about the password hash. Returns an array of the information
that was used to generate the password hash.
array(
'algo' => 1,
'algoName' => 'bcrypt',
'options' => array(
'cost' => 10,
),
) |
password_hash
|
Hash the password using the specified algorithm
Limits the maximum length of password to 72, if a longer
string is supplied the first 72 characters are used |
password_needs_rehash
|
Determine if the password hash needs to be rehashed according to the options provided
If the answer is true, after validating the password using password_verify, rehash it. |
password_verify
|
Verify a password against a hash using a timing attack resistant approach |