Documentation and help portal

customizing the regify provider software

Introduction

This document shall help you customize the look and feel of your regify provider instance. Please follow the instructions and you will be sure that your customizations will continue to work in future releases of the regify provider software.

There are many possibilities to customize the look and feel of your regify provider-software. But the good customization features on the one side are having negative aspects on the other side. If you manipulate source-code files, the changes may get overwritten on the next update. To prevent this, please accept the limits of the customisation options described in this document.

The following things can get customized:

  • header area

  • footer area

  • CSS style-sheet and images

  • e-mail templates

  • meta-information

  • shop-pages (normal user and group administrators)

  • authentication page

  • terms and conditions

  • pricing information

  • list of blocked e-mail addresses and domains

The following things are not customizable:

  • the content of the pages (like login-screen, main-menu or online reading etc.)

  • the available place-holders in language sentences

  • the way the URLs are presented

  • layout div containers and their order

provider website layout

image

The above screenshot is showing you the default layout of your regify provider. The layout parts are identified by numbers:

  1. Optional header area
    This area is hidden by default. If you like to place an extra header, use the customization file _customize.css to make the header visible. The class to update is .TopNavigation { display: block; }. You can also use this to set the height, a background-image and other properties.
    The code from the file codeHeader.php is executed inside of this container. If you need to place interactive content, please use PHP in this customization file.

  2. Navigation bar
    To change the logo, please set the background-image for the #logo div.

  3. Side navigation
    Content changes regarding he currently selected option in the navigation bar.

  4. Content section
    It displays the current content and dialogues.

  5. Footer area
    You can change the content by editing footerCode.php.

editing php code

Do not edit any code in the appliance directly. If you like to edit PHP code in customization, please always use the built-in editor. If you are not comfortable with this, please use Copy&Paste to extract to an editor you like; and use Copy&Paste to paste back your results.

The synchronization functionality will overwrite any changes every 5 minutes. Only the built-in editors ensure that the content is also stored in the database.

The code in all *.php files (like codeHeader.php, codeFooter.php or report.php) is having full access to the complete appliance. Upon this, regify is not responsible for any damage or security leak you may cause by editing those files.
Please take care, especially if you are accessing the file system or database.

Also, the files located in the STYLE folders are accessible from the outside.
Please respect security rules like:

  • Check validity of every given parameter before using on the database or filesystem. Do never rely on valid data!

  • Allways use intval() or floatval() for numeric values.

  • Use CheckHEX() to validate hexadecimal values.

  • Use prepared statements with PDO or at least CleanI() to escape strings used for database or SDK usage.

  • Use so() for secure html output (will encode all entities).

Website appearance

In order to customize a regify-provider, you have to login into the administration of the affected sub-provider. You also need to have the Master or Subprovider Admin role to see these options.

You have top choose Change provider appearance and templates to enter the dialogue.

image

There are two tabs in this dialogue:

  1. Edit e-mail templates
    This tab offers you access to the email templates of your (sub)provider. The upper area are the language related templates. The Related Resources contain language independent template parts.

  2. Customize provider optics
    Here, all templates and files for customizing the appearance of your regify (sub)provider are managed.

To edit a file, simply click on the blue language link. The editor cares about the file and it’s location. Files without a green checkmark are in the default version (like delivered by regify). Files with a green checkmark have been changed and saved by you. A red exclamation mark points you to the fact that this file may be important to be edited by you.

Text editor

The text editor allows you to edit templates. If applicable, it will offer syntax highlighting to guide you.

image

If the text editor is showing the green information You are looking at the default document!, the content is not customized and you are looking at the default content.

The syntax highlighting feature is only available if the file is one of the following types: PHP, HTML, JavaScript.

Other files are simply black text.

If you have problems with the editor, please use the most recent Google Chrome or Firefox Browser.

Preview function

Some files offer a preview. In this case, simply click on the Preview tab to see a preview of your current changes. You do not need to save the file to see the preview. It is updated each time you click on the preview tab.

Logo and favicon

You have to change the Logo.png image (currently used for all client customizing)! Please upload it using the IMAGE-FOLDER functions on the lower right. It will recognize the filename Logo.png and copy it to the correct locations.

The Logo must be a PNG file with transparent background (true colour with alpha channel). The size should not exceed 240 pixels to 120 pixels. It will be scaled automatically but try to fit them as possible.

image
If you like to change the favicon.png of your provider, please simply upload a PNG image with the filename favicon.png using the IMAGE-FOLDER functions on the left. The image size must be 16x16 or 32x32 pixels. It will recognize the filename and copy it to the correct STYLE folder.

changing css design

You can customize the appearance using the file _customized.css.

This is to give you additional information about this file, its usage and its contents:

  • We strongly recommend you a tool like Firebug (for Firefox Browser) or similar to find the classes and values to manipulate on the page.

  • For example, if you like to change the logo in the header, please change classes of #logoWrapper #logo. You can paste this class into _customized.css and change the values. This will overwrite the defaults and allows you to change any settings.

  • Some of the default CSS styles refer to images in /IMAGES. The images you can upload in the customization dialogues are copied to STYLE/MYIMAGES folder. The correct path to use your uploaded images is shown in the second column of the IMAGES-FOLDER list.

    Example:
    background-image: URL('MYIMAGES/myBack.jpg');

Blocking mailaddresses and domains

In order to block given mail-addresses or domains for registering at your regify-provider, you can add a file _mail_blacklist.txt. If you do not create this file, the default file mail_blacklist.txt is used to block registering of well known fake and throw-away mail-accounts.

If you like to set/change this list by yourself, create/edit the mail_blacklist.txt file and enter using this rules:

  1. one entry per line

  2. three variations of entry’s:

    1. local@domain.ext
      → block complete mailaddress

    2. domain.ext
      → block all addresses of this domain

    3. domain.ext
      → all addresses of this domain and subdomains

Templates

portal e-mail templates (notifications)

The templates are a combination of several place-holders to allow you very flexible and quick customization of all aspects of such notification e-mails.

The final e-mail body is defined by the file layout.html. This file defines the overall layout and structure of the body. The place-holders in this file are replaced by the defined values from globals_LL.html and the individual template file.

A place-holder defined in globals_LL.html is used in all templates. This is useful to define sentences and elements that are used in many templates (like signature or footer text). You can overwrite such global place-holders by simply re-defining them inside of the individual message template.

Every template contains individual place-holders filled by the regify provider. They are looking like <TAG> or [TAG]. The ones like <TAG> are using secured and escaped HTML values. The ones with [TAG] are containing links or other information which is replaced as it is. Normally you do not need to care about. Simply make sure that you use them exactly like written here in the documentation.

If any notifier template was not customized by the regify provider administrator, the default templates are used. They are designed to be as neutral as possible to allow you a quick start.

The following notification templates and their individual place-holders are used:

Notifier-Template Usage Aviable Place-holders

mail_registered

Registration notification for regimail, regibill premium and regipay messages.

<TID> = transaction id
<REC> = recipient e-mail address
<SUBJECT> = subject
<DAYS> = pick-up days
<TIME> = time (yyyy-mm-dd HH:MM:SS)

mail_delivered

Delivery notification for regimail, regibill premium and regipay messages.

<TID> = transaction id
<REC> = recipient e-mail address
<SUBJECT> = subject
<TIME> = delivery time (yyyy-mm-dd HH:MM:SS)
<SENT> = time the regimail was sent

mail_reminder

Reminder duration exceed notification for regimail, regibill premium and regipay messages.

<TID> = transaction id
<REC> = recipient e-mail address
<SUBJECT> = subject
<TIME> = time the reminder exceeded
<SENT> = time the regimail was sent

mail_expire

Inform the member about his expiring regimail professional membership.

<NAME> = full name of the user
<DAYS> = the number of days the membership expires
<DATE> = the date the membership expires (normally shortly before midnight)

mail_collision

Inform the member about account deletion because of a collision with other providers (rare case).

<NAME> = full name of the user
<MAIL> = e-mail address

auth_success_mobile

Send positive notification about successful authentication with return information (mobile number).

<NAME> = full name
<TIME> = date/time of authentication
<LEVEL> = level of authentication
<RET> = AuthReturnInformation (mobile number)

auth_success_standard

Send positive notification about successful authentication without specific return information.

<NAME> = full name
<TIME> = date/time of authentication
<LEVEL> = level of authentication

auth_failure

Failed authentication notifier

<INFO> = authentication information
<COMMENT> = comment / reason
<NAME> = full name of user

activation_standard

Membership activation after self registration

<NAME> = full name
<LOGIN> = e-mail address
[LINK] = URL (without <a …​ )

activation_mobile

Membership activation after self registration. Uses mobile phone verification.

<NAME> = full name
<LOGIN> = e-mail address
[LINK] = URL (without <a …​ )

invitation

Membership activation after invitation. User needs to accept the invite to get the password.

<NAME> = full name
<LOGIN> = user name
[LINK] = URL (without <a …​ )
<INVNAME> = name of person who invited
<INVCOMPANY> = name of company of that person
[MESSAGE] = Individual Message of the user [1]

invitation_pay

Membership activation after invitation into a regipay group. User needs to accept the invite to get the password.

<NAME> = full name
<LOGIN> = user name
[LINK] = URL (without <a …​ )
<INVNAME> = name of person who invited
<INVCOMPANY> = name of company of that person
[MESSAGE] = Individual Message of the user [1]

invitation_failed

Failed invitation (duration exceed)

<INVNAME> = name of person who invited
<MAIL> = e-mail address of invited user
<NAME> = full name of invited user

confirm_mailaddress

Confirm new account e-mail address

<NAME> = full name
<MAIL> = e-mail address
[LINK] = URL (without <a …​ )

new_device

Inform user about a new registered device for his account

<NAME> = full name
<DEVICE> = device name
<LOCATION> = location the device came from
<DATE> = Time and date of registration
<MAIL> = Mailaddress of regify account
<OS> = Device Operating-System name

admin_auth_info

Authentication notifier used for provider stuff.

<INFO> = authentication information
<NAME> = name / description
<TIME> = date/time of the request

You do not need to change this, as no customer will ever see this template.

admin_order_info

New order to provider staff.

<NAME> = full buyer name
[TEXT] = buy text (HTML without header)
<DAYS> = days after the status is set to cancelled

You do not need to change this, as no customer will ever see this template.

pwd_reset_standard

Deliver a new password to member. (Password reset with and without mobile phone usage)

<NAME> = full name of recipient
[LINK] = URL (without <a …​ )

pwd_reset_mobile

Password reset request confirmation.

<NAME> = full name
[LINK] = URL (without <a …​ )

group_info

Inform the member about group membership

<NAME> = full name of recipient
<GROUP> = group name
<ADMIN> = full name of group administrator
<DATE> = date of regimail professional (group)

group_exclusion

Inform the member about group exclusion

<NAME> = full name of recipient
<GROUP> = group name
<ADMIN> = full name of group administrator

group_admin_info

Inform the group-administrator about his group values.

<ADMIN> = full name of group administrator
<GROUP> = group name
<CODE> = group code
<ACCOUNTS> = max. number of accounts in the group
<DATE> = sending allowed until (group)

box_invit_registered

regibox registration notification

<TID> = transaction id
<REC> = recipient e-mail address
<SUBJECT> = subject
<DAYS> = pick-up days
<TIME> = time (yyyy-mm-dd HH:MM:SS)

box_invit_success

regibox acceptance notification

<TID> = transaction id
<REC> = recipient e-mail address
<SUBJECT> = subject
<TIME> = time (yyyy-mm-dd HH:MM:SS)
<SENT> = time the invitation was sent

box_invit_reminder

regibox invitation duration exceed notification

<TID> = transaction id
<REC> = recipient e-mail address
<SUBJECT> = subject
<TIME> = time the reminder exceeded
<SENT> = time the invitation was sent

box_full_warning

regibox fill level warning to both user and owner

<NAME> = full name of the recipient
<OWNER> = full name of the box owner
<PERCENTAGE> = fill level incl. % sign like “90%”

1

This message will come escaped, including a surrounding DIV container using the CSS-class “quote”. This class should be defined in layout.html.

There are a few standard place-holders available in all templates:
[PROVIDERURL] → Full URL to the regify provider portal including the last slash
[PROVIDERHP]→ Full URL to the provider homepage (eg company HP)
<PROVIDERNAME> → Name of the regify provider portal
<SUPPORTADDRESS> → E-mail address for support
<SUPPORTPHONE> → Phone number for support

They are replaced during sending by the corresponding values of the current (sub-)provider settings (defined in the portal sub-provider administration).

template language information

The notification template names in the table above are ending with a language identifier. Currently, the identifiers are:

DE German (Deutsch)
EN English
FR French
CN Chinese

regify mailing template (regify_default_message.html)

This template is used by the regify standalone client, the regify AddIns (like MS Outlook or Lotus Notes) and by the web interface for online creation of regify files and e-mails.

If a user creates a regify file, the body message will be taken from the file regify_default_message.html in the customization area. If the file does not exist, the default template will get used. We strongly recommend to, at least, save this file once to get done.

This file needs to start and end using <html> and </html> and needs to contain all style information. We recommend to use CSS styles and html, but no images.

Inside this template, there are two place holders:

@SENDERNAME@
This place holder will get replaced by the name of the sender.

@SENDERADDRESS@
This place holder will get replaced using the e-mail address of the sender.

regibox invitation template (regibox_invitation.html)

This template is transmitted to the regibox manager software and used for invitations. The regibox manager replaces the following placeholders by individual values during sending time with local values:

[PROVIDERURL]

Gets replaced by the URL of the inviting users regify provider.

[PROVIDERHOMEPAGE]

Is replaced by the homepage URL of the inviting users regify provider.

[MESSAGE]

This is replaced with the individual message the inviting user has entered during invitation.

[NAME]

This is replaced by the name of the invited user (entered by the inviting user).

[SENDER]

This is the name of the inviting user.

[TITLE]

The title of the regibox (name).

[LANGUAGE]

The language of the inviting user (currently DE, EN or FR).

On provider side, the standard placeholders are applied (described in chapter portal e-mail templates (notifications)).
For example <SUPPORTADDRESS>.

Best will be to use html entities as much as possible to avoid any problems with special characters! If you are offering your service in multiple languages, please take care that everyone is able to read your template. As in our example, you may even insert different languages into the same template.
Always trigger and test the changed messages to make sure they work.

Customizing the shop pages

Customizing options

You are able to customize three types of shops in your regify-(Sub)Provider. The first one is the shop for non-grouped users that like to extend their regimail professional membership for themselves or up to 20 users. The second one is a shop for regimail group-administrators to extend professional membership for all users in their group.

The shop definitions are done in JSON encoded shop-files:

Non grouped members: shop_standard.json
Group administrators: shop_group.json

If you do not edit/create these files, the default shop-files will get used. But they might not be what you need. We strongly recommend to edit them!

The JSON file accepts the following types of fields: Divider, Info, Text, Check, Option-List, a Country and Hidden fields.

Examples

This examples are showing the usage of JSON and the available parameters for all field-types. These are great references to copy&paste for your own shops.

Divider and textbox example

image

As you can see in this example in line 10, multiple fields are divided using a comma between the curly brackets.

Checkbox example

image

Option-list example (with 3 options)

image

Countrybox example

image

Info example

image
image

Field description

The following chapter describes the available field-types and their parameters. Please remark the examples above as an additional reference.

If you need to use quotation-marks in the json file, please encode them using backslash:

This text contains \“quotation-marks\” using backslash.
There is a simple but handy service to validate your JSON files using the free json validator at www.jsonlint.com.

Common (for all field types)

Field name Description

FieldType

Defines the type of field. Available types:

Divider → a divider bar
Info → simple information text
Text → a textbox
Check → a checkbox
Option → a option-list
Country→ a country-list
Hidden→ a hidden field that is not shown to the customer

FieldName

The name of the field (posted field-name). Please ensure that every field has it’s unique name.

FieldCaption

The multi-language caption of this field (before the input field). It is defined by sub-entries for each language (DE, EN, etc.).

Divider

No additional fields are supported. This draws a highlighted line with text.

Info

No additional fields are supported. This draws a simple text. You can use all available HTML options here. Encode quotation-marks using backslash (\”).

Hidden

Creates a hidden field for technical purposes.

Field name Description

FieldConnector

The name of the field in the user-database (tbluser) to get the default value from. This one is optional. Database-fields are always upper-case.

FieldValue

The default value to be set.

Text

Draws a textbox that allows entering values or text.

Field name Description

FieldSize

Defines the size of the element. The format is:
“Width in pixel,height in lines”

example: “200,5” → defines a width of 200 pixel and a height of 5 lines.

Leave width empty to let the system decide about best width (like ",5").

FieldHelp

The helping text (behind the input field) of the field. It is defined by sub-entries for each language (DE, EN, etc.).

FieldMandatory

Can be true or false and defines, if the value must be given (Text) or must be chosen (Check).

Default: false

Option and Country are always mandatory.

FieldConnector

The name of the field in the user-database (tbluser) to get the default value from. This one is optional. Database-fields are always upper-case.

FieldDisabled

If set true, the textfield can not get changed by the user. This one is optional.

FieldValue

The default value to be set.

Check

Draws a checkbox that can get checked/unchecked by the customer. Please refer to the example above to get an idea of using this type.

Field name Description

FieldHelp

The helping text (behind the input field) of the field. It is defined by sub-entries for each language (DE, EN, etc.).

FieldMandatory

Can be true or false and defines, if the value must be given (Text) or must be chosen (Check).

Default: false

Option and Country are always mandatory.

FieldValue

The value to store/transmit if option is selected. This is the posted value.

FieldPrice

The displayed price for this option.

FieldTaxIncluded

Defines the amount of tax included in the price (in percent).

FieldMultiply

If set to true, the price will get multiplied with the number of users affected. If set to false, the price will get calculated only once (one price for all).

Default: true

FieldConnector

The name of the field in the user-database (tbluser) to get the default value from. This one is optional. Database-fields are always upper-case.

Length

Defines the addition to premium-membership of the customers for a bought product. It must be one of the following types:

"n DAY", "n MONTH" or "n YEAR"

It will be used only if something is set. For the regify shop, at least the product chooser must define a length for his options!

Option

Offers a selection-list or selection-box to allow the selection of an item out of a group of items. Please refer to the example above to get an idea of using this type.

Field name Description

FieldSize

Defines the size of the element. The format is:
“Width in pixel,height in lines”

Example:
“200,5” → defines a width of 200 pixel and a height of 5 lines.

Leave width empty to let the system decide about best width (like ",5").

FieldHelp

The helping text (behind the input field) of the field. It is defined by sub-entries for each language (DE, EN, etc.).

Value

The value to store/transmit if option is selected. This is the posted value.

Price

The displayed price for this option.

Length

Defines the addition to premium-membership of the customers for a bought product. It must be one of the following types:

"n DAY", "n MONTH" or "n YEAR"

It will be used only if something is set. For the regify shop, at least the product chooser must define a length for his options!

FieldTaxIncluded

Defines the amount of tax included in the price (in percent).

FieldMultiply

If set to true, the price will get multiplied with the number of users affected. If set to false, the price will get calculated only once (one price for all).

Default: true

FieldConnector

The name of the field in the user-database (tbluser) to get the default value from. This one is optional. Database-fields are always upper-case.

Country

This inserts a country-selection box that allows the customer to select a country.

Field name Description

FieldSize

Defines the size of the element. The format is:
“Width in pixel,height in lines”

Example:
“200,5” → defines a width of 200 pixel and a height of 5 lines.

Leave width empty to let the system decide about best width (like ",5").

FieldHelp

The helping text (behind the input field) of the field. It is defined by sub-entries for each language (DE, EN, etc.).

FieldConnector

The name of the field in the user-database (tbluser) to get the default value from. This one is optional. Database-fields are always upper-case.

Field placeholders

The regify portal replaces some values inside your JSON encoded shop-definition before parsing. Using this functionality allows you to pre-fill some elements with values from the current system.

<USERNAME> The username (usually email) of the current user

<REALNAME> The real name of the current logged in user

Independent and custom payment-definition

Currently, the regify-provider software allows you to customize the default-shop by changing the json-definition for the shop. After successfully filling out this form, the customer confirms his order on a second screen.

The possible options to choose from on this page are (by default):

  1. Order by email

  2. Order using PayPal payment service

There is a fourth option available for completely independent payment integration for each sub-provider. You are able to define an additional file CustomShop.php (provider settings dialog of your (sub-)provider). In case this file is defined, it will get included on the order confirmation page. If you add this function:

StartCustomShop($User, $POST, $OrderInfo, $OrderPriceSum, $OrderPriceNetto, $DatabaseID)

…​to this file, you simply need to activate this option in your sub-provider management. Now, the function StartCustomShop() will be called to insert a payment button (its up on you to implement this button).

The provided function-parameters for StartCustomShop() are:

  • $User Array with the complete dataset of the buying user (as in tbluser).

  • $POST Array with all given POST-Values of the shop-page.

  • $OrderInfo Text with all order-information about this order.

  • $OrderPriceSum The complete order-sum including VAT.

  • $OrderPriceNetto The complete order-sum without VAT.

  • $DatabaseID The ID of the database-entry of this order in tblsettlement.

Here it is up to you to develop a payment option. In case you need professional help, please feel free to contact regify support at support@regify.com.

If all those shop/payment options do not fit your needs, you can change the shop-links to other ordering pages you may define freely. Please take a look into the most recent regify provider documentation. The options are in the Sub-provider management  SHOP. The regify Provider-SDK offers you all functionality to get information about users and groups and, additionally, offers all methods to edit length of accounts and number of members in groups etc.

Customizing authentication

The authentication-dialog can get adapted to your needs using the same technique than customizing the shop-pages. There is a dialogue-definition in the file auth_form.json located in your STYLE area of the customizing dialogue.

All fields described in the shop definitions above can get used. But there are some special behaviours for this dialogue:

Special fields

The FieldName entries of the fields are defining, to which database column the entered values will get assigned by starting the authentication. The following FieldName names are getting assigned directly to tblauthentification:

FieldName Description

OwnerType

person or organisation (nothing else!!!)

AuthCheckName

name to check

AuthCheckPhone

phone-number to check

IdentityName

name for identity-file

IdentityOrganisation

organisation for identity-file

PhoneTime

time to make a call

UnlockReturnInformation

information for sending unlock-code (usually the mobile number) to customer.

There are some more special fields. They have a special meaning:

SubmitData

This caption will get displayed again, if authentification is started.
It is meant to show the user the information about where to send his auth data.

Please do not mix this with the FieldConnector entry because:

  • The FieldConnector entry connects with the user-database (only to get default values).

  • The special FieldNames mentioned here above are used to assign the given values to the newly generated identity file upon authentication.

You are free to add more fields with other names. This information will be available in the Authentication-Information in the administration dialogue, too.

Unused information

The form-definitions about prices, vat and multipliers are getting completely ignored in this case. Only the above mentioned values are used.

In order to get a higher authentication level, and before beginning to change this dialogue, please contact support@regify.com about the certification for higher authentication levels.

Checklist

This list shall help you to ensure that you complete your customization properly. Please check the individual options:

  1. Insert your adapted terms of use into agb_SS.html (SS is the language).

  2. Update your pricing and payment option in conditions_SS.html (SS is the language).

  3. Modify codeHeader .php, codeFooter.php, meta.php for your needs.

  4. Change the file _customized.css for your needs including uploading the needed images.

  5. Modify or change the regify default mailing template. regify_default_message.html

  6. Modify or change the portal mailing templates if needed.

  7. Modify your shops to match your prices (shop_standard.json, _shop_group.json) regarding to your conditions.

  8. Enter transaction-prices in sub-provider management.

  9. If you like to offer authentication, adapt the auth_form.json to your needs.

  10. Check all customizable files still marked with a red exclamation mark!

Appendix

Manipulating language text blocks

Normally, the language blocks are defined using the file /opt/provider/REGIFY_INCLUDE/funcLanguage.php.

All language blocks are defined using the $lang[] array. Here is an example:

<?php
$lang[0]["FR"] = "";
$lang[0]["DE"] = "";
$lang[0]["EN"] = "";
$lang[0]["CN"] = "";
?>
Upon every update or upgrade, this file will get overwritten. Manipulated language blocks will get added and removed. Thus, it’s not possible to change any language blocks in this file!

Upon these blocks are arrays, they can be overwritten later in code. This is the key for changing language blocks in your regify provider.

To change a language block, please go to the customizing dialogue of the web-administration and adapt the file codeHeader.php like in this example (changing ID 123):

<?php
  global $lang;
  $lang[123]["FR"] = "nouveau texte";
  $lang[123]["DE"] = "neuer Text";
  $lang[123]["EN"] = "new text";
  $lang[123]["CN"] = "新案文";
?>

Thus, you can re-define every language block without changing the funcLanguage.php (which is a very bad idea, anyway). Additionally, this is different for each sub-provider and allows you to change language elements independently (as codeHeader.php can be different for each sub-provider).

The disadvantage of changing language defaults is that you have to check your language blocks every time the funcLanguage.php has been updated (thus, every update of the provider software).
You may need to adapt your text settings to new functions or changes by regify. Therefore, regify strongly recommends to not change more than up to 10 sentences to keep the efforts for an update as less as possible.

If you think that more sentences need enhancement, please tell us your wishes or why there is a problem for you. Maybe all regify providers can profit by the changes and we update this for the next release?

Individual reports

It is possible to trigger individual reports. The regify-provider try’s to find a _report.php file in all subproviders STYLE folders every 5 minutes. If such a file is found, it will be executed using the PHP interpreter.

You can/must edit this file using the Change provider optics and templates] dialogue of the web administration menu. Upon the first click on this report.php link, the system offers you an example of a working report script that is executed every last day of the month at about 12:00. This example may get adopted to your own needs. If you click on save, the file _report.php will automatically be saved at the correct place.

In case you do not have any programming experience, please ask regify for support or an offer.
The code in all *.php files (like codeHeader.php or report.php) is having full access to the complete appliance. Upon this, regify is not responsible for any damage or security issue you may cause by using those functions.

Public available PHP functions

There are a lot of appliance functions available for you in your own routines (if you require_once("init.php");. Here are the most helpful and important ones:

GetLanguage()

Returns the current language code (“DE”, “EN”, “FR” or “CN”).

GetFromHash(Hash, Key, Default)

Secure access to hash (array, maps etc) not triggering errors or notices in case the key does not exist.

$example = GetFromHash($_GET, "p", "default");

CleanI(Original)

Returns a clean and database-escaped version of the given Original.

FormatPrice(Value)

Returns the given value as a currency formatted price for the current session language. Eg, a value of 3.6 will be returned as “3,60 EUR”.

GenerateCode(Length)
GenerateNumericCode(Length)

Both functions returning a random code. GenerateCode() returns a code consisting of upper-case, lower-case and numbers with Length digits. GenerateNumericCode() returns only a numeric code with Length digits.

GetURL(URL)

Returns the content of a given URL (uses provider settings for proxy, gateway etc).

CheckHEX(Value)

Returns TRUE if the given Value is a valid hex encoded one.

so(text)

Is for “secure output” and can get used to output any values as secure HTML (entity encoding). Use this to prevent XSS attacks.

GetScriptName(withParams = false, withOutExtension = false)

Returns the name of the called script (eg pay.php). Set withParams = true to also get the parameters. Set withOutExtension = true to suppress the extension (.php).

Calling sign-up page with predefined values

You can use POST values, if you like to call the members sign-up page with some predefined values. The following example shows you how to pre-fill the coupon code field “txtCoupon” with the value 123456 on the regify demo portal:

<form action="https://portal.regify.com/phpSignUpMember.php" method="post">
  <input type="hidden" value="123456" name="txtCoupon">
  <input type="submit">
</form>

You simply need to change the URL and submitted values. To find the possible field names, please have a look into the source of the page or use tools like FireBug for Mozilla Firefox.

Special field for pre-defining Sales-ID value:

You can define a hidden POST value with the name hidSID. If you provide any information in here (string, max 250 characters), it is automatically stored into the tbluser.SalesID field of the customer that registers.

Customizing pay.php depending on url parameter

Normally, the pay.php gets it’s configuration from the (sub)providers configuration and _customize.css. If you need to have a more sophisticated customisation you can use an additional parameter like in this example:

https://provider/pay.php?p=1

In order to use such an extra parameter, please use customization of your regify provider to add the following code to meta.php:

<?php
$scriptName = GetScriptName(false, false);
if ($scriptName == "pay.php" && GetFromHash($_GET, "p") == 1) {
    echo "<style type=\"text/css\">\n";
    echo "#pay-navigation \{ background-image: none !important; }\n";
    echo "</style>\n";
}
?>

This example shows you how to remove the background image in case of p=1. This can get used to change the image or change colors depending on the customers need.