WebOrbiton
v1.0.0.1

StocketBase

62 lines · 2.0 KB
  1. <?php
  2. ​
  3. declare(strict_types=1);
  4. ​
  5. if (count(get_included_files()) === 1) {
  6. http_response_code(403);
  7. exit;
  8. }
  9. ​
  10. $db = Database::site();
  11. $action = $_POST['action'] ?? '';
  12. ​
  13. if ($action === 'save_ad') {
  14. $adId = (int) ($_POST['ad_id'] ?? 0) ?: null;
  15. $name = trim((string) ($_POST['name'] ?? ''));
  16. $type = in_array($_POST['type'] ?? '', ['static_text', 'static_image', 'script'], true) ? $_POST['type'] : 'static_text';
  17. $placement = array_key_exists($_POST['placement'] ?? '', SiteFront::AD_PLACEMENTS) ? $_POST['placement'] : 'header';
  18. $content = (string) ($_POST['content'] ?? '');
  19. $linkUrl = trim((string) ($_POST['link_url'] ?? ''));
  20. $isActive = isset($_POST['is_active']) ? 1 : 0;
  21. ​
  22. if ($name === '' || $content === '') {
  23. return;
  24. }
  25. ​
  26. if ($adId !== null) {
  27. $statement = $db->prepare(
  28. 'UPDATE ads SET name = :name, type = :type, placement = :placement, content = :content, link_url = :link_url, is_active = :is_active WHERE id = :id'
  29. );
  30. $statement->execute([
  31. 'name' => $name,
  32. 'type' => $type,
  33. 'placement' => $placement,
  34. 'content' => $content,
  35. 'link_url' => $linkUrl !== '' ? $linkUrl : null,
  36. 'is_active' => $isActive,
  37. 'id' => $adId,
  38. ]);
  39. } else {
  40. $statement = $db->prepare(
  41. 'INSERT INTO ads (name, type, placement, content, link_url, is_active, created_by) VALUES (:name, :type, :placement, :content, :link_url, :is_active, :created_by)'
  42. );
  43. $statement->execute([
  44. 'name' => $name,
  45. 'type' => $type,
  46. 'placement' => $placement,
  47. 'content' => $content,
  48. 'link_url' => $linkUrl !== '' ? $linkUrl : null,
  49. 'is_active' => $isActive,
  50. 'created_by' => $currentUser['id'],
  51. ]);
  52. }
  53. }
  54. ​
  55. if ($action === 'delete_ad') {
  56. $adId = (int) ($_POST['ad_id'] ?? 0);
  57. if ($adId > 0) {
  58. $statement = $db->prepare('DELETE FROM ads WHERE id = :id');
  59. $statement->execute(['id' => $adId]);
  60. }
  61. }
  62. ​