Cheetah
actions.inc.php
Go to the documentation of this file.
1 <?php
2 
8 //user's ID
9 $sId = isset($_REQUEST['id']) ? (int)$_REQUEST['id'] : 0;
10 //user's nick
11 $sNick = isset($_REQUEST['nick']) ? process_db_input($_REQUEST['nick']) : "";
12 //user's password
13 $sPassword = isset($_REQUEST['password']) ? process_db_input($_REQUEST['password']) : "";
14 //user's status
15 $sStatus = isset($_REQUEST['status']) ? process_db_input($_REQUEST['status']) : "";
16 
17 //widget name
18 $sWidget = isset($_REQUEST['widget']) ? process_db_input($_REQUEST['widget']) : "";
19 //widget status
20 $bWidgetEnable = isset($_REQUEST['enable']) ? $_REQUEST['enable'] == 'true' : true;
21 //folder name
22 $sFolderName = isset($_REQUEST['folder']) ? process_db_input($_REQUEST['folder']) : "";
23 //default file
24 $sDefaultFile = isset($_REQUEST['default']) ? process_db_input($_REQUEST['default']) : "";
25 //file
26 $sFile = isset($_REQUEST['file']) ? process_db_input($_REQUEST['file']) : "";
27 
28 //setting key
29 $sSettingKey = isset($_REQUEST['key']) ? process_db_input($_REQUEST['key']) : "";
30 //setting value
31 $sSettingValue = isset($_REQUEST['value']) ? process_db_input($_REQUEST['value']) : "";
32 
33 switch ($sAction) {
34  case 'version':
35  $sContents = parseXml($aXmlTemplates['result'], $aInfo['version']);
36  break;
37 
42  case 'startInstall':
43  if(loginAdmin($sNick, $sPassword) != TRUE_VAL) {
44  $sContents = parseXml($aXmlTemplates['result'], "Admin Authorization Failed", FAILED_VAL);
45  break;
46  }
47  $sWidgetFile = $sWidget . "/install/install.xml";
48  $sFileName = $sModulesPath . $sWidgetFile;
49  if(file_exists($sFileName)) {
50  $aResult = getFileContents($sWidget, "/install/permissions.xml", true);
51  $aUserFiles = ($aResult['status'] == SUCCESS_VAL) ? $aResult['contents'] : array();
52  $aFiles = Array("xml/main.xml" => "666", "xml/config.xml" => "666", "xml/skins.xml" => "666", "xml/langs.xml" => "666");
53  $aFiles = array_merge($aFiles, $aUserFiles);
54  $aItems = Array();
55  foreach($aFiles as $sFile => $sPermissions)
56  if(file_exists($sModulesPath . $sWidget . "/" . $sFile))
57  $aItems[$sFile] = parseXml($aXmlTemplates["item"], $sWidget, $sFile, $sPermissions);
58 
59  if(!isset($aItems["xml/main.xml"]))
60  $sContents = parseXml($aXmlTemplates['result'], getError($aErrorCodes[1], $sWidget . "/xml/main.xml"), FAILED_VAL);
61  else $sContents = parseXml($aXmlTemplates['result'], '', SUCCESS_VAL);
62 
63  $sCaption = parseXml($aXmlTemplates['caption'], "Permissions");
64  $sText = parseXml($aXmlTemplates['text'], '<p align="center">Click "NEXT" to renew permission settings</p>');
65  $sItems = makeGroup(implode("", $aItems), "items");
66  $sPages = makeGroup($sCaption . $sText . $sItems, "page");
67 
68  $rHandle = fopen($sFileName, "rt");
69  $sPages .= fread($rHandle, filesize($sFileName));
70  $sContents .= makeGroup($sPages, "pages");
71  fclose($rHandle);
72  } else
73  $sContents = parseXml($aXmlTemplates['result'], getError($aErrorCodes[1], $sWidgetFile), FAILED_VAL);
74  break;
75 
82  case 'finishInstall':
83  if(loginAdmin($sNick, $sPassword) != TRUE_VAL) {
84  $sContents = parseXml($aXmlTemplates['result'], "Admin Authorization Failed", FAILED_VAL);
85  break;
86  }
87  //--- 1. Recompile integration JS.
88  $sWidgetFile = $sWidget . "/inc/constants.inc.php";
89  $sWidgetFileName = $sModulesPath . $sWidgetFile;
90  if(!secureCheckWidgetName($sWidget) || !file_exists($sWidgetFileName)) {
91  $sContents = parseXml($aXmlTemplates['result'], getError($aErrorCodes[1], $sWidgetFile), FAILED_VAL);
92  break;
93  }
94  if(isset($aModules)) unset($aModules);
95  require_once($sWidgetFileName);
96 
98  if($aResult['status'] == FAILED_VAL) {
99  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], FAILED_VAL);
100  break;
101  }
102 
103  //--- 2. Create skins.xml file.
104  if(file_exists($sModulesPath . $sWidget . "/xml/skins.xml")) {
105  $aResult = refreshExtraFile($sWidget, "skins");
106  if($aResult['status'] == FAILED_VAL) {
107  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], FAILED_VAL);
108  break;
109  }
110  }
111 
112  //--- 3. Create langs.xml file.
113  if(file_exists($sModulesPath . $sWidget . "/xml/langs.xml")) {
114  $aResult = refreshExtraFile($sWidget, "langs");
115  if($aResult['status'] == FAILED_VAL) {
116  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], FAILED_VAL);
117  break;
118  }
119  }
120 
121  //--- 4. Change main.xml file.
123  if($aResult['status'] == FAILED_VAL) {
124  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], FAILED_VAL);
125  break;
126  }
127 
128  //--- 5. Create database.
130  if(empty($sResult)) $sContents = parseXml($aXmlTemplates['result'], "", SUCCESS_VAL);
131  else $sContents = parseXml($aXmlTemplates['result'], $sResult, FAILED_VAL);
132  break;
133 
139  case 'checkPermissions':
140  $sWidgetFile = $sWidget . "/" . $sFile;
141  $sFileName = $sModulesPath . $sWidgetFile;
142  $sResult = checkPermissions($sFileName);
143  if(empty($sResult)) $sContents = parseXml($aXmlTemplates['result'], getError($aErrorCodes[1], $sWidgetFile), FAILED_VAL);
144  else $sContents = parseXml($aXmlTemplates['result'], $sResult, SUCCESS_VAL);
145  break;
146 
153  case 'setSettingValue':
154  if(loginAdmin($sNick, $sPassword) != TRUE_VAL) {
155  $sContents = parseXml($aXmlTemplates['result'], "Admin Authorization Failed", FAILED_VAL);
156  break;
157  }
159  if($aResult['status'] == SUCCESS_VAL && (strpos($sSettingKey, "_width") > 0 || strpos($sSettingKey, "_height") > 0)) {
160  if(isset($aModules)) unset($aModules);
162  require_once($sModulesPath . $sWidget . "/inc/constants.inc.php");
164  } else {
165  $aResult = array('status' => FAILED_VAL, 'value' => $aErrorCodes[8]);
166  }
167  }
168 
169  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], $aResult['status']);
170  break;
171 
177  case 'getSettingValue':
178  $aSetting = getSettingValue($sWidget, $sSettingKey, $sFile, true);
179  $sContents = parseXml($aXmlTemplates['result'], $aSetting['value'], $aSetting['status']);
180  break;
181 
185  case 'settings':
186  $aResult = getFileContents($sWidget, "/xml/settings.xml");
187  $sSettingsContents = $aResult['status'] == FAILED_VAL ? makeGroup("", "items") : $aResult['contents'];
188  $sContents = makeGroup($sSettingsContents, "settings");
189 
190  $aResult = getFileContents($sWidget, "/xml/config.xml");
191  $sConfigContents = $aResult['status'] == FAILED_VAL ? makeGroup("", "items") : $aResult['contents'];
192  $sContents .= makeGroup($sConfigContents, "config");
193  break;
194 
198  case 'templates':
199  $aResult = refreshExtraFile($sWidget, "skins");
200  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], $aResult['status']);
201  $sContents .= $aResult['contents'];
202  break;
203 
207  case 'languages':
208  $aResult = refreshExtraFile($sWidget, "langs");
209  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], $aResult['status']);
210  $sContents .= $aResult['contents'];
211  break;
212 
216  case 'updates':
217  $aResult = getFileContents($sWidget, "/xml/main.xml", true);
218  if($aResult['status'] == SUCCESS_VAL) {
219  $aContents = $aResult['contents'];
220  $sContents .= parseXml($aXmlTemplates['result'], SUCCESS_VAL, $aContents['updated'], $aContents['updateLast'], $aContents['updateUrl']);
221  } else $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], FAILED_VAL);
222  break;
223 
227  case 'saveExtraFile':
228  if(loginAdmin($sNick, $sPassword) != TRUE_VAL) {
229  $sContents = parseXml($aXmlTemplates['result'], "Admin Authorization Failed", FAILED_VAL);
230  break;
231  }
232  $aEnabledFiles = explode(",", $sFile);
233  $aResult = refreshExtraFile($sWidget, $sFolderName, true, $sDefaultFile, $aEnabledFiles);
234  $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], $aResult['status']);
235  break;
236 
240  case 'adminAuthorize':
242  break;
243 
247  case 'getMyWidgets':
248  $rDirHandler = opendir($sModulesPath);
249  $aContents = array();
250  $aTitles = array();
251 
252  while(($sInner = readdir($rDirHandler)) !== false)
253  if(is_dir($sModulesPath . $sInner) && substr($sInner, 0, 1) != '.' && $sInner != 'global') {
254  if(isset($aModules)) unset($aModules);
255  if(!secureCheckWidgetName($sInner))
256  continue;
257 
258  $sConstantsFile = $sModulesPath . $sInner . "/inc/constants.inc.php";
259  if(!file_exists($sConstantsFile))
260  continue;
261 
262  require_once($sConstantsFile);
263  $sAdminUrl = file_exists($sModulesPath . $sInner . "/app/admin.swf") ? $sHomeUrl . "index.php?module=" . $sInner . "&amp;app=admin&amp;nick=#nick#&amp;password=#password#": "";
264  $aStatus = getSettingValue($sInner, "status", "main", true);
265  $sStatus = ($aStatus['status'] == FAILED_VAL) ? WIDGET_STATUS_NOT_INSTALLED : $aStatus['value'];
266  $sStatus = (empty($sStatus) || $sStatus == "") ? WIDGET_STATUS_NOT_INSTALLED : $sStatus;
267  $sStatus = ("666" != checkPermissions($sModulesPath . $sInner . "/xml/main.xml")) ? WIDGET_STATUS_NOT_INSTALLED : $sStatus;
268  $sVersion = isset($aInfo) ? $aInfo['version'] : "";
269  $sTitle = isset($aInfo) ? $aInfo['title'] : "";
270  $sAuthor = isset($aInfo) ? $aInfo['author'] : "";
271  $sAuthorUrl = isset($aInfo) ? $aInfo['authorUrl'] : "";
272  $sImageUrl = file_exists($sModulesPath . $sInner . "/data/preview.jpg") ? $sModulesUrl . $sInner . "/data/preview.jpg" : "";
273 
274  $aContents[] = parseXml($aXmlTemplates['widget'], $sInner, $sVersion, $sTitle, $sAuthor, $sAuthorUrl, $sImageUrl, $sStatus, $sAdminUrl);
275  $aTitles[] = $sTitle;
276  array_multisort($aTitles, $aContents);
277  $sContent = implode("", $aContents);
278  }
279 
280  $sContents = makeGroup($sContent, "widgets");
281  break;
282 
286  case 'getWidgetCode':
287  $aResult = getFileContents($sWidget, "/xml/main.xml", true);
288  if($aResult['status'] == SUCCESS_VAL) {
289  $aContents = $aResult['contents'];
290  $sCode = $aContents['code'];
291  if(empty($sCode)) {
293  require_once($sModulesPath . $sWidget . "/inc/constants.inc.php");
294  $sCode = $aInfo['code'];
295  }
296  }
297  $sContents = parseXml($aXmlTemplates['result'], SUCCESS_VAL, $sCode, $aContents['license']);
298  } else $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], FAILED_VAL);
299  break;
300 
304  case 'getWidgetAds':
305  $sFooter = getParam("enable_cheetah_footer");
306  $bPaid = empty($sFooter);
307  $sEnabled = $bPaid ? TRUE_VAL : FALSE_VAL;
308  if($bPaid) {
309  $sBannerUrl = getSettingValue(GLOBAL_MODULE, "bannerUrl");
310  $sBannerLink = getSettingValue(GLOBAL_MODULE, "bannerLink");
311  $sBannerTarget = getSettingValue(GLOBAL_MODULE, "bannerTarget");
312  $iBannerAlpha = getSettingValue(GLOBAL_MODULE, "bannerAlpha");
313  if(!is_numeric($iBannerAlpha) || $iBannerAlpha < 0 || $iBannerAlpha > 100) $iBannerAlpha = 100;
314  $sContents = parseXml($aXmlTemplates['ads'], $sEnabled, $sBannerUrl, $sBannerLink, $sBannerTarget, $iBannerAlpha);
315  } else $sContents = parseXml($aXmlTemplates['ads'], $sEnabled);
316  break;
317 }
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
loginAdmin
loginAdmin($sLogin, $sPassword)
Definition: customFunctions.inc.php:36
$sFolderName
$sFolderName
Definition: actions.inc.php:22
getFileContents
getFileContents($sWidget, $sFile, $bArray=false)
Definition: functions.inc.php:264
$sCode
$sCode
Definition: explanation.php:19
$sResult
$sResult
Definition: advanced_settings.php:26
$bWidgetEnable
$bWidgetEnable
Definition: actions.inc.php:20
refreshExtraFile
refreshExtraFile($sWidget, $sCase, $bReset=false, $sDefaultFile="", $aEnabledFiles=array())
Definition: functions.inc.php:172
$aResult
$aResult
Definition: index.php:19
$sModulesUrl
$sModulesUrl
Definition: header.inc.php:52
$sHomeUrl
$sHomeUrl
Definition: header.inc.php:41
php
getError
getError($sError)
Definition: functions.inc.php:18
$sModulesPath
$sModulesPath
Definition: header.inc.php:53
createDataBase
createDataBase($sWidget)
Definition: functions.inc.php:65
$sWidget
$sWidget
Definition: actions.inc.php:18
$aInfo
$aInfo
Definition: constants.inc.php:21
secureCheckWidgetName
secureCheckWidgetName($sWidget)
Definition: functions.inc.php:8
$sPassword
$sPassword
Definition: actions.inc.php:10
recompileIntegrator
recompileIntegrator($sWidget)
Definition: functions.inc.php:98
getParam
getParam($sParamName, $bUseCache=true)
Definition: db.inc.php:130
$sFile
$sFile
Definition: actions.inc.php:26
$sTitle
$sTitle
Definition: actions.inc.php:13
checkPermissions
checkPermissions($sFileName)
Definition: functions.inc.php:34
$_REQUEST
$_REQUEST['action']
Definition: cmd.php:11
$sContent
$sContent
Definition: bottom_menu_compose.php:169
$sSettingValue
$sSettingValue
Definition: actions.inc.php:31
$sDefaultFile
$sDefaultFile
Definition: actions.inc.php:24
$aErrorCodes
$aErrorCodes
Definition: constants.inc.php:26
parseXml
parseXml($aXmlTemplates)
Definition: apiFunctions.inc.php:15
$aModules
$aModules
Definition: constants.inc.php:29
makeGroup
makeGroup($sXmlContent, $sXmlGroup="ray")
Definition: apiFunctions.inc.php:32
$aXmlTemplates
$aXmlTemplates
Definition: xmlTemplates.inc.php:8
$sId
$sId
Definition: actions.inc.php:8
getSettingValue
getSettingValue($sWidget, $sSettingKey, $sFile="config", $bFullReturn=false, $sFolder="xml")
Definition: apiFunctions.inc.php:82
$sCaption
$sCaption
Definition: tellfriend.php:39
$sContents
$sContents
Definition: XML.php:38
$sAction
$sAction
Definition: categories.php:274
setSettingValue
setSettingValue($sWidget, $sSettingKey, $sSettingValue, $sFile="config")
Definition: apiFunctions.inc.php:43
createMainFile
createMainFile($sWidget)
Definition: functions.inc.php:224
$sNick
$sNick
Definition: actions.inc.php:9
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
$sAdminUrl
$sAdminUrl
Definition: nav_menu_compose.php:125
$sStatus
$sStatus
Definition: actions.inc.php:11
$sSettingKey
$sSettingKey
Definition: actions.inc.php:29