Пример #1
0
 /**
  *
  * @return type
  */
 public function render()
 {
     if ($this->callback) {
         $callback = new Callback($this->callback);
         if ($callback->check()) {
             $this->options->values = $callback->run(array($this->form));
         }
     }
     $this->prepareOptions();
     $code[] = HTML::open_tag('select', $this->options);
     foreach ($this->values as $key => $value) {
         $attributes = array();
         if ($this->value instanceof Core_ArrayObject) {
             $this->value = $this->value->toArray();
         }
         if (is_array($this->value)) {
             if (in_array($key, $this->value)) {
                 $attributes['selected'] = 'selected';
             }
         } elseif ($key == $this->value) {
             $attributes['selected'] = 'selected';
         }
         $attributes['value'] = $key;
         $code[] = HTML::paired_tag('option', $value, $attributes);
     }
     $code[] = HTML::close_tag('select');
     $code = implode("\n", $code);
     if ($this->wrapper) {
         $tpl = new Template($this->wrapper);
         $tpl->assign($this->options);
         $tpl->code = $code;
         $code = $tpl->render();
     }
     return $code;
 }
Пример #2
0
 /**
  * Magic __call method
  *
  * @param   string  $name
  * @param   array   $array
  */
 public function __call($name, $args)
 {
     $callback = new Callback(array(cogear(), $name));
     if ($callback->check()) {
         return $callback->run($args);
     }
     return NULL;
 }
Пример #3
0
 /**
  * Magic __call method
  *
  * @param string $name
  * @param array $args
  * @return mixed
  */
 public function __call($name, $args)
 {
     if (is_object($this->object)) {
         $callback = new Callback(array($this->object, $name));
         if ($callback->check()) {
             return $callback->run($args);
         }
     }
     return parent::__call($name, $args);
 }
Пример #4
0
 /**
  * Filter data
  *
  * @param object $data
  * @param int $type
  * @return object
  */
 public function filterData($data, $type = 0)
 {
     // Fullfill filters
     switch ($type) {
         case self::FILTER_IN:
             $filters = $this->filters_in;
             break;
         case self::FILTER_OUT:
         default:
             $filters = $this->filters_out;
     }
     // Set scope to $this
     foreach ($filters as $field => $filter) {
         foreach ($filter as $key => $callback) {
             if (!is_array($callback) && method_exists($this, $callback)) {
                 $callback = new Callback(array($this, $callback));
             } else {
                 $callback = new Callback($callback);
             }
             if ($callback->check()) {
                 !empty($data[$field]) && ($data[$field] = $callback->run(array($data[$field])));
             }
         }
     }
     return $data;
 }
Пример #5
0
/**
 * Shortcut for access rule check
 *
 * @param string $rule
 * @paramN …
 * @return boolean
 */
function access()
{
    $args = func_get_args();
    $callback = new Callback(array(cogear()->access, 'check'));
    return $callback->run($args);
}