Knowledgebase : Step by Step Guides
   

Adding an MegaPass / All Access Network Sub-Site

NOTE - This requires an MegaPass / All Access Network Setup which is an optional system add-on as described on http://www.elevatedx.com/features.php and must be configured by us. Standard CMS installations do not have an All Access entry on the Utilities page.

Step 1) Click Gear icon in the right top area of the cms admin panel >> then select "Network Sub-Sites" and then click Add a New Entry.

Fill out the site title and URL of the new members area folder.

Check the box to enable the site if you want this to be apart of a network. Skip this if you wish this to be stand alone.

Below you will have the following options:

Display Link: This option will determine if a link for each subsite appears above the set title when displaying a on a page showing other sites content. Use this option on your "network hub" page.
Show Aggregate Site List:   The option shows the list of other available subsites.  You have the option of sortin ghtis list "by name" or "by date".
Only Show This Site's Updates:   This option controls whether or not you will restrict content on this subsite. On the network hub page set this to "No" on a subsite page set this to "Yes".
Show Updates from Other Sites:  This option controls whether or not to show updates from other sites. On the network hub page set this to "Yes" on a subsite page set this to "No".

Under Override Folder, specify a name for the new PHPTEMPLATE/Smarty folder that matches the name of your new site. The folder name should not contain spaces or special characters. Info from your 'cmsinclude.ini.php' file will override this setting.

Unless you know what the other fields are used for you should leave them blank as they are commonly only used for custom site layouts.

On this page you may associate the content you wish to be displayed on this sub-site.

After you have filled in the fields and associated content, click the Add Entry button.

Step 2) Connect to your server via FTP and locate either your /cms_admin/phptemplate/ or the /cms_admin/smarty/ folder. Copy one of your existing PHPTEMPLATES/SMARTY folders and assign it the name that you specified in Step 1 above.

Step 3) FTP to your server and locate the members folder for one of your existing sites. Copy all of the cms related php files, css file and any other applicable files e.g. images folder, etc. and upload a copy of these files to the new site's members folder. Note - php files need to be uploaded in binary mode. 

Step 4) In the new members folder edit cmsinclude.ini.php and enter/edit SUBSITE_ID = X where X = the Id of the site. You can find out what a sub-site's ID is by clicking Manage CMS >> Network Sub-Sites and looking to the left of each site name.

Step 5) Add the following line to the cmsinclude.ini.php file:

PHP_FOLDER=siteX  ( replace X with the name of the PHPTEMPLATE template folder you want to use for this site).

or

SMARTY_FOLDER = XXXXXX (replace XXXXXX with the name of the smarty template folder you want to use for this site).

Step 6) Add a symlink (or have your host add this for you) to symlink the content/ folder on the parent/main site that stores the content to the /content folder within your new site or subdomain. Symlinks are not CMS related so this is not something our support staff can help with.

Adding and Editing Sets

When the All access setup is used, when you click Add/Edit for Sets you will see a select box for Sites. You will need to specify which site(s) to associate when adding new sets/updates.

Add a New Media Type

Location Utilities

To add a new media type click Utilities, Media Types, Add New Entry and fill in the appropriate information using your existing media types as reference on the proper format and the pattern that defines where the files are located within each set.

Enter a label for the media type. The label is what will be displayed in the members area for example HD WMV Full Length or Mpeg Clips.

If the media type is a full length video, select Yes from the corresponding dropdown menu. If the media type is a video clip, you can choose to display a Play and/or Download link on the page for each clip.

You can set the sort order. This controls the order of the links under in each clip. The lower the number, the closer to the top it will show. For example if I want Flash Clips listed first, I would assign them an order of 0. If I want MPG Clips listed next, I would assign them a 1, and so on. This is option and only needs to be edited if you want to set the order.

Specific instructions for full movies that DO NOT have video clips:

For sites that do not have clips you will want to edit your full length media types and choose No from the full length video dropdown. You will also want to select Yes under either the play and/or download dropdowns. This will result in your full length movie vidcap and links being displayed on the page in addition to having the full download links show up towards the top.

Note - If you have updated or added new media types, you will need to re-import content in order for these to show up inside your site. You may also need to create video thumbnails for new types. Both of these can be done as a batch operation by clicking Utilities, Batch Operations.

Uploading and Filenames

When uploading files you must follow the same path as defined under patterns. If the pattern is /wmv/ the files need to be uploaded to a folder named wmv. The filenames for all formats should match. This is how the system knows that a series of movies are the same scene/movie and just different formats.

Examples:

wmvfull/full.wmv

mpgfull/full.mpg

wmvclips/1.wmv, 2.wmv, 3.wmv, etc.

mpgclips/1.mpg, 2.mpg, 3.mpg, etc.

 

Options on the Media Type Add/Edit Page:

Name - is the name of the media type

Type - will be 1 of the following: vids, highres, caps - Do not enter values other than this.

Label - This is the name that will show up on your site as the text link for a movie e.g. Quicktime, Flash

Full Video - Only set this to Yes if the current media type is a full video. If this is set to show download it will show a download link. If it's set to Embed, it will make this the default format for the site and when someone clicks to view an update, this format will play on the page automatically.

Show Play Button - This is ONLY used for clips. This will show a link to play the embedded movie. For a full length movie this should be set to NO.

Show Download Button - This is ONLY for clips. This will show a link to download the movie. For a full length movie this should be set to NO.

Display Order - This sets the order of the media type links on the video page.

FFMpeg sort order - This controls which order the system uses to look at movie files to take screencaps. This field can usually be left blank.

Show in Member's Area - If checked, this media type will be shown in the standard member's area.

Show on Mobile Site - If checked, this media type will be shown in the mobile member's area. This is only available if you have the optional add-on mobile site setup.

Format - This is the name used as the title for the grid in the full download/watch full movie table e.g. WMV, MPG, etc.

Size/Speed - This is the download/watch link text that will show below the format title in the full download/watch grid e.g. 640x480, 1500k, 720 HD, etc.

Order - This controls which order the links show in the full download/watch grid and lets you sort them so a certain format is listed at the top and/or so that multiple sizes of the same format e.g. WMV 640 and WMV 320 are grouped together and listed 1 under the other in the table.

Add a New Tour

Step 1) FTP to your server and create a folder for your new tour

Step 2) Using binary transfer mode, copy the contents of your existing tour folder. Note - you do not need to copy the content/ folder. Intead, create an empty folder named /content inside your new tour folder. You MUST set file permissions (CHMOD) the /content/ folder to 777. For information on doing this please refer to your FTP client's help file.

Step 3) Inside your new tour folder, edit cmsinclude.ini.php and change the path to cms_admin to include the actual path to your admin panel.

Step 4) Change Tour ID to the number that corresponds to the ID of the tour listed in the Tour Manager in cms_admin. This will be listed under Id to the left of the tour name.

Step 5) Change the site ID to match the site ID of the site (if applicable). You can determine the site ID by looking at the multi-site dropdown in your admin panel. There's an ID to the left of the site name.

Step 6) Create(or have your host create) a symlink in your tour folders '/content/' folder named 'contentthumbs' that links to your members areas' 'contentthumbs' folder. Your system will try and do this automatically once you go to the admin home page and click  "set defaults" for your tours' thumbs

Step 7) Edit the cmsinclude.ini.php file to reference the coorect template folder. If you are using Smarty edit the SMARTY_FOLDER=    line to refer to the correct smarty folder you wish to use. f you are using PHP templates edit the PHP_FOLDER=    line to refer to the correct PHP Template folder you wish to use.

Step 8) If you plan to use the SEO urls on Smarty templates you'll ned to edit the conf files to provide the full path to the tour.

You will need to change the path to the content and the tour folder namein the smarty folders' config files for the new site.

/cms_admin/smarty/< smarty folder name >/config/static.tour.conf

This determines the SEO domain name and url and the path top find the tour areas content.

 

Add a New Web Site

*You'll need a blank MySQL dB and a new domain on the same server as the cms_admin.

Step 1) Under the Gear Icon in the right hand cormer select the "Sites" link. Click "Add a new entry" on the bottom right side

Step 2) Enter the domain and name of the new site.

Step 3) Select the existing site's settings you wish to copy to the new site.

Step 4) Click the "Add New Entry" button at the bottom.

Step 5) Read the "Warnings and Notifications for" the new site you just created. Under the Gear Icon in the right hand cormer select the "global settings" link. Enter the database information for the new site. Your host will need to set up a new MySQL database for this new site. Once you get this information from the host, please populate the information within the "Could not connect to @ Click to Repair Link" You'll need all the dB info form your host: ( hostname, dn username, db password, db Name.) Click save changes after you are done.

Step 6) Click "Home" and you will see errors. To the right side of the errors are "Click to repair" links. Click Create Tables or Repair links next to the errors at the top of the list. After that's clicked, click "Set All Defaults".

Step 7) Click "Gear Icon" on the right hand side and select "Global Settings" and Edit the path to content: You will need to change the path of your content to match the new directories you just set up. ( ou can do this step after step 9 and 10 as well if you are creating a new site)

Step 8) Click the "Utilities" icon on the top nav bar. Then, click "Import / Export" and import / export any/all settings from an existing site to the new site as needed. (Such as media types, transcoder settings, preview thumbs, and position settings). From here, you can import / export any settings as needed.

Step 9) FTP to your server and locate the members folder for one of your existing sites. Copy all of the cms related php files, css file and any other applicable files e.g. images folder, etc. and upload a copy of these files to the new site's members folder. Note - php files need to be uploaded in binary mode. DO NOT COPY THE EXISTING 'CONTENT'  FOLDER. (It will be created in step 10)

Note: If your are copying the CMS members area via FTP, please make sure you do a BINARY file transfer. If you use AUTO or ASCII settings, your encoded PHP files may be corrupted in the transfer process. For more information on how to do a BINARY transfer, please consult your FTP client's documentation.

Step 10) Within your new members folder, create a folder called "content". Inside the content folder, create two folders: "upload" and "contentthumbs". Make sure all of these directories have global write access (chmod 777 permissions).

Step 11) Inside your new members folder, edit cmsinclude.ini.php. You'll need to change Site ID to match the ID of the new site. To determine the ID of your new site, look at the multi-site dropdown in your admin panel, the ID is listed to the left of each site/domain name. You may need to change $_SERVER[DOCUMENT_ROOT]/cms_admin/ to the actual path to your cms admin panel for example /home/domains/somesite/cms_admin/

Step 12) Note: This step only applies if your members folder is named something other than /members/  and you are using smarty templates(php templates do not need to worry about this step) or if you are using a subdomain e.g. members.site.com instead of a members folder. In this case you may need to edit the members path in your templates.

FTP to your server and locate your cms admin folder and your xsl (or smarty) folder. Go into the xsl or smarty folder for the new site (to find out which folder matches a site, look at the multi-site dropdown in your cms admin panel and check the ID to the left of the site name). Edit the main.xsl file (or the smarty tpl files inside the smarty/config/ folder) and change the paths to the css file and content directory as needed.

If you have any issues setting up your new site please submit a ticket and we will help you.

 

Add a Watermark

To Add a Watermark For Member's Area Photos:

Step 1) Upload your watermark image via FTP to your site's member's area /content/ folder. Due to its ability to preserve transparency, a PNG file works best. CHMOD the image 755 or 777.

The watermark .png file must be located in your members /content/ folder e.g. /content/watermarkfilename.png

Step 2) Log-in to your cms admin panel and go to Plug-ins/Full Size Photo and Thumbnail Setup and click Edit. Locate your Full Size Photo(s) and click Edit. You'll see a Watermark Image field. Enter the filename of your watermark e.g. watermark.png and then select the location of the watermark from the dropdown menus below.

NOTE - This only adds a watermark for the current site you're managing. If you have multiple Full Size Photo settings you must perform step 2 for each of them in order for all photos to be watermarked.

Step 3) The next time you add a Content Set and check the Create Content box for your full size images, the watermark will be added.

If you want the watermark to be added to prevously added photos you must re-perform the "Create Content" process for those sets. The easiest way to do this is to use a Batch Operation. This can be done by clicking Utilities/Batch Operations, checking the Create Content box for full size photos and clicking the "Start Batch" button. This will result in the watermark being added globally to all photos.

Also note that if you change the location of the watermark or the watermark image, your previously watermarked sets will not be updated until you re-perform the "Create Content" process for those sets.

NOTE:“ The batch will only continue to run as long as your browser window remains open. Should a batch end prematurely for any reason, simply visit the Utilities page and click Process Queue and your batch will continue, picking up where it left off.

To Add a Watermark For Tour Photos: 

Step 1) Upload your watermark image via FTP to your site's tour area /content/ folder. Due to its ability to preserve transparency, a PNG file works best. CHMOD the image 755 or 777.

Step 2) Log-in to your cms admin panel and go to the Tour Manager (Tour Icon or Plug-ins/Tour Manage) and click Manage. Select a tour and click Edit. You'll see a Watermark Image field. Enter the filename of your watermark e.g. watermark.png.

The watermark .png file must be located in your members /content/ folder e.g. /content/watermarkfilename.png

Step 3) In the section of the page that lists image locations, enter a 1 in the Watermark box for each image you want to display the watermark on.

Add and Manage Models

Step 1) Rollover the "Models" Tab at the top of the page (or Plug-Ins >> Models >> Manage).
New Model

Step 2) Click "Add a New Model/Add a New Entry" The following page displays a field for adding a new model.

Step 3) Enter the Model's name and select Gender (Male|Female|Transgender), Select whether or not the model should appear on tours areas, and if you want to override the votes for this model.
New Model 2

Step 4) View the list of sets that have been imported for this site. Highlight set names in the Exclude List and Click "Add" to create an Association between the model and the selected set(s). To select more than one set name at a time, hold down the Ctrl button on your keyboard.

Step 5) Create Preview Thumbnails for yout your models. If you select the Model Toplist Large and Small Thumb options the system will create thumbnails for these models automatically.

Model thumbs by default are Position 16(Large) and 17(Small).

NOTE - If the Models tab is not visible, go to Plug-Ins and make sure the plugin is enabled.

Press the Save Entry button and wait for the system to finish.

Add Content to a Tour

Step 1) Login to your CMS admin panel. Click the Tours icon (or Plug-Ins/Manage Tours). If the icon is not listed in your top icon bar you can add it by clicking Toolbar Configuration on the left side menu.

Step 2) Click Manage Content to the right of the name of the tour you want to manage.

This page is where you will associate content with the tour and where you control the order of updates on the tour pages. You'll see links next to each set: U D T B.

Clicking U will move the corresponding set up 1 spot. D will move it down. T will move the set all the way to the top spot, B will move it to the bottom spot.

If you click Add a New Entry (wording may differ on older software versions) you can associate Content Sets with the tour.

Step 3) Once sets are added, you have the option to specify a movie trailer as well as upload and/or crop images for each set. Clicking Thumbs wil display the image locations specified under Edit for this tour.

You have the options to select thumbs from your Content Sets and crop them, or upload an image and load it into the cropper to be cropped and resized.

To crop from a video rather than a full size photo:

If a valid media type was selected from the dropdown, this will load a full size screenshot of your video.

If you scroll down, under the video you will see options for navigating frames in the movie. You can skip ahead 1 frame, 10 frames, 100 or 1000 frames. Navigate to a frame you would like to crop.

Click the Create a Thumb from This Frame button. This will load the image into the cropper.

 

Add DVD Data Fields

Extra fields allow you to insert custom variable tags into your pages that are associated with a DVD. This is useful for adding data that is non-searchable. Examples might be a release date, store link or VOD purchase URL, mini review, text description or synopsis fields.

Step 1) Log into your cms admin panel and click Plug-Ins, DVDs and then DVD Data Fields. Here you can specify a custom field that can be edited via the admin panel. Assign a name and enter a title for the the field. The title is what's shown on the site e.g. Release Date.

Step 2) Choose the field type and specify whether the field is required when adding or editing DVD titles in the system.

For Smarty Templates:

Step ) Paste the following tag into a Smarty template and replace NAMEHERE with the name you assigned to the extra field in the admin panel

{$extra_NAMEHERE}

Use of our tech support staff for assistance with extensive use of advanced features such as custom data fields may result in additional support charges or estimates for custom coding.

Add Extra Fields

Extra fields allow you to insert custom variable tags into your pages that are associated with a set, model, category of 2257 record. This is useful for adding data that is non-searchable. Examples might be a person rating of an update, a custom upsell or store URL for a model or content set or model bio fields such as Twitter Handle.

Step 1) Log into your cms admin panel and click Plug-Ins and then Extra Fields,  Manage . Here you can specify a custom field that can be edited via the admin panel. Assign a name and enter a value for the contents of the field. Specify the location of the field so the data can belong to a model, set, etc. as intended.

Step 2) In order for the contents of the field to be displayed on a site you must first add the new variable tag to your template in each location you want the field to appear.

For PHP templates:

There is no need to edit the PHP templates. The system will add the fields as you add them.

For Smarty Templates:

Step 1) Paste the following tag into a Smarty template and replace TITLEHERE with the title/name you assigned to the extra field in the admin panel

{$root.page.results.extrafields.TITLEHERE[0]}

Use of our tech support staff for assistance with extensive use of advanced features such as extra fields may result in additional support charges or estimates for custom coding.

Add Google Analytics

For CMS installations or upgrades later than March, 2012 your /smarty/smarty_folder/general/page_top.tpl template should already contain the Google Analytics code between the <head></head> tags. Previous 3.2 version templates may contain this code in the /smarty/smarty_folder/general/page_bottom.tpl template.

To use Google Analytics, log into your CMS admin panel and click Plug-Ins >> Template Fields.

Select the area you wish to edit the template field by selecting the area from the drop down:
Google 1

You'll see a field named Google Analytics Code.

Edit this field and enter your Google Analytics number. This number is found within the code you get from the admin area on your Google Analytics account and looks something like UA-123456789
Google 2
Click "Save Entry" and your ara will now have the Google Analytics code embedded.

For more info about Google Analytics -->  http://www.google.com/analytics

Add NATS Code to Tours

To add NATS code to a tour you'll need to use the following code tag for the join link, changing the link as needed to point to the correct location of your signup page. This can be entered in your admin panel by clicking Edit for a our under Plug-Ins, Tour Manager and filling in the Join URL field.

signup.php?nats=##natscode##&amp;step=2

The ##natscode## is a special string that replaces the PHP code that NATS requires to be passed along that looks something like this:

<?= ($_REQUEST["nats"]) ? $_REQUEST["nats"] : "xxxxxxxx"; ?>

You can configure which NATS code to pass along by default by editing your tour, and placing in a value under "Default Nats Value"

Add Template Fields

Template fields allow you to insert custom variable tags into your pages. This is useful for adding elements that you may need to change without wanting to edit the templates each time. Examples might be a contact email address or a banner image or link code.

Step 1) Log into your cms admin panel and click Plug-Ins and then Manage Template Fields. Here you can specify a custom field that can be edited via the admin panel. Assign a name and enter a value for the contents of the field.

Step 2) In order for the contents of the field to be displayed on a site you must first add the new variable tag to your template in each location you want the field to appear.

If You Use XSL Templates:

Step 1) Paste the following tag into an XSL template and replace TITLEHERE with the title/name you assigned to the template field in the admin panel.

<xsl:value-of disable-output-escaping="yes"
select="/root/page/templateconf/TITLEHERE" />

NOTE - This functionality is intended for advanced users and those who are comfortable editing the XSL templates. When working with your templates please make a backup copy of the template folder(s) prior to editing as we do not have a copy of your files.

If you Use Smarty Templates:

Step 1) Paste the following tag into a Smarty template and replace TITLEHERE with the title/name you assigned to the template field in the admin panel

{$templateconf.TITLEHERE}

Use of our tech support staff for assistance with advanced features such as template fields may result in additional support charges or estimates for custom coding.

If you use PHP Templates

 

Step 1) Paste the following tag into a PHP template and replace TITLEHERE with the title/name you assigned to the template field in the admin panel

 

<?= $templatefields["TITLEHERE"] ?>

 

Use of our tech support staff for assistance with advanced features such as template fields may result in additional support charges or estimates for custom coding.

 

Add Trailers to the Tour

Step 1) Upload the trailer video to your tour folder's site root, for example www.mysite.com/

If you want to put your trailer videos into a folder (we suggest this) you will need to create a folder called /trailers/ inside your tour folder, for example www.mysite.com/trailers/ and upload your trailer videos here.

Step 2) In your CMS admin panel, click the Tours icon. If this icon is not present, click Toolbar Configuration on the left side menu and add it to your top navbar.

Step 3) Click Manage Content. Next to each set associated with the tour you will see a link that says Trailers. Click Trailers and enter the filename of your trailer e.g. modelname.flv or modelname.wmv. If you chose to have a folder for trailers you'll need to enter the folder and filename e..g. '/trailers/modelname.flv'



Adding Multiple Languages

Step 1) Click Gear Icon(Settings), select Multi-Language Setup. English is the default. There is no need to create an entry for English.

Step 2) Click Add a New Entry. Enter a name for the language e.g. French.

You may specify a different images folder for each language. By default, the system will use the /images/ folder, however. in version 3.2 and higher, the section heading images are in English.  You may wish to use different graphics for each language. In this case, specify the corresponding folder where you will put the images e.g.  /dutch/

Step 3) Specify which language should be used by default when someone accesses the site. This name should match the name of one of your language entries (or be set to English).

Step 4) In admin, for all text fields you will now see additional fields where you can edit/enter the text for the other languages. In your 'members' area, on the right-hand side will be a dropdown for selecting the language.

Step 5) To switch between languages in your members or tour areas, use the ?lang=X  where X is the ID number of the language you wish to use.

Example:
If you create the following entries in the Multi-Language admin area:
Spanish is ID:1
French is ID:2

It stores a cookie.

Clears cookie, Sets to English.
 
Spanish
 
French.
You will need to enter the translated words for most entries in the Template fields admin.

Is there a way to Batch add content sets to a tour? Like in the Batch Tool?

Not in the batch tool directly, but you can add them in a batch by going to your Tour Manager(On the left hand side quick menu).
Select "Manage Content" for the tour of your choice and then select "add a new entry" and then select the sets you wish to add. You will have to manually select the sets and they will not be pre-populated like when you were using the Batch Tool.

You can filter the sets you wish to select the "content types" filter drop down menu, (With MegaPass you can seldct the "All sites" filter drop down menu to select which subsites you wish to view before selecting). Once the check boxes are checked, you'll need to scroll down to the end of the page and click the "Add selected" button. Once this operation is completed you will need to select the sets and then tell the system to create the preview thumbnails for the sets you selected by scrolling down and selecting the thumbnails and click the "Process" button.

This guide wil cover importing multiple sets of content into the system using scan and batch tools.

1) Go to Utilities >>  Impoirt Export >>Scan And Add New Sets

Select a date for all new sets to be set to use.
( This will scan and identify all set folders that are not currently in the system. All sets will be added but not imported. The sets will use the folder name as the set name )
When this is finished it will take you to the Batch Operations area, normally under "Utilities  >>  Batch Operations"

2) The selected sets you wish to batch import shpould be on the right hand side 'include' column.

select the  "Import Content "   check box. (no other option can be performs when checking this.
(This will import and index each sets content into the system, but will not transcode or create any thumbs. This must be done separately. )

3) When the above import process is finished you will be returned to the Batch Operations page.

Select the sets you wish to batch import and move them to the right hand side 'include' column if they are not already on the right hand side.

Select which options you wish to perform on all these sets. Make sure to select the following:

Calculate Image Sizes / Movie Information
Recalculate Set XML
Recalculate Totals

All other options (besides import) can now be used. (Transcolde files, create Photos, etc.)

**NOTE:   the batch tool will send video operations to the video queue just like normal, but all other operations  will be done in real time. You MUST keep the batch window open and maintain a internet connection. If you close the window, enter sleep mode, or loose connection you will stop the processing.

Batch Schedule Updates
Location - Sets

This enables bulk/batch scheduling of updates either by date or by time release.

Step 1) Check the box(es) of the set(s) you want to include in the bulk scheduling.

Step 2) Select either Option 1 or Option 2.

Option 1: This option lets you specify a length of time and have the system calculate when to publish each update. For example, if you had 4 sets selected and entered 24 days, the system would publish an update every 6 days.

Option 2: This option lets you specify an update frequency and have the system calculate when to update. For example, if you enter 7 days, the system will schedule the selected sets to be published in 7 day increments. The first set will be shown in 7 days, the next one in 14 days and so on.

Option 2 includes a secondary option for scheduling the updates based on dates or based on days until visible if the time release is enabled under Setup.

Change Tour and Member Area Text

There are 2 different types of text that can be edited within the admin panel without editing any of the page templates. One is the general text, top navbar text and copy that appears throughout the site. The other is text that represents Photos and Videos such as the links that show on the photo gallery and movie pages inside the members area.

To edit the Photo/Video text:

Step 1) Click Plug-Ins and then Manage Watermarks and Photo Settings. Here you will see entries for your full size photos. If you have multiple sizes of photos, the text under the Name heading will be displayed on your photo gallery pages.

Step 2) Click Utilities, Media Types. The text shown under the Label heading is what will be displayed in your members area for the movie formats and download links on movie pages.

To edit general site copy and navigation text:

Step 1) Click Plug-Ins, Manage Template Fields. Here you can edit each text entry and change the value as needed. The fields are named to correspond with the item and have descriptor prefixes such as titletxt, navtxt to make identification easier.

 

CMS Quick Start Guide

Step 1) The First Time You Login - Protect your CMS admin panel by setting up an administrator login.

Go to your CMS admin panel URL. Click the Administrator Access link on the left side. You'll want to create logins for administrators so you can password protect the admin panel.

Step 2) Select a Site to Manage.

If you have multiple sites, each time you log in you'll start by choosing a site to manage from the Multi-Site dropdown menu at the top right corner.

Step 3) Add or Edit Categories.

Click Categories on the top navigation bar. Here you can edit/delete and create keyword tags for your updates.

Important Note - DO NOT add or edit anything under the Areas section or your pages may not display photo and movie content properly. All category tags must be added within the Tags section.

Step 4) Add Content to the CMS.

1) FTP to your server. Find your members folder and the content/upload folder. Upload your content sets following the folder and file structure and file naming conventions of the example sets that were setup by us during the installation process.

2) Click Sets on top navigation bar. This will list all content in the database for the current site.

Click Add a New Entry.

Enter the title and update date (or number of days a member must be active before the set is available). Choose the directory where the content is stored. enter the text description/story, associate categories and models, etc.

To add models enter a model name and assign that model to the update. You can also click Plug-Ins/Content Associations or click the Associations icon on the left side or top navigation bar.

At the bottom of the Set Add/Edit page is a button to "add entry" to the system

YOU MUST CLICK THE "ADD ENTRY" BUTTON IN ORDER FOR CONTENT TO BE ADDED TO THE CMS

If you wish to continue editing after you process the set, check the box to  "Return to this page after completing add / import."

Note - Some processes take longer than others and the time is based on both the size of the files as well as the number of files and also what processes are selected. It may take longer if you are zipping images or creating thumbnails and/or calculating sizes and counts. Video transcoding is not instant and this process runs at 5 minute intervals. Videos will take time to encode.

Descriptions of common checkboxes on the Set Add/Edit or batch page:

Create Content: [Video Thumbnails] - Create video screencap for each video (or clip)

Create Content: [1600] - Resize to 1600, compress and/or watermark full size photos

Create Zip file(s): [Zip] - Create a Zip file containing full size photos

Preview Thumbnails: Coming Soon Thumb - Use the main set thumbnail and automatically resize it for use as the coming soon thumbnail

Preview Thumbnails: Set/Update Preview Thumb - This will auto-crop the main update thumbnail

Preview Thumbnails: Preview Animation 1-6 - Take a series of screencaps of video to use for mouse over animation on thumbnails

Preview Thumbnails: DVD Scene Thumb 1-8 - Take a series of video caps to show as DVD scene preview thumbs on DVD page

Import - Save the data record in the database and detect which content formats are present

Calculate Image Dimensions and Movie Information - Count the number of photos and determine video lengths

 

Step 5) Crop or Upload a Thumbnail For The Update

To crop a thumbnail click Sets on the top navigation bar. Click Thumbs next to an update and. Click Select and Crop a Thumb from This Set.

Click the photo you want to crop and it will load in the cropper. Select the sharpen amount from the dropdown as needed. A sharpen setting of 2 usually works well.  Select the area you want to crop by clicking and dragging on the image and clicking the crop button above the image.

To change the size of the thumbs used to represent each photo set click Setup and locate the Content Configuration section of the page. Edit the Preview Thumbnail Width and Preview Thumbnail Height as needed. Some thumbnail sizes are specified under Utilities/Priority Defaults.

Note About Multiple Thumb Sizes - Since the design features multiple sizes we've automated the resizing of thumbs to save time. After you crop the main thumbnail for an update, you can have the system auto-create the coming soon thumbnail by clicking Sets, clicking Edit for a specific set and checking the box Preview Thumbnails: Coming Soon Thumb. This can also be done in bulk for multiple sets under Utilities/Batch Operations.

Version 3.2: Default Template Priority Guide

To change the size of the thumbs used to represent each photo set click Setup and locate the Content Configuration section of the page. Edit the Preview Thumbnail Width and Preview Thumbnail Height as needed. Some thumbnail sizes are specified under Utilities/Priority Defaults.

Below is a guide for cropping multiple thumb sizes for use with the default member area design template.

Update Thumbs (Cropped Under Under Sets)
--------------------------------------------------------------------------------
Priority 14: Update thumbnail shown site-wide
Priority 10: Members index page - what's hot. Also used on search results page
Priority 13: Members index page - coming soon
Priorities 20-25: Series of screencaps of video for mouse over animation on thumbnails
Priorities 26-33: Series of video caps to show as DVD scene preview thumbs on DVD page

Model Thumbs: (Cropped Under Associate Plug-In)
--------------------------------------------------------------------------------
Priority 11: Model bio page
Priority 16: Models a-z category page listing. Also used for member's index page large top models list thumbnail
Priority 17: Members index page top rated models list small thumbnail

Important - The model thumbs can ONLY be cropped under the Content Associations Plug-in. You should see an icon on your top navigation bar titled Associate and if not, please click Toolbar Configuration on the left side menu and add this icon. Next to each model's entry you'll see Thumbs. Clicking this will let you crop the thumbs for the models.

Note - Thumbs can be bulk generated for multiple sets under Utilities/Batch Operations.

 

Step 6) Add Models to the CMS and edit Model Bios

1) Click the Associate icon on the left side or top navigation bar or click Plug-Ins/Content Associations. If you do not see this icon, click Toolbar Configuration on the left side menu and add it.

Here you can add models and associate them with updates. When you add and/or edit a model you'll see bio and up-sell fields. These can be managed under Plug-ins/Extra Fields, however editing them may require changes be made to the site template.

2) Crop Model Thumbnails

Click Thumbs next to a model.

For the model thumbnails, each thumbnail is assigned a Priority which determines the size as well as where on the site the image will show up.

There are 2 sizes of model thumbnails. Priority 11 is the large model image shown on a model bio page.

When you load a model's photo in the cropper, you'll see a Priority dropdown menu at the top of the page. Select 11 from the dropdown and sharpen as needed. A sharpen setting of 2 usually works well. will crop a small thumb for use on the top rated models list n the index page.

To change the size of the thumb used for the model bio page click Utilities and then Priority Defaults and edit the size of the thumbnail assigned to Priority 11.

To change the size of the thumb used for the top rated models list click Utilities and then Priority Defaults and edit the size of the thumbnail assigned to Priority 17.

To change the size of the thumb used for models a-z category page listing list click Utilities and then Priority Defaults and edit the size of the thumbnail assigned to Priority 16.

Note About Multiple Thumb Sizes - Since the design features multiple sizes we've automated the resizing of thumbs to save time. After you crop the main thumbnail for an update, you can have the system auto-create the coming soon thumbnail by clicking Sets, clicking Edit for a specific model and checking the boxes for Preview Thumbnails: Toplist Small and Large. This can also be done in bulk for multiple models under Utilities/Batch Operations.

Step 7) Edit Your Site's Title

Click Plug-ins/Template Fields and edit the field named titletxtindex. The default title is "Elevated X, Inc. cms Demo.

Step 8) Add a What's Hot Movie to the Index page

Click Plug-Ins/What's Hot. You can schedule specific updates to show here. If you add multiple updates but don't schedule them they'll rotate at random.

To change the size of the thumb used for What's Hot click Utilities and then Priority Defaults and edit the size of the thumbnail assigned to Priority 10.

Step 9) Add and Change Banners

On the default design template there are banners that appear on the index page as well as the news, favorites, bonus, gallery and model pages.

Click Plug-ins/Banner Manager.

You can enter text only for a text ad or upload a gif, jpg or swf file. Zone controls where on the site the banner will show. Several zones have been added by default. You can create new zones as needed but will need to edit the templates to add a tag to define where a zone will be placed on a page. Target ads by associating the banner with specific models, sites or categories.

More information on banners can be found at https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/169/8/version-32-banner-manager

Step 10) Change the Top Navbar Icons

On the left side is Toolbar Configuration. Each admin user can change the top icon bar to suit his or her preferences and desired workflow.

Step 11) Change Site Text, Footer Text for 2257/Email, etc.

All site text and footer text and links can be edited by clicking Plug-Ins, Template Fields.

More step by step guides for common tasks can be found at http://support.elevatedx.com

Step 1: In the CMS admin panel click Content, Upload Content to access the web based content uploader.


Step 2: Create a new content folder

Step 3: Click Add & Edit Files

Step 4: Select content to upload photos or a video file, or trailer to upload a trailer video.

You can upload individual JPG images or a Zip file of JPGs.

NOTE - You can only upload 1 video file per content folder.



Step 5: Click done uploading, enter a title, description, schedule and any other data for the update and select appropriate boxes to process content.

Crop Video Thumbnails for Preview Thumbs

Step 1) Click the Content tab and select "Manage Content Sets"

Step 2) Click Thumbs next to the video set you wish toedit

Step 3) Click Select and crop a thumb from this set in the black bar

Step 4) In the Preferred Image Source dropdown, select a video media type

Step 5) Click the thumb displayed on the page

If a valid media type was selected from the dropdown, this will load a full size screenshot of your video.

Step 6) If you scroll down, under the video you will see options for navigating frames in the movie. You can skip ahead 1 frame, 10 frames, 100 or 1000 frames. Navigate to a frame you would like to crop.

Step 7) Click the Create a Thumb from This Frame button. This will load the image into the cropper.

From here the process is the same as when you crop a photo for use as a thumbnail.

Custom Pages

Custom Pages is free feature update in the most recent version of Elevated X 3.2. It allows you to display standard HTML code into page templates in your members and tour areas of your site. Each custom page has it's own URL. Iframes are supported as long as they fit inside the template. Each custom page can have a custom Smarty template to adjust the layout elements of the custom page.

Custom Pages feature requirements:

1) Version 3.2 or later of Elevated X.
2) Must be using Smarty templates (XSL not supported)

Please follow the steps listed below.

1) If you are not on a current version of 3.2, open a support ticket in the "Upgrade" department for a system update via this ticketing system. Please state that you are looking for the custom pages feature to be added to your system. (Free system upgrades are performed on a first come, first serve basis and make 4-5 business days to complete. )

2) After the system update, we will upload some additional required smarty templates to your main smarty template folder and some new php pages to your members and tour areas.
(You can them copy them to your other sites for use on other site IDs.)

3) To use the custom pages plugin, go to your plugin area of your CMS admin panel. Located the "Custom pages" plugin and click "Manage"
Custom Pages 1

4) click the "Add a new entry" button.
Custom Pages 2

5) Fill out the fields for each area:
Custom Pages 3

Description of Each Field:
Title:  Title of the pag that will appear in the browsers top title area.
Show Inside Members Area:  Click here if you want this page to show inside the members area
Show Outside Members Area:  Click here if you want this page to show in outside members area(trial area)
Show In Mobile Members Area:   Click here if you want this page to show in the mobile members area. (Mobile addon requiured)
Body: This is where you paste your basic HTML code. All image links/references should use absolute paths.(full URLS to the images already uploaded on your server.) Iframes are supported but should be small enough to fit in your templates.
 
Custom Template:   If you have modified the 'custompages.tpl' smarty file(to remove comments, remove left or right had side nav components, etc) and saved as a new file name, enter that name and location here. (system defaults to the smarty template folder assigned to the site ID. default = smarty0)
Public Custom Template:  If you have modified the 'custompages_outside.tpl' smarty file and saved as a new file name, enter that name and location here. (system defaults to the smarty template folder assigned to the site ID. default = smarty0)

SEO FIELDS:(requires SEO friendly URLS plugin)
Custom SEO URL: if you wish to change the SEO friendly url. THis will be the page name in the URL for your custom page.
Custom SEO Meta Description:  if you wish to create a unique meta description for this page.
Custom SEO Meta Keywords: if you wish to create a unique meta keywords for this page.

Custom Pages 4
Click the "Edit Entry" and your new custom page will be availble via the following URLs.

Members Area:  http:// < your domain name.com >/members/pages.php?id=Test-Page-Title
Tour Area:    http:// < your domain name.com >/tour/pages.php?id=Test-Page-Title

An example would be something like this:
Custom Pages 5


You can do this by creating a valid username(members account) for the owner with your payment processor. After this is done, in the CMS admin panel go the Gear Icon >> Users >> find the valid user and click the 'edit' link. Click the checkbox for "Show All Updates" and then "Save Entry".

This will allow that user to view all sets in the system regardless of date and they can preview the sets as needed.

Memcached enables you to store the queries in RAM on your dB server to decrease page load times and prevent query files from being written to the server.

After your host has made the changes to your server and provided you with the IP address, port number, and memory, begin the settings changes:

Under the gear icon on the right-hand side of the CMS admin panel, go to "Global Settings"
Next, locate the "MySQL Query Caching" area and change the method to "memcached server" and make any changes to the "Memcached Host" area.

Enter memcached server information separated by commas.

Format: hostname:port:memory,hostname:port:memory.

Hostname: The machine name that hosts the memcached server
Port: The port the memcached server uses.
Memory: The amount of memory allocated to the memcached server.

Save your changes and you should be ready to go.

Please let us know if you run into any issues.

You can export sets between sites via the 'export sets' function located in the 'Utilities' area of your CMS admin panel.
Click the 'Utilities' tab, then click on the "Export Sets' button, then follow the directions below.

1) Select the sets you wish to export to the other site ID's, and add them to the right hand column
2) Select a Site(s) to Export To by checking the corresponding check-boxes
3) If you are exporting to an all-access subsite, you may wish to enter a folder name which will help keep your site content organized, otherwise do not enter a prepend folder in the 'Prepend Folder:' area
4) select Select Model Options: if you want to copy the model information to the new site
5) Select Category Options:  if you want to copy categories
6) Select 2257 Options: if you wish to copy 2257 information
7) under 'Misc Options' you have 3 choices:
   a) Copy set folders - copies the content making a duplicate in the site it is being copied to
   b) Symlink set folders - this creates a symlink to the original files, instead of copying them.
   c) Do not copy content folders
8) Click the export setting button and the operations will be completed via cron(every 5 mins) and may take some time to complete depending on the options selected.

Gallery Builder

Step 1) FTP to your server and located your cms_admin/smarty folder. Inside the smarty folder for each site is a folder named gallerybuilder which contains your gallery templates. Using the included default templates as a guide you will need to edit the HTML of your own template files to include the code from the photos and/or videos smarty files. You’ll need to save your template using the extension .tpl

Inside the gallerybuilder folder you will notice that there are 2 folders named photos and videos. These contain the image files for each template. The images folder must be named the same as the template so photos.tpl has a folder named photos. A template named blue_15pics.tpl would have a folder named /blue_15pics

Step 2) Login to your cms admin panel. Click Galleries on the top navigation bar (if this icon is not present, click Toolbar Configuration on the left side navigation menu and add the icon). Click Add a New Template. Here you will assign and name and specify settings for the template including the location and thumbnail sizes for each corresponding image (thumbnail or video screen-cap) in the template. You can also upload a screenshot of the gallery for easy identification and selection by administrators and/or affiliates.

Step 3) On the main gallery builder page, at the top is a form field titled Add a New Collection. Enter a name for the collection and click the Add button. A collection is a collection of content sets to be used for generating 1 or more galleries

Step 4) Once you have added a collection click Manage Content next to the collection name. Here you will select the content sets you want to include in your collection. When you check a box for a content set you’ll see that it appears on the right side of the page just below a menu of options. The fields in the menu are uses to specify the number of photos to pull from the set(2) for the collection. If you specify 30 for example, the system will choose 30 random images from the photo set and use them to load your templates. Depending how many templates you have and how many times you want to use the same set in galleries, you will want to choose a large enough number of photos to avoid reuse of the same photo too many times between the different templates. This ensures that your affiliates will not import a list of duplicate galleries and each gallery will be unique.

You can do the same for number of clips.

If creating movie galleries you must specify the clip length in seconds e.g. 60, 120, 180, etc. Each clip will be cut to this length.

By default the clips are cut in order. This means the clip cutting begins at the beginning of the source file and progresses towards the end. The result here is a vide o gallery with clips that are in order from beginning to end. Selecting random from the dropdown will create a gallery of random clips from different parts of the scene.

If you want to set intervals you may specify the start point for clips and/or the length of time between each clip’s start point. This is useful if you plan to take screencaps manually or if you want to bypass the intro portion of a scene and only capture clips containing action.

Once you have added the sets you want to include in this collection, click the Save Collection button on the right side menu.

Step 5) Return to the main gallery builder page. Check the box next to the collection you want to use to build galleries and click the Build Selected Pages button.

Here you have options for the collection. This will build a series of galleries using different templates and different content depending on the selections you make.

Path to store files is where the files will be generated. This is an absolute path and you may edit it as needed.

Many of the fields are self-explanatory.

Limit Number of Templates Used Per Collection

This determine how the content is split among different templates to create unique galleries. The number specified here will be the number of times a specific collection of photos from 1 content set can be used. If you do not want the content used on more than 1 template, select 1 here. If you don’t want the system to load multiple templates with the same content you will want to set this to 1. The lower the number, the more exclusivity the content will have and you will not end up with duplicate galleries across different design templates.

Multiplier

This specifies the amount of different galleries to create from the same content set. If you specified to use 100 photos per set for the collection in step 4 above and specify 5 in the Multiplier field, the system will take 100 photos from a set and randomize them among 5 different galleries using the same or different templates if you so choose.

Only check for errors (do not batch)

This runs a pre-check to make sure that the template files are free of any coding errors that would prevent the gallery building from successfully creating galleries. If this box is checked and you select a template and hit submit, the bar next to the wizard hat icon will show an error in red that says Error: Error with smarty file (see log below). Scroll to the bottom of the page to see the error.

Include template(s)

Check the boxes for the templates you want to be used for this batch. The system will load the templates using the criteria you specified in the fields above.

Clicking the submit button at the bottom of the page will start the batch process.

To see a list of the galleries created by the system, go to the main gallery builder page and click View Export Logs. You can click the links for Today, Last 3 Days or Last week or enter a date range to sort galleries.

The export log is used for internal or affiliate use for bulk importing galleries into a TGP/MGP/Etc. The log lists 1 gallery per line showing a pipe (|) delimited list of fields for each gallery in the following order.

1)     Shows whether it’s an image/movie/combo gallery

2)     Lists the Template Name

3)     Lists the gallery folder which uses the File Prefix specified in step 5 above (this would be the URL of the gallery. For example if this field lists photo1-199-bluebikini, the URL to the gallery would be something like mysite.com/galleries/photo1-199-bluebikini/index.php

4)     Lists the folder containing a random thumbnail image that will be used to represent this gallery on your affiliate front end gallery selection page

5)     Lists the folder containing your template thumbnail image that will be used to represent the template on your affiliate front end gallery selection page

6)     Lists the text description for the gallery

7)     Lists the number of photos and/or movies in the gallery

8)     Lists a comma separated list of categories for the gallery

9)     Lists the model(s) that appear in the gallery

 

 

 

 

 

 

Free Hosting Gallery Tool

Data Fields with CCBill work like this:

If you want to pass an argument called "PA", then create a data variable named "PA"
http://< domain name >/cms_admin/plugins/gallerybuilder/gallerybuilder_inputfields.php

Data fields are the arguments passed along via the Join URL. The CMS edits the URL and makes changes to the fields that are passed along the URL.

If your join URL needs to be something like this:
http://refer.ccbill.com/cgi-bin/clicks.cgi?CA=666666&PA=XXXXXXX&HTML=http://< domain name >/

You can have three fields:
CA: Make this hidden and set the default value to 666666  (This should be replaced by your CCBILL account/ID)
PA: This is the affiliate id portion that is passed from the gal_front area.
HTML: Make this a hidden field and set the default value to http://www.< domain name >.com

Make sure the sort order is set where CA is 0, PA is 1, HTML is 2.

Then, change the join URL to:
http://refer.ccbill.com/cgi-bin/clicks.cgi

Let us know if you have any other questions regarding using the FHG tool with CCBIll instead of NATs.

In the version 4.0 PHP templates, to change the members area header image simply upload your header image over the existing members header image via FTP to the following location:

/members/images/header/members_header.jpg

To replace the headers( we call them headers as banners are what advertisements are referred to ) you can simply right-click on the header image and get the location and name of the file on the server. Then use FTP to upload your new header image to the same location. If you use thew same name you can just upload your file over the existing one.

As an example, the header image for the members area is this:
http://domain-name.com/members/images/header/members_header.jpg
located on the server at:
/domain-name.com/public_html/members/images/header/members_header.jpg
The dimensions of the header image(as reported by FireFox's "View image info" right-click) is:
1,988px × 300px (scaled to 994px × 150px)
So if you create the header image at 1,988px × 300px it will scale it down to 994px × 150px on normal monitors but it will show the full resolution on displays that have high resolution.

The CMS does not manage members or members area access.

Typically the payment processor (CCBill, Epoch, Verotel, Etc.) will work with you and your host to secure the area and to make sure they have control of adding, editing, and removing users based on billing. When you want to add or create an account you will usually do it through your payment processor's interface, as they control who has access to your site.

Contact your payment processor and see what their procedure is and they should be able to advise you best as to how to proceed.


If you have a new source file type that is not currently in the setup that you wan to use as a source for creating new file formats, this guide will help you create a new soyrce entry so the system knows to look for your new file type as a source for the video transcoder. In this example we're going to create a source entry media type for .mpg so the system knows to look for .mpg files as a possible source for the transcoder.

1) Go to "Media Types" and create a new entry that uses the existing 'source mp4' entry as a basis by using the "import settings" drop down.

2) Edit the setting to your needs. in this case change the '#basename#.mp4' to '#basename#.mpg' and then chnage the "Source MP4" to read "Source MPG"

3) Go to "Video Transcoder" settings 'manage' tab in your plugins area. Use the check box "Select all" formats and then deselect the "combined streaming" option check box(as we do not want to change the settings of this item)

4) With the items selected from step 3, scrolling down to the "Bulk Edit Encoding Settings" and select "Update Sources". You should see a drop down that lists sources for the items that are selected. We want to select all the options that start with '/source/#.'. (You should see the new option you created listed there if you followed step 1) After you select all the source files you want to use, move them to the right hand pane by clicking the add button. When you have all the options you want to use as sources in the right hand "include" pane, then scroll down and click "Save Entry". The system will ask you if you are sure. Click "OK".

That's it. Your options will use the new sources to create all files. If you run into trouble please open a support ticket and let us know you need help.

Follow us on Twitter @elevatedx for product related news and feature updates!
-----------------------------------------------------
DO NOT REPLY TO THIS EMAIL
To reply, visit http://support.elevatedx.com. Replies via email are NOT entered into our ticket system.

Elevated X Technical Support
http://support.elevatedx.com

-----------------------------------------------------
For security please change the FTP and CMS admin passwords you provided as soon as your ticket is resolved.

Sometimes you want to replace photos for a set without removing the set entirely because it has videos that are present. This guide walks you through the multi-step process of removing old photos and adding new photos and processing them to an existing set.

1) On the FTP server, locate the set folder on the server and remove the 'photos, thumbs, 1024watermarked, 1280watermarked, and 1600watermarked' folders.
2) Upload the new 'photos' folder with the correct images in .jpg format.
3) In the cms_admin panel go to "Batch Operations" under 'Utilities'
4) Select the set and move it to the right-hand panel as being selected.(Included)
5) Select the 'remove content' and 'import content' options and scroll down to select 'process'. This removes the old content entries and re-indexes the set folder for all content.
6) When this process is finished, you'll want to select the set again and move it back over to the right-hand side to be selected.
7) Now select the photo processing options you want to create( Create Thumbs, Create 1024watermarked, 1280watermarked, and 1600watermarked, etc)
8) Scroll down and select "Process"
9) When this process is finished, you'll want to select the set again and move it back over to the right-hand side to be selected.
10) Now in this final pass, you'll want to select the following options:
__Calculate Image Sizes / Movie Information
__Recalculate Set XML ( ? ) Help
__Recalculate Content Totals

When this is done your set should be done and the new images are added to the existing set.


How to make a file writeable (chmod 777)

Our system requires that the content files and directories are set to be writable (chmod 777) and this guide will help you.

Telnet

  1. Connect to your web server with your telnet software
  2. Change directory with cd. Navigate to the /members/content folder 
  3. Type chmod 777 * to change mode for all files in that directory. If you only want to change mode for a special type of file your can use chmod 777 *.txt *.dat or chmod 777 filename.ext.

FTP
In this example we\'re going to use WS FTP, but you can use any other FTP software that support chmod UNIX.

  1. Connect to your server and navigate to the /members/content folder
  2. Select the folder and right click on it
  3. Select Chmod UNIX in the menu
  4. Check the checkboxes as described on the picture below

You can copy existing episode style tours to create new tours.

1) Have your host copy all the files in the current tour, to the location of the new tour.(perhaps /tour2/ )

2) Once this is done, in the admin, create a new tour entry by pressing "add a new entry " in the tour area.

3) Select "Import Settings From Tour:" and select the tour you want to copy from.

4) Rename the tour to something you will recall.

5) Change the path to the new tour in both "path" fields.

6) then save the new tour settings by pressing the "edit entry" button on the bottom.

7) Click the "manage content" for the new tour you created.

8) Select the tour in the dropdown of "Import Sets From Tour:" that you want to copy the content from. (Make sure your 'content' folder and it's contents' permissions have been set to CHMOD 777)

9) On the ftp server locate the new tour folder and edit the 'cmsinclude.ini.php' file and change the 'TOUR_ID' number to match the new tours ID number.

You should be all set to modify the new tour independently of the original tour.

How to arrange your content on the server when using the Video Suite to encode video:

The CMS system looks in your members area for a specific folder to find content for your site:

example:     /members/content/upload/

Each set of content you add into the system needs to be contained in a folder called a "set folder". The set folder holds your content and allows you to arrange it into subfolders so the system can read and process your content. (Do not to use odd symbols such as '!,@#$%^&*():;""?><[]\{}| in the file naming of set folders or files. Use _ in place of spaces and keep naming  to A-Z,a-z,0-9). Set this folders permissions to CHMOD 777 after creating/uploading it to your server using your FTP clients' "permissions" or "properties" function, usually located by clicking on the folder and then right clicking.

example:     /members/content/upload/test_content/

TIP:  We always sugest naming your set folder with unique names that help you identify the content on the server. This makes it very handy when you are trying to locate a specific scene on the FTP server. Always include some sort of identifiying date, internal set number, or the names of the talent involved. A good organized site can identify a set of content on the server just by reading the set folder name. Also, do not to use spaces when naming set folders, instead use underscores '_'.

Inside each set folder you should upload your photos(in jpg format) to a subfolder named "photos".
(Do not to use odd symbols such as '!,@#$%^&*():;""?><[]\{}| in the file naming of files or files. Use _ in place of spaces and keep naming  to A-Z,a-z,0-9). Set this folders permissions to CHMOD 777 after creating/uploading it to your server using your FTP clients' "permissions" or "properties" function, usually located by clicking on the folder and then right-click(video or photo source files))

example:     /members/content/upload/test_content/photos/

Inside each set folder you should upload your video source file movies(preferably in MP4 format) to a subfolder named either "source"

example:     /members/content/upload/test_content/source/filename.mp4

If your source format is in any other format besides .flv|.mp4|.mov|.wmv|.avi  please let us know and we can adjust the system settings so you can use these source files as a source.

Set the 'source' folder permissions to CHMOD 777 after creating/uploading it to your server using your FTP clients "permissions" or "properties" function, usually located by clicking on the folder and then right clicking.

All set folders and subfolders need to be set to CHMOD 777

Once you have uploaded your content and set the file permissions to chmod 777, you are ready to add the set of content into the CMS. Your server will process the video files on the server in the background into various sizes and formats you choose. It will take between 20 mins and 4 hours to process each line/format. Please be patient while the server works for you.

If you have any questions or trouble please open a trouble ticket via the support website.

The Elevated X CMS system can be setup to use .jpg images as source materials for the thumbnail creation for all preview thumbnails. When you upload the content for a set you would also upload a folder full of images to use for thumbnails(either  members or tour areas) and the system will use specifically named images as the thumbnail sources. Here is an example:

When you upload content for a new set you also upload a folder inside of the set folder named /preview/.

e.g= '/members/content/upload/ < set folder name >/preview/'


Inside this folder you would upload the following named images to be used for thumbnail sources:

<set folder name> /preview/001.jpg
<set folder name> /preview/002.jpg
<set folder name> /preview/003.jpg
<set folder name> /preview/004.jpg
<set folder name> /preview/005.jpg
<set folder name> /preview/006.jpg
<set folder name> /preview/007.jpg
<set folder name> /preview/008.jpg
etc.


You would then set the thumbnail source for each thumbnail position to be a "folder" and the name of the image for each position in the Preview thumbnails plugin admin panel:  

1) Go to "Plugins" >> "Preview Thumbnails"  ( /cms_admin/plugins/previewthumb/previewthumb.php )

2) Edit the Preview Thumbnail setting you wish to edit by clicking the Edit button for that setting entry

3) Locate the "Capture Type " setting and change to "Capture From Folder"

4) Change the "Source" entry to be "/preview/1.jpg" - (or whatever your folder/file name should be for that entry)
 
Examples:
Main Thumbnail: Position: 10 = /preview/010.jpg
Coming Soon Thumb Position: 13 = /preview/013.jpg
Set/Update Preview Thumb Position: 14= /preview/014.jpg

The main issue is that each set have the same /preview/ folder and the same named images inside.

Please be sure that these images and folders are readable and the folder permissions are set to CHMOD 777.

!!!!*** IMPORTANT   ****!!!
The files and folders MUST be present when the set is added to the system and after the settings have been changed, otherwise the system will not know to look for them when adding.

If you have any questions regarding this process, please open a ticket.

Export a Database via phpMyAdmin

Step 1) Either select the database you wish to use from the dropdown on the left side of the screen - OR - If you only have access to one database, click that database link (in this case, development_dev01) on the left.

 
Step 2) Click the Export tab.


Step 3) Make sure that:
a) Under Export, ALL the tables are selected
b) Under Export, SQL is selected
c) The Structure tab is checked, along with the following options underneath:
  -- Add DROP TABLE
  --  Add AUTO_INCREMENT value
  -- Enclose table and field names with backquotes
d) Make sure the data tab is checked, and the follow options underneath:
  -- Complete inserts
  -- Extended inserts
  -- Use hexadecimal for binary fields
  -- Export Type = INSERT
e) Make sure Save as File is checked.  For compression, none is recommended
f) Press the "Go" button at the bottom when ready.




Import a Database via phpMyAdmin

Step 1) Either select the database you wish to use from the dropdown on the left side of the screen - OR - If you only have access to one database, click that database link (in this case, development_dev01) on the left.

NOTE - This may be on a different phpMyAdmin panel.  Make sure you're on the right system and phpMyAdmin panel before attempting an import.

(See above screenshot from Export Database for reference)

Step 2) Click the Import tab.

Step 3) Upload the file that you generated from the export. 

NOTE - Using the export settings from above will overwrite any existing tables within the destination database.


Import / Export
Location - Utilities/Batch Operations

This feature allows sharing of settings between sites. Media Types, Categories, Extra Fields, Template Fields Full Size and Thumbnail image settings, Zip settings and Tour settings can be shared between sites.

Step 1) Check the appropriate box(es) for the setting(s) you want to import or export.

Step 2) Select the site you want to share settings with from the dropdown.

Step 3) Click either the "Import" or "Export" button. Depending on which button you click, your settings will either be applied to the site you selected in the dropdown OR the settings from the selected site will be applied to the site you are currently managing.

NOTE - The Import/Export CANNOT be undone. We advise creating a Database Backup prior to changing settings.

"Can we import all our existing double opt-in subscribers?"

Yes, you can use the CSV import tool to import your dB of subscribers. Here is how do it:

Go to Plugins >> Mailing List >> Manage. Then click "subscribers"

Then click the link for "Click here to bulk import/export email addresses." this will take you to an import screen where you can browse for a CSV file, but you want to download the current list first, so click the link for "Click here to download an export of email addresses as a CSV file." Then open the file to see your current list of subscribers. Then you can add to that list in that format. Make sure you save again as CSV format(Best to use a spresheet program like Excel). Then go back and use the upload tool to upload your new version of the Mailing list. After the import, you can send mail to those subscribers.

This guide will tell you how to enable the Live Cam Show feature of version 4.0 and above of the Elevated X Pro CMS. You'll want to make sure you are using the PHP version of our free templates which are available for download in 4 variations.( https://support.elevatedx.com/newest_templates.php )

1) Check your CMS admin panel for version number.(Should be > 4.0.0001 ) and makes ure your area is using PHP templates. If you do not see this please open a support ticket in the support area and request an upgrade.

2) In the plugins area of the admin, enable the "Live Cam Shows" plugin

3) Click the "Configure" button to the right of "Live Cam Shows" and then click "Add a new entry". Read and follow the steps to enter a name, description and the embed feed code provided by the web cam show provider. Click "Save Entry" to save the information.

4) Click on the "Show Schedule" button to set a date for the show to appear. Click the "Add Entry" button. Select a show from the drop down menu, fill out the form fields for "Title", Time range, and Time Zone, and finally, enter a description for the show. When you are done, press "Save Entry".

5) When there is a show scheduled the count down banner will display in areas as "Next Live Show" and then a count down.

6) When the live show is current(Live) the banner will read "Live Show Now" and the banner will become clickable and will take your users to a page that has the embed feed displaying for members.

7) After the show, the banner will either stop displaying or will change to the next scheduled show depending on if there are any additional shows scheduled.

This should all be very straight forward, but If you have any questions please let us know

You'll find the code for the countdown box in /site0/header.tpl starting on line 247.

Please make sue you have everything backed up before you make any modifications

Enjoy!

 

Moving the Elevated X CMS to Another Server

If your host copies everything including domains and keeps the system paths the same on the new server as they are now you should be set. The IONCube license is tied to the domain name in your Elevated X license so there are no additional steps we need to take. This is the easiest way and will also let us avoid additional work (and any charges) for the move. Please make sure before you move that your new host has all of the following requirements:  http://www.elevatedx.com/requirements.php    (failing to do so accounts for about 95% of all delays and issues when changing hosts.)

Here is what you need to tell your new host:
1) CMS Files are encoded with IONCube so make sure they use Binary transfer mode
2) Please keep system paths intact if possible. If not please make a note of all changes.
3) Make sure to copy the dB files and keep the same names/passwords/setup.
4) Test before you change DNS and leave your old host with a hosts file entry.

Should your CMS need to be reinstalled by us there is a 1-time setup fee of $250. If after the move things are not working properly or need to be repaired to work on the new server there is a 1-time support charge of $250 for move related fixes. We have done everything we can to enable you to move hosts without any involvement from us. Should you run into problems please open a support ticket with us at https://support.elevatedx.com .

Optimize JPEGs:

Optimize JPEG images is an optional process that reduced the file size of generated images by up to 20%. It uses MozJPEG 2 or 3(3 recommended).

You can access the function by navigating to your CMS admin panel, Utilities >> Optimize JPEGs.

Optimize JPEGs
Your home directory will be filled out but you can change it to focus only a specific parent folder.
You can enter an email address to send a digest report of all files that are modified.
Then click "Process"

The system will attempt to optimize files inside the selected folder, including any files multiple levels deep and inside subfolders of the selected folder.  Source files are also compressed. There is no opt-out for source files.

Remove and Re-import Content

Step 1) Click Sets, click Edit to open the content set and then ONLY check the box that says "Remove Content from this Set" and click the Edit Entry button.

Step 2) Re-open (edit) the set and check the boxes for Full Size Photos and Thumbnails and Zip Files (if applicable). Also check the Import This Set Into the Database box and click the Edit Entry button. This will result in your content set being updated to include the most recent version of the files on the server.

You may also batch remove content from all sets and/or batch create content and Zip files. Please see either the user manual or the Knowledgebase section on batch features for more information.

Renaming or Moving a Members Area

Step 1) Rename the folder or move the files to the new location

Step 2) In your cms admin panel, click "Setup" for the domain/site the files belong to. Edit the content and backup paths to reflect the new folder name.

Step 3) Via FTP, go into your cms_admin/xsl folder and locate the templates for the domain/site. You can see which ID belongs to each site by looking at the multi-site dropdown menu in your admin panel. Each site/domain has an ID to the left of it.

This ID matches the database and XSL or Template folder for that site.

Step 4)

If you use XSL Templates:

Edit main.xsl and change the css, rss and content paths near the top of the page to reflect the new members folder.

If you use Smarty Templates:

Edit smarty/smarty_folder/config/static.conf and change the members path to reflect the new members folder.

Be sure to also edit/update your tour links to point to the correct members area location.

Let us know if you need help but please note that moving files is not considered technical support and additional charges may apply.

In order to upgrade Smarty templates to no longer use the JW player, please perform the following:

1) Download the newest version of the PHP templates from here:
https://support.elevatedx.com/newest_templates.php

Under Smarty Templates, the template you will want to use is 3.2 default.

2) Within the download, there will be a folder:
/members/js/mp/

Please create the following folders for each area you're using:
 /members/js/mp/
 /tour/js/mp/
 /tube/js/mp/

Where /tour/ is your tour folder, and /members/ is your members area folders.
Then upload the contents of /members/js/mp/ into these folders.

3) Within /members/images/, there will be a folder called jqueryui. Upload this folder to /members/images/ remotely.

4) Within your /members/js/ folder, there will be the files jquery.min.js and jquery-ui.min.js. Please upload these to your /members/js/ and /tour/js/ folder respectively.

5) The following files will need to be edited or replaced within your template folder:

Standard templates:
smarty0/gallery/gallery1.tpl
smarty0/gallery/playmovie.tpl
smarty0/general/page_top.tpl
smarty0/general/searchbar.tpl
smarty0/image/image1.tpl
smarty0/image/imagenav.tpl
smarty0/image.tpl
smarty0/tour1/episode_embedded.tpl
smarty0/tour1/episode_trailer.tpl
Mobile templates (if you have mobile)
smarty0_mobile/gallery/gallery1.tpl
smarty0_mobile/tour1/episode.tpl
smarty0_mobile/tour1/page_top.tpl
Tube Tour Templates
tube/tour1/episode_trailer.tpl

If you haven't made any changes to these files, we highly recommend you upload these replacement files in place. Copies of what's changed are available here:

https://support.elevatedx.com/jw_update/smarty_templates_desktop.zip

https://support.elevatedx.com/jw_update/smarty_templates_mobile.zip

https://support.elevatedx.com/jw_update/smarty_templates_tube.zip

 

Common Pitfalls:

A guide to some of the most common upgrade pitfalls, and how to troubleshoot them, are here:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/272/0/jw-player-upgrade-guide---common-pitfalls

 

Template Changes:

If you have made template changes to these files, below are details about what has changed in each file:

 

Desktop Template Changes:

Changes in: smarty0/gallery/gallery1.tpl

Old Code:

{if (substr_count($item.Name[0],'flv') || substr_count($item.Name[0],'mp4') || substr_count($item.Name[0],'flash')) && !isset($fullplayName)} {assign var="fullplayName" value=$item}{/if}

New Code:

{if (substr_count($item.Name[0],'flv') || substr_count($item.Name[0],'mp4') || substr_count($item.Name[0],'flash') || substr_count($item.Name[0],'wmv')) && !isset($fullplayName)} {assign var="fullplayName" value=$item}{/if}

Old Code:

    <script src="jwplayer.js"></script>
    <script type="text/javascript">jwplayer.key="Ai4jB7+ua0L+B5Ib2yl8pej2kaz3Tkt8JLhB3WxeFBM=";</script>

    <script>
    {literal}
        jwplayer("mediaspacewc").setup({
            file: '{/literal}{$wc_url}{literal}',
            width: 960,
            height: 540,
            autostart: true
        });
    {/literal}
    </script>

New Code:

    <!-- These are MediaElements.js includes -->
    <script src="js/mp/mediaelement-and-player.min.js"></script>
    <link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />

    <script>
    {literal}        
        txt = '<video width="960" height="540" id="mediabox" style="width: 100%; height: 100%;" '         
        txt = txt + '>';
        txt = txt + "\n" + '<source type="video/mp4" src="{/literal}{$wc_url}{literal}" />';
        txt = txt + '</video>';
    
        $("#mediaspacewc").html(txt);            
        $('#mediabox').mediaelementplayer({
            enablePluginSmoothing: true,
            success: function(media, node, player) {
                media.play();
            }
        });   
    {/literal}
    </script>


Changes in: smarty0/gallery/playmovie.tpl

Old Code:

{assign var="flashtypes" value=".flv,.f4v,.mp4,.mpeg4,.m4v,.m3u8,.webm"}

New Code:

{assign var="flashtypes" value=".flv,.f4v,.mp4,.mpeg4,.m4v,.m3u8,.webm,.wmv"}

Old Code:

{literal}
function jw_playerload()
{
    {/literal}
    var plg1_streamer = "{$templateconf.flashmoviestreamer}"
    var plg1_type     = "{$templateconf.flashmovietype}"
    
    var plg2_streamer = "{$templateconf.flashmp4streamer}"
    var plg2_type     = "{$templateconf.flashmp4type}"
    {literal}

    var hasFlash = false;
    try {
      var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
      if (fo) {
        hasFlash = true;
      }
    } catch (e) {
      if (navigator.mimeTypes
            && navigator.mimeTypes['application/x-shockwave-flash'] != undefined
            && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
        hasFlash = true;
      }
    }    
    
    // If FLV streamer is of type http and doesn't include a full http URL, add one
    if (plg1_type == "http")
    {
        if (!plg1_streamer.match(/^http/))
        {
            areaurl = "{/literal}{#areaurl#}{literal}"
            if (areaurl.match(/^http/))
            {
                plg1_streamer = areaurl + "/" + plg1_streamer;
            }
            else if (areaurl != "")
            {
                plg1_streamer = "http://" + window.location.hostname + "/" + "{/literal}{#areaurl#}{literal}" + plg1_streamer;
            }
        }
    }
    
    passobj = {}    
    var lst = [];
    var titl = ""
    wdth = 192;
    hdth = 144;
        
    for (var cntx=0; cntx < picarr.length; cntx++)
    {
        pa = picarr[cntx]

        wdth = Math.min(980, Math.max(wdth, parseInt(picarr[cntx][2])));
        hdth = Math.ceil(parseInt(picarr[cntx][3]) * (wdth) / parseInt(picarr[cntx][2]));
        
        if (pa[7] != '')
        {
            titl = pa[7];
        }
        else
        {
            titl = "Clip #" + (cntx+1);
        }
        
        flee = pa[1] + "";
        
        listitem = {}
        listitem.label = titl;

        if (pa[9])
        {
            passobj.tracks = [{
                    file: pa[9],
                    kind: "thumbnails"
                }];
        }

        if (useimage != "")
        {
            passobj.image = useimage;
        }
        else
        {
            passobj.image = pa[8]
        }
        
        if ((flee.split('.').pop() == "mp4" || flee.split('.').pop() == "m4v" || flee.split('.').pop() == "f4v"))
        {    
            fl_streamer = plg2_streamer;
            fl_type = plg2_type;
            rtmp_prefix = "mp4"
        }
        else if (flee.split('.').pop() == "flv")
        {
            fl_streamer = plg1_streamer;
            fl_type = plg1_type;
            rtmp_prefix = "flv"
        }
        else
        {
            fl_streamer = plg1_streamer;
            fl_type = plg1_type;
            rtmp_prefix = ""
        }

        if (fl_type == "lighttpd")
        {
            passobj.startparam = "start";
            listitem.file = flee;
        }
        else if (fl_type == "http" && (fl_streamer.indexOf("stream.php") != -1) && (rtmp_prefix == "flv"))
        {        
            listitem.file = fl_streamer + "?file=" + encodeURI(flee);
            passobj.startparam = "start";
            listitem.type = "flv"
        }
        else if (fl_type == "http")
        {
            console.log("Please contact CMS support to setup / configure pseudostreaming")
            listitem.file = flee;
        }
        else if (fl_type == "rtmp" && hasFlash)
        {
            listitem.file = fl_streamer + "/" + rtmp_prefix + ":" + flee;
        }
        else
        {
            listitem.file = flee;
        }
        
        lst[lst.length] = listitem;          
    }
        
    if (flashvar_arr["galleryautoplay"] == "0")
    {
        passobj.autostart = false;
    }
    else
    {
        passobj.autostart = true;
    }
    
    passobj.sources = lst;
    passobj.width = wdth;
    passobj.height = hdth;
    passobj.primary = "flash";
    // passobj.androidhls = true;
    
    {/literal}{if (isset($root.page.trial))}{literal}
    passobj.events = {'onComplete' : (function() {

        document.getElementById('mediabox_parent').style.display = 'none';
        document.getElementById('hpromo').style.display = 'block';

        if (document.getElementById("postroll_url"))
        {
          document.getElementById("postroll_url").href = "{/literal}{$root.page.trial.VideoURL[0]}{literal}";
        }

    })};

    {/literal}{/if}{literal}
    
    ply = jwplayer("mediabox").setup(passobj);
        
    ply.onPlay(function() {
    
        if (this.getPosition() == "0")
        {
            pa = picarr[this.getPlaylistIndex()];    
        
            url = "stattrack.php?pagename=image&id=" + pa[0] + "&cg=" + pa[6] + "&type=" + pa[4] + "&mt=" + pa[5];
            $.get(url);
        }        
    });
}
{/literal}

New Code:

{literal}

extl = [];
extl["m4v"] = "video/mp4";
extl["m3u8"] = "application/x-mpegURL";

function jw_playerload()
{
    {/literal}
    var plg1_streamer = "{$templateconf.flashmoviestreamer}"
    var plg1_type     = "{$templateconf.flashmovietype}"
    
    var plg2_streamer = "{$templateconf.flashmp4streamer}"
    var plg2_type     = "{$templateconf.flashmp4type}"
    {literal}

    var hasFlash = false;
    try {
      var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
      if (fo) {
        hasFlash = true;
      }
    } catch (e) {
      if (navigator.mimeTypes
            && navigator.mimeTypes['application/x-shockwave-flash'] != undefined
            && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
        hasFlash = true;
      }
    }    
    
    // If FLV streamer is of type http and doesn't include a full http URL, add one
    if (plg1_type == "http")
    {
        if (!plg1_streamer.match(/^http/))
        {
            areaurl = "{/literal}{#areaurl#}{literal}"
            if (areaurl.match(/^http/))
            {
                plg1_streamer = areaurl + "/" + plg1_streamer;
            }
            else if (areaurl != "")
            {
                plg1_streamer = "http://" + window.location.hostname + "/" + "{/literal}{#areaurl#}{literal}" + plg1_streamer;
            }
        }
    }
    
    passobj = {}    
    var lst = [];
    var titl = ""
    wdth = 192;
    hdth = 144;
    var uimage = "";
    var started = 0;
        
    for (var cntx=0; cntx < picarr.length; cntx++)
    {
        pa = picarr[cntx]

        wdth = Math.min(980, Math.max(wdth, parseInt(picarr[cntx][2])));
        hdth = Math.ceil(parseInt(picarr[cntx][3]) * (wdth) / parseInt(picarr[cntx][2]));
        
        if (pa[7] != '')
        {
            titl = pa[7];
        }
        else
        {
            titl = "Clip #" + (cntx+1);
        }
        
        flee = pa[1] + "";
        
        listitem = {}
        listitem.label = titl;

        uimage = (useimage != "") ? useimage : pa[8];
        
        ext = flee.split('.').pop().split("?").shift();
        listitem.type = (extl[ext] != undefined) ? extl[ext] : "video/" + ext;
        
        if ((flee.split('.').pop() == "mp4" || flee.split('.').pop() == "m4v" || flee.split('.').pop() == "f4v"))
        {    
            fl_streamer = plg2_streamer;
            fl_type = plg2_type;
            rtmp_prefix = "mp4"
        }
        else if (flee.split('.').pop() == "m3u8")
        {
            fl_streamer = plg1_streamer;
            fl_type = plg1_type;
            rtmp_prefix = ""
        }
        else if (flee.split('.').pop() == "flv")
        {
            fl_streamer = plg1_streamer;
            fl_type = plg1_type;
            rtmp_prefix = "flv"
        }
        else if (flee.split('.').pop() == "wmv")
        {
            fl_streamer = plg2_streamer;
            fl_type = plg2_type;
            rtmp_prefix = "mp4"
        }
        else
        {
            fl_streamer = plg1_streamer;
            fl_type = plg1_type;
            rtmp_prefix = ""
        }
        
        if (fl_type == "lighttpd")
        {
            listitem.src = flee;
            passobj.enablePseudoStreaming = true;
        }
        else if (fl_type == "http" && (fl_streamer.indexOf("stream.php") != -1) && (rtmp_prefix == "flv"))
        {        
            listitem.src = fl_streamer + "?file=" + encodeURI(flee);
        }
        else if (fl_type == "http")
        {
        //    console.log("Please contact CMS support to setup / configure pseudostreaming")
            listitem.src = flee;
        }
        else if (fl_type == "rtmp" && hasFlash)
        {
            listitem.src = fl_streamer + "/" + rtmp_prefix + ":" + flee;
        }
        else
        {
            listitem.src = flee;
        }
        
        lst[lst.length] = listitem;          
    }

    try
    {
        txt = '<video width="' + wdth + '" height="' + hdth + '" id="mediabox_sub"'
        
        if (uimage != "" && flashvar_arr["galleryautoplay"] == "0")
        {
            txt = txt + ' poster="' + escape(uimage) + '" ';
        }
        
        txt = txt + '>';
        for(i = 0; i < lst.length; i++)
        {
            txt = txt + "\n" + '<source type="' + lst[i].type + '" src="' + lst[i].src + '" />';
        }
        txt = txt + '</video>';
        
        // console.log(txt);
    
        $("#mediabox").html(txt);
        
        passobj.mode = "auto_plugin";
        passobj.enablePluginSmoothing = true;
        passobj.success = function(media, node, player) {
                
            media.addEventListener('play', function(e){

                if (started == 0)
                {    
                    for(i = 0; i < picarr.length; i++)
                    {    
                        if (media.src.contains(escape(picarr[i][1])))
                        {
                            url = "stattrack.php?pagename=image&id=" + picarr[i][0] + "&cg=";
                            url = url + picarr[i][6] + "&type=" + picarr[i][4] + "&mt=" + picarr[i][5];
                            $.get(url);
                            break;
                        }
                    }

                    started = 1;
                }
            });

            media.addEventListener('ended', function(e){
                started = 0;
            });
            
            if (flashvar_arr["galleryautoplay"] != "0")
            {
                media.play();
            }
            
            
            {/literal}{if $root.page.trial}{literal}
            
            media.addEventListener('ended', function(e){

                document.getElementById('mediabox_parent').style.display = 'none';
                document.getElementById('hpromo').style.display = 'block';
        
                if (document.getElementById("postroll_url"))
                {
                  document.getElementById("postroll_url").href = "{/literal}{$root.page.trial.VideoURL[0]}{literal}";
                }

            });
            
            {/literal}{/if}{literal}
        };
        
        $('#mediabox_sub').mediaelementplayer(passobj);        
    }
    catch(e)
    {
        alert(e)    
    }
    
}
{/literal}


Changes in: smarty0/general/page_top.tpl

Remove this code (if present):


        if (typeof jwplayer !== 'function')
        {
            alert("Warning: File jwplayer.js not found.");
        }

        if (typeof Silverlight !== 'object')
        {
            alert("Warning: File silverlight.js not found.");
        }

        if (typeof jeroenwijering !== 'object')
        {
            alert("Warning: File wmvplayer.js not found.");
        }

Remove this code (if present):

{** Flash Code **}
<script type='text/javascript' src='jwplayer.js'></script>
<script type="text/javascript">jwplayer.key="Ai4jB7+ua0L+B5Ib2yl8pej2kaz3Tkt8JLhB3WxeFBM=";</script>
{** Silverlight Code **}
<script type='text/javascript' src='silverlight.js'></script>
<script type='text/javascript' src='wmvplayer.js'></script>

Add this code in its place (even if above is not present):

<!-- These are MediaElements.js includes -->
<script src="js/mp/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />

Remove this code (if present):

<!-- AutoComplete -->
<script type="text/javascript" src="js/jquery.autocomplete.min.js"></script>
<link rel="stylesheet" type="text/css" href="js/jquery.autocomplete.css" />

Add this code in its place (even if above is not present):

<!-- jQuery-UI -->
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="./images/jqueryui/jquery-ui.min.css" />

Replace instances of:

<script type="text/javascript" src="js/jquery-1.3.4.min.js"></script>

With:

<script type="text/javascript" src="js/jquery.min.js"></script>

(In this case, any time there's a version number within the jquery library, replace it with one without one).

 

 

Changes in: smarty0/general/searchbar.tpl

Old Code:

 Anything that appears within a <script>...</script> tag.

New Code:

<script>
{literal}

$().ready(function()
{
    $("#autosuggest").autocomplete({
      source: function(req, add){
        $.get('search_ajax.php?q=' + req.term, function(data) {

            arrStor = [];

            arrLabel = new Array();
            arrURL   = new Array();
            var arg= data.split("\n");

            for(var i=0; i < arg.length; i++)
            {
                ix = arg[i].split("|");

                if (ix.length == 2)
                {
                    arrStor[arrStor.length] = {label:ix[0].trim(), value:ix[1].trim()}
                }
                
                if (arrStor.length >= 15) break;
            }

            add(arrStor);
        });
      }
    });


});
{/literal}
</script>


Changes in: smarty0/image/image1.tpl

Old Code:

{foreach from=$root.page.contenttypesub.type item=contenttype}

{if $root.page.settype[0] == "vids" && $root.page.mediatype_attr[0].value == $contenttype.Name[0]}
  {assign var="mtt" value=$contenttype}

  {if (
         $mtt.Pattern[0]|@contains:'flv' ||
         $mtt.Pattern[0]|@contains:'mp4' ||
         $mtt.Pattern[0]|@contains:'m4v'
        )}
        {assign var="flasht" value=1}
  {/if}
{/if}
{/foreach}

{** check if the Media Type is flv or Flash **}
{foreach from=$root.page.mediatype_attr item="mitem"}
    {if (
         $mitem.value|@contains:'flv'   ||
         $mitem.value|@contains:'flash' ||
         $mitem.value|@contains:'mp4'   ||
         $mitem.value|@contains:'mpeg4' ||
         $mitem.value|@contains:'m4v'   ||
         $flasht == '1'
        )}
        {assign var="flashmovie" value=1}
    {/if}
{/foreach}

New Code:

{foreach from=$root.page.contenttypesub.type item=contenttype}

{if $root.page.settype[0] == "vids" && $root.page.mediatype_attr[0].value == $contenttype.Name[0]}
  {assign var="mtt" value=$contenttype}

  {if (
         $mtt.Pattern[0]|@contains:'flv' ||
         $mtt.Pattern[0]|@contains:'mp4' ||
         $mtt.Pattern[0]|@contains:'m4v' ||
         $mtt.Pattern[0]|@contains:'wmv'
        )}
        {assign var="flasht" value=1}
  {/if}
{/if}
{/foreach}

{** check if the Media Type is flv or Flash **}
{foreach from=$root.page.mediatype_attr item="mitem"}
    {if (
         $mitem.value|@contains:'flv'   ||
         $mitem.value|@contains:'flash' ||
         $mitem.value|@contains:'mp4'   ||
         $mitem.value|@contains:'mpeg4' ||
         $mitem.value|@contains:'m4v'   ||
         $mitem.value|@contains:'wmv'   ||
         $flasht == '1'
        )}
        {assign var="flashmovie" value=1}
    {/if}
{/foreach}


Changes in: smarty0/image/imagenav.tpl

Old Code:

                {if $root.page.settype[0] == $root.page.movietabs.item[0]}
                    
                {else}
                    < {$templateconf.txtprevious}&nbsp;{$templateconf.txtPhoto}
                {/if}

New Code:

                {if $root.page.settype[0] == $root.page.movietabs.item[0]}
                    < {$templateconf.txtprevious}
                {else}
                    < {$templateconf.txtprevious}&nbsp;{$templateconf.txtPhoto}
                {/if}

Old Code:

                {if $root.page.settype[0] == $root.page.movietabs.item[0]}
                    
                {else}
                    {$templateconf.txtnext}&nbsp;{$templateconf.txtPhoto}>
                {/if}

New Code:

                {if $root.page.settype[0] == $root.page.movietabs.item[0]}
                    {$templateconf.txtnext}&nbsp;>
                {else}
                    {$templateconf.txtnext}&nbsp;{$templateconf.txtPhoto}>
                {/if}


Changes in: smarty0/image.tpl

Old Code:

{assign var="flashtypes" value=".flv,.f4v,.mp4,.mpeg4,.m4v,.m3u8,.webm"}

New Code:

{assign var="flashtypes" value=".flv,.f4v,.mp4,.mpeg4,.m4v,.m3u8,.webm,.wmv"}

Old Code:

{literal}
    function jw_playerload()
    {
        {/literal}
        var plg1_streamer = "{$templateconf.flashmoviestreamer}"
        var plg1_type     = "{$templateconf.flashmovietype}"
        
        var plg2_streamer = "{$templateconf.flashmp4streamer}"
        var plg2_type     = "{$templateconf.flashmp4type}"
        {literal}

    
    
        ld = -1;
    
        dc = document.location + ''
        dc = dc.substr(0,7) + dc.substr(7, dc.indexOf('/',7)-7) + '/'


        if (plg1_type == "http")
        {
            if (!plg1_streamer.match(/^http/))
            {
                areaurl = "{/literal}{#areaurl#}{literal}"
                if (areaurl.match(/^http/) && areaurl != "")
                {
                    plg1_streamer = areaurl + "/" + plg1_streamer;
                }
                else if(areaurl != "")
                {
                    plg1_streamer = "http://" + window.location.hostname + "/" + "{/literal}{#areaurl#}{literal}" + plg1_streamer;
                }
            }
        }
    
        passobj = {}    
        var lst = [];
        var titl = ""
        wdth = 320;
        hdth = 240;
        barwidth= 205;    
    
        parx = []
    
        {/literal}
        {assign var="clippos" value="0"}
    
        {foreach from=$root.page.content.item item="item" key="ki"}
        {foreach from=$item.Files.file_attr item="itemf" key="kf"}
        {if $itemf.name == $root.page.mediatype_attr[0].value}
        {assign var="clippos" value=$clippos+1}
        {if !isset($root.page.trial) || (in_array($clippos, $root.page.trial.AccessClips.page) || $root.page.trial.AccessClips.page[0] == 0 || in_array($root.page.contentgroup.Id[0], $root.page.trial.AllowRecent.Id))}
    
            {assign var="position" value=$ki+1}    
            {assign var="tmpfile1" value=""}
            {assign var="vtt_file" value=""}

            {if $cms_pro && $item.Files.file_attr[$kf].vtt_file}
                {capture assign="vtt_file"}{#contentdir#}/upload/{$root.page.contentgroup.Directory[0]}/{$item.Files.file_attr[$kf].vtt_file}{/capture}
            {/if}
            
    
            {if $itemf.sourcetype == $root.page.settype[0] && $itemf.name=='thumb' }
                {assign var="tmpfile1" value=$item.Files.file[$kf]}
            {/if}

            {if $tmpfile1 == ""}
                {foreach from=$item.Files.file_attr item="itemf2" key="k3"}
                    {if $itemf2.name == 'thumb' and $itemf2.cname=='Large Video Thumbnails' }
                        {assign var="tmpfile1" value=$item.Files.file[$k3]}
                    {/if}
                {/foreach}
            {/if}

            {if $tmpfile1 == ""}
                {foreach from=$item.Files.file_attr item="itemf2" key="k3"}
                    {if $itemf2.name == 'thumb' and $itemf2.cname=='Video Thumbnails' }
                        {assign var="tmpfile1" value=$item.Files.file[$k3]}
                    {/if}
                {/foreach}
            {/if}
            
            {assign var="useimage" value=""}
            
            {foreach from=$root.page.contentgroup.PreviewXML.element.item_attr item=itm}
             {if $itm.priority == 9}
              {if $itm.2x_width != 0}
                {capture assign="fldr"}{math equation="floor(x / 100 % 100)" x=$itm.Id format="%02d"}/{math equation="x % 100" x=$itm.Id format="%02d"}{/capture}
                {capture assign="useimage"}{#contentdir#}/contentthumbs/{$fldr}/{$itm.Id}-2x.{$itm.Extension}{/capture}
              {else}
                {capture assign="useimage"}{#contentdir#}/contentthumbs/{$itm.Id}.{$itm.Extension}{/capture}
              {/if}
             {/if}
            {/foreach}
            
            parx[parx.length] = {literal}{{/literal}
                id: {$item.Id[0]},
                file: "{#contentdir#}/upload/{$root.page.contentgroup.Directory[0]}/{$item.Files.file[$kf]}".replace("//", "/"),
                title: "Clip {$clippos}",
                {if $useimage}
                image: dc + "/{$useimage}",
                {elseif $tmpfile1}
                image: dc + "/{#contentdir#}/upload/{$root.page.contentgroup.Directory[0]}/{$tmpfile1}",
                {/if}
                {if $vtt_file}
                vtt_file: "{$vtt_file}",
                {/if}
                width: parseInt('{$item.Files.file_attr[$kf].movie_width}'),
                height: parseInt('{$item.Files.file_attr[$kf].movie_height}'),
                cg: "{$root.page.contentgroup.Id[0]}",
                mt: "{$root.page.mediatype_attr[0].value}",
                type: "{$root.page.settype[0]}"
            {literal}}{/literal}
        {/if}
        {/if}
        {/foreach}  
        {/foreach}
        {literal}    


        for(i = 0; i < parx.length; i++)
        {
            parxx = parx[i];
            ld = (id == parxx.id) ? i : ld;
        
            listitem = {}
            listitem.title = parxx.title;
            if (parxx.image)
            {
                listitem.image = parxx.image;
            }
            

            
            wdth = Math.max(wdth, parxx.width)
            hdth = Math.max(hdth, parxx.height)

            if ((parxx.file.split('.').pop() == "mp4" || parxx.file.split('.').pop() == "m4v" || parxx.file.split('.').pop() == "f4v"))
            {    
                fl_streamer = plg2_streamer;
                fl_type = plg2_type;
                rtmp_prefix = "mp4"
            }
            else
            {
                fl_streamer = plg1_streamer;
                fl_type = plg1_type;
                rtmp_prefix = "flv"
            }
            
            if (parxx.vtt_file)
            {
                listitem.tracks = [{
                        file: parxx.vtt_file,
                        kind: "thumbnails"
                    }];
            }
            
            if (fl_type == "lighttpd")
            {
                passobj.startparam = "start";
                listitem.file = parxx.file;
            }
            else if (fl_type == "http" && (fl_streamer.indexOf("stream.php") != -1))
            {        
                listitem.file = fl_streamer + "?file=" + encodeURI(parxx.file);
                passobj.startparam = "start";
                listitem.type = "flv"
            }
            else if (fl_type == "http")
            {
                console.log("Please contact CMS support to setup / configure pseudostreaming")
                listitem.file = parxx.file;
            }
            else if (fl_type == "rtmp")
            {                
                listitem.file = fl_streamer + "/" + rtmp_prefix + ":" + parxx.file;
            }
            else
            {
                listitem.file = parxx.file;
            }
                
            lst[lst.length] = listitem;
        }

        // Now do all of the setup stuff.

        if (flashvar_arr["galleryautoplay"] == "0")
        {
            passobj.autostart = false;
        }
        else
        {
            passobj.autostart = true;
        }
        
        passobj.playlist = lst;
        passobj.width = wdth;
        passobj.height = hdth;
        passobj.primary = "flash";
        // passobj.androidhls = true;
        
        if (lst.length > 1)
        {
            passobj.listbar = {
                position: 'right',
                size: barwidth
            }
        }
        else
        {
            barwidth = 0;
        }
    
        if (wdth+barwidth > 980)
        {
            hdth = hdth * (980-barwidth) / wdth;
            wdth = 980-barwidth;
        }
            
        passobj.width = wdth + barwidth;
        passobj.height = hdth;
        
        ply = jwplayer("mediabox").setup(passobj);
        if (ld != -1)
        {
            jwplayer("mediabox").playlistItem(ld);
        }
            
        ply.onPlay(function() {
        
            if (this.getPosition() == "0")
            {
                url = "stattrack.php?pagename=image&id=" + parxx.id + "&cg=" + parxx.cg + "&type=" + parxx.type + "&mt=" + parxx.mt;
                $.get(url);
            }        
        });
    
    }

    </script>
    {/literal}

New Code:

{literal}

extl = [];
extl["m4v"] = "video/mp4";
extl["m3u8"] = "application/x-mpegURL";

    function jw_playerload()
    {
        {/literal}
        var plg1_streamer = "{$templateconf.flashmoviestreamer}"
        var plg1_type     = "{$templateconf.flashmovietype}"
        
        var plg2_streamer = "{$templateconf.flashmp4streamer}"
        var plg2_type     = "{$templateconf.flashmp4type}"
        {literal}

    
    
        ld = -1;
    
        dc = document.location + ''
        dc = dc.substr(0,7) + dc.substr(7, dc.indexOf('/',7)-7) + '/'


        if (plg1_type == "http")
        {
            if (!plg1_streamer.match(/^http/))
            {
                areaurl = "{/literal}{#areaurl#}{literal}"
                if (areaurl.match(/^http/) && areaurl != "")
                {
                    plg1_streamer = areaurl + "/" + plg1_streamer;
                }
                else if(areaurl != "")
                {
                    plg1_streamer = "http://" + window.location.hostname + "/" + "{/literal}{#areaurl#}{literal}" + plg1_streamer;
                }
            }
        }
    
        passobj = {}    
        var lst = [];
        var titl = ""
        wdth = 320;
        hdth = 240;
        started = 0
        uimage = "";
    
        parx = []
    
        {/literal}
        {assign var="clippos" value="0"}
    
        {foreach from=$root.page.content.item item="item" key="ki"}
        {foreach from=$item.Files.file_attr item="itemf" key="kf"}
        {if $itemf.name == $root.page.mediatype_attr[0].value}
        {assign var="clippos" value=$clippos+1}
        {if !isset($root.page.trial) || (in_array($clippos, $root.page.trial.AccessClips.page) || $root.page.trial.AccessClips.page[0] == 0 || in_array($root.page.contentgroup.Id[0], $root.page.trial.AllowRecent.Id))}
    
            {assign var="position" value=$ki+1}    
            {assign var="tmpfile1" value=""}
            {assign var="vtt_file" value=""}

            {if $cms_pro && $item.Files.file_attr[$kf].vtt_file}
                {capture assign="vtt_file"}{#contentdir#}/upload/{$root.page.contentgroup.Directory[0]}/{$item.Files.file_attr[$kf].vtt_file}{/capture}
            {/if}
            
    
            {if $itemf.sourcetype == $root.page.settype[0] && $itemf.name=='thumb' }
                {assign var="tmpfile1" value=$item.Files.file[$kf]}
            {/if}

            {if $tmpfile1 == ""}
                {foreach from=$item.Files.file_attr item="itemf2" key="k3"}
                    {if $itemf2.name == 'thumb' and $itemf2.cname=='Large Video Thumbnails' }
                        {assign var="tmpfile1" value=$item.Files.file[$k3]}
                    {/if}
                {/foreach}
            {/if}

            {if $tmpfile1 == ""}
                {foreach from=$item.Files.file_attr item="itemf2" key="k3"}
                    {if $itemf2.name == 'thumb' and $itemf2.cname=='Video Thumbnails' }
                        {assign var="tmpfile1" value=$item.Files.file[$k3]}
                    {/if}
                {/foreach}
            {/if}
            
            {assign var="useimage" value=""}
            
            {foreach from=$root.page.contentgroup.PreviewXML.element.item_attr item=itm}
             {if $itm.priority == 9}
              {if $itm.2x_width != 0}
                {capture assign="fldr"}{math equation="floor(x / 100 % 100)" x=$itm.Id format="%02d"}/{math equation="x % 100" x=$itm.Id format="%02d"}{/capture}
                {capture assign="useimage"}{#contentdir#}/contentthumbs/{$fldr}/{$itm.Id}-2x.{$itm.Extension}{/capture}
              {else}
                {capture assign="useimage"}{#contentdir#}/contentthumbs/{$itm.Id}.{$itm.Extension}{/capture}
              {/if}
             {/if}
            {/foreach}
            
            parx[parx.length] = {literal}{{/literal}
                id: {$item.Id[0]},
                file: "{#contentdir#}/upload/{$root.page.contentgroup.Directory[0]}/{$item.Files.file[$kf]}".replace(/([^:])\/\//g, "$1/"),
                title: "Clip {$clippos}",
                {if $useimage}
                image: dc + "/{$useimage}",
                {elseif $tmpfile1}
                image: dc + "/{#contentdir#}/upload/{$root.page.contentgroup.Directory[0]}/{$tmpfile1}",
                {/if}
                {if $vtt_file}
                vtt_file: "{$vtt_file}",
                {/if}
                width: parseInt('{if $item.Files.file_attr[$kf].movie_width}{$item.Files.file_attr[$kf].movie_width}{else}320{/if}'),
                height: parseInt('{if $item.Files.file_attr[$kf].movie_height}{$item.Files.file_attr[$kf].movie_height}{else}240{/if}'),
                cg: "{$root.page.contentgroup.Id[0]}",
                mt: "{$root.page.mediatype_attr[0].value}",
                type: "{$root.page.settype[0]}"
            {literal}}{/literal}
        {/if}
        {/if}
        {/foreach}  
        {/foreach}
        {literal}    


        for(i = 0; i < parx.length; i++)
        {
            parxx = parx[i];
            ld = (id == parxx.id) ? i : ld;
        
            listitem = {}
            listitem.title = parxx.title;
            if (parxx.image)
            {
                uimage = parxx.image;
            }
            
            wdth = Math.max(wdth, parxx.width)
            hdth = Math.max(hdth, parxx.height)
            
            ext = parxx.file.split('.').pop().split("?").shift();
            listitem.type  = (extl[ext] != undefined) ? extl[ext] : "video/" + ext;

            if ((parxx.file.split('.').pop() == "mp4" || parxx.file.split('.').pop() == "m4v" || parxx.file.split('.').pop() == "f4v"))
            {    
                fl_streamer = plg2_streamer;
                fl_type = plg2_type;
                rtmp_prefix = "mp4"
            }
            else if (parxx.file.split('.').pop() == "m3u8")
            {
                fl_streamer = plg1_streamer;
                fl_type = plg1_type;
                rtmp_prefix = ""
            }
            else if (parxx.file.split('.').pop() == "wmv")
            {
                fl_streamer = plg1_streamer;
                fl_type = plg1_type;
                rtmp_prefix = ""
            }
            else
            {    
                fl_streamer = plg1_streamer;
                fl_type = plg1_type;
                rtmp_prefix = "flv"
            }
            
            eps = false;
            
            if (fl_type == "lighttpd")
            {
                listitem.src = parxx.file;
                eps = true;
            }
            else if (fl_type == "http" && (fl_streamer.indexOf("stream.php") != -1) && (parxx.file.split('.').pop() == "flv"))
            {        
                listitem.src = fl_streamer + "?file=" + encodeURI(parxx.file);
            }
            else if (fl_type == "http")
            {
                console.log("Please contact CMS support to setup / configure pseudostreaming")
                listitem.src = parxx.file;
            }
            else if (fl_type == "rtmp")
            {                
                listitem.src = fl_streamer + "/" + rtmp_prefix + ":" + parxx.file;
            }
            else
            {
                listitem.src = parxx.file;
            }
                
            lst[lst.length] = listitem;
        }

        // Now do all of the setup stuff.

        if (flashvar_arr["galleryautoplay"] == "0")
        {
            passobj.autostart = false;
        }
        else
        {
            passobj.autostart = true;
        }
            
        if (wdth > 980)
        {
            hdth = Math.floor(hdth * 980 / wdth);
            wdth = 980;
        }
        
        prevcss = (ld == 0) ? "nav_hid" : "nav_vis"
        nextcss = (ld == lst.length - 1) ? "nav_hid" : "nav_vis"
        
        $("#gal_prevpage").attr("class", prevcss)
        $("#gal_nextpage").attr("class", nextcss);
        $("#gal_prevpage_bot").attr("class", prevcss)
        $("#gal_nextpage_bot").attr("class", nextcss);

        try
        {
            txt = '<video width="' + wdth + '" height="' + hdth + '" id="mediabox_sub"'
            
            if (uimage != "")
            {
                txt = txt + ' poster="' + uimage + '" ';
            }
            
            txt = txt + '>';
            for(i = 0; i < lst.length; i++)
            {                
                if (ld == -1 || ld == i)
                {
                    txt = txt + "\n" + '<source type="' + lst[i].type + '" src="' + lst[i].src + '" />';
                }
            }
            txt = txt + '</video>';

            $("#mediabox").html(txt);
            
            $('#mediabox_sub').mediaelementplayer({
                mode:'auto_plugin',
                enablePseudoStreaming: eps,
                enablePluginSmoothing: true,
                
                success: function(media, node, player) {
                    
                    media.addEventListener('play', function(e){
    
                        if (started == 0)
                        {                        
                            url = "stattrack.php?pagename=image&id=" + parxx.id + "&cg=" + parxx.cg + "&type=" + parxx.type + "&mt=" + parxx.mt;
                            $.get(url);
    
                            started = 1;
                        }
                    });
    
                    media.addEventListener('ended', function(e){
                        started = 0;
                    });
                    
                    if (flashvar_arr["galleryautoplay"] != "0")
                    {
                        media.play();
                    }
                    
                    
                    {/literal}{if $root.page.trial}{literal}
                    
                    media.addEventListener('ended', function(e){
    
                        document.getElementById('mediabox_parent').style.display = 'none';
                        document.getElementById('hpromo').style.display = 'block';
                
                        if (document.getElementById("postroll_url"))
                        {
                          document.getElementById("postroll_url").href = "{/literal}{$root.page.trial.VideoURL[0]}{literal}";
                        }
    
                    });
                    
                    {/literal}{/if}{literal}
                }
            });        
        }
        catch(e)
        {
            alert(e)    
        }
        
        
    }

    </script>
    {/literal}


Changes in: smarty0/tour1/episode_embedded.tpl

  In this case, there are too many extensive changes to detail here. We recommend replacing this file entirely within your templates.


Changes in: smarty0/tour1/episode_trailer.tpl

Old Code:

{if $root.page.current.trailer_url[0] != ""}
<div align="center">
{if ($root.page.current.trailer_url[0]|@strstr:".mp4" == ".mp4") || ($root.page.current.trailer_url[0]|@strstr:".mov" == ".mov") || ($root.page.current.trailer_url[0]|@strstr:".flv" == ".flv")}

 <script src="jwplayer.js"></script>
 <script type="text/javascript">jwplayer.key="Ai4jB7+ua0L+B5Ib2yl8pej2kaz3Tkt8JLhB3WxeFBM=";</script>
 <div id="preview"><div id="jwbox"></div></div>

 <!-- HIDDEN PROMO FORM -->
 <div id="hpromo" style="width:960px; height:540px; display:none;" align="center">{$templateconf.trailerjoin}</div>
     <script>
    {literal}
        function playTrailer(){
    
            lmt = getCookieTLimit(ctlimit_name)
            remaining = maxClicks - lmt;
            
            if (document.getElementById("clicksremaining"))
            {
                document.getElementById("clicksremaining").innerHTML = remaining
            }
    
            document.getElementById('hpromo').style.display = 'none';
            document.getElementById('preview').style.visibility = 'visible';
            document.getElementById('preview').style.display = '';        
    
        
            jwplayer("jwbox").setup({
                file: "{/literal}{$root.page.current.trailer_url[0]}{literal}",
                width: 960,
                height: 540,
                primary: "flash",
                autostart: true,
                'events': {
                    onComplete: function(e) {
                        document.getElementById('preview').style.display = 'none';
                        document.getElementById('hpromo').style.display = 'block';
                    }
                }
            });
        }
        function replay(){
            document.getElementById('hpromo').style.display = 'none';
            document.getElementById('preview').style.visibility = 'visible';
    
            ret = tlimit();
            if (ret == true)
            {
                  {/literal}playTrailer();{literal}
              }
        }
    
        ret = tlimit();
        if (ret == true)
        {
              {/literal}playTrailer();{literal}
          }
    {/literal}
     </script>
{elseif $root.page.current.trailer_url[0]|@strstr:".wmv" == ".wmv"}
 <script src="silverlight.js"></script>
 <script src="wmvplayer.js"></script>
 <div id="preview"></div>
 <script>

  {literal}
  ret = tlimit();
  if (ret == true)
  {
  {/literal}

    var wdth = "640"
    var hdth = "500"
    var imgg = "{$root.page.current.trailer_url[0]}"
    var inht = "";

    {literal}
    if (Silverlight.isInstalled("1.0"))
    {
        var p_src = 'wmvplayer.xaml';
        var p_cfg = {width:wdth,height:hdth,file:imgg,autostart:'true'};
        var ply = new jeroenwijering.Player(document.getElementById("preview"),p_src,p_cfg);
    }
    else
    {
        var inht = "";

        if (document.all) // IE
        {
         inht += "<object id='mediabox' ";
         inht += "classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' ";
         inht += "codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' ";
         inht += "standby='Loading Microsoft Windows Media Player components...' ";
         inht += "type='application/x-oleobject' width='"+wdth+"' height='"+hdth+"''> ";
         inht += "<param name='fileName' value=\""+imgg+"\"/> ";
         inht += "<param name='animationatStart' value='true' /> ";
         inht += "<param name='transparentatStart' value='true' /> ";
         inht += "<param name='autoStart' value=\"true\" /> ";
         inht += "<param name='showControls' value=\"true\" /> ";
         inht += "<param name=\"ShowStatusBar\" value=\"true\" /> ";
         inht += "<param name='loop' value=\"0\" /> ";
         inht += "</object>"
        }
        else
        {
        // Code for anything but IE.
    
         inht += "<object classid=\"CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95\" width=\""+wdth+"\" height=\""+hdth+"\" type=\"application/x-oleobject\" >"
         inht += "<param name=\"fileName\" value=\""+imgg+"\">"
         inht += "<param name=\"autostart\" value=\"1\">"
         inht += "<param name=\"ShowStatusBar\" value=\"true\" /> ";
         inht += "<param name='showControls' value=\"true\" /> ";
         inht += "<param name=\"volume\" value=\"0\">"
         inht += "<EMBED type=\"application/x-mplayer2\" pluginspage = \"http://www.microsoft.com/Windows/MediaPlayer/\" "
         inht += "SRC=\""+imgg+"\" name=\"MediaPlayer1\" width=\""+wdth+"\" "
         inht += "height=\""+hdth+"\" AutoStart=\"true\" ShowStatusBar=\"1\" ShowControls=\"1\"></EMBED>"
         inht += "</object>"
        }

        document.getElementById("preview").innerHTML = inht
    }


    {/literal}



  {literal}
  }
  {/literal}

 </script>
{elseif $root.page.current.trailer_url[0]|@strstr:".jpg" == ".jpg"}
 <a href="{$root.page.tour.JoinUrl}"><img border="0" src="{$root.page.current.trailer_url[0]}" /></a>
{/if}

</div>
{/if}

New Code:

{if $root.page.current.trailer_url[0] != ""}
<div align="center">
{if $root.page.current.trailer_url[0]|@strstr:".jpg" == ".jpg"}
<a href="{$root.page.tour.JoinUrl}"><img border="0" src="{$root.page.current.trailer_url[0]}" /></a>
{elseif ($root.page.current.trailer_url[0])}

 <script src="js/jquery.min.js"></script>
 <script src="js/mp/mediaelement-and-player.min.js"></script>
 <link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />
 <div id="preview"><div id="mediaspace"></div></div>

 <!-- HIDDEN PROMO FORM -->
 <div id="hpromo" style="width:960px; height:540px; display:none;" align="center">{$templateconf.trailerjoin}</div>
     <script>
    {literal}
        function playTrailer(){
    
            lmt = getCookieTLimit(ctlimit_name)
            remaining = maxClicks - lmt;
            
            if (document.getElementById("clicksremaining"))
            {
                document.getElementById("clicksremaining").innerHTML = remaining
            }
    
            document.getElementById('hpromo').style.display = 'none';
            document.getElementById('preview').style.visibility = 'visible';
            document.getElementById('preview').style.display = '';        
    
            ext = "{/literal}{$root.page.current.trailer_url[0]}{literal}".split('.').pop().split("?").shift();
        
            txt = '<video width="960" height="540" id="mediabox">';
            txt = txt + "\n" + '<source type="video/' + ext + '" src="{/literal}{$root.page.current.trailer_url[0]}{literal}" />';
            txt = txt + '</video>';
            
            // console.log(txt)
            
            $("#mediaspace").html(txt);
            
            $('#mediabox').mediaelementplayer({
                
                enablePluginSmoothing: true,
                
                success: function(media, node, player) {
                    
                    media.play();
                    
                    media.addEventListener('ended', function(e){
                        document.getElementById('preview').style.display = 'none';
                        document.getElementById('hpromo').style.display = 'block';
                    });
                }
            });  
        }
        function replay(){
            document.getElementById('hpromo').style.display = 'none';
            document.getElementById('preview').style.visibility = 'visible';
    
            ret = tlimit();
            if (ret == true)
            {
                  {/literal}playTrailer();{literal}
              }
        }
    
        ret = tlimit();
        if (ret == true)
        {
              {/literal}playTrailer();{literal}
          }
    {/literal}
     </script>
{/if}

 

Mobile Template Changes (if you have mobile):

Changes in: smarty0_mobile/gallery/gallery1.tpl

Old Code:

<script type='text/javascript' src="jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="Ai4jB7+ua0L+B5Ib2yl8pej2kaz3Tkt8JLhB3WxeFBM=";</script>

<script>

try
{
    // starting the script on page load
    $(document).ready(function(){

        if (typeof jwplayer !== 'function')
        {
            alert("Warning: File jwplayer.js not found.");
        }
    });
}
catch(e)
{
  alert("Warning: File js/jquery.min.js not found.");
}

</script>

New Code:

<script src="js/jquery.min.js"></script>
<script src="js/mp/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />

<script>
extl = [];
extl["m4v"] = "video/mp4";
extl["m3u8"] = "application/x-mpegURL";

try
{
    // starting the script on page load
    $(document).ready(function(){

        if (typeof MediaElementPlayer !== 'function')
        {
            alert("Warning: File js/mp/mediaelement-and-player.min.js not found.");
        }
    });
}
catch(e)
{
  alert("Warning: File js/jquery.min.js not found.");
}

</script>

Old Code:

{literal}
<script>

function playmovie(fle, imgg, changeloc, autoplay, wdth, hdth)
{
    if (changeloc == 1)
    {
        $('html,body').animate({scrollTop: $("#playertag").offset().top},'slow');
    }

    if (autoplay == "1")
    {
        aup = true;
    }
    else
    {
        aup = false;
    }

    $("#mediaplayer").show();

    passobj = {};
    passobj.file = fle;
    if (imgg != '')
    {
        passobj.image = imgg;
    }
    
    passobj.width = parseInt($(".content_wrapper").width());
    passobj.height = parseInt($(".content_wrapper").width() * hdth / wdth);
    passobj.autostart = aup;
    
    passobj.primary = "flash";
    // passobj.androidhls = true;

    jwplayer('mediaplayer').setup(passobj);

}

$(window).resize(function() {

    if ( $("#mediaplayer").length )
    {    
        jw_wdth = jwplayer('mediaplayer').getWidth();
        jw_hdth = jwplayer('mediaplayer').getHeight();
    
        wdth = parseInt($(".content_wrapper").width());
        hdth = parseInt(wdth * jw_hdth / jw_wdth);

        try
        {    
            jwplayer('mediaplayer').resize( wdth, hdth );
        }
        catch(e)
        {
            console.log(wdth + "x" + hdth + " " + jw_wdth + "x" + jw_hdth);
        }
    }

    

});


</script>
{/literal}

New Code:

{literal}
<script>

function playmovie(fle, imgg, changeloc, autoplay, wdth, hdth)
{
    if (imgg == undefined) imgg = "";
    if (changeloc == undefined) changeloc = 1;
    if (autoplay == undefined) autoplay = 0;
    if (wdth == undefined) wdth = 320;
    if (hdth == undefined) hdth = 240;
    
    if (changeloc == 1)
    {
        $('html,body').animate({scrollTop: $("#playertag").offset().top},'slow');
    }

    $("#mediaplayer").show();

    w = parseInt($(".content_wrapper").width());
    h = parseInt($(".content_wrapper").width() * hdth / wdth);

    try
    {
        txt = '<video width="' + w + '" height="' + h + '" id="mediabox" style="width: 100%; height: 100%;" '
        
        if (imgg != "")
        {
            txt = txt + ' poster="' + imgg + '" ';
        }
        
        ext = fle.split('.').pop().split("?").shift();
        usetype  = (extl[ext] != undefined) ? extl[ext] : "video/" + ext;
        
        txt = txt + '>';
        txt = txt + "\n" + '<source type="' + usetype + '" src="' + fle + '" />';
        txt = txt + '</video>';
        
        // console.log(txt);
    
        $("#mediaplayer").html(txt);
        
        $('#mediabox').mediaelementplayer({
            mode:'auto_plugin',
            enablePluginSmoothing: true,
            
            success: function(media, node, player) {
                                
               if (autoplay == 1)
               {
                    media.play();   
               }                 
            }
        });        
    }
    catch(e)
    {
        alert(e)    
    }
}
</script>
{/literal}

Old Code:

            {literal}
            picarr = []
            
            $(document).ready(function() {
            
                $("#mediaplayer").show();
            
                passobj = {}    
                var lst = [];
                var titl = ""
                    
                for (var cntx=0; cntx < picarr.length; cntx++)
                {
                    pa = picarr[cntx]
                    listitem = {}
            
                    if (pa.label)
                    {
                        listitem.label = pa.label;
                    }
                    
                    if (pa.image)
                    {
                        passobj.image = pa.image;
                    }
            
                    listitem.file = pa.file;
            
                    if (pa.vtt)
                    {
                        passobj.tracks = [{
                                file: pa.vtt,
                                kind: "thumbnails"
                            }];
                    }
                    
                    lst[lst.length] = listitem;          
                }
                    
                passobj.autostart = false;
                
                passobj.sources = lst;
                
                if (picarr.length)
                {                
                    passobj.width = parseInt($(".content_wrapper").width());
                    passobj.height = parseInt($(".content_wrapper").width() * picarr[0].height / picarr[0].width);
                }
                
                passobj.primary = "flash";
                //passobj.androidhls = true;
                
                if (lst.length)
                {
                    jwplayer("mediaplayer").setup(passobj);
                }
            });
            {/literal}

New Code:

            <script>
            {literal}
            picarr = []
            
            $(document).ready(function() {

                $("#mediaplayer").show();

                passobj = {}
                var lst = [];
                var titl = ""
                var uimage = "";

                for (var cntx=0; cntx < picarr.length; cntx++)
                {
                    pa = picarr[cntx]
                    listitem = {}

                    if (pa.image)
                    {
                        uimage = pa.image;
                    }

                    listitem.src = pa.file;
                    ext = pa.file.split('.').pop().split("?").shift();
                    listitem.type  = (extl[ext] != undefined) ? extl[ext] : "video/" + ext;

                    lst[lst.length] = listitem;
                }

                if (picarr.length)
                {
                    wdth = parseInt($(".content_wrapper").width());
                    hdth = parseInt($(".content_wrapper").width() * picarr[0].height / picarr[0].width);
                }

                if (lst.length)
                {

                    try
                    {
                        txt = '<video width="' + wdth + '" height="' + hdth + '" id="mediabox" style="width: 100%; height: 100%;" '
                        
                        if (uimage != "")
                        {
                            txt = txt + ' poster="' + uimage + '" ';
                        }
                        
                        txt = txt + '>';
                        for(i = 0; i < lst.length; i++)
                        {
                            txt = txt + "\n" + '<source type="' + lst[i].type + '" src="' + lst[i].src + '" />';
                        }
                        txt = txt + '</video>';
                        
                        // console.log(txt);
                    
                        $("#mediaplayer").html(txt);
                        
                        $('#mediabox').mediaelementplayer({
                            mode:'auto_plugin',
                            enablePluginSmoothing: true                            
                        });        
                    }
                    catch(e)
                    {
                        alert(e)    
                    }

                }
            });
            {/literal}


Changes in: smarty0_mobile/tour1/episode.tpl

Old Code:

<script>
    mobile_trailer = "{$item.trailer_url_mobile[0]}"

    {literal}
    picarr = []
    
    $(document).ready(function() {
        
        if (mobile_trailer == "")
        {
            return;
        }        

        passobj = {}    
        passobj.file = mobile_trailer;
        passobj.image = "{/literal}content/{$item.Directory[0]}/0.jpg{literal}"            
        passobj.autostart = false;        
        
        passobj.width = parseInt($(".header").width());
        passobj.height = parseInt($(".header").width() * 9 / 16);

        passobj.primary = "flash";
        
        jwplayer("mediaplayer").setup(passobj);
    });
        
    $(window).resize(function() {
    
        if ( mobile_trailer != "" )
        {            
            jw_wdth = jwplayer('mediaplayer').getWidth();
            jw_hdth = jwplayer('mediaplayer').getHeight();
        
            wdth = parseInt($(".header").width());
            hdth = parseInt(wdth * jw_hdth / jw_wdth);
    
            try
            {    
                jwplayer('mediaplayer').resize( wdth, hdth );
            }
            catch(e)
            {
                console.log(wdth + "x" + hdth + " " + jw_wdth + "x" + jw_hdth + " - " + e);
            }
        }
    });
    
    {/literal}

</script>

New Code:

<script>
    mobile_trailer = "{$item.trailer_url_mobile[0]}"

    {literal}
    picarr = []

    $(document).ready(function() {

        if (mobile_trailer == "")
        {
            return;
        }

        imgg = "{/literal}content/{$item.Directory[0]}/0.jpg{literal}"    
        w = parseInt($(window).width());
        h = parseInt($(window).width() * 9 / 16);
        
        try
        {
            txt = '<video width="' + w + '" height="' + h + '" id="mediabox" style="width: 100%; height: 100%;" '
            
            if (imgg != "")
            {
                txt = txt + ' poster="' + imgg + '" ';
            }
            
            txt = txt + '>';
            txt = txt + "\n" + '<source type="video/mp4" src="' + mobile_trailer + '" />';
            txt = txt + '</video>';
            
            // console.log(txt);
        
            $("#mediaplayer").html(txt);            
            $('#mediabox').mediaelementplayer({
                enablePluginSmoothing: true
            });        
        }
        catch(e)
        {
            alert(e)    
        }

    });

    $(window).resize(function() {

        if ( mobile_trailer != "" )
        {
            w = parseInt($(window).width());
            h = parseInt($(window).width() * 9 / 16);

            $("#mediaplayer").width(w);
            $("#mediaplayer").height(h);
        }
    });
    
    {/literal}

</script>


Changes in: smarty0_mobile/tour1/page_top.tpl

Old Code:

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type='text/javascript' src="jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="Ai4jB7+ua0L+B5Ib2yl8pej2kaz3Tkt8JLhB3WxeFBM=";</script>
<script type='text/javascript' src="js/mobileinclude.js"></script>

<script src="js/helper.js"></script>
<script>
{literal}
try
{
    // starting the script on page load
    $(document).ready(function(){

        if (typeof jwplayer !== 'function')
        {
            alert("Warning: File jwplayer.js not found.");
        }
        
        $(window).resize(function() {
            ResizeHeight(".element", ".info");
        });

        try { ResizeHeight(".element", ".info"); }
        catch(e) { alert(e); }
        
        StdImageHandler();
        
    });
}
catch(e)
{
  alert("Warning: File js/jquery.min.js not found.");
}
{/literal}
</script>

New Code:

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type='text/javascript' src="js/mobileinclude.js"></script>

<script src="js/mp/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />

<script src="js/helper.js"></script>
<script>
{literal}
try
{
    // starting the script on page load
    $(document).ready(function(){

        if (typeof MediaElementPlayer !== 'function')
        {
            alert("Warning: File js/mp/mediaelement-and-player.min.js not found.");
        }
        
        $(window).resize(function() {
            ResizeHeight(".element", ".info");
        });

        try { ResizeHeight(".element", ".info"); }
        catch(e) { alert(e); }
        
        StdImageHandler();
        
    });
}
catch(e)
{
  alert("Warning: File js/jquery.min.js not found.");
}
{/literal}
</script>

Tube Tour Changes:

Changes in: tube/tour1/episode_trailer.tpl

Old Code:

{if $root.page.current.trailer_url[0] != ""}
<div align="center">
{if ($root.page.current.trailer_url[0]|@strstr:".mp4" == ".mp4") || ($root.page.current.trailer_url[0]|@strstr:".mov" == ".mov") || ($root.page.current.trailer_url[0]|@strstr:".flv" == ".flv")}

<script src="jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="Ai4jB7+ua0L+B5Ib2yl8pej2kaz3Tkt8JLhB3WxeFBM=";</script>
 
<script>
{literal}
// starting the script on page load
$(document).ready(function(){

    if (typeof jwplayer !== 'function')
    {
            alert("Warning: File jwplayer.js not found.");
    }

});
{/literal}
</script>

 <div id="preview"><div id="jwbox"></div></div>

New Code:

{if $root.page.current.trailer_url[0] != ""}
<div align="center">
{if $root.page.current.trailer_url[0]|@strstr:".jpg" == ".jpg"}
<a href="{$root.page.tour.JoinUrl}"><img border="0" src="{$root.page.current.trailer_url[0]}" /></a>
{elseif ($root.page.current.trailer_url[0])}

<script src="js/mp/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />
 
<script>
{literal}
// starting the script on page load
$(document).ready(function(){

    if (typeof MediaElementPlayer !== 'function')
    {
        alert("Warning: File js/mp/mediaelement-and-player.min.js not found.");
    }

});
{/literal}
</script>
 
 <div id="preview"><div id="mediaspace"></div></div>

Old Code:

        
            jwplayer("jwbox").setup({
                file: "{/literal}{$root.page.current.trailer_url[0]}{literal}",
                width: 960,
                height: 540,
                primary: "flash",
                autostart: true,
                'events': {
                    onComplete: function(e) {
                        document.getElementById('preview').style.display = 'none';
                        document.getElementById('hpromo').style.display = 'block';
                    }
                }
            });

New Code:

            ext = "{/literal}{$root.page.current.trailer_url[0]}{literal}".split('.').pop().split("?").shift();
    
            txt = '<video width="960" height="540" id="mediabox">';
            txt = txt + "\n" + '<source type="video/mp4" src="{/literal}{$root.page.current.trailer_url[0]}{literal}" />';
            txt = txt + '</video>';
            
            // console.log(txt)
            
            $("#mediaspace").html(txt);
            
            $('#mediabox').mediaelementplayer({
                
                enablePluginSmoothing: true,
                
                success: function(media, node, player) {
                    
                    media.play();
                    
                    media.addEventListener('ended', function(e){
                        document.getElementById('preview').style.display = 'none';
                        document.getElementById('hpromo').style.display = 'block';
                    });
                }
            }); 

Removed Code (Optional):

{elseif $root.page.current.trailer_url[0]|@strstr:".wmv" == ".wmv"}
 <script src="silverlight.js"></script>
 <script src="wmvplayer.js"></script>
 
<script>
{literal}
// starting the script on page load
$(document).ready(function(){

    if (typeof Silverlight !== 'object')
    {
            alert("Warning: File silverlight.js not found.");
    }

    if (typeof jeroenwijering !== 'object')
    {
            alert("Warning: File wmvplayer.js not found.");
    }

});
{/literal}
</script>
 
 <div id="preview"></div>
 <script>

  {literal}
  ret = tlimit();
  if (ret == true)
  {
  {/literal}

    var wdth = "640"
    var hdth = "500"
    var imgg = "{$root.page.current.trailer_url[0]}"
    var inht = "";

    {literal}
    if (Silverlight.isInstalled("1.0"))
    {
        var p_src = 'wmvplayer.xaml';
        var p_cfg = {width:wdth,height:hdth,file:imgg,autostart:'true'};
        var ply = new jeroenwijering.Player(document.getElementById("preview"),p_src,p_cfg);
    }
    else
    {
        var inht = "";

        if (document.all) // IE
        {
         inht += "<object id='mediabox' ";
         inht += "classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' ";
         inht += "codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' ";
         inht += "standby='Loading Microsoft Windows Media Player components...' ";
         inht += "type='application/x-oleobject' width='"+wdth+"' height='"+hdth+"''> ";
         inht += "<param name='fileName' value=\""+imgg+"\"/> ";
         inht += "<param name='animationatStart' value='true' /> ";
         inht += "<param name='transparentatStart' value='true' /> ";
         inht += "<param name='autoStart' value=\"true\" /> ";
         inht += "<param name='showControls' value=\"true\" /> ";
         inht += "<param name=\"ShowStatusBar\" value=\"true\" /> ";
         inht += "<param name='loop' value=\"0\" /> ";
         inht += "</object>"
        }
        else
        {
        // Code for anything but IE.
    
         inht += "<object classid=\"CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95\" width=\""+wdth+"\" height=\""+hdth+"\" type=\"application/x-oleobject\" >"
         inht += "<param name=\"fileName\" value=\""+imgg+"\">"
         inht += "<param name=\"autostart\" value=\"1\">"
         inht += "<param name=\"ShowStatusBar\" value=\"true\" /> ";
         inht += "<param name='showControls' value=\"true\" /> ";
         inht += "<param name=\"volume\" value=\"0\">"
         inht += "<EMBED type=\"application/x-mplayer2\" pluginspage = \"http://www.microsoft.com/Windows/MediaPlayer/\" "
         inht += "SRC=\""+imgg+"\" name=\"MediaPlayer1\" width=\""+wdth+"\" "
         inht += "height=\""+hdth+"\" AutoStart=\"true\" ShowStatusBar=\"1\" ShowControls=\"1\"></EMBED>"
         inht += "</object>"
        }

        document.getElementById("preview").innerHTML = inht
    }


    {/literal}

  {literal}
  }
  {/literal}

 </script>
{elseif $root.page.current.trailer_url[0]|@strstr:".jpg" == ".jpg"}
 <a href="{$root.page.tour.JoinUrl}"><img border="0" src="{$root.page.current.trailer_url[0]}" /></a>

 

In order to upgrade PHP templates to no longer use the JW player, please perform the following:

1) Download the newest version of the PHP templates from here:
http://support.elevatedx.com/newest.php

2) Within the download, there will be a folder:
cms_defaults/4.0/members/js/mp/
Please create the following folders:
 /members/js/mp/
 /tour/js/mp/

Where /tour/ is your tour folder, and /members/ is your members area folders.
Then upload the contents of cms_defaults/4.0/members/js/mp/ into these folders.

3) The following files will need to be edited or replaced within your template folder:

Standard templates:
cms_defaults/4.0/cms_admin/phptemplate/site0/functions/cdn_hook.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0/gallery.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0/gallery/movie_player.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0/gallery_outside.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0/header.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0/tour/globals/globals.tpl
cms_defaults/4.0/tour/js/tour.js
Mobile templates (if you have mobile)
cms_defaults/4.0/cms_admin/phptemplate/site0_mobile/gallery/gallery1.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0_mobile/tour/episode.tpl
cms_defaults/4.0/cms_admin/phptemplate/site0_mobile/tour/page_top.tpl

If you haven't made any changes to these files, we highly recommend you upload these replacement files in place. Copies of what's changed are available here:

https://support.elevatedx.com/jw_update/php_templates_desktop.zip

https://support.elevatedx.com/jw_update/php_templates_mobile.zip

https://support.elevatedx.com/jw_update/php_templates_tour.zip

 

If you have made template changes to these files, below are details about what has changed in each file.

 

Other PHP Templates:

If you are using the PHP hybrid site, tube site, or solo site templates, updates of these files are available here:

https://support.elevatedx.com/newest_templates.php

The same files are changed, but the layout of the zips are slightly different. The files you'll wish to update / change are:

Standard templates:
template_theme1/functions/cdn_hook.tpl
template_theme1/gallery.tpl
template_theme1/gallery/movie_player.tpl
template_theme1/gallery_outside.tpl
template_theme1/header.tpl
template_theme1/tour/globals/globals.tpl
theme1_tour/js/tour.js
Mobile templates (if you have mobile)
template_theme1_mobile/gallery/gallery1.tpl
template_theme1_mobile/tour/episode.tpl
template_theme1_mobile/tour/page_top.tpl

Note: Depending on which template you have downloaded, you may see theme2 or theme3 within the directory path instead of theme1. Please use those available templates accordingly.

 

Desktop Template Changes:

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0/functions/cdn_hook.tpl

You only need to upload this file if it is not present on your existing system. If this file already exists, do not replace it.

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0/gallery.tpl

Old code:

    jw_playerload()

New code:

    func_playerload(pxx)

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0/gallery/movie_player.tpl

  In this case, there are too many extensive changes to detail here. We recommend replacing this file entirely within your templates.

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0/gallery_outside.tpl

Old code:

    jw_playerload()

New code:

    func_playerload(pxx)

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0/header.tpl

Removed code:

        if (typeof jwplayer !== 'function')
        {
            alert("Warning: File jwplayer.js not found.");
        }

        if (typeof Silverlight !== 'object')
        {
            alert("Warning: File silverlight.js not found.");
        }

        if (typeof jeroenwijering !== 'object')
        {
            alert("Warning: File wmvplayer.js not found.");
        }

Removed code:

<script type='text/javascript' src='js/jwplayer.js'></script>
<script type="text/javascript">jwplayer.key="";</script>
<?php // Silverlight Code  ?>
<script type='text/javascript' src='js/silverlight.js'></script>
<script type='text/javascript' src='js/wmvplayer.js'></script>

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0/tour/globals/globals.tpl

Old code:

<!-- These are JW Player 6 Library Includes -->
<script type="text/javascript" src="js/jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="";</script>

New code:

<!-- These are MediaElements.js includes -->
<script src="js/mp/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />

 

Changes in: cms_defaults/4.0/tour/js/tour.js

Old Code:

        afterShow: function () {        
            jwplayer("mediaspace").setup({
                file: v,
                width: w,
                height: h,
                autostart: true,
                events: {
                    onLoad: function(e) {
                      alert("hi")  
                    },
                    onComplete: function(e) {
                        loadbanner();
                    }
                }

            });
        },

New Code:

        afterShow: function () {
            
            ext = v.split('.').pop().split("?").shift();
            
            txt = '<video width="' + w + '" height="' + h + '" id="mediabox">';
            txt = txt + "\n" + '<source type="video/' + ext + '" src="' + v + '" />';
            txt = txt + '</video>';
            
            // console.log(txt)
            
            $("#mediaspace").html(txt);
            
            $('#mediabox').mediaelementplayer({
                
                enablePluginSmoothing: true,

                success: function(media, node, player) {
                    
                    media.play();
                    
                    media.addEventListener('ended', function(e){
                        loadbanner();
                    });
                }
            });    
        },

 

 

Mobile template Changes (if you have the mobile version)

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0_mobile/gallery/gallery1.tpl

  In this case, there are too many extensive changes to detail here. We recommend replacing this file entirely within your templates.

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0_mobile/tour/episode.tpl

Old Code:

<script>
    mobile_trailer = "<?php echo $item["trailer_url_mobile"] ?>"

    picarr = []

    $(document).ready(function() {

        if (mobile_trailer == "")
        {
            return;
        }

        passobj = {}
        passobj.file = mobile_trailer;
        passobj.image = "content/<?php echo $item["Directory"] ?>/0.jpg"
        passobj.autostart = false;

        passobj.width = parseInt($(".header").width());
        passobj.height = parseInt($(".header").width() * 9 / 16);

        passobj.primary = "flash";

        jwplayer("mediaplayer").setup(passobj);
    });

    $(window).resize(function() {

        if ( mobile_trailer != "" )
        {
            jw_wdth = jwplayer('mediaplayer').getWidth();
            jw_hdth = jwplayer('mediaplayer').getHeight();

            wdth = parseInt($(".header").width());
            hdth = parseInt(wdth * jw_hdth / jw_wdth);

            try
            {
                jwplayer('mediaplayer').resize( wdth, hdth );
            }
            catch(e)
            {
                console.log(wdth + "x" + hdth + " " + jw_wdth + "x" + jw_hdth + " - " + e);
            }
        }
    });

</script>

New Code:

<script>
    mobile_trailer = "<?php echo $item["trailer_url_mobile"] ?>"

    picarr = []

    $(document).ready(function() {

        if (mobile_trailer == "")
        {
            return;
        }

        imgg = "content/<?php echo $item["Directory"] ?>/0.jpg"
        w = parseInt($(window).width());
        h = parseInt($(window).width() * 9 / 16);
        
        try
        {
            txt = '<video width="' + w + '" height="' + h + '" id="mediabox" style="width: 100%; height: 100%;" '
            
            if (imgg != "")
            {
                txt = txt + ' poster="' + imgg + '" ';
            }
            
            txt = txt + '>';
            txt = txt + "\n" + '<source type="video/mp4" src="' + mobile_trailer + '" />';
            txt = txt + '</video>';
            
            // console.log(txt);
        
            $("#mediaplayer").html(txt);            
            $('#mediabox').mediaelementplayer({

                enablePluginSmoothing: true,

                success: function(media, node, player) {
            
                }
            });        
        }
        catch(e)
        {
            alert(e)    
        }

    });

    $(window).resize(function() {

        if ( mobile_trailer != "" )
        {
            w = parseInt($(window).width());
            h = parseInt($(window).width() * 9 / 16);

            $("#mediaplayer").width(w);
            $("#mediaplayer").height(h);
        }
    });

</script>

 

Changes in: cms_defaults/4.0/cms_admin/phptemplate/site0_mobile/tour/page_top.tpl

Old Code:

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type='text/javascript' src="js/jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="";</script>
<script type='text/javascript' src="js/mobileinclude.js"></script>

<script>
try
{
    // starting the script on page load
    $(document).ready(function(){

        if (typeof jwplayer !== 'function')
        {
            alert("Warning: File jwplayer.js not found.");
        }

        $(window).resize(function() {
            ResizeHeight(".element", ".info");
        });

        try { ResizeHeight(".element", ".info"); }
        catch(e) { alert(e); }

    });
}
catch(e)
{
  alert("Warning: File js/jquery.min.js not found.");
}
</script>

New Code:

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type='text/javascript' src="js/mobileinclude.js"></script>

<script src="js/mp/mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="js/mp/mediaelementplayer.min.css" />

<script>
try
{
    // starting the script on page load
    $(document).ready(function(){

        if (typeof MediaElementPlayer !== 'function')
        {
            alert("Warning: File js/mp/mediaelement-and-player.min.js not found.");
        }

        $(window).resize(function() {
            ResizeHeight(".element", ".info");
        });

        try { ResizeHeight(".element", ".info"); }
        catch(e) { alert(e); }

    });
}
catch(e)
{
  alert("Warning: File js/jquery.min.js not found.");
}
</script>

 

 

Schedule Individual Content Items

To start with, click the Sets icon. On the main Set page select a set to manage and click the "Preview" link next to the set. This will load a page that shows you each individual piece of content within the set. This allows you to schedule part of a set to be released with its own update date, independent of other dates. Common use of this is to stagger the release of a set of video clips over a set period of days.

Under each preview thumb you'll see a checkbox and Date: followed by the numerical date assigned to this set and also the number of days until the content will be released for a member if the Timed Content Release System is in use.

At the bottom of this page is a form field you can enter a date (Clicking the date field will bring up the calendar) or the number of days until release for the checked item(s). Clicking the "Change Date" button will apply your new date.

This will change the release dates for all selected (checked) pieces of content and allow you to show photos and/or videos in sequence rather than at the same time.

If you have scheduled an item to be released with its own date using the "preview" page settings, checking the box on the set add/edit page titled "Update Existing content with this date and days until visible." Will overwrite the dates of each individual item.

If you have scheduled an item to be released with its own date using the "preview" page settings, checking the box on the set add/edit page titled "Update Existing content with this date and days until visible." Will overwrite the dates of each individual item.

Our new responsive admin panel has some changes. The largest change is new dropdown boxes to select Models, Categories and DVDs when adding content.

Here are some tips and tricks that will speed your workflow using the new dropdown boxes.

You can type the first few characters of a word to narrow your list.

If you have lots of categories or models, narrow the list by typing a few characters.

You can press up/down to scroll

You can press enter to select a tag

Add an entry by typing

In some areas such as Models and Categories, you can add a new entry by typing and pressing return/enter.

You can also use comma (,) or semicolon (;) to separate entries.

Click the eye next to an item to view its page.

If available, you can click the eye next to an item to view the content.

Hold Shift to select multiple entries.

Hold Shift and click an entry to select it. While holding shift, click a second entry. All of the entries between these two items are also selected.


UPDATE:  These instructions are for  using Smarty Templates. New PHP templates are responsive and should auto size to whichever screen you are viewing from. You can still set up a dedicated mobile area using these instructions but step 3 you'll use the /phptemplate/ folder instead of the 'smarty' folder and  the include will be PHP_FOLDER= instead of SMARTY_FOLDER=

Setting Up a Mobile Member's Area

(NOTE - This requires purchase of the Mobile add-on and your CMS admin panel to be version 3.1 or later. These instructions assume you already have a mobile site in use that was setup by us. )

Step 1) FTP to your server and create a folder (or access a subdomain like 'm.domain-name.com') you want to use for your mobile member's area.

Step 2) FTP to your server and locate the members folder for one of your existing sites. Copy all of the cms related php files, css file and any other applicable files e.g. images folder, etc. and upload a copy of these files to the location in Step 1 above. Note - php files need to be uploaded in binary mode.

Step 3) Connect to your server via FTP and locate your cms_admin/smarty. Copy one of your existing Smarty mobile folders( e.g 'smarty0_mobile') and assign it a name that matches the site ( e.g 'smarty0_mobile_newsite')

Step 4) Edit the cmsinclude.ini.php file in the new mobile folder and change the line SMARTY_FOLDER= to match the folder name specified in Step 3 above. Make sure the site ID is the correct site ID for this site. It should match the ID contained in the cmsinclude.ini.php of the site's standard member's area.

Step 5) Add a symlink (or have your host add this for you) to symlink the content/ folder on the standard/main member's area of the site that stores the content to the /content folder within your new folder or subdomain. Symlinks are not CMS related so this is not something our support staff can help with.

Step 6) In your admin panel under Utilities, Media Types, edit the Media Types and specify which are mobile compatible and are to be displayed on mobile devices.

Options:

A) You can automatically redirect members that are viewing on a mobile device to your new mobile area by adding the following lines to the 'cmsinclude.ini.php' file of your DESKTOP members area:

REDIRECT_MOBILE="http://m.domain-name.com/members/"

and you can redirect members viewing on a desktop browser to your new mobile area by adding the following lines to the 'cmsinclude.ini.php' file of your MOBILE members area:

REDIRECT_DESKTOP="http://www.domain-name.com/members/"
B) If you are using our defualt templates you can use the same location fgor the mobile and desktop members areas and switch the smarty templates by declaring both areas in the cmsinclude.ini.php file:

SMARTY_FOLDER={name of smarty folder}
MOBILE_SMARTY_FOLDER={name of mobile smarty folder}

Then comment our the MOBILE=0 line by adding ';' before it like this:

;MOBILE=0

Then the Mobile version link will allow the members to swich back and forth between mobile version(using your mobile samrty templates) and the "normal" version (using your desktop smarty templates)

Why use mod_auth_token.

The mod_auth_token module is a free apache module that can be used to work around playback issues when using simple password management in Apache.

Several devices (such as android devices) have issues playing back movies that hide behind a paywall. The mod_auth_token module solves these playback issues without requiring any paid third-party protection scripts.

How it works:

The way this works is by having the CMS replace links to content such as:

/members/content/contentthumbs/1.jpg

With URLs like this:

/download/65b19c2e0f410c85486159cef7766664/532d3167/contentthumbs/1.jpg

These URLs are only valid for a temporary amount of time.

How to set up mod_auth_token.

Setting up mod_auth_token is a four step process:

1) Have your hosting provider add mod_auth_token to your apache server.

2) Have your hosting provider create a symlink that links to your /members/content/ folder.

Example:
If your members area is in:
http://mysite.com/members/

The link http://mysite.com/download/ should be a symlink that points to http://mysite.com/members/content/

3) Have your hosting provider set up a <Location> entry within the apache virtual host configuration file for your domain.

Example:

<Location /download/>
# Secret key - This should be changed by your host.
  AuthTokenSecret "mysecretkey"
  AuthTokenPrefix /download/
# Timeout length. URLs will expire after 5 minutes. Your host can increase or decrease this amount of time.
  AuthTokenTimeout 300
  AuthTokenLimitByIp off
</Location>

4) Within your members area cmsinclude.ini.php, add the following flags to the bottom of the file:

; This should be the link to the existing content folder.
MOD_AUTH_TOKEN_CONTENT="/members/content/"

; This should be the set to what the host set AuthTokenPrefix as.
MOD_AUTH_TOKEN_PREFIX="/download/"

; This should be set to what the host set AuthTokenSecret as.
MOD_AUTH_TOKEN_SECRET="mysecretkey"

; Set this to the value that your host set AuthTokenLimitByIp as
MOD_AUTH_TOKEN_LIMITIP="off"

The values for each of these should be changed to reflect the URL of your members area, using the settings provided by your host.

Once these are in place, your members area should be configured to use mod_auth_token.

More Information on mod_auth_token

More information on this server module can be found here:

https://code.google.com/p/mod-auth-token/

Setting up Wowza/RED5/Mod_h264:

Wowza/RED5/Mod_h264 support is already coded into 3.2 and 4.0 templates.  Here's how to configure it.

Step 1) Have your host set up a Wowza/RED5 URL such as rtmp://members.yoursite.com/foldername/ where members.yoursite.com is the domain you wish to host your Wowza/RED5 server and foldername is the folder you want set up to server the content.

Your host should set this up so that /foldername/ goes maps to the document root of your website.  Do NOT have them link directly to your /content/upload/ or /content/ directory or else your streaming will not work.  Also, if your members area is set up within a subfolder (e.g: yoursite.com/members/), have them link to the folder above your members folder.

Step 2) On the Admin Panel, click Plug-Ins.  Under Template Fields, click Manage.

Step 3a) Follow these steps if you're using Wowza or RED5

Under the Flash Player Settings, the following variables that need changing here:
 a) flashmoviestreamer: Change this value to your wowza/RED5 URL (e.g: rtmp://mysite.com/folder/).
 b) flashmovietype: Change this value to rtmp.
 c) flashmp4streamer: Change this value to your wowza/RED5 URL (e.g: rtmp://mysite.com/folder/).
 d) flashmp4type: Change this value to rtmp.

Step 3b) Follow these steps if you're using mod_h264


Under the Flash Player Settings, the following variables that need changing here:
 a) flashmp4streamer: Change this value so that it is blank.
 b) flashmp4type: Change this value to lighttpd.

Customizing Flash Player Appearance:

Within Plugins -> Template Fields -> Manage -> Flash Player Settings, the following settings affect the look and feel of the flash player.

flashvarsfrontcolor: Color of all icons and texts in the controlbar and playlist.
flashvarsbackcolor: Background color of the controlbar and playlist. This is white with the default skin.
flashvarslightcolor: Color of an icon or text when you rollover it with the mouse.
flashvarsscreencolor: Background color of the display

Content Protection:

Since Wowza/RED5 is a RTMP media delivery server, it is no longer necessary to make flv / mp4 files available through your web server.  You can specifically block out file types by adding the following to your .htaccess file:

<filesMatch "\.(mp4|flv)$">
deny from all
</filesMatch>

This will prevent these type of files from being downloadable within your members area.

Protect Wowza Stream

Elevated X supports protection of the Wowza Stream like so:

rtmp://mysites.com/members/?key=<?php . md5($_SERVER['REMOTE_ADDR'] . "MY_SECRET_KEY") ?>

Here's how you can set this up:

1) Your flashmp4streamer will look like this:

rtmp://mysites.com/members/?key=##WOWZASECRETKEY##

2) Within cmsinclude.ini.php, you'll need to add this line:

WOWZASECRETKEY="MY_SECRET_KEY"

In this case, MY_SECRET_KEY should be replaced with the secret key your host has set up.

 

 

When using an SSL certificate pleasework with your host to help you redirect all traffic requests to use HTTPS.

They may add a line to your .htaccess file for the area.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

This should redirect all traffic from  http://wwww.domain-name.com/ to use https://wwww.domain-name.com/

When in doubt, ask your host for help with these types of rules as your server environment might be different.

!!** Important ** !
Also, see this article to ensure links are set to use HTTPS by default
https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/283/0/using-ssl-and-enabling-https-in-your-areas

If you want to add or update content to a set that is previously in the system you can do the following:

1) Add the content to the set you wish to update on the server and make sure permissions are there.
2) Edit the set in the CMS and click the save button. This should cause the system to re-index the files and folders, and inventory the change.
3) If you have added new photos or removed photos you'll need to recalculate the content totals by going to the Batch Operations Tool (Located under Utilities >> Batch Operations >> then select the content and move to the right-hand side then select "Calculate Image Sizes / Movie Information" option and click save.

When this is done the new content should be added and updates.

Use a Content Delivery Network (CDN)

Note - This is not part of our standard installation. We DO NOT provide CDN related support as CDN is a 3rd party service not provided by Elevated X. Use of a CDN may affect CMS functionality.

More details on the different options for CDNs are listed below:

 

PHP Templates - Unprotected CDN and Mirrored URL:

1) Within the admin panel, click the Sprocket in the top right of the screen. Go to Manage Site Areas.

2) Choose the area within the list that applies to the directory and template folder that your members area / tour area is using. Click Edit

3) Under "Content Directory", you'll see an entry that denotes a path to your content directory:

e.g: /members/content/

You'll want to change this to the path of your CDN:

e.g: http://pathtocdn.com/folder/

Note: The folder on the CDN's side MUST correspond to the content folder on your server.

4) After this is done, scroll to the bottom of the page and click "Edit Entry"

 

PHP Templates - Protected CDN or Non-mirrored URL:

Often, CDN providers have a content protection mechanism in place that prevents people without authorization from leeching your content.

This may include a token or dynamically written URL.

The way CDN providers protect their content is different from CDN provider to CDN provider.

The Elevated X CMS provides an easy way for the CDN provider or third party developer to integrate with the CDN.

1) Within your PHP template file, there should be file / folder called:

/cms_admin/phptemplate/[PHP_TEMPLATE_FOLDER]/functions/cdn_hook.tpl

2) In this file, you'll see:

<?php

// function cdn_hook()
// Input: A string that denotes the filename.
// Returns: A new path to a filename that works with a CDN.

function cdn_hook($file)
{
    // By default, this file does nothing to the file paths, so it returns what it received.
    // Comment this out if you are looking to integrate a CDN:
    
    return $file;
    
    // Custom CDN code goes here
}

Within our default templates, all images and movie paths pass through this function. By default, the function returns the file value that is passed to it.

Your CDN provider or third party coder can make changes to this function and rewrite the paths to the CDN URL path.

 

Smarty Templates - Unprotected CDN and Mirrored URL:

Within your smarty template folder is a subfolder called config.  In there are two files:
static.conf
static.trial.conf

Within each of these files is a setting called contentdir:

contentdir= /members/content

You will want to change this to the path to your CDN:

contentdir=http://pathtocdn.com/folder/

Note: The folder on the CDN's side MUST correspond to the content folder on your server.

 

Smarty Templates - Protected CDN or Nonmirrored URL:

If your CDN requires that your content URL requires a token or a URL change, then you will need to integrate custom code into the CMS. 

Please see the article Integrating Custom PHP Code to see how to do this:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/85/3/integrate-custom-php-code

 

MediaElements.js / JW Player Notes:

Note: If the CDN is using a different domain, the cross domain file settings for the player may need to be changed. A guide to do this is available here:

Media Elements:
http://mediaelementjs.com/support/

JW Player:
http://support.jwplayer.com/customer/portal/articles/1403679-crossdomain-file-loading

 

Use Batch Features to Add Content Sets

The batch features allow for bulk processing of functions and operations. Normally you will add a set and then wait for the system to resize, watermark, create thumbs, zips, and so on. By using the batch features you can do this in bulk and perform these operations on multiple sets at the same time.

You can have all the new sets you want to process arranged in sets folders in the /content/upload/ area like you normally would when you add a single set.
This multi-step process scans ALL available sets in the content upload area and adds them all. There is no way to select which sets are added in this batch process. It is all or nothing.

Step 1) Navigate to Utilities  >> Import/Export  >>  then  scroll down and select  "Scan Folders and Import Content"

From here you would set a date for all sets added to use(since all sets must have a date, they need a date to use during this process. We recommend using a date far in the future so your current members will not see these sets before they are ready). There is an option to Leave "Description Blank" if you want.

Click "Process" to start the import process.

The system should return you to the Batch operations area with the new sets entered and moved to the right-hand side. (If not, sort by date and add them to the right-hand side). Now you are ready to import them into the system.

Step 2)  Check the " Import Content " option. All other options will gray out. Scroll down and click the "process" button.

When this is done you'll be returned to the Batch operations page again.

Step 3) You now want to select all the sets again and move them to the right-hand include area.

Now you can select all the options for processing that you want to do for all sets. (Create photos, create thumbs, video transcoding etc.)
Keep in mind the photo processing will be done in real-time so if you have a large number of sets this will take a long time to complete and you will need to leave the browser window open and maintain an internet connection. Video operations will be sent to the transcoder queue as usual and will begin processing.


The system performs multiple processes so it's not uncommon for a batch to take several hours or even days depending on the amount of content being added and manipulated in one session.

Use Limited Trials With NATS and Billers

Step 1) Make sure your site has been setup with a working limited trial setup in its own trial folder.

Step 2) In your site's trial folder edit the 'cmsinclude.ini.php' file and include the trial id number in the flag:

TRIAL_ID = X  

(Where X is the ID number of the trial ID for this area)

If you need assistance with the limited trial detection/redirection code please consult the NATS support team or your billing company as this is not something we are able to provide.


 

In a standard tour, you can't use GIF files as thumbnails.

The easiest way around this, for now, is to tell your system to use your members area thumbnails instead.

This will require changing some code within your standard tour.

Here's an example:

In tour/templates/update_table_preview.tpl, you will see a block of code that looks like this:

<?php StdImage(["set" => $set, "class" => "small_update_thumb thumbs", "usepriority" => "2"]); ?>

In order to get this to use the members area thumbnails instead of the tour area thumbnails, you can change this line to:

<?php StdImage(["set" => $set, "class" => "small_update_thumb thumbs", "usepriority" => "14", "memberthumb" => 1]); ?>

Here, we are:

  • Changing the value of usepriority to one of the Thumbnail Positions used in your members area. 14 is commonly used in members areas.
  • Adding memberthumb = 1.

By making these changes, you should be able to use GIF files within your tours.

Note:

If your functions/standard.tpl file within your template folder is dated before 2012-01-26, you may need to update this file for this functionality work.

Using SSL and https: in your front facing areas.

As of 2017 Google will soon begin penalizing sites without HTTPS://
We strongly recommend using SSL for your front facing site areas. If you need an SSL certificate, here is a link for 25% off at GoDaddy

Many clients hoping to gain favorable search engine results are enabling SSL and using https protocols for tour areas. Once you have your host setup your SSL certificate and enable https for the desired areas, you'll need to force the CMS to use https in the desired area. You'll need to enter the area URL as a full URL using the https:// identifier in the entry.

Example:

Instead of:

/tour/

Area URL

enter:

https://www.your-site-name.com/tour/       (Where the URL of your tour has the https: in the beginning )

Area URL with https:

You can change this in the "Manage Site Areas" admin (located under the right-hand gear icon).
Select the area your wish to edit by clicking "Edit" and change the "Area URL"

When you are done, press the "Save Entry" button in the bottom right-hand corner.
This should force all links inside the area to use the https: protocol instead of HTTP:

Let us know if you run into any issues or questions.

!!** Important ** !
Also, see this article to ensure links are forced to use HTTPS by default
https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/ssl---redirect-traffic-to-force-use-of-https