function index() { $this->getView()->addStylesheetURL('assets/stylesheets/sorting.css'); $customer_id = \Yoda\Request::getInt('customer_id'); $destination = \Yoda\Request::getString('destination'); $source = \Yoda\Request::getString('source'); $success = \Yoda\Request::getString('success', ''); $from_date = \Yoda\Request::getString('from_date'); $to_date = \Yoda\Request::getString('to_date'); $order = \Yoda\Request::getString('order', 'destination'); $direction = \Yoda\Request::getString('direction', 'ASC'); $pagination = new Pagination(); $pagination->setLimit(10); $pagination->setPage(\Yoda\Request::getInt('page', 1)); $pagination->setLink('index.php?controller=sms&customer_id=' . $customer_id . '&destination=' . $destination . '&source=' . $source . '&success=' . $success . '&from_date=' . $from_date . '&to_date=' . $to_date); $sms = new Didww\API2\SMSCollection(); $sms->setCustomerId($customer_id); $sms->setDestination($destination); $sms->setSource($source); if ($success !== '') { $sms->setSuccess($success); } $sms->setFromDate($from_date); $sms->setToDate($to_date); $sms->setOrderBy($order); $sms->setOrderDir(strtoupper($direction)); $sms->setLimit($pagination->getLimit()); $sms->setOffset($pagination->getOffset()); $sms_log = $sms->getList(); $total = $sms->getTotal(); $pagination->setTotal($total); $this->getView()->setProperties(['view' => $this->getView(), 'sms_log' => $sms_log, 'customer_id' => $customer_id, 'destination' => $destination, 'source' => $source, 'success' => $success, 'from_date' => $from_date, 'to_date' => $to_date, 'pagination' => $pagination, 'order' => $order, 'direction' => $direction, 'total' => $total])->display(); }
function index() { $this->getView()->addStylesheetURL('assets/stylesheets/sorting.css'); $customer_id = \Yoda\Request::getInt('customer_id'); $did_number = \Yoda\Request::getString('did_number'); $from_date = \Yoda\Request::getString('from_date'); $to_date = \Yoda\Request::getString('to_date'); $order = \Yoda\Request::getString('order', 'duration'); $direction = \Yoda\Request::getString('direction', 'ASC'); $pagination = new Pagination(); $pagination->setLimit(10); $pagination->setPage(\Yoda\Request::getInt('page', 1)); $pagination->setLink('index.php?controller=call_history&did_number=' . $did_number . '&customer_id=' . $customer_id . '&from_date=' . $from_date . '&to_date=' . $to_date); $cdr = new Didww\API2\CDRCollection(); $cdr->setCustomerId($customer_id); $cdr->setDidNumber($did_number); $cdr->setFromDate($from_date); $cdr->setToDate($to_date); $cdr->setOrderBy($order); $cdr->setOrderDir(strtoupper($direction)); $cdr->setLimit($pagination->getLimit()); $cdr->setOffset($pagination->getOffset()); $cdrs = $cdr->getList(); $total = $cdr->getTotal(); $pagination->setTotal($total); $this->getView()->setProperties(['view' => $this->getView(), 'cdrs' => $cdrs, 'customer_id' => $customer_id, 'did_number' => $did_number, 'from_date' => $from_date, 'to_date' => $to_date, 'pagination' => $pagination, 'order' => $order, 'direction' => $direction, 'total' => $total])->display(); }
function action(&$c) { set_menu($c); /** *********************************************************************** * 表示のページネーション、クエリの準備 * * pn_sizeを変えると、一頁当たりの表示が変わる。 * ***************************************************************************/ //pagenation setting $pagination = new Pagination(); $pn_size = $c->admin->getListNum(); $pn_page = isset($_GET['pn_page']) ? $_GET['pn_page'] : 1; $order_tmp = '<a href="list.php?%QUERY%=%VALUE%&order=%ORDER%&sort=%SORT%">%TITLE%</a>'; $order_que = ''; //表示用のパラメータをセット $c->set('cols', $c->admin->getListCols()); //query のテンプレを作る $order_link = array(); $skey = array('/%ORDER%/', '/%SORT%/', '/%TITLE%/'); $rkey = array('created', 'desc', '新しい順'); $o1 = preg_replace($skey, $rkey, $order_tmp); $rkey = array('created', 'asc', '古い順'); $o2 = preg_replace($skey, $rkey, $order_tmp); $order_link['更新日'] = array($o1, $o2); $rkey = array('size', 'desc', '大きい'); $o1 = preg_replace($skey, $rkey, $order_tmp); $rkey = array('size', 'asc', '小さい'); $o2 = preg_replace($skey, $rkey, $order_tmp); $order_link['サイズ'] = array($o1, $o2); $rkey = array('name', 'asc', '昇順'); $o1 = preg_replace($skey, $rkey, $order_tmp); $rkey = array('size', 'desc', '降順'); $o2 = preg_replace($skey, $rkey, $order_tmp); $order_link['名前'] = array($o1, $o2); /** *********************************************************************** * セッションから、ページ名を作成、並び替えのクエリをセット * * * ***************************************************************************/ //ページ名設定 if (isset($_SESSION['swfu']['page_name'])) { $page = $_SESSION['swfu']['page_name']; $c->set('page_name', $page); $images = $c->image->find('$page_name=="' . $page . '"', 'created desc'); $c->set('images', $images); } //並び替えクエリ if (isset($_GET['order']) && isset($_GET['sort'])) { $order_que = '&order=' . $_GET['order'] . '&sort=' . $_GET['sort']; } /** *********************************************************************** * ページ名の変更 * ***************************************************************************/ if (isset($_POST['change_page_name'])) { $old_page = $_POST['old_page']; $new_page = $_POST['new_page']; $rs = $c->image->find('$page_name=="' . $old_page . '"'); foreach ($rs as $r) { $r['page_name'] = $new_page; $c->image->update($r); } $c->redirect('list.php?page=' . rawurlencode($new_page)); } /** *********************************************************************** * ページ名の設定 * ***************************************************************************/ if (isset($_POST['set_page_name'])) { if ($_POST['new_page'] == '') { $c->redirect('index.php'); } else { $_SESSION['swfu']['page_name'] = $_POST['new_page']; $c->redirect('list.php?page=' . rawurlencode($_POST['new_page'])); } } /** *********************************************************************** * pageをもとに、リストを表示 * * * ***************************************************************************/ if (isset($_GET['page'])) { $page = $_GET['page']; $cond = '$page_name=="' . $page . '"'; $order = $order_que == '' ? 'created desc' : $_GET['order'] . ' ' . $_GET['sort']; $total_cnt = $c->image->getCount($cond); $pagination->setLink('list.php?page=' . rawurlencode($page) . '&pn_page=##PN_PAGE##' . $order_que); $pagination->setPage($pn_page); $pagination->setSize($pn_size); $pagination->setTotalRecords($total_cnt); $limit = $pagination->getLimit(); $images = $c->image->find($cond, $order, $limit); $c->set('images', $images); $c->set('pagination_link', $pagination->create_links()); $disp_pagename = $page == '' ? '未分類' : $page; $c->set('h2title', '「' . $disp_pagename . '」のファイル一覧'); $skey = array('/%QUERY%/', '/%VALUE%/'); $rkey = array('page', rawurlencode($page)); $str = ''; foreach ($order_link as $key => $val) { $str .= $key . '['; foreach ($val as $k => $v) { $order_link[$key][$k] = preg_replace($skey, $rkey, $v); } $str .= implode(' , ', $order_link[$key]); $str .= '] '; } $page_form = ' <form class="style_form" action="' . $_SERVER['PHP_SELF'] . '" method="post" style="text-align:right"> <input id="change_page_name" type="text" name="new_page" size="14" value="' . $page . '" /> <input type="submit" value="変更" name="change_page_name" onclick="return confirm_page_chg(\'' . $page . '\');" /> <input type="hidden" name="old_page" value="' . $page . '" /> </form>'; $page_form_set = ' <form class="style_form" action="' . $_SERVER['PHP_SELF'] . '" method="post" style="float:left;"> <input id="new_page" type="hidden" name="new_page" value="' . $page . '" /> <input type="submit" value="セット" name="set_page_name" onclick="return confirm_page_set();" /> <input type="hidden" name="old_page" value="' . $page . '" /> </form>'; $c->set('page_form', $page_form); $c->set('page_form_set', $page_form_set); $c->set('order_link', $str); return; } /** *********************************************************************** * labelをもとに、リストを表示 * * * ***************************************************************************/ if (isset($_GET['label'])) { $label = $_GET['label']; $cond = 'array_key_exists( "' . $label . '", array_flip(explode(",",$label)) )'; $order = $order_que == '' ? 'created desc' : $_GET['order'] . ' ' . $_GET['sort']; $total_cnt = $c->image->getCount($cond); $pagination->setLink('list.php?label=' . rawurlencode($label) . '&pn_page=##PN_PAGE##' . $order_que); $pagination->setPage($pn_page); $pagination->setSize($pn_size); $pagination->setTotalRecords($total_cnt); $limit = $pagination->getLimit(); $images = $c->image->find($cond, $order, $limit); $c->set('images', $images); $c->set('pagination_link', $pagination->create_links()); $label = $label == '' ? 'ラベルなし' : $label; $c->set('h2title', '「' . $label . '」ラベルのファイル一覧'); $skey = array('/%QUERY%/', '/%VALUE%/'); $rkey = array('label', rawurlencode($label)); $str = ''; foreach ($order_link as $key => $val) { $str .= $key . '['; foreach ($val as $k => $v) { $order_link[$key][$k] = preg_replace($skey, $rkey, $v); } $str .= implode(' , ', $order_link[$key]); $str .= '] '; } $c->set('order_link', $str); return; } /** *********************************************************************** * searchをもとに、リストを表示 * * * ***************************************************************************/ if (isset($_GET['search'])) { $search = $_GET['search']; $search_arr = explode(' ', $_GET['search']); //name , description , page_name , label を検索 $tmparr = array(); foreach (array('name', 'description', 'page_name', 'label') as $key) { //OR $arr = array(); foreach ($search_arr as $s) { //AND $arr[] = '(strpos(strtoupper($' . $key . '),"' . strtoupper($s) . '")!==false)'; } $tmparr[] = '(' . implode(' && ', $arr) . ')'; } $cond = implode(' || ', $tmparr); $order = $order_que == '' ? 'created desc' : $_GET['order'] . ' ' . $_GET['sort']; $total_cnt = $c->image->getCount($cond); $pagination->setLink('list.php?search=' . rawurlencode($search) . '&pn_page=##PN_PAGE##' . $order_que); $pagination->setPage($pn_page); $pagination->setSize($pn_size); $pagination->setTotalRecords($total_cnt); $limit = $pagination->getLimit(); $images = $c->image->find($cond, $order, $limit); $c->set('images', $images); $c->set('pagination_link', $pagination->create_links()); $c->set('h2title', '「' . $search . '」検索一覧'); $skey = array('/%QUERY%/', '/%VALUE%/'); $rkey = array('search', rawurlencode($search)); $str = ''; foreach ($order_link as $key => $val) { $str .= $key . '['; foreach ($val as $k => $v) { $order_link[$key][$k] = preg_replace($skey, $rkey, $v); } $str .= implode(' , ', $order_link[$key]); $str .= '] '; } $c->set('order_link', $str); return; } //削除 if (isset($_GET['delete'])) { $fname = $_GET['delete']; $img = $c->image->findone('$name=="' . $fname . '"'); $c->image->del('$id=="' . $img['id'] . '"'); if (file_exists(SWFU_DATA_DIR . $fname)) { unlink(SWFU_DATA_DIR . $fname); } $c->redirect('index.php'); } //ダウンロード if (isset($_GET['dl'])) { $fname = $_GET['dl']; $fp = fopen(SWFU_DATA_DIR . $fname, "rb"); header("Cache-Control: public"); header("Pragma: public"); header("Accept-Ranges: none"); header("Content-Transfer-Encoding: binary"); header("Content-Disposition: attachment; filename={$fname}"); header("Content-Type: application/octet-stream; name={$fname}"); fpassthru($fp); fclose($fp); exit; } }