예제 #1
0
 public function __construct($fieldLabel, $fieldKey, $query, $db = null)
 {
     $this->_fieldKey = $fieldKey;
     $this->_fieldLabel = $fieldLabel;
     if ($db !== null) {
         $this->_db = $db;
     } else {
         if (\TotalFlex\TotalFlex::getDefaultDB() !== null) {
             $this->_db = \TotalFlex\TotalFlex::getDefaultDB();
         } else {
             throw new DefaultDBNotSet("You have to set default db with TotalFlex::setDefaultDB() or give it as an argument in constructor method");
         }
     }
     $statement = $this->_db->prepare($query);
     if (!$statement->execute()) {
         throw new Exception($statement->errorInfo());
     }
     $this->_arrayResult = $statement->fetchAll(\PDO::FETCH_ASSOC);
 }
예제 #2
0
 /**
  * Constructs the field
  *
  * @param string $column Field column name
  * @param string $label Field label
  * @throws \InvalidArgumentException
  */
 public function __construct($label, $targetTable, $fixedField, $fixedFieldValue, \TotalFlex\DBSource $dbSource)
 {
     $this->_targetTable = $targetTable;
     $this->_fixedField = $fixedField;
     $this->_fixedFieldValue = $fixedFieldValue;
     $this->_source = $dbSource;
     $this->_instanceId = ++self::$instanceCount;
     $this->_elementId = str_replace("\\", "_", get_class($this)) . $this->_instanceId;
     $this->_sourceLinkField = $dbSource->getFieldKey();
     $this->_sourceLabel = $dbSource->getFieldLabel();
     if (empty(self::$defaultTemplate)) {
         self::$defaultTemplate = Select::getDefaultTemplate();
     }
     // parent::__construct ( $column , $label );
     if (empty($this->_encloseStart)) {
         $this->_encloseStart = static::$defaultEncloseStart;
     }
     if (empty($this->_encloseEnd)) {
         $this->_encloseEnd = static::$defaultEncloseEnd;
     }
     if (empty($this->_template)) {
         $this->_template = static::$defaultTemplate;
     }
     if (empty($this->_labelTemplate)) {
         $this->_labelTemplate = static::$defaultLabelTemplate;
     }
     $this->setLabel($label)->setType('text')->setPrimaryKey(false)->setRules([]);
     if (\TotalFlex\TotalFlex::getDefaultDB() === null) {
         throw new DefaultDBNotSet("You have to set default db with TotalFlex::setDefaultDB() or give it as an argument in constructor method");
     }
     $this->db = \TotalFlex\TotalFlex::getDefaultDB();
     $this->_options = $dbSource->getFieldAsKeyLabelAsValue();
 }
예제 #3
0
 /**
  * call functino callback 
  * @param  [type] $post [description]
  * @return [type]       [description]
  */
 public function preFilter($context)
 {
     $filterAction = $this->_filterAction;
     if (gettype($filterAction) === "object") {
         return $filterAction($context, $this, TotalFlex::getDefaultDB());
     } else {
         return true;
     }
 }