CoolFace
Apppublic

kenken999/php

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
searchParamsLogger.php101 linesDownload Raw Back to classes
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?>