<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://3.19.219.109/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zoey</id>
		<title>WHMCS Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://3.19.219.109/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zoey"/>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/Special:Contributions/Zoey"/>
		<updated>2026-04-03T23:46:08Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>http://3.19.219.109/index.php?title=Smarty_Security_Policy&amp;diff=20382</id>
		<title>Smarty Security Policy</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=Smarty_Security_Policy&amp;diff=20382"/>
				<updated>2016-10-03T14:37:28Z</updated>
		
		<summary type="html">&lt;p&gt;Zoey: Default mail policy tag blocks added.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question-circle&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; This page describes a feature available in version 7.0 and above&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WHMCS 7.0 introduces a new security hardening measure called Smarty Security Policies. WHMCS utilizes a system policy for system wide use, and a mail policy specifically for stored and dynamic email based templates.&lt;br /&gt;
&lt;br /&gt;
The settings enforced by a WHMCS Smarty Security Policy are the same as those defined by the Smarty library itself. You can learn more about about these settings from the Smarty documentation: http://www.smarty.net/docs/en/advanced.features.tpl&lt;br /&gt;
&lt;br /&gt;
By default, WHMCS does not define any PHP functionality restrictions for the system policy (except to honor the pre-existing {php} tag setting as configured in Setup &amp;gt;&amp;gt; Security).  All templates that use this policy are file based (for example, themes and order forms) which require file level access and therefore are automatically implicitly trusted.  Because custom themes are much more likely to have additional PHP oriented logic, any restrictions defined by WHMCS could result in website rendering issues. It is completely within your discretion to determine if implicit trust at the file level is invalid and you may make any appropriate restrictions for this system policy.&lt;br /&gt;
&lt;br /&gt;
The mail policy restricts what PHP functionality can be used in email based templates. The default mail policy will limit the use of variable modifiers (http://www.smarty.net/docs/en/language.modifiers.tpl) to the following: &lt;br /&gt;
&lt;br /&gt;
*escape&lt;br /&gt;
*count&lt;br /&gt;
*urlencode&lt;br /&gt;
*ucfirst&lt;br /&gt;
*date_format&lt;br /&gt;
&lt;br /&gt;
The default mail policy restricts the use of native PHP functions to the following:&lt;br /&gt;
&lt;br /&gt;
*isset&lt;br /&gt;
*empty&lt;br /&gt;
*count&lt;br /&gt;
*sizeof&lt;br /&gt;
*in_array&lt;br /&gt;
*is_array&lt;br /&gt;
*time&lt;br /&gt;
*nl2br&lt;br /&gt;
&lt;br /&gt;
Finally, the default mail policy blocks these smarty tags:&lt;br /&gt;
&lt;br /&gt;
* block&lt;br /&gt;
* function&lt;br /&gt;
* include&lt;br /&gt;
&lt;br /&gt;
The default mail policy will not allow for the inclusion of any calls to static classes, fetching any data from php streams, or accessing any super global variables. &lt;br /&gt;
&lt;br /&gt;
If you want to redefine either the system or mail policy, you can do this by adding a $smarty_security_policy setting to your configuration.php. Here's an example that limits email templates (by modifying the mail policy) to 'ucwords' as the only native PHP function allowed, while not changing the default restrictions on variable modifiers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Smarty custom email based template policy:&lt;br /&gt;
$smarty_security_policy =&amp;gt; array(&lt;br /&gt;
    'mail' =&amp;gt; array(&lt;br /&gt;
        'php_functions' =&amp;gt; array(&lt;br /&gt;
            'ucwords',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Smarty has deprecated the {include_php} syntax, but WHMCS currently supports this behavior via Policies.  If your template invokes &amp;amp; includes a PHP script by using the Smarty {include_php} syntax, the directory of that script will need to be whitelisted in the 'trusted_dir' setting of your Policy.&lt;br /&gt;
&lt;br /&gt;
Please refer to the [http://www.smarty.net/docs/en/advanced.features.tpl#advanced.features.security/ Smarty documentation] for all possible settings and what behavior to expect when assigning array and boolean values.&lt;/div&gt;</summary>
		<author><name>Zoey</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=Automatic_Updater&amp;diff=19474</id>
		<title>Automatic Updater</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=Automatic_Updater&amp;diff=19474"/>
				<updated>2016-07-22T22:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Zoey: Adding images for Cole!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
*The Automatic Updater requires at least 250 MB of free disk space&lt;br /&gt;
*The Automatic Updater requires PHP setting allow_url_fopen = true&lt;br /&gt;
*The Automatic Updater requires PHP setting open_basedir to include entire WHMCS docroot&lt;br /&gt;
*The Automatic Updater can take a few minutes, so you'll need to ensure that you allow long running php processes in your webserver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking for Updates ==&lt;br /&gt;
&lt;br /&gt;
Introduced in WHMCS 7.0.0, the Automatic Updater provides admins with a quick and easy way to update to new versions of WHMCS with just a few clicks in the admin area interface. The system will check for new updates on each cron run. Upon logging into the WHMCS admin area, a notification will appear in the top right corner of admin area. This alert will let the admin know if a new version of WHMCS is available, or if the version of WHMCS that is currently installed is the latest version. Below are examples of what these notifications look like:&lt;br /&gt;
&lt;br /&gt;
 [[File:UpdateNotification.png|center]]&lt;br /&gt;
&lt;br /&gt;
Admins can also manually check for updates by navigating to the Utilities top menu in the admin area interface and select Update WHMCS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WHMCSUpdateMenu.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once selected, the admin will be asked to confirm their password, as only admin users that have the &amp;quot;Update WHMCS&amp;quot; admin role will be able to access the updater.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateConfirmPassword.png|center]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Once in the Automatic Update interface, admins can tell at a glance what version of WHMCS that is installed, as well as check for updates using the Check for Updates button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:NoNewUpdatesAreAvailable.png|center]]&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateAvailableNotice.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By clicking Check for Updates, the version indicated in Your Version on the left side of the version summary will stay the same, but the information presented in the Latest Version on the right side of the version summary may be updated depending if a new update is available. It should also be noted that the Check Now button also indicates the last time an update check was performed. If a new version is available for upgrade, admins can then begin the update process by clicking the Update Now button.&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateAvailableBody.png|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuring Your Update Settings ==&lt;br /&gt;
&lt;br /&gt;
The Automatic Updater also presents admins with the ability to configure update settings such as choosing an update channel, setting a temporary update path, and setting an update maintenance message for customers. Note that accessing the update configuration page requires &amp;quot;Modify Update Configuration&amp;quot; administrator role, which is separate from &amp;quot;Update WHMCS&amp;quot; role.&lt;br /&gt;
&lt;br /&gt;
=== Choosing an Upgrade Channel ===&lt;br /&gt;
&lt;br /&gt;
The automatic updater provides admins with the ability to set the release stability that they are comfortable receiving. Admins will be able to select from the following channels:&lt;br /&gt;
Channel&lt;br /&gt;
Description&lt;br /&gt;
Stable	Recommended for most installations of WHMCS, the Stable channel will present admins with the latest stable version that has been released by WHMCS.&lt;br /&gt;
Release Candidate	Admins subscribed to the Release Candidate will be able to upgrade to the latest Release Candidate builds of WHMCS, or the latest stable version of WHMCS - whichever is newer. This means if WHMCS is upgraded to 7.0.0-rc.1, when 7.0.0-GA is released, the admin will be prompted to upgrade to the general availability that was just released.&lt;br /&gt;
Beta	Admins subscribed to the Beta release channel will be able to download the newest beta, release candidates, and stable versions of WHMCS. This is for testing installations, as it will allow admins to update to the latest WHMCS (beta, rc, or stable). WHMCS recommends development licenses use this channel.&lt;br /&gt;
Current Version	By selecting this channel, admins are electing to only receive maintenance updates for the major/minor version they are on. For example if the installed version of WHMCS is running 7.0.0-GA, admins will be offered 7.0.1-GA, but not 7.1.0. This channel is useful if the installed version of WHMCS has a number of 3rd party modules and customizations that need to be tested before upgrading to a new production release.&lt;br /&gt;
&lt;br /&gt;
=== Setting a Temporary Update Path ===&lt;br /&gt;
&lt;br /&gt;
The temporary path is used for staging files during an update. For security reasons it is recommended that this directory be located outside the public doc root, just like the attachments, templates_c, and downloads directories. The path must be an absolute path (i.e. /home/whmcsuser/tmp instead of ~/tmp) and must be writable by the admin that is running PHP. &lt;br /&gt;
&lt;br /&gt;
=== Setting a Maintenance Message ===&lt;br /&gt;
&lt;br /&gt;
Admins can use this option to set a message that will be displayed to users in the client area whenever an update is in progress, as the client and admin areas will be unavailable during an update. &lt;br /&gt;
&lt;br /&gt;
[[File:EmptyConfigureUpdateSettings.png|center]]&lt;br /&gt;
&lt;br /&gt;
== Performing an Update ==&lt;br /&gt;
&lt;br /&gt;
=== Beginning the Update Process ===&lt;br /&gt;
&lt;br /&gt;
Once the update configuration options have been set, admins can begin the update process. Before the update process begins, WHMCS strongly recommends that admins backup their current installation and database. WHMCS also recommends that at least 250 MB of disk space is available before beginning the update process. Once comfortable with the available disk space and backups have been made to the current installation and database, the admin can start the update by clicking the Continue button.&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateNowFirstStep.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking for Custom Files ===&lt;br /&gt;
The next step in the upgrade process checks the current installation for customized files, such as template files, language translations, whois server entries, and additional domain fields. It's important to review these files, as just like in previous updates, any update applied to the installation of WHMCS will override any custom changes. Before continuing to the next step in the upgrade process, it is wise to backup any customized files in order to quickly apply them again after the update has been complete. WHMCS has also included changes to how admins can customize the additional domain fields, country / calling codes, and whois server entries so that admins can preserve changes between updates. To view this documentation, please refer to following documentation pages:&lt;br /&gt;
&lt;br /&gt;
*[http://docs.whmcs.com/Customising_Countries_and_Calling_Codes/ Customized Countries and Calling Codes]&lt;br /&gt;
*[http://docs.whmcs.com/WHOIS_Servers/ WHOIS Servers]&lt;br /&gt;
*[http://docs.whmcs.com/Additional_Domain_Fields/ Additional Domain Fields]&lt;br /&gt;
 &lt;br /&gt;
[[File:UpdateNowSecondStep.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Starting the Update ===&lt;br /&gt;
&lt;br /&gt;
Once an admin is comfortable with the status of their custom files, the next step in the update process is to start the update itself. It's important to note that this third step is the point of no return - one the update has started, there is no pausing or stopping the process, and it is strongly recommended that admins stay on this page and do not navigate away using their browser. When ready to begin, click the Update Now button. &lt;br /&gt;
&lt;br /&gt;
[[File:UpdateNowThirdStep.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Finalizing the Update ===&lt;br /&gt;
&lt;br /&gt;
The final step of the update process is confirmation that the update has been completed. The system will present the admin with an Update Completed message, along with a link to the current version's release notes.&lt;br /&gt;
&lt;br /&gt;
[[File:UpdateFinished.png|center]]&lt;/div&gt;</summary>
		<author><name>Zoey</name></author>	</entry>

	</feed>