Exemplo n.º 1
0
 public function __get($column)
 {
     if (in_array($column, $this->_i18n_fields)) {
         $column .= '_' . I18n::lang();
     }
     return parent::__get($column);
 }
Exemplo n.º 2
0
Arquivo: orm.php Projeto: refo/kohana
  private function _is_jsoncol($col)
  {
    if ( array_key_exists($col, $this->_jsoncol) ) return TRUE;
    if ( array_key_exists($col, $this->_jsoncols) )
    {
      $this->_jsoncol[$col] = (object) array_merge(
        (array) $this->_jsoncols[$col], (array) json_decode(parent::__get($col) )
      );
      return TRUE;
    }

    return FALSE;
  }
Exemplo n.º 3
0
    /**
     * Handles retrieval of all model values, relationships, and metadata.
     *
     * @param   string $column Column name
     * @return  mixed
     */
    public function __get($column)
    {
        if (array_key_exists($column, $this->_aliased)) {
            $column = $this->_aliased[$column];
        }
        // Подгрузка options
        if (isset($this->_foreign_fields[$column]) and !array_key_exists($column, $this->_related)) {
            $query = DB::query(Database::SELECT, 'SELECT
					`options`.`value`,
					`ot`.`label`
				 FROM `options_types` `ot`
					LEFT JOIN `type_values` `tv` ON (`tv`.`id` = `ot`.`type_id`)
					LEFT JOIN (
						SELECT `option_id`, `value` FROM `pages_string_options` WHERE `page_id` = :page_id UNION ALL
						SELECT `option_id`, `value` FROM `pages_int_options` WHERE `page_id` = :page_id UNION ALL
						SELECT `option_id`, `value` FROM `pages_text_options` WHERE `page_id` = :page_id UNION ALL
						SELECT `option_id`, `value` FROM `pages_float_options` WHERE `page_id` = :page_id
					) AS `options` ON (`ot`.`id` = `options`.`option_id`)
	 			 WHERE `ot`.`table_name` = :table_name AND `ot`.`label` IN :labels');
            if (isset($this->id) and $this->id !== NULL) {
                $query->parameters(array(':page_id' => $this->id, ':table_name' => $this->_table_name, ':labels' => array_keys($this->_foreign_fields)));
                $data = $query->execute();
                foreach ($data as $item) {
                    $this->_related[$item['label']] = $item['value'];
                }
            }
        }
        if (array_key_exists($column, $this->_related)) {
            return $this->_related[$column];
        }
        return parent::__get($column);
    }