カレンダー(テンプレートエンジン用)

2006/01/28 | PHPライブラリ

カレンダーを作成するためのclassは世にたくさんあるけれど、いずれもHTMLタグが内包されていて、テンプレートで使用するには向いているとは思えない。ということで書いてみたのがコレ。

class cubeCalendar {
 function getCalArray($thisMonth,$thisYear){
  $startYoubi=date(‘w’,mktime(0,0,0,$thisMonth,1,$thisYear));
  $lastD=date(‘d’,mktime(0,0,0,$thisMonth +1,0,$thisYear));
  $tmpDayArray=array();
  for($i=0;$i<$startYoubi;$i++){
   $tmpArray=array();
   $tmpArray[‘day’]=”;
   $tmpArray[‘today’]=’0′;
   $tmpDayArray[]=$tmpArray;
  }
  for($i=0;$i<$lastD;$i++){
   $tmpArray=array();
   $tmpArray[‘day’]=(string)($i+1);
   $tmpArray[‘today’]=((date(‘Y-n-j’)==date(‘Y-n-j’,mktime(0,0,0,$thisMonth,$i+1,$thisYear)))? ‘1’:’0′);
   $tmpDayArray[]=$tmpArray;
  }
  $tmpCount=count($tmpDayArray) % 7;
  for($i=0;$i<7-$tmpCount;$i++){
   $tmpArray=array();
   $tmpArray[‘day’]=”;
   $tmpArray[‘today’]=’0′;
   $tmpDayArray[]=$tmpArray;
  }
  
  return array_chunk($tmpDayArray,7);
 }
}

作成したフィルタの導入例

2006/01/23 | mojavi2

作成したフィルタはGlobalFilterList.class.phpで、以下のように指定すると全てのモジュールに対して適用されます。

 $this->filters[‘MappingRequestVarsFilter’] =& new MappingRequestVarsFilter;
 $this->filters[‘OptimizeRequestVarsFilter’] =& new OptimizeRequestVarsFilter;

入力データのトリミングをフィルタで

2006/01/23 | mojavi2

入力データのトリミングを一括処理するフィルタの例。

 class OptimizeRequestVarsFilter extends Filter
 {
  function execute (&$filterChain, &$controller, &$request, &$user)
  {
   static $loaded;
   if($loaded===NULL){
    $loaded=true;
    $params=$request->getParameters();
    foreach($params as $tmpKey => $tmpValue){
     if(is_array($request->getParameter($tmpKey))){
      //
     }else{
      $request->setParameter($tmpKey,trim($tmpValue));
     }
    }
    $filterChain->execute($controller,$request,$user);
   }else{
    $filterChain->execute($controller,$request,$user);
   }
  }
 }

これを登録して使用しています。簡単だけど結構便利。

mojavi+HTML_QuickFormで使うべきフィルタ

2006/01/23 | mojavi2

久保敦啓さんがインプレスのPHPムック本「まるごとPHP」に書かれていたフィルタです。
mojaviではユーザからの入力を$requestで一元管理しているけれど、HTML_QuickFormでは$_POST、$_GETで管理しているため、以下のフィルタを使うとよいとのこと。

 class MappingRequestVarsFilter extends Filter
 {
  function execute(&$filterChain, &$controller, &$request, &$user)
  {
   static $loaded;
   if ($loaded === null) {
    $loaded = true;
    if ($_SERVER[‘REQUEST_METHOD’] === ‘GET’) {
     $_GET = array();
     $_GET = &$request->getParameters();
    } else {
     $_POST = array();
     $_POST = &$request->getParameters();
    }
    $filterChain->execute($controller, $request, $user);
   } else {
    $filterChain->execute($controller, $request, $user);
   }
  }
 }

参照元はこちら

PCの判別

2006/01/16 | Net_UserAgent

PC用の判別は以下のサンプルを使用する。とりあえずブラウザ種別とOSを取得するサンプルを掲示。

require_once(‘Net/UserAgent/Detect.php’);
echo Net_UserAgent_Detect::getOSString();
echo Net_UserAgent_Detect::getBrowserString();

これでOS種別とブラウザ名を取得できる。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net