Понемногу и с нюансами разобрался😊. еще раз спасибо.Вот с них и надо было начинать
Fenix
Кому хочу- тому и плюсую, кому не хочу - "прохожу лесом, который там -->"
+164
Репутация
54
Рейтинг
Спасибо, подсказка Ваша — уже большая помощь, пробую дальше разбираться сам.Вот с них и надо было начинать,
Работает😊.
Спасибо! Будем пробовать😊.
Есть еще много немаловажных ньюансов… тему не закрываю.
Есть еще много немаловажных ньюансов… тему не закрываю.
Что-то вроде получается😊:
в system\controllers\content\manifest.php добавляем:
в \system\fields\my_fields.php
добавляю условие
в \system\controllers\content\hooks\ добавляю value_delete.php
Осталось решить вопрос что прописать для сброса значения в форме...
Если прописать
Форма сохранится, правда уничтожит $value при выводе сохраненной записи… этого результата можно добиться и просто прописав в my_fields.php
.....😥…
в system\controllers\content\manifest.php добавляем:
'value_delete'
добавляю условие
if($value == недопустимое значение) { $value= cmsEventsManager::hook('value_delete', $value);}
Осталось решить вопрос что прописать для сброса значения в форме...
Если прописать
class onContentValueDelete extends cmsAction { public function run($value){ return $value; } }
И на этом спасибо.Только сходу про создание полей я подсказать не смогу
Да создается свое поле.я пока не понял Вашу задачу
Нужно проверить введенные пользователем данные и при введении им недопустимого значения (определены в поле) — сбросить введенное пользователем значение (обнулить поле, тем самым не дав сохранить это значение, но оставить возможность ввести новое). (надеюсь понятно объяснил😊)
Да, согласен, извините.Fenix, Вы предоставляете слишком мало данных и слишком сумбурно
Пробую разобраться на примерах...
Тип контента заранее не известен (поле может использоваться в любых компонентах, предусматривающих создание полей с помощью существующих типов полей) как и системное имя созданного поля.
допустим есть тип поля my_fields.php внутри функции parse($value) значение $value сравнивается со списком недопустимых значений $value.
В \system\controllers\content\manifest.php
добавляю 'value_delete',
В system\controllers\content\hooks\
создаю хук: называю его value_delete.php
<?php class onContentValueDelete extends cmsAction { public function run($ctype){ return $value; } }
if ($value = недопустимое значение) {$value= cmsEventsManager::hook('value_delete', $ctype);}
P.S. что-то окончательно запутался сам😥…
Дело не в лени, а в отсутствии достаточных знаний, по этой причине и спрашиваю.
В типах контента в типе поля… примеры по работе с контентом (а точнее примеры хуков для полей контена) к сожалению (доступно понятных) не нашел.
P.s. некоторые только учаться, а не уже знают…
В типах контента в типе поля… примеры по работе с контентом (а точнее примеры хуков для полей контена) к сожалению (доступно понятных) не нашел.
P.s. некоторые только учаться, а не уже знают…
значит бесполезно пытаться "соорудить" нечто вроде:
Да и значение $this->parse($value) до сохранения не передаются в конструкцию...
печально… по двум причинам — название поля в БД может быть произвольным и поле может использоваться несколько раз на странице (как отлавливать учитывая этот момент); не очень (даже очень не очень) разбираюсь в хуках...
Если возможно пару примеров перехвата с пояснениями (на нескольких примерах, думаю будет разобраться проще).
Спасибо.
public function getRules() { if ($this->parse($value) == недопустимое значение) { return $this->rules; }else { return false; }
печально… по двум причинам — название поля в БД может быть произвольным и поле может использоваться несколько раз на странице (как отлавливать учитывая этот момент); не очень (даже очень не очень) разбираюсь в хуках...
Если возможно пару примеров перехвата с пояснениями (на нескольких примерах, думаю будет разобраться проще).
Спасибо.
Здравствуйте.
Подскажите, как запретить добавлять определенные значения в поля. Есть встроенная в icms2 валидация но нужны свои условия. Как прописать правила для запрета на добавление значения при вводе недопустимого значения?
Спасибо.
Подскажите, как запретить добавлять определенные значения в поля. Есть встроенная в icms2 валидация но нужны свои условия. Как прописать правила для запрета на добавление значения при вводе недопустимого значения?
Спасибо.
UP!
Чтобы не "плодить темы" еще один маленький вопрос :
как сбросить значение поля при условии?
Спасибо.
как сбросить значение поля при условии?
if($value == 1 ) { сбросить значение, вывести текст ошибки ;}
UP!
Уточню. Возможно не достаточно точно изъясняюсь.
В функции А одним из промежуточных значений (в зависимости от условий присваиваем переменной С значение 1 или 0 ) — конечный результат выполнения функции $value.
В функции Б результат выполнения функции зависит от значения $С, принятого в функции А.
Спасибо.
Уточню. Возможно не достаточно точно изъясняюсь.
В функции А одним из промежуточных значений (в зависимости от условий присваиваем переменной С значение 1 или 0 ) — конечный результат выполнения функции $value.
В функции Б результат выполнения функции зависит от значения $С, принятого в функции А.
Спасибо.
Pasha, можно по подробнее?
Допустим внутри класса я объявил private $С;
внутри public function А() присвоил переменной значение "1" — $this->$С =1;
как получить внутри public function Б() $С =1;? ($this->$С =1; — по сути новое присвоение значения переменной, а не получение значения из предыдущей функции).
Спасибо.
Допустим внутри класса я объявил private $С;
внутри public function А() присвоил переменной значение "1" — $this->$С =1;
как получить внутри public function Б() $С =1;? ($this->$С =1; — по сути новое присвоение значения переменной, а не получение значения из предыдущей функции).
Спасибо.
Да глобальные переменные пробовал, но не хочется к ним пребегать.Почитайте тему об областях видимости переменных.
Да если переменная конечная, а в данном случае одна из промежуточных.ну а если следовать коду буквально, то