/** * @param mixed $value * @return string */ protected function formatValue($value) { if ($value === NULL) { return $this->applyReplacement($value); } elseif (is_scalar($value)) { $value = \Nette\Templating\Helpers::escapeHtml($value); $replaced = $this->applyReplacement($value); if ($value !== $replaced && is_scalar($replaced)) { return $replaced; } } return $value instanceof \DateTime ? $value->format($this->dateFormat) : date($this->dateFormat, is_numeric($value) ? $value : strtotime($value)); //@todo add notice when result is "01.01.1970" }
public function suggest($column, array $conditions, $limit) { $fluent = clone $this->getSelection(); is_string($column) && $fluent->removeClause('SELECT')->select("DISTINCT {$column}"); foreach ($conditions as $condition) { $this->makeWhere($condition, $fluent); } $items = array(); $data = $fluent->fetchAll(0, $limit); foreach ($data as $row) { if (is_string($column)) { $value = (string) $row[$column]; } elseif (is_callable($column)) { $value = (string) $column($row); } else { $type = gettype($column); throw new \InvalidArgumentException("Column of suggestion must be string or callback, {$type} given."); } $items[$value] = \Nette\Templating\Helpers::escapeHtml($value); } return array_values($items); }
/** * @param mixed $column * @param array $conditions * @param int $limit * @return array */ public function suggest($column, array $conditions, $limit) { $data = $this->data; foreach ($conditions as $condition) { $data = $this->makeWhere($condition, $data); } array_slice($data, 1, $limit); $items = array(); foreach ($data as $row) { if (is_string($column)) { $value = (string) $row[$column]; } elseif (is_callable($column)) { $value = (string) $column($row); } else { $type = gettype($column); throw new \InvalidArgumentException("Column of suggestion must be string or callback, {$type} given."); } $items[$value] = \Nette\Templating\Helpers::escapeHtml($value); } return array_values($items); }
/** * @param mixed $value * @return mixed */ protected function formatValue($value) { $value = is_string($value) ? \Nette\Templating\Helpers::escapeHtml($value) : $value; return $this->applyReplacement($value); }
/** * @param mixed $column * @param array $conditions * @param int $limit * @return array * @throws Exception */ public function suggest($column, array $conditions, $limit) { $qb = clone $this->qb; $qb->setMaxResults($limit); if (is_string($column)) { $mapping = isset($this->filterMapping[$column]) ? $this->filterMapping[$column] : current($qb->getRootAliases()) . '.' . $column; $qb->select($mapping)->distinct()->orderBy($mapping); } foreach ($conditions as $condition) { $this->makeWhere($condition, $qb); } $items = array(); $data = $qb->getQuery()->getScalarResult(); foreach ($data as $row) { if (is_string($column)) { $value = (string) current($row); } elseif (is_callable($column)) { $value = (string) $column($row); } else { $type = gettype($column); throw new Exception("Column of suggestion must be string or callback, {$type} given."); } $items[$value] = \Nette\Templating\Helpers::escapeHtml($value); } is_callable($column) && sort($items); return array_values($items); }
/** * @param mixed $column * @param array $conditions * @param int $limit * @return array * @throws \InvalidArgumentException */ public function suggest($column, array $conditions, $limit) { $selection = clone $this->selection; is_string($column) && $selection->select("DISTINCT {$column}")->order($column); $selection->limit($limit); foreach ($conditions as $condition) { $this->makeWhere($condition, $selection); } $items = array(); foreach ($selection as $row) { if (is_string($column)) { $value = (string) $row[$column]; } elseif (is_callable($column)) { $value = (string) $column($row); } else { $type = gettype($column); throw new \InvalidArgumentException("Column of suggestion must be string or callback, {$type} given."); } $items[$value] = \Nette\Templating\Helpers::escapeHtml($value); } is_callable($column) && sort($items); return array_values($items); }
/** * @param mixed $value * @return mixed */ protected function formatValue($value) { if (is_null($value) || is_scalar($value) || is_object($value) && method_exists($value, '__toString')) { $value = \Nette\Templating\Helpers::escapeHtml($value); $value = $this->applyReplacement($value); } return $value; }