PageRenderTime 53ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/editor/action.php

https://bitbucket.org/3tierlogic/3tl.tabbuilder
PHP | 464 lines | 267 code | 136 blank | 61 comment | 26 complexity | 0221e1db61fe1d8d1c876bcfa49aa939 MD5 | raw file
  1. <?php
  2. // includes
  3. require_once('config.php');
  4. require_once('functions.php');
  5. # WHAT TO DO...
  6. switch ( $_REQUEST['act'] )
  7. {
  8. ############## CHECK USER TABS LIMIT #############
  9. case 'tabs_limit':
  10. $fbUserId = $_REQUEST['user_id'];
  11. $fbPageId = $_REQUEST['fan_page_id'];
  12. // get limit number
  13. $query = "SELECT tabs_limit FROM users WHERE fb_id = '".$fbUserId."' LIMIT 1 ";
  14. $query = mysql_query( $query ) or exit( mysql_error() );
  15. $limit = mysql_result( $query, 0 );
  16. // get created tabs number
  17. $query = "SELECT COUNT(*) FROM pages WHERE type = 'tab' AND fan_page_id = '".$fbPageId."' ";
  18. $query = mysql_query( $query ) or exit( mysql_error() );
  19. $tabsNumber = mysql_result( $query, 0 );
  20. // show result
  21. if ( $limit > $tabsNumber ) echo 'ok'; else echo 'limit';
  22. break;
  23. ############### CHECK TAB NAME ################
  24. case 'check_tab_name':
  25. // check if a user already has a tab with a provided name
  26. $query = "SELECT name FROM pages WHERE user_id = '" . $_REQUEST['fb_user_id'] . "'
  27. AND BINARY name = '" . escapeStr( $_REQUEST['name'] ) . "' ";
  28. $query = mysql_query( $query ) or exit( mysql_error() );
  29. if ( mysql_num_rows( $query ) == 0 ) echo 'ok';
  30. break;
  31. ################# CREATE NEW TAB ################
  32. case 'create_tab':
  33. // before creating a new tab, we have to check, if such tab doesn't exist
  34. $query = "SELECT * FROM pages WHERE user_id = '".$_REQUEST['user_id']."'
  35. AND fan_page_id = '".$_REQUEST['page_id']."'
  36. AND app_id = '".$_REQUEST['app_id']."' LIMIT 1 ";
  37. $query = mysql_query( $query ) or exit( mysql_error() );
  38. // no similar records found
  39. if ( ! mysql_num_rows( $query ) ) {
  40. $name = escapeStr( $_REQUEST['name'] );
  41. // add new tab into "pages" table
  42. mysql_query("INSERT INTO pages VALUES ( 0,
  43. '".$_REQUEST['user_id']."',
  44. '".$_REQUEST['page_id']."',
  45. '".$_REQUEST['app_id']."',
  46. '0', 'tab', '".$name."', '', '', '', '', '', '', '', '0', '0', '0', '0'
  47. );") or exit( mysql_error() );
  48. // get the added tab id
  49. $newTab = ars_getPageInfo();
  50. // create new record with campaign properties in "sp_campaign_info" table
  51. mysql_query("INSERT INTO sp_campaign_info VALUES (
  52. '".$newTab['id']."',
  53. '".$_REQUEST['partner_id']."',
  54. '', '', '', '', '', '', '', '', '',
  55. '', '', '', '', '', '', '', '', '', '',
  56. '', '', '', '', '', '', '', '', '', '',
  57. '', '', '', '-1',
  58. '".$name."'
  59. );") or exit( mysql_error() );
  60. // show the added tab id
  61. echo $newTab['id'];
  62. }
  63. break;
  64. ################# RENAME TAB ##################
  65. case 'rename_tab':
  66. // change name
  67. mysql_query("UPDATE pages SET
  68. name = '". escapeStr( $_REQUEST['name'] ) ."'
  69. WHERE id = '".$_REQUEST['id']."' AND app_id = '".$_REQUEST['app_id']."'
  70. ") or exit( mysql_error() );
  71. echo 'ok';
  72. break;
  73. ################## DELETE PAGE ##################
  74. case 'delete_page':
  75. // delete page children
  76. ars_delete( $_REQUEST['id'], "parent_id" );
  77. // delete page itself
  78. ars_delete( $_REQUEST['id'] );
  79. // redirection
  80. header ( 'Location: dashboard.php' );
  81. break;
  82. ################ AJAX PAGE LOAD #################
  83. case 'load_page':
  84. // get content
  85. $query = "SELECT * FROM pages WHERE id='".$_REQUEST['id']."' LIMIT 1 ";
  86. $query = mysql_query( $query ) or exit( mysql_error() );
  87. $content = mysql_fetch_assoc( $query );
  88. // show the whole content
  89. echo $content['content_nonfans'];
  90. echo $content['content_fans'];
  91. echo $content['content_contest_fans'];
  92. echo $content['content_contest_form'];
  93. echo $content['content_contest_ugc_form'];
  94. echo $content['content_contest_ugc_gallery'];
  95. echo $content['content_contest_thank'];
  96. // delete all unused files
  97. ars_deleteUnusedFiles( $_REQUEST['id'] );
  98. break;
  99. ################# AJAX PAGE SAVE #################
  100. case 'save_page':
  101. $cNonFans = ars_urldecode( $_REQUEST['content_nonfans'] );
  102. $cFans = ars_urldecode( $_REQUEST['content_fans'] );
  103. $cContestFans = ars_urldecode( $_REQUEST['content_contest_fans'] );
  104. $cContestForm = ars_urldecode( $_REQUEST['content_contest_form'] );
  105. $cContestUGCForm = ars_urldecode( $_REQUEST['content_contest_ugc_form'] );
  106. $cContestUGCGallery = ars_urldecode( $_REQUEST['content_contest_ugc_gallery'] );
  107. $cContestThank = ars_urldecode( $_REQUEST['content_contest_thank'] );
  108. mysql_query("UPDATE pages SET
  109. content_nonfans = '".$cNonFans."',
  110. content_fans = '".$cFans."',
  111. content_contest_fans = '".$cContestFans."',
  112. content_contest_form = '".$cContestForm."',
  113. content_contest_ugc_form = '".$cContestUGCForm."',
  114. content_contest_ugc_gallery = '".$cContestUGCGallery."',
  115. content_contest_thank = '".$cContestThank."',
  116. contest = '". $_REQUEST['contest'] ."',
  117. ugc = '". $_REQUEST['ugc'] ."',
  118. saved = '1'
  119. WHERE id = '".$_REQUEST['id']."'
  120. ") or exit( mysql_error() );
  121. // delete all unused files
  122. ars_deleteUnusedFiles( $_REQUEST['id'] );
  123. // update contest properties
  124. mysql_query("UPDATE sp_campaign_info SET
  125. campaign_description = '". escapeStr( $_REQUEST['contest_descr'] ) ."',
  126. campaign_start_time = '". $_REQUEST['contest_start'] ."',
  127. campaign_end_time = '". $_REQUEST['contest_end'] ."',
  128. campaign_voting_start_time = '". $_REQUEST['contest_voting_start'] ."',
  129. campaign_voting_end_time = '". $_REQUEST['contest_voting_end'] ."',
  130. campaign_vote_frequency = '". $_REQUEST['contest_voting_times'] ."',
  131. campaign_is_check_reentry = '". $_REQUEST['contest_entries'] ."',
  132. campaign_is_allow_child = '". $_REQUEST['contest_age'] ."',
  133. campaign_update_time = NOW()
  134. WHERE campaign_sid = '".$_REQUEST['id']."'
  135. ") or exit( mysql_error() );
  136. // if contest is enabled and contest create time is not set yet - save current datetime
  137. if ( $_REQUEST['contest'] == '1' ) {
  138. $query = "SELECT campaign_create_time FROM sp_campaign_info
  139. WHERE campaign_sid = '".$_REQUEST['id']."' LIMIT 1 ";
  140. $query = mysql_query( $query ) or exit( mysql_error() );
  141. $createTime = mysql_result( $query, 0 );
  142. if ( $createTime == '0000-00-00 00:00:00' ) {
  143. mysql_query("UPDATE sp_campaign_info SET
  144. campaign_create_time = NOW()
  145. WHERE campaign_sid = '".$_REQUEST['id']."'
  146. ") or exit( mysql_error() );
  147. }
  148. }
  149. break;
  150. ########## AJAX DEACTIVATE CONTEST FIELDS ###########
  151. // it is needed to check if a contest form field still exist;
  152. // fields will be activated later by "save_contest_config" case
  153. case 'deactivate_contest_fields':
  154. mysql_query("UPDATE sp_campaign_config SET cpfldcfg_is_valid = '0'
  155. WHERE campaign_sid = '".$_REQUEST['id']."'
  156. ") or exit( mysql_error() );
  157. break;
  158. ############# AJAX SAVE CONTEST CONFIG #############
  159. case 'save_contest_config':
  160. // field is stored for the first tme
  161. if ( $_REQUEST['config_id'] == '' ) {
  162. mysql_query("INSERT INTO sp_campaign_config VALUES ( 0,
  163. '',
  164. '".$_REQUEST['id']."',
  165. '".$_REQUEST['label']."',
  166. '".$_REQUEST['name']."',
  167. '',
  168. '".$_REQUEST['required']."',
  169. '', '', '', '', '',
  170. '".$_REQUEST['error']."',
  171. '', '', '', '', '', '', '', '1', NOW(), NOW()
  172. );") or exit( mysql_error() );
  173. // show added field id
  174. $query = "SELECT * FROM sp_campaign_config ORDER BY cpfldcfg_sid DESC LIMIT 1";
  175. $query = mysql_query( $query ) or exit( mysql_error() );
  176. echo mysql_result( $query, 0 );
  177. }
  178. // field has been already stored
  179. else {
  180. mysql_query("UPDATE sp_campaign_config SET
  181. cpfldcfg_label = '".$_REQUEST['label']."',
  182. cpfldcfg_var_name = '".$_REQUEST['name']."',
  183. cpfldcfg_is_mandatory = '".$_REQUEST['required']."',
  184. cpfldcfg_invalid_message = '".$_REQUEST['error']."',
  185. cpfldcfg_is_valid = '1',
  186. cpfldcfg_update_time = NOW()
  187. WHERE cpfldcfg_sid = '".$_REQUEST['config_id']."'
  188. ") or exit( mysql_error() );
  189. }
  190. break;
  191. ################ AJAX PAGE PUBLISH ###############
  192. case 'publish_page':
  193. $query = mysql_query("UPDATE pages SET published = '1' WHERE id = '".$_REQUEST['id']."' ")
  194. or exit( mysql_error() );
  195. break;
  196. ############### AJAX PAGE UNPUBLISH ##############
  197. case 'unpublish_page':
  198. $query = mysql_query("UPDATE pages SET published = '0' WHERE id = '".$_REQUEST['id']."' ")
  199. or exit( mysql_error() );
  200. break;
  201. ################ AJAX DELETE FILE ################
  202. case 'delete_file':
  203. ars_delete( $_REQUEST['id'] );
  204. break;
  205. ############### AJAX GET ID BY NAME ###############
  206. case 'get_id_by_name':
  207. $query = "SELECT id FROM pages WHERE name='".$_REQUEST['name']."' ";
  208. $query = mysql_query( $query ) or exit( mysql_error() );
  209. echo mysql_result( $query, 0 );
  210. break;
  211. ########### AJAX SAVE BACKGROUND IMAGE ###########
  212. case 'save_bg':
  213. if ( $_REQUEST['bgToUpdate'] )
  214. echo ars_updateFile( 'bgImage', $_REQUEST['bgToUpdate'] );
  215. else
  216. echo ars_uploadFile( 'bgImage', $_REQUEST['pageID'], 'bg' );
  217. break;
  218. ############# AJAX ADD CONTENT IMAGE #############
  219. case 'content_image':
  220. if ( $_REQUEST['imageToUpdate'] )
  221. echo ars_updateFile( 'contentImage', $_REQUEST['imageToUpdate'] );
  222. else
  223. echo ars_uploadFile( 'contentImage', $_REQUEST['pageID'], 'attachment' );
  224. break;
  225. ############ AJAX ADD CONTACT FORM #############
  226. case 'content_contact_form':
  227. if ( $_REQUEST['contactButtonToUpdate'] )
  228. echo ars_updateFile( 'contactButtonImage', $_REQUEST['contactButtonToUpdate'] );
  229. else
  230. echo ars_uploadFile( 'contactButtonImage', $_REQUEST['pageID'], 'attachment' );
  231. break;
  232. ############ AJAX ADD EMAIL BUTTON #############
  233. case 'content_email':
  234. if ( $_REQUEST['emailToUpdate'] )
  235. echo ars_updateFile( 'emailButtonImage', $_REQUEST['emailToUpdate'] );
  236. else
  237. echo ars_uploadFile( 'emailButtonImage', $_REQUEST['pageID'], 'attachment' );
  238. break;
  239. ############ AJAX ADD TWITTER SHARE ############
  240. case 'content_twitter_share':
  241. if ( $_REQUEST['twitterShareToUpdate'] )
  242. echo ars_updateFile( 'twitterShareButtonImage', $_REQUEST['twitterShareToUpdate'] );
  243. else
  244. echo ars_uploadFile( 'twitterShareButtonImage', $_REQUEST['pageID'], 'attachment' );
  245. break;
  246. ########### AJAX ADD CONTEST BUTTON #############
  247. case 'contest_button':
  248. if ( $_REQUEST['contestBtnImageToUpdate'] )
  249. echo ars_updateFile( 'contestBtnImage', $_REQUEST['contestBtnImageToUpdate'] );
  250. else
  251. echo ars_uploadFile( 'contestBtnImage', $_REQUEST['pageID'], 'attachment' );
  252. break;
  253. ########## AJAX ADD UGC CONTEST IMAGE ###########
  254. case 'contest_ugc_image':
  255. // one ugc entry can have only one photo form one user,
  256. // so if there's a photo with the id, we must update it
  257. $query = "SELECT * FROM pages WHERE type = 'ugc' AND saved = '0'
  258. AND parent_id = '".$_REQUEST['pageID']."' LIMIT 1";
  259. $query = mysql_query( $query ) or exit( mysql_error() );
  260. if ( mysql_num_rows( $query ) > 0 ) {
  261. $uploadedPhoto = mysql_fetch_assoc( $query );
  262. echo ars_updateFile( 'contestUGCUploadImg', $uploadedPhoto['id'] );
  263. } else {
  264. echo ars_uploadFile( 'contestUGCUploadImg', $_REQUEST['pageID'], 'ugc' );
  265. }
  266. break;
  267. ######## AJAX VOTE FOR UGC CONTEST IMAGE #########
  268. case 'contest_ugc_image_vote':
  269. // get ugc_sid and ugc_campaign_sid from sp_campaign_ugc table
  270. $ugc_img_sid = getImgUgcSidAndCampaignSid( $_REQUEST['img_name'], 'img' );
  271. $ugc_campaign_sid = getImgUgcSidAndCampaignSid( $_REQUEST['img_name'], 'campaign' );
  272. // check voting ability
  273. $vAbility = checkVotingAbility( $ugc_campaign_sid, $_REQUEST['fb_user_id'], $ugc_img_sid );
  274. if ( $vAbility !== true ) {
  275. echo $vAbility;
  276. }
  277. else {
  278. mysql_query("INSERT INTO sp_campaign_ugc_vote VALUES ( 0,
  279. '".$ugc_img_sid."',
  280. '".$_REQUEST['fb_user_id']."',
  281. NOW(),
  282. '".$ugc_campaign_sid."',
  283. '".$_REQUEST['user_ip']."',
  284. ''
  285. );") or exit( mysql_error() );
  286. echo 'ok';
  287. }
  288. break;
  289. ########## AJAX ADD IMAGE TO COOL SLIDER #########
  290. case 'content_coolslider_image':
  291. echo ars_uploadFile( 'coolSliderImage', $_REQUEST['pageID'], 'attachment' );
  292. break;
  293. ############ AJAX ADD FB POST TO FEED ############
  294. case 'content_fb_post_feed':
  295. // post image
  296. if ( $_REQUEST['postFeedImgToUpdate'] )
  297. echo ars_updateFile( 'postFeedImgImage', $_REQUEST['postFeedImgToUpdate'] );
  298. else
  299. echo ars_uploadFile( 'postFeedImgImage', $_REQUEST['pageID'], 'attachment' );
  300. // divider for parsing
  301. echo '|';
  302. // custom button
  303. if ( $_REQUEST['postFeedBtnToUpdate'] )
  304. echo ars_updateFile( 'postFeedBtnImage', $_REQUEST['postFeedBtnToUpdate'] );
  305. else
  306. echo ars_uploadFile( 'postFeedBtnImage', $_REQUEST['pageID'], 'attachment' );
  307. break;
  308. ############## AJAX ADD FB INVITE ###############
  309. case 'content_invite':
  310. if ( $_REQUEST['inviteToUpdate'] )
  311. echo ars_updateFile( 'inviteBtnImage', $_REQUEST['inviteToUpdate'] );
  312. else
  313. echo ars_uploadFile( 'inviteBtnImage', $_REQUEST['pageID'], 'attachment' );
  314. break;
  315. ################# GET RSS FEED #################
  316. case 'get_rss':
  317. echo file_get_contents( $_REQUEST['url'] );
  318. break;
  319. ############ GET GOOGLE MAPS COORDS ############
  320. case 'get_gm_coords':
  321. $url = 'https://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=';
  322. $url .= $_REQUEST['address'];
  323. $url = str_replace( ' ', '+', $url );
  324. echo file_get_contents( $url );
  325. break;
  326. } // switch
  327. // документ UTF-8
  328. ?>