현재 SMS모듈을 CI에 적용해서 구현은 했습니다.
현재 SMS모듈
controllers/admin/sms.php
view/admin/sms_main.php (발송폼)
include/sms/sms_process.php (발송처리)
include/sms/nusoap_tong.php (sms_process.php로 include됨)
문제는 CI의 MVC모델에 맞게 제작 되있지 않아 찜찜 합니다.
꼼수로 문제를 처리 해서...
폼(view/admin/sms_main_view.php)에서 post(include/sms/sms_process.php)방식으로 데이터를 보내서 SMS를 발송하는데
sms_process.php파일을 views에 위치 시키고 싶습니다.
그러면 view(view/admin/sms_main_view.php)에서 view(view/admin/sms_process.php) 로 데이터를
post로 가져와야 하는데 어떤 방식으로 해야 할까요?
모델을 사용해왔는데 사용않하고 처리 할라니 머리가 어지럽네요
보통은 db처리를 하기 위해서 models에서 처리 했지만 이번 경우는 SMS모듈 제공회사의 서버를 이용하므로 다른상황이네요
부탁드립니다.
///////////////////////////////////////////////////////////////
sms.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Sms extends CI_Controller{
function Sms(){
parent::__construct();
$this->load->model('admin/site_config_model');
$this->load->model('admin/sms_model');
$this->load->helper(array('form', 'url', 'directory','alert'));
$this->load->library(array('tank_auth','form_validation'));
}
public function _remap($method)
{
$site=$this->site_config_model->site();
$this->load->view('admin/top_view',$site);
if( method_exists($this, $method) )
{
$this->{"{$method}"}();
}
$this->load->view('admin/foot_view');
}
function sms_main(){
$this->load->view('admin/sms_main_view');
}
//////////////////////////////////////////////////////////////////////////////
sms_main_view.php
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<script language="javascript">
<!--
function frm_submit() {
document.frm_sms_process.submit();
}
-->
</script>
<html>
<form name="frm_sms_process" method="post" action="http://localhost/board_tank/include/sms/tong/sms_process.php">
<table width="50%" border="1">
<tr>
<td align="center">발신자번호</td>
이하생략...
//////////////////////////////////////////////////////////////////////////////////////////////
sms_process.php
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<?php
include_once('nusoap_tong.php');
$snd_number=$_POST["snd_number"]; //보내는 사람 번호를 받음
$rcv_number=$_POST["rcv_number"]; //받는 사람 번호를 받음
$sms_content=$_POST["sms_content"]; //전송 내용을 받음
$reserve_date=$_POST["reserve_date"]; //예약 일자를 받음
$reserve_time=$_POST["reserve_time"]; //예약 시간을 받음
이하생략...
|
// 휴 해결 했습니다.
콘트롤러 나 뷰에서도 db를 다루지 않더라도 아래와 같이 post 값을 받고 주고 할수 있군요
나름 CI가 융통성?이 있어 보이네요..
이로서 sms모듈을 완벽하게 mvc모델로 만들었네요
나름 고생끝에 낙이 있군요..
참고로 저를 젤 많이 괴롭힌것은 sms클래스를 sms모듈에서 사용하는 바람에 제가 만든 sms클래스와 충돌하여서 저를 미치기 일보 직전으로 몰고 갔네요... 엉엉!
그리고 한가지 보통 일반php에서 include_once('nusoap_tong.php'); 이런형식으로 include를 사용하는데
ci에서 views에 있는것을 이런 형태로 불러오지 못합니다. 아래 형식으로 views에서 views로 로드 할수 있습니다.
$this->load->view('admin/nusoap_tong');
///////////////////////////////////////////////////////////////////////////////////////////////////
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Smss_model extends CI_Model {
// 모델 생성자 호출
function smss_model(){
parent::__construct();
}
function index(){
}
function process(){
$data = array(
'snd_number' => $this->input->post('snd_number') ,
'rcv_number' => $this->input->post('rcv_number') ,
'sms_content' => $this->input->post('sms_content') ,
'reserve_date' => $this->input->post('reserve_date') ,
'reserve_time' => $this->input->post('reserve_time') ,
);
return $data;
}
}
?>