89 lines
2.6 KiB
PHP
89 lines
2.6 KiB
PHP
<?php
|
|
require_once("base_connector.php");
|
|
/*! DataItem class for Combo component
|
|
**/
|
|
class ComboDataItem extends DataItem{
|
|
private $selected;//!< flag of selected option
|
|
|
|
function __construct($data,$config,$index){
|
|
parent::__construct($data,$config,$index);
|
|
|
|
$this->selected=false;
|
|
}
|
|
/*! mark option as selected
|
|
*/
|
|
function select(){
|
|
$this->selected=true;
|
|
}
|
|
/*! return self as XML string, starting part
|
|
*/
|
|
function to_xml_start(){
|
|
if ($this->skip) return "";
|
|
|
|
return "<option ".($this->selected?"selected='true'":"")."value='".$this->get_id()."'><![CDATA[".$this->data[$this->config->text[0]["name"]]."]]>";
|
|
}
|
|
/*! return self as XML string, ending part
|
|
*/
|
|
function to_xml_end(){
|
|
if ($this->skip) return "";
|
|
return "</option>";
|
|
}
|
|
}
|
|
|
|
/*! Connector for the dhtmlxCombo
|
|
**/
|
|
class ComboConnector extends Connector{
|
|
private $filter; //!< filtering mask from incoming request
|
|
private $position; //!< position from incoming request
|
|
|
|
/*! constructor
|
|
|
|
Here initilization of all Masters occurs, execution timer initialized
|
|
@param res
|
|
db connection resource
|
|
@param type
|
|
string , which hold type of database ( MySQL or Postgre ), optional, instead of short DB name, full name of DataWrapper-based class can be provided
|
|
@param item_type
|
|
name of class, which will be used for item rendering, optional, DataItem will be used by default
|
|
@param data_type
|
|
name of class which will be used for dataprocessor calls handling, optional, DataProcessor class will be used by default.
|
|
*/
|
|
public function __construct($res,$type=false,$item_type=false,$data_type=false){
|
|
if (!$item_type) $item_type="ComboDataItem";
|
|
parent::__construct($res,$type,$item_type,$data_type);
|
|
}
|
|
|
|
//parse GET scoope, all operations with incoming request must be done here
|
|
function parse_request(){
|
|
parent::parse_request();
|
|
|
|
if (isset($_GET["pos"])){
|
|
if (!$this->dload) //not critical, so just write a log message
|
|
LogMaster::log("Dyn loading request received, but server side was not configured to process dyn. loading. ");
|
|
else
|
|
$this->request->set_limit($_GET["pos"],$this->dload);
|
|
}
|
|
|
|
if (isset($_GET["mask"]))
|
|
$this->request->set_filter($this->config->text[0]["name"],$_GET["mask"]."%","LIKE");
|
|
|
|
LogMaster::log($this->request);
|
|
}
|
|
|
|
|
|
/*! renders self as xml, starting part
|
|
*/
|
|
public function xml_start(){
|
|
if ($this->request->get_start())
|
|
return "<complete add='true'>";
|
|
else
|
|
return "<complete>";
|
|
}
|
|
|
|
/*! renders self as xml, ending part
|
|
*/
|
|
public function xml_end(){
|
|
return "</complete>";
|
|
}
|
|
}
|
|
?>
|