help with plugins and integration

6 posts by 2 authors in: Forums > CMS Builder
Last Post: August 27, 2010   (RSS)

By moh3 - August 26, 2010

hello to all,

can some one direct me in the right direction i'm trying to integrate a newsletter and form builder with cms builder

1-the idea is i want to add a link to the news letter app inside the admin interface.
2- i want to use the security and session of the admin interface with my newsletter app

is there a guide on how to create a plugin or at least a list of required information to create a plugin.

i have a question about the documentation and are willing to update it as there a lot of functionally not mentioned in the docs

i know is post is long but i need this information:
can i predfine a layout template to be used say with a multi record section where the user will be able to choose a template that goes with a certain record

Re: [moh3] help with plugins and integration

By Chris - August 26, 2010

Hi moh3,

As of yet, we don't have any documentation on creating plugins. However, we do have unobfuscated source code and a couple of free plugins which you can take a look at to figure out how they work and how you can write your own. Searching the CMSB source code for "doAction(" and "applyFilters(" is probably the best way to learn how to make a plugin.


2- i want to use the security and session of the admin interface with my newsletter app


Our Website Membership plugin allows you to use the security and session of the CMSB admin interface on your public website. You might consider looking into how that works.


can i predfine a layout template to be used say with a multi record section where the user will be able to choose a template that goes with a certain record


I'm not sure exactly what you mean here. A section could certainly have a list/text field which could be used to select a "template", but I'm not sure how this layout template will be used. Are you refering to a template in the CMS Builder admin interface or on your website?
All the best,
Chris

Re: [chris] help with plugins and integration

By moh3 - August 26, 2010

dear chris

when i'm talking about templates i mean a site template to give each web page a different design depending on it's section can you please help with that.

i also asked about using same login info and session in order to integrate by news letter managment script with cms builder admin interface not the public site is there a code snippet that i could use for protecting my newsletter app using cms builder security,as for membership plugin i already have that,but the idea is to add additional functionalty to be part of my cms builder admin,i hope i'm clear

regards

Re: [moh3] help with plugins and integration

By Chris - August 27, 2010

Hi moh3,

You can use PHP if statements to choose which template to use based upon some field in the record you're displaying. In the example below, the section is called "foo" and it has a list field called "template" with three options: "red", "blue", and "green". STEP ONE is unchanged, but I left it in to show you what the entire script would look like:

<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php


// load viewer library
$libraryPath = 'cmsAdmin/lib/viewer_functions.php';
$dirsToCheck = array('C:/wamp/www/sb/CMS Builder/','','../','../../','../../../');
foreach ($dirsToCheck as $dir) { if (@include_once("$dir$libraryPath")) { break; }}
if (!function_exists('getRecords')) { die("Couldn't load viewer library, check filepath in sourcecode."); }

// load records
list($fooRecords, $fooMetaData) = getRecords(array(
'tableName' => 'foo',
'where' => whereRecordNumberInUrl(1),
'limit' => '1',
));
$fooRecord = @$fooRecords[0]; // get first record

// show error message if no matching record is found
if (!$fooRecord) {
header("HTTP/1.0 404 Not Found");
print "Record not found!";
exit;
}

?>
<?php
if ($fooRecord['template'] == 'red') { include 'templates/red.php'; }
if ($fooRecord['template'] == 'blue') { include 'templates/blue.php'; }
if ($fooRecord['template'] == 'green') { include 'templates/green.php'; }
?>


Does that help?

i also asked about using same login info and session in order to integrate by news letter managment script with cms builder admin interface not the public site is there a code snippet that i could use for protecting my newsletter app using cms builder security,as for membership plugin i already have that,but the idea is to add additional functionalty to be part of my cms builder admin,i hope i'm clear


I think you could protect your script in the exact same way you'd protect a page on your public site. Is there a reason this wouldn't work?

There's an example of how to do this in the Website Membership readme.txt under the heading "MAKING PAGES LOGIN ONLY".

I hope this helps! Please let me know if you have any questions.
All the best,
Chris

Re: [chris] help with plugins and integration

By moh3 - August 27, 2010 - edited: August 27, 2010

great thanks for your help,so i create a dropdown list with three values and depending on the value i could include a different template,yea that does the job

as for the session vars i wanted to a have the admin to able to manage the newsletter system from one central place the cms builder interface not to be redirect to a different place ,i think i have to get my hands dirty and try to experiment

what about managing website links and navigation how can i control navigation links from the admin without hardcoding any website links,say i generate a multi record and wanted to add that to my navigation can i do that automatically ,how can i control link in auto mode afterall i will hand the site to my clients i want my clients to feel in control of their site not dependent on me for creating pages which is the whole point behind a cms

just a quick edit: can i organize multi records in hierarchy way say record1 is parent of record2