Changeset 21126


Ignore:
Timestamp:
2011/08/04 20:48:01 (9 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_11-dev:21125
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/Smarty/templates/sphone/frontparts/bloc/news.tpl 19798@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_5-dev%2Fdata%2FSmarty%2Ftemplates%2Fsphone%2Ffrontparts%2Fbloc%2Fnews.tpl
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php 15367@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Ffrontparts%2Fbloc%2FLC_Page_FrontParts_Bloc_News.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110804114448-o5mdnijqgozcxint
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110804114759-t05vdkaq7oxn3iox
bzr:revno:
3829
bzr:revprop:branch-nick:
branches/version-2_11-dev
bzr:root:
branches/version-2_11-dev
bzr:testament:

bazaar-ng testament short form 2.1
revision-id: ohkouchi@loop-az.jp-20110804114759-t05vdkaq7oxn3iox
sha1: c80c746b83aa129cb7053a7078223c04b2539b81
bzr:text-parents:

data/Smarty/templates/sphone/frontparts/bloc/news.tpl svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_11-dev:21124
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_11-dev:21045
bzr:timestamp:
2011-08-04 20:47:59.305000067 +0900
bzr:user-agent:
bzr2.3.1+bzr-svn1.1.0dev0
Message:

#1413 エラーハンドリングを修正

Location:
branches/version-2_11-dev/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/Smarty/templates/sphone/frontparts/bloc/news.tpl

    r21124 r21126  
    2727  <!--{section name=data loop=$arrNews max=3}--> 
    2828  <li> 
    29     <a #windowcolumn href="javascript:getNewsDetail(<!--{$arrNews[data].news_id}-->);"> 
     29    <a id="windowcolumn" href="javascript:getNewsDetail(<!--{$arrNews[data].news_id}-->);"> 
    3030    <span class="news_title"><!--{$arrNews[data].news_title|h}--></span></a><br /> 
    3131    <span class="news_date"><!--{$arrNews[data].news_date_disp|date_format:"%Y年 %m月 %d日"}--></span> 
     
    3636<!--{if $newsCount > 3}--> 
    3737<div class="btn_area"> 
    38 <p><a href="javascript: void(0);" class="btn_more" id="btn_more_news" onClick="getNews(3); return false;">もっとみる(+3件)</a></p> 
     38<p><a href="javascript:;" class="btn_more" id="btn_more_news" onclick="getNews(3); return false;">もっとみる(+3件)</a></p> 
    3939</div> 
    4040<!--{/if}--> 
     
    4949    $.mobile.pageLoading(); 
    5050    var i = limit; 
    51      
     51 
    5252    $.ajax({ 
    53         url: "<!--{$smarty.const.HTTP_URL}-->frontparts/bloc/news.php", 
    54         type: "POST", 
    55            data: "mode=getList&pageno="+newsPageNo+"&disp_number="+i, 
    56            cache: false, 
    57            dataType: "json", 
    58            error: function(XMLHttpRequest, textStatus, errorThrown){ 
    59             alert(textStatus); 
    60             $.mobile.pageLoading(true); 
    61            }, 
    62            success: function(result){ 
    63              for (var j = 0; j < i; j++) { 
    64                  if (result[j] != null) { 
    65                     var news = result[j]; 
    66                     var maxCnt = $("#news_area ul.newslist li").length - 1; 
    67                     var newsEl = $("#news_area ul.newslist li").get(maxCnt); 
    68                     newsEl = $(newsEl).clone(true).insertAfter(newsEl); 
    69                     maxCnt++; 
    70                      
    71                      //件名をセット 
    72                      $($("#news_area ul.newslist li a span.news_title").get(maxCnt)).text(news.news_title); 
    73                       
    74                      //リンクをセット 
    75                      $($("#news_area ul.newslist li a").get(maxCnt)).attr("href", "javascript:getNewsDetail(" + news.news_id + ");"); 
    76                       
    77                      //年月をセット 
    78                      var newsDateDispArray = news.news_date_disp.split("-"); //ハイフンで年月日を分解 
    79                      var newsDateDisp = newsDateDispArray[0] + "年 " + newsDateDispArray[1] + "月 " + newsDateDispArray[2] + "日"; 
    80                      $($("#news_area ul.newslist li span.news_date").get(maxCnt)).text(newsDateDisp); 
    81                  } 
    82              } 
     53               url: "<!--{$smarty.const.HTTP_URL}-->frontparts/bloc/news.php", 
     54               type: "POST", 
     55               data: "mode=getList&pageno="+newsPageNo+"&disp_number="+i, 
     56               cache: false, 
     57               dataType: "json", 
     58               error: function(XMLHttpRequest, textStatus, errorThrown){ 
     59                   alert(textStatus); 
     60                   $.mobile.pageLoading(true); 
     61               }, 
     62               success: function(result){ 
     63                   if (result.error) { 
     64                       alert(result.error); 
     65                   } else { 
     66                       for (var j = 0; j < i; j++) { 
     67                           if (result[j] != null) { 
     68                               var news = result[j]; 
     69                               var maxCnt = $("#news_area ul.newslist li").length - 1; 
     70                               var newsEl = $("#news_area ul.newslist li").get(maxCnt); 
     71                               newsEl = $(newsEl).clone(true).insertAfter(newsEl); 
     72                               maxCnt++; 
    8373 
    84              //すべての新着情報を表示したか判定 
    85              var newsPageCount = result.news_page_count; 
    86              if (parseInt(newsPageCount) <= newsPageNo) { 
    87                  $("#btn_more_news").hide(); 
    88              } 
    89               
    90              newsPageNo++; 
    91               
    92              $.mobile.pageLoading(true); 
    93            } 
    94     }); 
     74                               //件名をセット 
     75                               $($("#news_area ul.newslist li a span.news_title").get(maxCnt)).text(news.news_title); 
     76 
     77                               //リンクをセット 
     78                               $($("#news_area ul.newslist li a").get(maxCnt)).attr("href", "javascript:getNewsDetail(" + news.news_id + ");"); 
     79 
     80                               //年月をセット 
     81                               var newsDateDispArray = news.news_date_disp.split("-"); //ハイフンで年月日を分解 
     82                               var newsDateDisp = newsDateDispArray[0] + "年 " + newsDateDispArray[1] + "月 " + newsDateDispArray[2] + "日"; 
     83                               $($("#news_area ul.newslist li span.news_date").get(maxCnt)).text(newsDateDisp); 
     84                           } 
     85                       } 
     86 
     87                       //すべての新着情報を表示したか判定 
     88                       var newsPageCount = result.news_page_count; 
     89                       if (parseInt(newsPageCount) <= newsPageNo) { 
     90                           $("#btn_more_news").hide(); 
     91                       } 
     92 
     93                       newsPageNo++; 
     94                   } 
     95                   $.mobile.pageLoading(true); 
     96               } 
     97           }); 
    9598} 
    9699 
     
    101104        loadingState = 1; 
    102105        $.ajax({ 
    103             url: "<!--{$smarty.const.HTTP_URL}-->frontparts/bloc/news.php", 
    104             type: "GET", 
    105                data: "mode=getDetail&news_id="+newsId, 
    106                cache: false, 
    107                async: false, 
    108                dataType: "json", 
    109                error: function(XMLHttpRequest, textStatus, errorThrown){ 
    110                    alert(textStatus); 
    111                    $.mobile.pageLoading(true); 
    112                    loadingState = 0; 
    113                }, 
    114                success: function(result){ 
    115                  if (result[0] != null) { 
    116                     var news = result[0]; 
    117                     var maxCnt = 0; 
    118                      
    119                      //件名をセット 
    120                      $($("#windowcolumn dl.view_detail dt a").get(maxCnt)).text(news.news_title); 
    121                      if (news.news_url != null) { 
    122                          $($("#windowcolumn dl.view_detail dt a").get(maxCnt)).attr("href", news.news_url); 
    123                      } else { 
    124                          $($("#windowcolumn dl.view_detail dt a").get(maxCnt)).attr("href", "#"); 
    125                      } 
    126                       
    127                      //年月をセット 
    128                      //var newsDateDispArray = news.news_date_disp.split("-"); //ハイフンで年月日を分解 
    129                      //var newsDateDisp = newsDateDispArray[0] + "年 " + newsDateDispArray[1] + "月 " + newsDateDispArray[2] + "日"; 
    130                      //$($("#windowcolumn dl.view_detail dt").get(maxCnt)).text(newsDateDisp); 
     106                   url: "<!--{$smarty.const.HTTP_URL}-->frontparts/bloc/news.php", 
     107                   type: "GET", 
     108                   data: "mode=getDetail&news_id="+newsId, 
     109                   cache: false, 
     110                   async: false, 
     111                   dataType: "json", 
     112                   error: function(XMLHttpRequest, textStatus, errorThrown){ 
     113                       alert(textStatus); 
     114                       $.mobile.pageLoading(true); 
     115                       loadingState = 0; 
     116                   }, 
     117                   success: function(result){ 
     118                       if (result.error) { 
     119                           alert(result.error); 
     120                           $.mobile.pageLoading(true); 
     121                           loadingState = 0; 
     122                       } 
     123                       else if (result[0] != null) { 
     124                           var news = result[0]; 
     125                           var maxCnt = 0; 
    131126 
    132                     //コメントをセット(iphone4の場合、innerHTMLの再描画が行われない為、タイマーで無理やり再描画させる) 
    133                     setTimeout( function() { 
    134                         $("#newsComment").html(news.news_comment.replace(/\n/g,"<br />")); 
    135                     }, 10); 
    136                  } 
    137                   
    138                  $.mobile.changePage('#windowcolumn', 'slideup'); 
    139                  //ダイアログが開き終わるまで待機 
    140                  setTimeout( function() { 
    141                      loadingState = 0; 
    142                      $.mobile.pageLoading(true); 
    143                  }, 1000); 
    144                   
    145                } 
    146         }); 
     127                           //件名をセット 
     128                           $($("#windowcolumn dl.view_detail dt a").get(maxCnt)).text(news.news_title); 
     129                           if (news.news_url != null) { 
     130                               $($("#windowcolumn dl.view_detail dt a").get(maxCnt)).attr("href", news.news_url); 
     131                           } else { 
     132                               $($("#windowcolumn dl.view_detail dt a").get(maxCnt)).attr("href", "javascript:;"); 
     133                           } 
     134 
     135                           //年月をセット 
     136                           //var newsDateDispArray = news.news_date_disp.split("-"); //ハイフンで年月日を分解 
     137                           //var newsDateDisp = newsDateDispArray[0] + "年 " + newsDateDispArray[1] + "月 " + newsDateDispArray[2] + "日"; 
     138                           //$($("#windowcolumn dl.view_detail dt").get(maxCnt)).text(newsDateDisp); 
     139 
     140                           //コメントをセット(iphone4の場合、innerHTMLの再描画が行われない為、タイマーで無理やり再描画させる) 
     141                           setTimeout( function() { 
     142                               $("#newsComment").html(news.news_comment.replace(/\n/g,"<br />")); 
     143                           }, 10); 
     144 
     145                           $.mobile.changePage('#windowcolumn', 'slideup'); 
     146                           //ダイアログが開き終わるまで待機 
     147                           setTimeout( function() { 
     148                                           loadingState = 0; 
     149                                           $.mobile.pageLoading(true); 
     150                                       }, 1000); 
     151                       } 
     152                   } 
     153               }); 
    147154    } 
    148155} 
  • branches/version-2_11-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php

    r21045 r21126  
    6969                $objFormParam->setParam($_POST); 
    7070                $objFormParam->convParam(); 
    71                 $this->arrErr = $this->lfCheckError($objFormParam); 
    72                 if(empty($this->arrEr)){ 
    73                      $json = $this->lfGetNewsForJson($objFormParam); 
    74                      echo $json; 
    75                      exit; 
     71                $this->arrErr = $objFormParam->checkError(false); 
     72                if(empty($this->arrErr)){ 
     73                    $json = $this->lfGetNewsForJson($objFormParam); 
     74                    echo $json; 
     75                    exit; 
     76                } else { 
     77                    echo $this->lfGetErrors($this->arrErr); 
     78                    exit; 
    7679                } 
    7780                break; 
     
    8083                $objFormParam->setParam($_GET); 
    8184                $objFormParam->convParam(); 
    82                 $this->arrErr = $this->lfCheckError($objFormParam); 
    83                 if(empty($this->arrEr)){ 
     85                $this->arrErr = $objFormParam->checkError(false); 
     86                if(empty($this->arrErr)){ 
    8487                     $json = $this->lfGetNewsDetailForJson($objFormParam); 
    8588                     echo $json; 
    8689                     exit; 
     90                } else { 
     91                    echo $this->lfGetErrors($this->arrErr); 
     92                    exit; 
    8793                } 
    8894                break; 
     
    113119        $objFormParam->addParam("表示件数", "disp_number", INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK"), "", false); 
    114120        $objFormParam->addParam("新着ID", "news_id", INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK"), "", false); 
    115     } 
    116  
    117       /** 
    118      * フォーム入力パラメーターエラーチェック 
    119      * 
    120      * @param array $objFormParam フォームパラメータークラス 
    121      * @return array エラー配列 
    122      */ 
    123     function lfCheckError(&$objFormParam) { 
    124         $arrErr = SC_Helper_Customer_Ex::sfCustomerMypageErrorCheck($objFormParam, true); 
    125         return $arrErr; 
    126121    } 
    127122 
     
    211206        return $count; 
    212207    } 
     208 
     209    /** 
     210     * エラーメッセージを整形し, JSON 形式で返す. 
     211     * 
     212     * @param array $arrErr エラーメッセージの配列 
     213     * @return string JSON 形式のエラーメッセージ 
     214     */ 
     215    function lfGetErrors($arrErr) { 
     216        $messages = ''; 
     217        foreach ($arrErr as $val) { 
     218            $messages .= $val . "\n"; 
     219        } 
     220        return SC_Utils_Ex::jsonEncode(array('error' => $messages)); 
     221    } 
    213222} 
    214223?> 
Note: See TracChangeset for help on using the changeset viewer.