diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php
index ea3e94fd4..6c2cfc9eb 100644
--- a/common/lang/ko.lang.php
+++ b/common/lang/ko.lang.php
@@ -83,6 +83,7 @@
$lang->total_count = "전체개수";
$lang->ipaddress = "IP 주소";
$lang->path = "경로";
+ $lang->cart = "선택항목";
$lang->mid = "모듈이름";
$lang->layout = "레이아웃";
diff --git a/modules/poll/conf/module.xml b/modules/poll/conf/module.xml
index 24f7226a3..5c46103a4 100644
--- a/modules/poll/conf/module.xml
+++ b/modules/poll/conf/module.xml
@@ -5,5 +5,6 @@
+
diff --git a/modules/poll/poll.controller.php b/modules/poll/poll.controller.php
index 61b84aa64..c0455f525 100644
--- a/modules/poll/poll.controller.php
+++ b/modules/poll/poll.controller.php
@@ -180,5 +180,86 @@
$this->setMessage('success_poll');
}
+ /**
+ * @brief 관리자 페이지에서 선택된 설문조사들을 삭제
+ **/
+ function procPollAdminDeleteChecked() {
+ // 선택된 글이 없으면 오류 표시
+ $cart = Context::get('cart');
+ if(!$cart) return $this->stop('msg_cart_is_null');
+
+ $poll_srl_list= explode('|@|', $cart);
+ $poll_count = count($poll_srl_list);
+ if(!$poll_count) return $this->stop('msg_cart_is_null');
+
+ // 글삭제
+ for($i=0;$i<$poll_count;$i++) {
+ $poll_index_srl = trim($poll_srl_list[$i]);
+ if(!$poll_index_srl) continue;
+
+ $output = $this->deletePollTitle($poll_index_srl, true);
+ if(!$output->toBool()) return $output;
+ }
+
+ $this->setMessage( sprintf(Context::getLang('msg_checked_poll_is_deleted'), $poll_count) );
+ }
+
+ /**
+ * @brief 설문조사 삭제 (한번에 여러개의 설문 등록시 그 중 하나의 설문만 삭제)
+ **/
+ function deletePollTitle($poll_index_srl) {
+ $args->poll_index_srl = $poll_index_srl;
+
+ $oDB = &DB::getInstance();
+ $oDB->begin();
+
+ $output = $oDB->executeQuery('poll.deletePollTitle', $args);
+ if(!$output) {
+ $oDB->rollback();
+ return $output;
+ }
+
+ $output = $oDB->executeQuery('poll.deletePollItem', $args);
+ if(!$output) {
+ $oDB->rollback();
+ return $output;
+ }
+
+ $oDB->commit();
+
+ return new Object();
+ }
+
+ /**
+ * @brief 설문조사 삭제 (하나의 묶인 설문조사를 통째로 삭제)
+ **/
+ function deletePoll($poll_srl) {
+ $args->poll_srl = $poll_srl;
+
+ $oDB = &DB::getInstance();
+ $oDB->begin();
+
+ $output = $oDB->executeQuery('poll.deletePoll', $args);
+ if(!$output) {
+ $oDB->rollback();
+ return $output;
+ }
+
+ $output = $oDB->executeQuery('poll.deletePollTitle', $args);
+ if(!$output) {
+ $oDB->rollback();
+ return $output;
+ }
+
+ $output = $oDB->executeQuery('poll.deletePollItem', $args);
+ if(!$output) {
+ $oDB->rollback();
+ return $output;
+ }
+
+ $oDB->commit();
+
+ return new Object();
+ }
}
?>
diff --git a/modules/poll/poll.model.php b/modules/poll/poll.model.php
index c348cb62d..37f339070 100644
--- a/modules/poll/poll.model.php
+++ b/modules/poll/poll.model.php
@@ -59,6 +59,7 @@
$poll->stop_date = $output->data->stop_date;
$output = executeQuery('poll.getPollTitle', $args);
+ if(!$output->data) return;
if(!is_array($output->data)) $output->data = array($output->data);
foreach($output->data as $key => $val) {
$poll->poll[$val->poll_index_srl]->title = $val->title;
diff --git a/modules/poll/queries/deletePoll.xml b/modules/poll/queries/deletePoll.xml
new file mode 100644
index 000000000..0fc33fed1
--- /dev/null
+++ b/modules/poll/queries/deletePoll.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/modules/poll/queries/deletePollItem.xml b/modules/poll/queries/deletePollItem.xml
new file mode 100644
index 000000000..4e052fe79
--- /dev/null
+++ b/modules/poll/queries/deletePollItem.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/modules/poll/queries/deletePollTitle.xml b/modules/poll/queries/deletePollTitle.xml
new file mode 100644
index 000000000..86bae302a
--- /dev/null
+++ b/modules/poll/queries/deletePollTitle.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+