2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 07/25/2011 *
4 * =================== Last change: 07/25/2011 *
6 * -------------------------------------------------------------------- *
7 * File : forced_functions.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Functions for ext-forced *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Funktionen fuer ext-forced *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2011 by Mailer Developer Team *
20 * For more information visit: http://www.mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
43 // Template helper function to create selection box for all forced-ad types
44 function doTemplateForcedAdTypeSelectionBox ($templateName, $clear = false, $default = NULL) {
45 // Add all types through the filter
46 $forcedAdTypes = runFilterChain('add_forced_ads_types', array());
48 // Handle it over to generateSelectionBoxFromArray()
49 $content = generateSelectionBoxFromArray($forcedAdTypes, 'forced_ads_type', 'type');
51 // Return prepared content
55 // Translate the status IN/OUT
56 function translateForcedAdType ($status) {
57 // Is the status empty?
62 // Default status is unknown
63 $return = '{%message,ADMIN_FORCED_AD_TYPE_UNKNOWN=' . $status . '%}';
65 // Construct message id
66 $messageId = 'ADMIN_FORCED_AD_TYPE_' . $status;
69 if (isMessageIdValid($messageId)) {
70 // Then use it as message string
71 $return = '{--' . $messageId . '--}';
78 // Handles the XML node 'extra-parameter-forced-ads-reload-lock-list'
79 function doXmlExtraParameterForcedAdsReloadLockList ($resource, $attributes) {
80 // There should be no attributes
81 if (count($attributes) > 0) {
82 // Please don't add any attributes to foo-list nodes
83 debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
84 } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['forced_ads_reload_lock_list'])) {
85 // This list should be created already
86 debug_report_bug(__FUNCTION__, __LINE__, 'forced_ads_reload_lock_list should be already created.');
90 // Handles the XML node 'extra-parameter-forced-ads-reload-lock-list-entry'
91 function doXmlExtraParameterForcedAdsReloadLockListEntry ($resource, $attributes) {
92 // There are three attributes, by default
93 if (count($attributes) != 3) {
94 // Not the right count
95 debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
96 } elseif (!isset($attributes['NAME'])) {
98 debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
99 } elseif (!isset($attributes['TYPE'])) {
101 debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
102 } elseif (!isInvalidXmlType($attributes['TYPE'])) {
104 debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
105 } elseif (!isset($attributes['VALUE'])) {
107 debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
108 } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
109 // Not valid/verifyable
110 debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
111 } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['forced_ads_reload_lock_list'])) {
112 // doXmlCallbackFunction is missing
113 debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/forced-ads-reload-lock-list not included around this node. Please fix your XML.');
116 // Add the entry to the list
117 addXmlValueToCallbackAttributes('extra_list', $attributes, 'forced_ads_reload_lock_list');
120 // Handles the XML node 'extra-parameter-forced-ads-min-stay-list'
121 function doXmlExtraParameterForcedAdsMinStayList ($resource, $attributes) {
122 // There should be no attributes
123 if (count($attributes) > 0) {
124 // Please don't add any attributes to foo-list nodes
125 debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
126 } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['forced_ads_min_stay_list'])) {
127 // This list should be created already
128 debug_report_bug(__FUNCTION__, __LINE__, 'forced_ads_min_stay_list should be already created.');
132 // Handles the XML node 'extra-parameter-forced-ads-min-stay-list-entry'
133 function doXmlExtraParameterForcedAdsMinStayListEntry ($resource, $attributes) {
134 // There are three attributes, by default
135 if (count($attributes) != 3) {
136 // Not the right count
137 debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
138 } elseif (!isset($attributes['NAME'])) {
140 debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
141 } elseif (!isset($attributes['TYPE'])) {
143 debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
144 } elseif (!isInvalidXmlType($attributes['TYPE'])) {
146 debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
147 } elseif (!isset($attributes['VALUE'])) {
149 debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
150 } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
151 // Not valid/verifyable
152 debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
153 } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['forced_ads_min_stay_list'])) {
154 // doXmlCallbackFunction is missing
155 debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/forced-ads-min-stay-list not included around this node. Please fix your XML.');
158 // Add the entry to the list
159 addXmlValueToCallbackAttributes('extra_list', $attributes, 'forced_ads_min_stay_list');