kenken999/php
0
1<?php2include_once(getabspath("classes/paramsLogger.php"));3class searchParamsLogger extends paramsLogger4{5 /**6 * This property is used to store 7 * the 'getSavedSeachesParams' method`s cash8 * @type Array9 */10 protected $savedSearchesParams = array(); 11 12 13 public function __construct( $tableNameId, $type = SSEARCH_PARAMS_TYPE ) {14 // type 1 - saved search15 parent::__construct( $tableNameId, SSEARCH_PARAMS_TYPE );16 17 // .NET conversion needs this18 $this->type = SSEARCH_PARAMS_TYPE;19 }20 21 /**22 * Save the search under a particular name23 * @param String $searchName24 * @param Array $searchParams25 */26 public function saveSearch( $searchName, $searchParams ) {27 $savedSearchNames = $this->getSavedSeachesParams();28 if( array_key_exists( $searchName, $savedSearchNames ) ) {29 $this->updateSearch( $searchName, $searchParams );30 return;31 }32 33 $values = array();34 $values["NAME"] = $searchName;35 36 $this->save( $searchParams, $values );37 }38 39 /**40 * Update the existing saved search41 * @param String $searchName42 * @param Array $searchParams43 */44 public function updateSearch( $searchName, $searchParams ) {45 $dc = $this->getUpdateCommand( $searchParams );46 $dc->filter = DataCondition::_And( array( 47 $dc->filter, 48 DataCondition::FieldEquals( "NAME", $searchName )49 ));50 51 $this->dataSource->updateSingle( $dc, false );52 }53 54 55 /**56 * Delete the saved search 57 * @param String searchName58 */ 59 public function deleteSearch( $searchName ) {60 $dc = $this->getDataCommand();61 $dc->filter = DataCondition::_And( array(62 $dc->filter, 63 DataCondition::FieldEquals( "NAME", $searchName )64 ));65 66 $this->dataSource->deleteSingle( $dc, false );67 } 68 69 /**70 * Get the save searches` names basing on 71 * security params and current page`s table name72 * @return Array73 */74 public function getSavedSeachesParams() {75 if( count( $this->savedSearchesParams ) )76 return $this->savedSearchesParams; 77 78 $dc = $this->getDataCommand();79 80 $dc->order = array();81 $dc->order[] = array( "column" => "NAME" );82 83 $qResult = $this->dataSource->getList( $dc );84 if( !$qResult )85 return array();86 87 $names = array();88 while( $data = $qResult->fetchAssoc() ) {89 if( !$data["TYPE"] || $data["TYPE"] == 1 ) {90 if( substr($data["SEARCH"], 0, 2) != "{\"" )91 $names[ $data["NAME"] ] = runner_unserialize_array( $data["SEARCH"] );92 else93 $names[ $data["NAME"] ] = $this->decode( $data["SEARCH"] );94 }95 }96 97 $this->savedSearchesParams = $names;98 return $names;99 }100}101?>