169 похожих чатов

Public function getAll($sort = 'id', $order = 'asc', $isCommon =

false)
{
$parameters = [];

try {
$data = $this->getApi()->parametersGetAll($isCommon)->getResult();
} catch (ApiException $e) {
$data = [];

$this->getDI()->getShared('logger')->error(
sprintf(
'An error occurred while getting parameters: "%s"',
$e->getMessage()
),
[
'method' => 'Grumpy\Model\Repository\AdvertParameter::getAll',
'params' => json_encode(\func_get_args()),
]
);
}

if ($this->isDataFromApiValid($data)) {
foreach ($data as $rawParameter) {
$parameter = $this->fromArray($rawParameter);
$parameters[] = $parameter;
$this->initDiOnEntity($parameter);
}
}

if ($parameters !== null && \in_array($sort, Parameters::SORT_FIELDS)) {
Parameters::sortParameters($parameters, $sort, $order);
}

return $parameters;
}


<?php
namespace Grumpy\Services\Categories;

use Grumpy\Applications\Frontend\Forms\Advert\NewAdvert;
use Grumpy\Forms\Elements\CsrfToken;
use Grumpy\Forms\Interfaces\ElementWithPlaceholders as ElementWithPlaceholdersInterface;
use Grumpy\Model\Entity\AdvertCategory;
use Grumpy\Model\Entity\AdvertParameter;

/**
* Обработка параметров, относящихся к категории
*/
class Parameters
{
/**
* Поля, по которым можно осуществлять сортировку параметров.
*/
const SORT_FIELDS = [
'id',
'name',
'label',
'formLabel',
'isRequired',
];

/**
* Выдает представление для параметров категории из формы поиска со стилями и возможными значениями
*
* @param \Grumpy\Model\Entity\AdvertCategory $category
* @return array
*/
public static function formPresenter(AdvertCategory $category) : array
{
$form = new NewAdvert($category);
$parameters = [];

/** @var \Grumpy\Forms\Interfaces\Element|\Grumpy\Traits\Element $element */
foreach ($form->getElements() as $element) {
// csrf не нужен в списке параметров
if ($element instanceof CsrfToken) {
continue;
}

$parameter = [
'attributes' => $element->getAttributes(),
'type' => $element->getType(),
'label' => $element->getLabel(),
'name' => $element->getName(),
'fieldData' => $element->getValues(),
];

if ($element instanceof ElementWithPlaceholdersInterface) {
$parameter['placeholders'] = $element->getPlaceholders();
}

$parameters[] = $parameter;
}

return $parameters;
}

/**
* Сортировка параметров.
*
* @param array $parameters
* @param string $sort
* @param string $order
*/
public static function sortParameters(array $parameters, $sort = 'id', $order = 'asc')
{
if (!\in_array($order, ['asc', 'desc'])) {
$order = 'asc';
}

$method = 'get' . $sort;

usort($parameters, function (Entity\AdvertParameter $p0, Entity\AdvertParameter $p1) use ($order, $method) {
// Сортируем числа
if (0 === strcmp($method, 'getIsRequired')) {
if ($p0->$method() === $p1->$method()) {
return 0;
}

return $p0->$method() <=> $p1->$method();
}

if (0 === strcmp($order, 'asc')) {
return strnatcasecmp($p0->$method(), $p1->$method());
}

return strnatcasecmp($p1->$method(), $p0->$method());
});
}
}

2 ответов

16 просмотров

Ты правда думаешь, что кто-то будет твою простыню изучать?

Adil'-Kumashev Автор вопроса

да нет) не знаю, как еще скинуть

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта