HTML Output from BMO

 

If the module is requested as display=modulename, the page 'page.modulename.php' will be INCLUDED (this has not changed).

However, a significant change that you should be aware of is that you should never do any processing of POST/GET in the page.whatever.php file.  The page is ONLY for displaying information, and should not contain any logic. A simple way to keep this distinction is to only write a stub for the page

<?php // Pony Page.    // This gives you a shortcut to the 'class Ponies' defined in /var/www/html/admin/modules/ponies/Ponies.class.php $pony = FreePBX::create()->Ponies();    // Do your display logic in the public function showPage in Ponies. print $pony->showPage();

Use the BMO Hook 'doConfigPageInit($pagename)' to process any variables.  This is guaranteed to be called before anything else, including other hooking modules, on a page load. Note that you do not need to explicitly say that you want to hook yourself, this is implied in every module.

class Ponies extends FreePBX_Helpers implements BMO {     public static $dbDefaults = array( 'bestpony' => 'Rainbow Dash' );        // This is unneeded. You never need to hook yourself.     public static function myConfigPageInits() { return array("ponies"); }       public function showPage() {         print "Best pony is ".$this->getConfig('bestpony'); // See the 'DB_Helper' documentation.     }        public function doConfigPageInit() {         // If you were doing a POST, you could catch it and..         // $this->setConfig('bestpony', $_REQUEST['bestpony']);     } }

Failing to create a 'public function doConfigPageInit()' will result in an error being printed at the top of the screen every time your module is loaded. 

 

Return to Documentation Home I Return to Sangoma Support