Обсуждение 2.13 и выявление недочетов
Warning: file_get_contents(/home/admin/web/сайт.ru/public_html/templates/ultimate/css/font-awesome/css/font-awesome.min.css): failed to open stream: Нет такого файла или каталога in /home/admin/web/сайт.ru/public_html/system/core/template.php on line 1541
Что бы это значило?
Постараюсь изложить его как можно четче и очень надеюсь услышать ответ. Вопрос про вот этот небольшой фрагмент кода из фильтра в типах контента и виджета фильтра:
$value = $prop['handler']->store($value, false); if (!$value) { continue; } $filters[$name] = $value;
1. Откуда возникла такая идея и вообще мысль, что процесс создания фильтров в этом нуждается?
2. Почему значения, которые мы записываем в БД и значения, которые мы используем для создания фильтров должны обязательно быть идентичны?
3. Исходя из вопроса 2 — как быть, если например в БД поле пишет любое символическое значение(например любой символ или единицу), а данные хранит во внешней таблице? Как результат фильтре в поле мы выбрали что угодно, до самой фильтрации долетела единица. Есть масса таких случаев, но этот самый простой.
4. Это новые правила игры к которым надо привыкать или это будет переосмыслено и исправлено?
Заранее благодарен за ответ.
2. Это значения не для создания фильтров, а из созданных фильтров, т.е. из формы фильтра. И они не должны быть обязательно идентичными. Более того, в некоторых полях они и не идентичные.
3. Не понял вопроса, но вы можете обрабатывать как угодно, исходя из контекста вызова.
4. Я пока не вижу, что необходимо исправить. Все штатные поля, и доступные мне нештатные, работают корректно.
1. Из головы, если отвечать буквально.
2. Это значения не для создания фильтров, а из созданных фильтров, т.е. из формы фильтра. И они не должны быть обязательно идентичными. Более того, в некоторых полях они и не идентичные.
3. Не понял вопроса, но вы можете обрабатывать как угодно, исходя из контекста вызова.
4. Я пока не вижу, что необходимо исправить. Все штатные поля, и доступные мне нештатные, работают корректно.
Судя по вашим ответам вы ничего из того, что я написал не поняли. Давайте попробуем так
Пример 1(допустим мультисписок c индексами 1,2,3,4,5,6)
public function store($value, $is_submitted, $old_value=null){ } public function getFilterInput($value){ return parent::getInput($value); } public function applyFilter($model, $value) { // я в фильтре выбрал значения 3 и 5 // $core->request содержит array(3, 5) // а чему по- вашему здесь $value равен? // мне кажется, что тут должен быть массив значений, выбранных в списке // но с вашими нововведениями его здесь нет return $model->filterLike($this->name, "%{$value}%"); }
public function store($value, $is_submitted, $old_value=null){ $model = cmsCore::getModel('mycontroller'); $model->save($this->item['id'], $value); return 1; } public function getFilterInput($value){ $model = cmsCore::getModel('mycontroller'); $value = $model->load($this->item['id']);// //строим выпадающий список } public function applyFilter($model, $value) { // а чему по- вашему здесь $value равен? // мне кажется, что тут должен быть массив значений, выбранных в списке // но с вашими нововведениями его здесь нет }
Если мои глаза меня не обманывают, то методу store не место в фильтре. Я читаю документацию, подготавливаю данные к записи в БД, у меня все хорошо. А потом они вот в таком подготовленном виде почему-то пытаются протиснуться в фильтр, хотя для фильтрации я не просил их трогать. Может я опять чего-то не понимаю, но мне кажется, что если метод придуман для подготовки перед записью в БД, то давайте там его и использовать. Если для фильтра нужен подобный метод, давайте его добавим. На данный момент мы переписываем все ранее написанные поля согласно новым правилам. Если раньше все было четко и понятно, то теперь мы должны добавлять проверку контекста и исходя из этого задавать себе вопрос "Должен ли метод, описанный в документации как метод, предназначенный для подготовки данных перед записью в БД выполнить эту самую подготовку"? Один я нахожу в таком положении вещей разрыв шаблона?
Почему при сохранении данных, настроек в админке с первого раза ничего не происходит? Надо нажать на сохранить или очистить кеш… 2 или 3 раза!
С чем это может быть связаной? С настройкой сервера или что не так делаю в админке?
В качестве веба на сервере используется NGINX + php-frm
Понял. Вы не поняли мои ответы.вы ничего из того, что я написал не поняли
store может быть такой или такой. Или можно использовать контекст вызова.
Единственное, что я сделал не так так, вернее не посмотрел наперёд и заранее не унифицировал, так это использовать для этой цели не метод store, а скажем storeFilter, который бы по умолчанию вызывал бы store.
Да, в документацию изменения не внёс еще.Если мои глаза меня не обманывают, то методу store не место в фильтре. Я читаю документацию, подготавливаю данные к записи в БД, у меня все хорошо.
Метод придуман для подготовки данных, вам стоит абстрагироваться. Старая реализация с точки зрения безопасности была не совсем корректная.но мне кажется, что если метод придуман для подготовки перед записью в БД
Если бы вы следили за изменениями на гите, ваших четырёх вопросов сейчас не было. Я сделал новый функционал. Кто следил за гитом, дали фидбэк. Кто не следил, дают его сейчас, после релиза. Это не плохо и не хорошо, это просто так есть.На данный момент мы переписываем все ранее написанные поля согласно новым правилам.
Почему при сохранении данных, настроек в админке с первого раза ничего не происходит? Надо нажать на сохранить или очистить кеш… 2 или 3 раза!
NGINX + php-frm
opcache отключите и не трогайте php.ini. Стоит делать то, в чем есть однозначное понимание.А с консолью я не очень дружу...
$value = $prop['handler']->store($value, false); if (!$value) { continue; } // а тут наш $value содежит что? Ну конечно ту же самую охинею, которую мы обычно пишем в БД $filters[$name] = $value; // а куда потом вся эта охинея попадает? ну конечно же $page_uri и следом в ссылки фильтра, пагинацию
Так это ожидаемо же, поскольку ваше поле не обрабатывает новый подход.а куда потом вся эта охинея попадает? ну конечно же $page_uri и следом в ссылки фильтра, пагинацию
Еще раз, вы могли быть в курсе изменений, если бы поглядывали на коммиты на гите.
По существу: я добавлю метод storeFilter в поля. Предыдущий функционал, в котором брались чистые данные из request, возвращён не будет. Так или иначе, вам пришлось бы актуализировать ваши поля под новый функционал.
Вы как-то излишне эмоционально реагируете. Будьте в курсе разработки движка и подобный казусов у вас не случится.
Наверно вас сильно удивлю, но не трогал, не включал. В php.ini есть только параметр opcache.revalidate_freq, но он ОТКЛЮЧЕН.opcache отключите и не трогайте php.ini. Стоит делать то, в чем есть однозначное понимание
Более того, все перерыл, не могу найти opcache.
Я изначально всегда допускаю, что не прав. Чего не могу сказать о вас, увы. Вы решили перейти из обсуждения в личке на публику. Окей.тот, кто умеет смеяться над своими ошибками
1. Весь ваш текст просто сквозит мыслями "я просто мега круто во всём разбираюсь, а в чем не разбираюсь, то не правильно", "почему этого еще нет и этого нет, вы не тем занимаетесь". Это неверный подход.
2. Весьма странно читать всё это, учитывая кровь из глаз, когда я вижу ваш код.
3. Весьма странно читать всё это, учитывая сколько раз я звал вас в кулуары, на гит и в целом к конструктиву по типу "не нравится — давай обсудим, сделаем лучше". Но "не нравятся мне ваши гитхабы, айэм фром ссср".
4. Я по прежнему готов обсуждать что угодно в части улучшения движка. Но если это будет в контекте "всё гавно, я это вижу так" — мы не сработаемся.
По вашим пунктам проходиться и отвечать по каждому я не буду. Отвечу кратко: InstantCMS бесплатен, я делаю то, что считаю нужным, в первую очередь для себя. Хотите помочь? Как это сделать, я вам писал много раз. Считаете неудачной какую-либо реализацию, — предложите лучшую. Кроме этого, в контекста начатого разговора, я сразу признал, что лучше было сделать отдельный метод.
Чтобы как-то явно объясниться, в очередной раз доказав вам, что не верблюд, напомню про ваши высказывания про валидацию полей. Так вот сейчас валидировать можно вообще как угодно, включая анонимные функции. И вот пример, как быстро и лаконично, без лишних слов решаются вопросы.
p.s. п3, если о впечатлениях, уж извините.
Вы где-то это прочли? Ткните меня носом или считайте, что вам показалось. Я высказал то, что видят мои глаза и не более.1. Весь ваш текст просто сквозит мыслью "я просто мега круто во всём разбираюсь, а в чем не разбираюсь, то не правильно". Это неверный подход.
Когда я встречу второго человека, который скажет мне то же самое, я вспомню о ваших словах. Если для вас внятность кода диктуется количеством пустых строк в файле, то мне это неважно. можно даже по-китайски справа налево2. Весьма странно читать всё это, учитывая кровь из глаз, когда я вижу ваш код.
Ну собственно я и в телегу ходил, мне там сказали "мальчик, иди отсюда не мешай, не видишь взрослые дяди разговаривают, мы тут вопросы с последовательностью вывода виджетов решаем а ты с каким-то идиотским ядром к нам лезешь".3. Весьма странно читать всё это, учитывая сколько раз я звал вас в кулуары, на гит и в целом к конструктиву по типу "не нравится — давай обсудим, сделаем лучше". Но "не нравятся мне ваши гитхабы, айэм фром ссср".
И на гите инфу подкидывал и в личке у вас целая небрежно отброшенных пожеланий, помеченных грфиом "мы этого делать не будем". зато в каждом релизе я наблюдаю "что мы делать будем"
вы это сейчас на основании чего пишете? кто-то уже предложил подобный контекст? лично я такого предложить не мог. хотя бы потому, что мне воспитание не позволяет4. Я по прежнему готов обсуждать что угодно в части улучшения движка. Но если это будет в контекте "всё гавно, я это вижу так" — мы не сработаемся.
вот с этого пожалуй стоило начать и тут же этим и закончить. я почему-то считал, что для людей. а если для себя… тогда понятно что люди это только балласт, отжирающий нервные клетки своими тупыми хотелками. и я один из типичных представителей этого балласта. теперь позиция развития системы предельно ясна. пофиг что там людям надо, мне ж это не надо. теперь я понимаю почему рассказывая вам о том, что надо внести такие-то правки, потому что нельзя сделать то-то и то-то я получаю один и тот же вопрос — "а зачем?". ну да, незачем. вам то оно не надо. а кому надо пусть сам крутится как умеетПо вашим пунктам проходиться и отвечать по каждому я не буду. Отвечу кратко: InstantCMS бесплатен, я делаю то, что считаю нужным, в первую очередь для себя.
мне надо ничего напоминать, у меня с памятью все в порядке. я отлично помню скольких нервов мне это стоило и сколько текста потребовалось, чтобы вы добавили эти 2 строчки кодаЧтобы как-то явно объясниться, в очередной раз доказав вам, что не верблюд, напомню про ваши высказывания про валидацию полей. Так вот сейчас валидировать можно вообще как угодно, включая анонимные функции.
и если это называется лаконично, то пожалуй я сменю профиль и начну писать романы. Война и мир в рамках этого "лаконично" это плевое дело.пример, как быстро и лаконично, без лишних слов решаются вопросы.
Ну и собственно спасибо за беседу, наконец мое недоумение развеялось и я понял вашу позицию. год пытался понять — не получалось
Я каждое свое слово могу аргументировать и подкрепить доводами. Хотя большинство мной сказанного в этом не нуждаются, это первый курс института и каждый студет будущий программист об этом знает. пренебрегать такими вешами можно в файле из 10 строк, компоненте, но в целой системе увы, уже нельзя. Это ваши аргументы как правило сводятся к бессмысленным отговоркам или даже полному их отсутствию. "Отвергаешь — обоснуй" и тогда можно смело будет говорить о собственной правоте. А без обоснования остается только догадываться — то ли перед тобой гений, за 20 секунд изучивший все твои предложения и сделавший полную выкладку, то ли человек который смотрит на текст и отказывается только потому, что не может понять смысл прочитанного. Вот н разу не хочу вас обидеть, а просто говорю о том, как такое поведение выглядит со стороны.Я изначально всегда допускаю, что не прав. Чего не могу сказать о вас, увы.
Вы опять что-то путаете, мы с вами в личке общались очень давно и поводом этому была глючная мультиязычность, которая имела место быть в 2.12.0, я вам просто указал на проблему. а сегодняшняя наша беседа есть не что иное, как развитие темы ваших вчерашних комментариев, которые вы дали на мои вопросыВы решили перейти из обсуждения в личке на публику. Окей.
P.S. Я уже когда-то говорил, что больше не буду приставать к вам со своими инновациями, прошу меня простить, не сдержался. Но это точно был последний раз, обещаю. Ваша система, вы хозяин, хозяин-барин. Я здесь никто и мой голос ничего не значит. А впустую сотрясать воздух как-то надоело.
www.youtube.com/watch?v=AXLoRpKnK8U