Introduction to Helpers

The file helpers.php contains a cornucopia of useful helper functions to assist feather and module development. Each function is fully documented in the source file.


logged_in()Returns whether or not the visitor is logged in.
authenticate()Generates or validates an authentication token for the session.


redirect()Redirects to the supplied URL and exits immediately.
show_403()Shows an error message with a 403 HTTP header.
show_404()Shows an error message with a 404 HTTP header.
url()Generate the canonical URL[note] for an action e.g. url('login').
self_url()Returns an absolute URL[note] for the current request.


lang_code()Converts a language code to a localised display name.
lang_base()Extracts the primary language subtag for the supplied code.
text_direction()Returns the correct text direction for the supplied language code.
__()Translates a string using PHP-gettext.
_f()Translates a string with sprintf() formatting.
_p()Translates a plural (or not) form of a string.
_w()Formats and internationalizes a string that isn't a regular time() value.

See also: Localizing Extensions.


when()Formats a string that isn't a regular time() value.
datetime()Formats datetime for SQL queries.
now()Alias to strtotime(), for prettiness like now("+1 day").
convert_datetime()Converts datetime formatting from PHP to ICU format.

Variable Manipulation

fallback()Sets the supplied variable if it is not already set.
oneof()Returns a value from the supplied set of arguments.
derezz()Strips tags from the supplied variable and tests it for emptiness.
token()Salt and hash a unique token using the supplied data.
crc24()Performs a 24-bit cyclic redundancy check.
slug()Generates a random slug value for posts and pages.
random()Generates a string of alphanumeric random characters.
shorthand_bytes()Decode shorthand bytes notation from php.ini.
match_any()Try to match a string against an array of regular expressions.
keywords()Parse keyword searches for values in specific database columns.

String Manipulation

pluralize()Pluralizes a word.
depluralize()Singularizes a word.
normalize()Attempts to normalize all newlines and whitespace into single spaces.
camelize()Converts a string to camel-case.
decamelize()Undoes camel-case conversion.
truncate()Truncates a string to the requested number of characters or less.
markdown()Implements the Markdown content parsing filter.
emote()Converts emoticons to Unicode emoji HTML entities.
fix()Neutralizes HTML and quotes in strings for display.
unfix()Undoes neutralization of HTML and quotes in strings.
sanitize()Sanitizes a string of troublesome characters, typically for use in URLs.
sanitize_html()Sanitize HTML to disable scripts and obnoxious attributes.

Remote Fetches

get_remote()Retrieve the contents of a URL.
grab_urls()Crawls a string and grabs hyperlinks from it.
merge_urls()Combines a base URL and relative path into a target URL.

Modules and Feathers

module_enabled()Determines if a module is currently enabled and not cancelled.
feather_enabled()Determines if a feather is currently enabled and not cancelled.
cancel_module()Temporarily declares a module cancelled (disabled).
cancel_feather()Temporarily declares a feather cancelled (disabled).

Upload Management

upload()Validates and moves an uploaded file to the uploads directory.
upload_from_url()Copies a file from a remote URL to the uploads directory.
uploaded()Generates an absolute URL[note] or filesystem path to an uploaded file.
uploaded_search()Returns an array of files discovered in the uploads directory.
upload_tester()Tests uploaded file information to determine if the upload was successful.
upload_filename()Generates a sanitized unique name for an uploaded file.
upload_filter_whitelist()Returns an array containing a default list of allowed file extensions.
delete_upload()Deletes an uploaded file.

Input Validation and Processing

password_strength()Award a numeric score for the strength of a password. passwordStrength() is the client-side equivalent.
is_url()Does the string look like a web URL? isURL() is the client-side equivalent.
add_scheme()Prefixes a URL with a scheme if none was detected. addScheme() is the client-side equivalent.
is_email()Does the string look like an email address? isEmail() is the client-side equivalent.
generate_captcha()Generates a captcha form element.
check_captchaChecks the response to a captcha.
get_gravatar()Get either a Gravatar URL or complete image tag for a specified email address.

Responding to Requests

esce()Escapes a string with backslashes and echoes it to output.
json_set()JSON encodes a value and checks for errors.
json_get()JSON decodes a value and checks for errors.
json_response()Send a structured JSON response.
file_attachment()Send a file attachment to the visitor.
zip_archive()Creates a basic flat Zip archive from an array of items.
email()Sends an email using PHP's mail() function or an alternative.

See also: Adding Ajax Functionality.