/**
  * Append type-specific form elements to the base form
  *
  * @param object &$form
  * @param array &$row
  */
 function buildForm(&$form, &$row)
 {
     $form->setAttribute("onSubmit", "return max_formValidateHtml(this.banner)");
     $header = $form->createElement('header', 'header_html', $GLOBALS['strHTMLBanner'] . " -  banner code");
     $header->setAttribute('icon', 'icon-banner-html.gif');
     $form->addElement($header);
     $adPlugins = OX_Component::getComponents('3rdPartyServers');
     $adPluginsNames = OX_Component::callOnComponents($adPlugins, 'getName');
     $adPluginsList = array();
     $adPluginsList[''] = $GLOBALS['strAdserverTypeGeneric'];
     $adPluginsList['none'] = $GLOBALS['strDoNotAlterHtml'];
     foreach ($adPluginsNames as $adPluginKey => $adPluginName) {
         $adPluginsList[$adPluginKey] = $adPluginName;
     }
     $htmlG['textarea'] = $form->createElement('textarea', 'htmltemplate', null, array('class' => 'code', 'cols' => '45', 'rows' => '10', 'wrap' => 'off', 'dir' => 'ltr', 'style' => 'width:550px;'));
     $aSelectAttributes = array('id' => 'adserver', 'style' => 'margin-left: 15px;width:230px');
     $htmlG['select'] = HTML_QuickForm::createElement('select', 'adserver', $GLOBALS['strAlterHTML'], $adPluginsList, $aSelectAttributes);
     $form->addGroup($htmlG, 'html_banner_g', null, array("<br>", ""), false);
     $form->addElement('advcheckbox', 'iframe_friendly', $GLOBALS['strIframeFriendly']);
     if ($row['bannerid'] && ($row['url'] || $row['target'])) {
         // The "url" and "target" elements remain as part of the form definition
         // for HTML banners only for existing banners that have either
         // url or target already set.
         $form->addElement('header', 'header_b_links', "Banner link");
         $form->addElement('text', 'url', $GLOBALS['strURL']);
         $form->addElement('text', 'target', $GLOBALS['strTarget']);
     }
     $form->addElement('header', 'header_b_display', 'Banner display');
     $sizeG['width'] = $form->createElement('text', 'width', $GLOBALS['strWidth'] . ":");
     $sizeG['width']->setSize(5);
     $sizeG['height'] = $form->createElement('text', 'height', $GLOBALS['strHeight'] . ":");
     $sizeG['height']->setSize(5);
     if (!empty($row['bannerid'])) {
         $sizeG['height']->setAttribute('onChange', 'oa_sizeChangeUpdateMessage("warning_change_banner_size");');
         $sizeG['width']->setAttribute('onChange', 'oa_sizeChangeUpdateMessage("warning_change_banner_size");');
     }
     $form->addGroup($sizeG, 'size', $GLOBALS['strSize'], "&nbsp;", false);
     $form->addElement('hidden', 'ext_bannertype', $this->getComponentIdentifier());
     //validation rules
     $translation = new OX_Translation();
     $widthRequiredRule = array($translation->translate($GLOBALS['strXRequiredField'], array($GLOBALS['strWidth'])), 'required');
     $heightRequiredRule = array($translation->translate($GLOBALS['strXRequiredField'], array($GLOBALS['strHeight'])), 'required');
     $numericRule = array($GLOBALS['strNumericField'], 'numeric');
     $form->addGroupRule('size', array('width' => array($widthRequiredRule, $numericRule), 'height' => array($heightRequiredRule, $numericRule)));
 }
 function buildForm(&$form, &$row)
 {
     $form->setAttribute("onSubmit", "return max_formValidateHtml(this.banner)");
     $header = $form->createElement('header', 'header_html', $GLOBALS['strHTMLBanner']);
     $header->setAttribute('icon', 'icon-banner-html.gif');
     $form->addElement($header);
     $adPlugins = OX_Component::getComponents('3rdPartyServers');
     $adPluginsNames = OX_Component::callOnComponents($adPlugins, 'getName');
     $adPluginsList = array();
     $adPluginsList[''] = $GLOBALS['strAdserverTypeGeneric'];
     $adPluginsList['none'] = $GLOBALS['strDoNotAlterHtml'];
     foreach ($adPluginsNames as $adPluginKey => $adPluginName) {
         $adPluginsList[$adPluginKey] = $adPluginName;
     }
     $form->addElement('select', 'adserver', $this->translate($GLOBALS['strAlterHTML']), $adPluginsList, $aSelectAttributes);
     $form->addElement('header', 'header_b_parameters', $this->translate("Banner display"));
     $form->addElement('text', 'p_link_url', $this->translate($GLOBALS['strURL']));
     $form->addElement('text', 'p_link_text', $this->translate("Link text"));
     $form->addElement('text', 'p_title', $this->translate("Title"));
     $form->addElement('text', 'p_description', $this->translate("Description"));
     $form->addElement('text', 'p_image_url', $this->translate("Url Image"));
     $form->addElement('text', 'p_click_url_unesc', $this->translate("Click url Unesc"));
     $form->addElement('hidden', 'ext_bannertype', $this->getComponentIdentifier());
     $bannerId = $row['bannerid'];
     if ($bannerId) {
         $doBanners = OA_Dal::factoryDO('my_banners');
         $doBanners->bannerid = $bannerId;
         $doBanners->find(true);
         $row['terra_link_url'] = $doBanners->terra_link_url;
         $row['terra_link_text'] = $doBanners->terra_link_text;
         $row['terra_title'] = $doBanners->terra_title;
         $row['terra_description'] = $doBanners->terra_description;
         $row['terra_image_url'] = $doBanners->terra_image_url;
         $row['terra_click_url_unesc'] = $doBanners->terra_click_url_unesc;
         $form->setDefaults(array('p_link_url' => $doBanners->terra_link_url, 'p_link_text' => $doBanners->terra_link_text, 'p_title' => $doBanners->terra_title, 'p_description' => $doBanners->terra_description, 'p_image_url' => $doBanners->terra_image_url, 'p_click_url_unesc' => $doBanners->terra_click_url_unesc));
     }
 }
 function test_callOnComponents()
 {
     $GLOBALS['_MAX']['CONF']['pluginPaths']['plugins'] = '/lib/OX/Plugin/tests/data/testExtensions/';
     $GLOBALS['_MAX']['CONF']['pluginPaths']['admin'] = '/lib/OX/Plugin/tests/data/www/admin/plugins/';
     $GLOBALS['_MAX']['CONF']['pluginGroupComponents'] = array('testGroup1' => 1, 'testGroup2' => 1);
     $aComponents[] = OX_Component::factoryByComponentIdentifier('testExtension1:testGroup1:testComponent1');
     $aComponents[] = OX_Component::factoryByComponentIdentifier('testExtension1:testGroup2:testComponent1');
     $aResult = OX_Component::callOnComponents($aComponents, 'staticMethod');
     $this->assertIsA($aResult, 'array');
     $this->assertEqual(count($aResult), 2);
     $this->assertEqual($aResult['0'], 'staticMethodResult1');
     $this->assertEqual($aResult['1'], 'staticMethodResult2');
     $aResult = OX_Component::callOnComponents($aComponents, 'staticMethodWithParams', array('foo'));
     $this->assertIsA($aResult, 'array');
     $this->assertEqual(count($aResult), 2);
     $this->assertEqual($aResult['0'], 'staticMethodWithParams1=foo');
     $this->assertEqual($aResult['1'], 'staticMethodWithParams2=foo');
 }
 /**
  * set a given plugin setting to false
  *
  * @param string $name
  * @return boolean
  */
 public function disableComponentGroup($name, $extends)
 {
     $aComponents = OX_Component::getComponents($extends, $name, true, false);
     $aResult = OX_Component::callOnComponents($aComponents, 'onDisable');
     foreach ($aResult as $componentIdentifier => $value) {
         if (!$value) {
             // Should I call onEnable for those components that were sucessfully disabled?
             return false;
         }
     }
     return $this->_setPlugin($name, 0);
 }
 /**
  * A private method to calculate an equivalent "last time that maintenance
  * statistics was run" value from logged delivery data, if possible.
  *
  * Enables the MSE process to be kick-started for new installations, where
  * the MSE has not been run before; but without causing the MSE to run
  * until the installation is actually logging data.
  *
  * @access private
  * @param integer $type The update type that "occurred" - that is,
  *                      OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI if the required
  *                      calculated "update date" needs to be in terms of the
  *                      operation interval; or
  *                      OX_DAL_MAINTENANCE_STATISTICS_UPDATE_HOUR if the
  *                      required calculated "update date" needs to be in terms
  *                      of the hour.
  * @return Date A Date representing the end of the operation interval
  *              which is before the date found of the earliest known
  *              logged delivery data record. Returns null if no logged
  *              delivery data can be located.
  */
 function _getEarliestLoggedDeliveryData($type)
 {
     // Obtain all components from the deliveryLog plugin group
     $aDeliveryLogComponents = OX_Component::getComponents('deliveryLog');
     // Are there any components?
     if (empty($aDeliveryLogComponents)) {
         return null;
     }
     // Call the "getEarliestLoggedDataDate()" method on each
     // component, to find out what is the date of the earliest
     // logged data that the component knows about
     $aResult = OX_Component::callOnComponents($aDeliveryLogComponents, 'getEarliestLoggedDataDate');
     if ($aResults === false) {
         return null;
     }
     // Iterate over the results from above, and see if any of
     // the components returned valid dates, and if so, which
     // of the results is the earliest
     $oDate = null;
     foreach ($aResult as $oComponentDate) {
         if (is_a($oComponentDate, 'Date')) {
             // Logged data was located! Is this date earlier than
             // any previous "earliest" logged delivery data?
             if (is_null($oDate)) {
                 $oDate = new Date();
                 $oDate->copy($oComponentDate);
             } else {
                 if ($oComponentDate->before($oDate)) {
                     $oDate->copy($oComponentDate);
                 }
             }
         }
     }
     // Was a date found?
     if (is_null($oDate) || !is_a($oDate, 'Date')) {
         return null;
     }
     // Convert the located earliest logged data date into either the
     // end of the previous operation interval, or the end of the previous
     // hour, depending on the required type
     if ($type == OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI) {
         $aDates = OX_OperationInterval::convertDateToPreviousOperationIntervalStartAndEndDates($oDate);
     } else {
         $aDates = OX_OperationInterval::convertDateToPreviousOperationIntervalStartAndEndDates($oDate, 60);
     }
     // Return the date
     return $aDates['end'];
 }
Example #6
0
| (at your option) any later version.                                       |
|                                                                           |
| This program is distributed in the hope that it will be useful,           |
| but WITHOUT ANY WARRANTY; without even the implied warranty of            |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             |
| GNU General Public License for more details.                              |
|                                                                           |
| You should have received a copy of the GNU General Public License         |
| along with this program; if not, write to the Free Software               |
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA |
+---------------------------------------------------------------------------+
$Id: index.php 37157 2009-05-28 12:31:10Z andrew.hill $
*/
/**
 * This file creates the dispatch map by merging core and plugin dispatch maps
 * and starts the XML-RPC server.
 */
require_once '../../../../init.php';
require_once LIB_PATH . '/Plugin/Component.php';
require_once 'XmlRpcFrontController.php';
$fc = new XmlrpcFrontController();
// OpenX Core Dispatch map
$dispatches = array('ox.logon' => array('function' => array($fc, 'logon'), 'signature' => array(array('string', 'string', 'string')), 'docstring' => 'Logon method'), 'ox.logoff' => array('function' => array($fc, 'logoff'), 'signature' => array(array('bool', 'string')), 'docstring' => 'Logoff method'), 'ox.addAdvertiser' => array('function' => array($fc, 'addAdvertiser'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add advertiser'), 'ox.modifyAdvertiser' => array('function' => array($fc, 'modifyAdvertiser'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify advertiser information'), 'ox.deleteAdvertiser' => array('function' => array($fc, 'deleteAdvertiser'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete advertiser'), 'ox.advertiserDailyStatistics' => array('function' => array($fc, 'advertiserDailyStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Advertiser Daily Statistics'), 'ox.advertiserCampaignStatistics' => array('function' => array($fc, 'advertiserCampaignStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Advertiser Campaign Statistics'), 'ox.advertiserBannerStatistics' => array('function' => array($fc, 'advertiserBannerStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Advertiser Banner Statistics'), 'ox.advertiserPublisherStatistics' => array('function' => array($fc, 'advertiserPublisherStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Advertiser Publisher Statistics'), 'ox.advertiserZoneStatistics' => array('function' => array($fc, 'advertiserZoneStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Advertiser Zone Statistics'), 'ox.getAdvertiser' => array('function' => array($fc, 'getAdvertiser'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Advertiser Information'), 'ox.getAdvertiserListByAgencyId' => array('function' => array($fc, 'getAdvertiserListByAgencyId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Advertiser List By Agency Id'), 'ox.addAgency' => array('function' => array($fc, 'addAgency'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add agency'), 'ox.modifyAgency' => array('function' => array($fc, 'modifyAgency'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify agency information'), 'ox.deleteAgency' => array('function' => array($fc, 'deleteAgency'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete agency'), 'ox.agencyDailyStatistics' => array('function' => array($fc, 'agencyDailyStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Agency Daily Statistics'), 'ox.agencyAdvertiserStatistics' => array('function' => array($fc, 'agencyAdvertiserStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Agency Advertiser Statistics'), 'ox.agencyCampaignStatistics' => array('function' => array($fc, 'agencyCampaignStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Agency Campaign Statistics'), 'ox.agencyBannerStatistics' => array('function' => array($fc, 'agencyBannerStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Agency Banner Statistics'), 'ox.agencyPublisherStatistics' => array('function' => array($fc, 'agencyPublisherStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Agency Publisher Statistics'), 'ox.agencyZoneStatistics' => array('function' => array($fc, 'agencyZoneStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Agency Zone Statistics'), 'ox.getAgency' => array('function' => array($fc, 'getAgency'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Agency Information'), 'ox.getAgencyList' => array('function' => array($fc, 'getAgencyList'), 'signature' => array(array('array', 'string')), 'docstring' => 'Get Agency List'), 'ox.addBanner' => array('function' => array($fc, 'addBanner'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add banner'), 'ox.modifyBanner' => array('function' => array($fc, 'modifyBanner'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify banner information'), 'ox.deleteBanner' => array('function' => array($fc, 'deleteBanner'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete banner'), 'ox.getBannerTargeting' => array('function' => array($fc, 'getBannerTargeting'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get banner targeting limitations array'), 'ox.setBannerTargeting' => array('function' => array($fc, 'setBannerTargeting'), 'signature' => array(array('boolean', 'string', 'int', 'array')), 'docstring' => 'Set banner targeting limitations array'), 'ox.bannerDailyStatistics' => array('function' => array($fc, 'bannerDailyStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Banner Daily Statistics'), 'ox.bannerPublisherStatistics' => array('function' => array($fc, 'bannerPublisherStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Banner Publisher Statistics'), 'ox.bannerZoneStatistics' => array('function' => array($fc, 'bannerZoneStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Banner Zone Statistics'), 'ox.getBanner' => array('function' => array($fc, 'getBanner'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Banner Information'), 'ox.getBannerListByCampaignId' => array('function' => array($fc, 'getBannerListByCampaignId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Banner List By Campaign Id'), 'ox.addCampaign' => array('function' => array($fc, 'addCampaign'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add campaign'), 'ox.modifyCampaign' => array('function' => array($fc, 'modifyCampaign'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify campaign information'), 'ox.deleteCampaign' => array('function' => array($fc, 'deleteCampaign'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete campaign'), 'ox.campaignDailyStatistics' => array('function' => array($fc, 'campaignDailyStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate campaign Daily Statistics'), 'ox.campaignBannerStatistics' => array('function' => array($fc, 'campaignBannerStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate campaign Banner Statistics'), 'ox.campaignPublisherStatistics' => array('function' => array($fc, 'campaignPublisherStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate campaign Publisher Statistics'), 'ox.campaignZoneStatistics' => array('function' => array($fc, 'campaignZoneStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate campaign Zone Statistics'), 'ox.getCampaign' => array('function' => array($fc, 'getCampaign'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Campaign Information'), 'ox.getCampaignListByAdvertiserId' => array('function' => array($fc, 'getCampaignListByAdvertiserId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Campaign List By Advertiser Id'), 'ox.addChannel' => array('function' => array($fc, 'addChannel'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add Channel'), 'ox.modifyChannel' => array('function' => array($fc, 'modifyChannel'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify Channel Information'), 'ox.deleteChannel' => array('function' => array($fc, 'deleteChannel'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete Channel'), 'ox.getChannel' => array('function' => array($fc, 'getChannel'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Channel Information'), 'ox.getChannelListByWebsiteId' => array('function' => array($fc, 'getChannelListByWebsiteId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Website Channel List'), 'ox.getChannelListByAgencyId' => array('function' => array($fc, 'getChannelListByAgencyId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Agency Channel List'), 'ox.getChannelTargeting' => array('function' => array($fc, 'getChannelTargeting'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get channel targeting limitations array'), 'ox.setChannelTargeting' => array('function' => array($fc, 'setChannelTargeting'), 'signature' => array(array('boolean', 'string', 'int', 'array')), 'docstring' => 'Set channel targeting limitations array'), 'ox.addPublisher' => array('function' => array($fc, 'addPublisher'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add publisher'), 'ox.modifyPublisher' => array('function' => array($fc, 'modifyPublisher'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify publisher information'), 'ox.deletePublisher' => array('function' => array($fc, 'deletePublisher'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete publisher'), 'ox.publisherDailyStatistics' => array('function' => array($fc, 'publisherDailyStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Publisher Daily Statistics'), 'ox.publisherZoneStatistics' => array('function' => array($fc, 'publisherZoneStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Publisher Zone Statistics'), 'ox.publisherAdvertiserStatistics' => array('function' => array($fc, 'publisherAdvertiserStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Publisher Advertiser Statistics'), 'ox.publisherCampaignStatistics' => array('function' => array($fc, 'publisherCampaignStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Publisher Campaign Statistics'), 'ox.publisherBannerStatistics' => array('function' => array($fc, 'publisherBannerStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Publisher Banner Statistics'), 'ox.getPublisher' => array('function' => array($fc, 'getPublisher'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Publisher Information'), 'ox.getPublisherListByAgencyId' => array('function' => array($fc, 'getPublisherListByAgencyId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Publishers List By Agency Id'), 'ox.addUser' => array('function' => array($fc, 'addUser'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add user'), 'ox.modifyUser' => array('function' => array($fc, 'modifyUser'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify user information'), 'ox.deleteUser' => array('function' => array($fc, 'deleteUser'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete user'), 'ox.getUser' => array('function' => array($fc, 'getUser'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get User Information'), 'ox.getUserListByAccountId' => array('function' => array($fc, 'getUserListByAccountId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get User List By Account Id'), 'ox.updateSsoUserId' => array('function' => array($fc, 'updateSsoUserId'), 'signature' => array(array('array', 'string', 'int', 'int')), 'docstring' => 'Change the SSO User ID field'), 'ox.updateUserEmailBySsoId' => array('function' => array($fc, 'updateUserEmailBySsoId'), 'signature' => array(array('array', 'string', 'int', 'string')), 'docstring' => 'Change users email for the user who match the SSO User ID'), 'ox.addZone' => array('function' => array($fc, 'addZone'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Add zone'), 'ox.modifyZone' => array('function' => array($fc, 'modifyZone'), 'signature' => array(array('int', 'string', 'struct')), 'docstring' => 'Modify zone information'), 'ox.deleteZone' => array('function' => array($fc, 'deleteZone'), 'signature' => array(array('int', 'string', 'int')), 'docstring' => 'Delete zone'), 'ox.zoneDailyStatistics' => array('function' => array($fc, 'zoneDailyStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Zone Daily Statistics'), 'ox.zoneAdvertiserStatistics' => array('function' => array($fc, 'zoneAdvertiserStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Zone Advertiser Statistics'), 'ox.zoneCampaignStatistics' => array('function' => array($fc, 'zoneCampaignStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Zone Campaign Statistics'), 'ox.zoneBannerStatistics' => array('function' => array($fc, 'zoneBannerStatistics'), 'signature' => array(array('array', 'string', 'int', 'dateTime.iso8601', 'dateTime.iso8601'), array('array', 'string', 'int', 'dateTime.iso8601'), array('array', 'string', 'int')), 'docstring' => 'Generate Zone Banner Statistics'), 'ox.getZone' => array('function' => array($fc, 'getZone'), 'signature' => array(array('struct', 'string', 'int')), 'docstring' => 'Get Zone Information'), 'ox.getZoneListByPublisherId' => array('function' => array($fc, 'getZoneListByPublisherId'), 'signature' => array(array('array', 'string', 'int')), 'docstring' => 'Get Zone List By Publisher Id'), 'ox.linkBanner' => array('function' => array($fc, 'linkBanner'), 'signature' => array(array('int', 'string', 'int', 'int')), 'docstring' => 'Link a banner to a zone'), 'ox.linkCampaign' => array('function' => array($fc, 'linkCampaign'), 'signature' => array(array('int', 'string', 'int', 'int')), 'docstring' => 'Link a campaign to a zone'), 'ox.unlinkBanner' => array('function' => array($fc, 'unlinkBanner'), 'signature' => array(array('int', 'string', 'int', 'int')), 'docstring' => 'Unlink a banner to from zone'), 'ox.unlinkCampaign' => array('function' => array($fc, 'unlinkCampaign'), 'signature' => array(array('int', 'string', 'int', 'int')), 'docstring' => 'Unlink a campaign from a zone'), 'ox.generateTags' => array('function' => array($fc, 'generateTags'), 'signature' => array(array('string', 'string', 'int', 'string', 'struct'), array('string', 'string', 'int', 'string', 'array')), 'docstring' => 'Unlink a campaign from a zone'));
// Merge the plugins' dispatch maps with core.
// Function names should be namespaced.
$aComponents = OX_Component::getComponents('api');
$aMaps = OX_Component::callOnComponents($aComponents, 'getDispatchMap');
foreach ($aMaps as $map) {
    $dispatches = array_merge($dispatches, $map);
}
$server = new XML_RPC_Server($dispatches, 1);