VERSION 2.53 - APRIL 4, 2013 - (DEVELOPMENT SERVER ENHANCEMENTS) - May 2nd, 2014
|
SERVER REQUIREMENTS: Since v2.50 the requirements are: PHP 5.2.4+ and MySQL 5.0+
NEW FEATURES
- Development Servers: Added install option to create separate settings files for development domains for easier migrations
- Development Servers: Added install option to support "prefix urls" such as /~username or /development/client-name for easier migrations
- Development Servers: Added new "Prefix Url" field under: Admin > General Settings > Directories & URLs
- Programmers: New /plugins/cron-example.php script shows how to run tasks at intervals such as once a day or once an minute.
CODE CHANGES & BUG FIXES
- Section Editors: Viewer Urls must now all start with a /
- Languages: New "Developer Mode" under Admin > General now works when "Default" is selected as a language.
- Custom Upload Folders: Fixed "directory doesn't exist" error on CMS edit pages
- Misc Code and other minor improvements
Here are some notes from Dave Edis that might prove helpful:
We've just released CMSB v2.53 beta 1 (beta list members will get an email with a download link shortly).
The major new features are easier server moves and a sample cron plugin. Here's some details:
Development Servers
This update is mostly about development servers (also called staging servers) and making it easier to move files between development and live servers. If you're not already using a development server you should set one up, you'll save a lot of time not having to upload files after every change to see the result, and you will avoid breaking your clients live sites while developing features. We use the free package from http://www.wampserver.com/ on a Windows PC. It's a combo Apache, MySQL, PHP package that installs in one click. Mac users can google for "MAMP" and if you're running Linux, you probably don't need any tips setting up a web server. ;)
Domain-based Settings Files
You've probably already found that sometimes you'll have to maintain files on a few servers while developing a site. You might develop on your internal server: http://yourBigClient.yourWebCo.com/, then have to upload to the clients beta site: http://beta.yourBigClient.com/, then finally upload to their live site when you're done: http://www.yourBigClient.com/. Normally you can just copy files from one server to another and everything will just work. But if these sites have different MySQL details (as they often do), and you copy a settings file from one site to another you'll take down the whole site with an "Invalid MySQL Password" error.
The fix? We've added support for domain-based settings files so you can create a custom settings file that specifies the domain name like this: /data/settings.yourbigclient.yourwebco.com.php and it will automatically use that settings file for that domain only. This ensures you never overwrite live-server settings with dev-server settings (since they are stored in a separate file) and you can copy files from server to server without fear. We actually added this feature over 3 years ago in v2.02 but many people still don't use it (even some who work at interactivetools!) so for this version we added a checkbox to the install screen for development servers. It looks like this:
Use Custom Settings File [X] For this domain name only (localhost) use this setting file: /data/settings.localhost.php. Using a separate settings file for development servers ensures you never accidentally overwrite your live server settings when uploading CMS /data/ files. Always use custom settings files for development servers only, not your live servers.
So if you're running on a non-live server (development, staging, beta, etc) make sure to check that box and you'll be much safer.
Website Prefix URL
Next up, the other thing we see a lot of is development servers that host websites under existing sub-folders. This could look like any of the following:
http://yourWebCo.com/clients/2013/yourBigClient/ - developing client sites in a subfolder under your own website http://localhost/clients/2013/yourBigClient/ - developing client sites on your own PC or an internal development server http://yourBigClient.com/beta2013/ - when your client has setup a beta folder for the new site http://1.1.1.1/~bigclie/ - When DNS hasn't moved yet and you have to use a /~username/ preview url
If you've ever had to work with a site like this, you might have found yourself hardcoding /~bigclie/ or a similar folder prefix into the HTML, only to have to go back later and remove it when you moved the files to the live server that didn't need that prefix.
Our fix in 2.53 for this is a new field available on both the install page and under: Admin > General. It looks like this:
Website Prefix URL [________] eg: /~username or /development/client-name If your development server uses a different URL prefix than your live server you can specify it here. This prefix can be changed in the Admin Menu and will be automatically added to Viewer URLs and can be displayed with <?php echo PREFIX_URL ?>. This will allow you to easily move files between a development and live server, even if they have different URL prefixes.
So if you've ever been stuck search and replacing URL prefixes before, now you can just use the above feature.
Example Cron Plugin (for programmers)
For the programmers, we've included a sample plugin in /plugins/cron-example.php that shows how to run a background task at a set interval such as once a day or once an minute. This is really useful if you need to build a custom site that sends out email updates once a night, expires auctions, imports or backs up data, sends out reminders or marketing emails once a month, etc.
We've built cron support into CMS Builder now, so it's way easier and more powerful then the standard cron/scheduled task features you get with hosting accounts. CMSB automatically shows you when all the scheduled tasks last run, when they're scheduled to run next, keeps a log of every task, and even records errors (even if your script/plugin dies or crashes) and emails you to tell you when there is a problem. And all you need to do to set it up is add a single line of code to your plugin telling it what function you want to run and how often. Like this: addCronJob('emailSubscribers', "Send daily email updates", "how often to run");
Try setting up cron and enabling the example plugin. You can find the Background Tasks menu here with instructions: admin.php?menu=admin&action=general#background-tasks
|
The materials on this web site have been created for use with CMS Builder content management software. CMS Builder software is published and licensed for use by InteractiveTools.com. Please contact
Interactive Tools for information on the downloading of the software or the purchasing of licenses.