/admin/data_cover.php

https://github.com/oohnoitz/wp-manga-project-manager · PHP · 136 lines · 109 code · 20 blank · 7 comment · 34 complexity · e5db962e3ab024dda84c7c54acfebcd0 MD5 · raw file

  1. <?php
  2. /**
  3. * Display Administrative Menu for Covers.
  4. * @return menu
  5. */
  6. function wpmanga_dataCover() {
  7. global $wpdb;
  8. // Action Variable
  9. if (isset($_GET['action']))
  10. $action = strtolower($_GET['action']);
  11. else
  12. $action = 'add';
  13. // Sanity Check on EDIT and DEL
  14. if (!isset($_GET['id']) && $action != 'add')
  15. $action = 'add';
  16. if ( isset( $_POST['wpmanga_nonce'] ) ) {
  17. if ( !wp_verify_nonce( $_POST['wpmanga_nonce'], plugin_basename( plugin_sDIR() . '/wpmanga.php' ) ) ) {
  18. echo '<div class="error"><p>Error: Security Verification Failed.</p></div>';
  19. } else {
  20. $_POST = array_map('trim', $_POST);
  21. $_POST = array_map('stripslashes', $_POST);
  22. if ( $_POST['project_id'] ) {
  23. $data = array('project_id' => $_POST['project_id'], 'volume' => $_POST['volume'], 'image' => $_POST['image']);
  24. switch ($action) {
  25. case 'edit':
  26. $status = $wpdb->update($wpdb->prefix . 'projects_volumes', $data, array('id' => $_GET['id']));
  27. if ($status)
  28. echo '<div class="updated"><p>Updated Volume Cover Information.</p></div>';
  29. else
  30. echo '<div class="error"><p>Error: Failed to update information.</p></div>';
  31. break;
  32. case 'delete':
  33. $status = $wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}projects_volumes` WHERE `id` = '%d'", $_GET['id']));
  34. if ($status)
  35. echo '<div class="updated"><p>Deleted Volume Cover Information.</p></div>';
  36. else
  37. echo '<div class="error"><p>Error: Failed to delete information.</p></div>';
  38. break;
  39. default:
  40. $wpdb->insert($wpdb->prefix . 'projects_volumes', $data);
  41. if ( $wpdb->insert_id )
  42. echo '<div class="updated"><p>Added Volume Cover for Releases. <a href="admin.php?page=manga/volume&action=edit&id=' . $wpdb->insert_id . '">Edit Cover Information</a></p></div>';
  43. else
  44. echo '<div class="error"><p>Error: Failed to add new cover.</p></div>';
  45. }
  46. } else {
  47. echo '<div class="error"><p>Error: Please fill in the required fields.</p></div>';
  48. }
  49. }
  50. }
  51. $projects = $wpdb->get_results("SELECT `id`, `title` FROM `" . $wpdb->prefix . "projects` ORDER BY `title` ASC");
  52. if ( $projects ) {
  53. if (preg_match("/(edit|delete)/i", $action))
  54. $cover = $wpdb->get_row($wpdb->prepare("SELECT * FROM `{$wpdb->prefix}projects_volumes` WHERE `id` = '%d' LIMIT 1", $_GET['id']));
  55. ?>
  56. <div class="wrap">
  57. <?php screen_icon('edit'); ?>
  58. <h2><?php echo ucfirst($action); ?> Volume Cover</h2>
  59. <p>Add a new cover for a volume.</p>
  60. <?php
  61. switch ($action) {
  62. case 'edit':
  63. echo '<form method="post" action="admin.php?page=manga/volume&action=edit&id=' . $_GET['id'] . '">';
  64. break;
  65. case 'delete':
  66. echo '<form method="post" action="admin.php?page=manga/volume&action=delete&id=' . $_GET['id'] . '">';
  67. break;
  68. default:
  69. echo '<form method="post" action="admin.php?page=manga/volume">';
  70. }
  71. ?>
  72. <table class="form-table">
  73. <tr class="form-field">
  74. <th scope="row"><label for="project_id">Project</label></th>
  75. <td>
  76. <select name="project_id" id="project_id" style="width: 460px">
  77. <?php
  78. foreach ($projects as $project) {
  79. if (preg_match("/(edit|delete)/i", $action)) {
  80. if ($project->id == $cover->project_id)
  81. echo "<option value='{$project->id}' selected='selected'>{$project->title}</option>";
  82. else
  83. echo "<option value='{$project->id}'>{$project->title}</option>";
  84. } else {
  85. echo "<option value='{$project->id}'>{$project->title}</option>";
  86. }
  87. }
  88. ?>
  89. </select>
  90. </td>
  91. </tr>
  92. <tr class="form-field">
  93. <th scope="row"><label for="volume">Volume</label></th>
  94. <td><input name="volume" id="volume" type="number" value="<?php if (isset($cover)) echo $cover->volume; else echo '0'; ?>"<?php if ($action == 'delete') echo ' readonly="readonly"'; ?> autofocus></td>
  95. </tr>
  96. <tr class="form">
  97. <th scope="row"><label for="image">Image <span class="description">(required)</span></label></th>
  98. <td><input id="image" type="url" name="image" size="66" placeholder="Enter an URL or upload an image cover for this volume." value="<?php if (isset($cover)) echo $cover->image; ?>"<?php if ($action == 'delete') echo ' readonly="readonly"'; ?> required><input id="<?php if ($action != 'delete') echo 'upload_image_button'; ?>" type="button" value="Upload Image"<?php if ($action == 'delete') echo ' readonly="readonly"'; ?>></td>
  99. </tr>
  100. </table>
  101. <p class="submit">
  102. <input type="submit" class="button-primary" name="save" value="<?php echo ucfirst($action); ?> Volume Cover" />
  103. <input type="hidden" name="wpmanga_nonce" value="<?php echo wp_create_nonce( plugin_basename( plugin_sDIR() . '/wpmanga.php' ) ); ?>" />
  104. </p>
  105. </form>
  106. </div>
  107. <?php
  108. } else {
  109. ?>
  110. <script type="text/javascript">
  111. location.replace("admin.php?page=manga/project")
  112. </script>
  113. <?php
  114. }
  115. }
  116. /* EOF: admin/data_cover.php */