Что в данном контексте понимается под "пользователем"? Это зарегистрированный пользователь с логином и паролем, который, единожды отправив форму, должен лишиться этого блока до конца своих дней, или любой анонимный посетитель, который, отправив форму, должен лишиться блока до конца своей сессии?
Речь идет о зарегистрированном пользователе. Перед тем, как отправить форму, он должен заполнить поля в профиле (при регистрации он вводит минимум информации). Там числовые значения, которые используются в форме.
Результат формы текущего пользователя я вывожу в шапке сайта.
Я создала форму и вьюс с результатами. В поведении при отсутствии результатов написала сообщение о необходимости ввести данные в профиле. Получается, если пользователь их вводит, эта строка остается до тех пор, пока он не отправит форму. Мне нужно, чтобы эта строка больше не выводилась или вместо нее он увидел сообщение типа Теперь можно отправить форму.
Что нужно прежде всего: чтобы только что зарег. пользователь понимал, что нужно зайти в edit профиля (эти поля обязательные). Но как только он это сделает, уведомление должно пропасть.
По моему скромному мнению правильнее всего сделать так:
1. Создать роль "Профиль заполнен".
2. Сделать так, чтобы при заполнении профиля пользователю присваивалась эта роль. Вот тут возможно потребуется программирование (довольно нехитрое).
3. В условиях отображения блока с напоминалкой добавить условие Роль != Профиль заполнен.
Не уверен есть ли такой функционал в девятке, но в семерке есть Action с такими параметрами:
1.Пометить (или снять пометку) материал... предполагаю, что можно пометить материал как прочитанный. Который в свою очередь не будет отображаться как прочитанный в блоке. Пустой блок так же не будет отображаться.
2. Есть вариант -Изменить роль пользователя. Тогда ничего программировать не нужно из Вашего предложения.
3. Пометить (или снять пометку) с пользователя... можно обыграть и данное условие.
Ну так в чем проблемы? Просто включить эту опцию. Вебформы то они блоками выводятся. А если человек форму заполнял - ему сообщение будет. Ну или через jQuery дулаить сам блок при наличии этого сообщения. Адано любит когда я такие советы даю
В итоге как сделала я: поскольку элементы формы связаны со значениями из профиля, я установила условие CONDITIONAL LOGIC: если поле из профиля пустое, элемент формы, связанный с ним, отключить. При этом я добавила в начале формы элемент тип Сообщение (тип Предупреждение) с условием visible при наличии отключенных полей, поясняющее о необходимости заполнить профиль.
Комментарии
Что в данном контексте понимается под "пользователем"? Это зарегистрированный пользователь с логином и паролем, который, единожды отправив форму, должен лишиться этого блока до конца своих дней, или любой анонимный посетитель, который, отправив форму, должен лишиться блока до конца своей сессии?
Речь идет о зарегистрированном пользователе. Перед тем, как отправить форму, он должен заполнить поля в профиле (при регистрации он вводит минимум информации). Там числовые значения, которые используются в форме.
Результат формы текущего пользователя я вывожу в шапке сайта.
Я создала форму и вьюс с результатами. В поведении при отсутствии результатов написала сообщение о необходимости ввести данные в профиле. Получается, если пользователь их вводит, эта строка остается до тех пор, пока он не отправит форму. Мне нужно, чтобы эта строка больше не выводилась или вместо нее он увидел сообщение типа Теперь можно отправить форму.
Что нужно прежде всего: чтобы только что зарег. пользователь понимал, что нужно зайти в edit профиля (эти поля обязательные). Но как только он это сделает, уведомление должно пропасть.
По моему скромному мнению правильнее всего сделать так:
1. Создать роль "Профиль заполнен".
2. Сделать так, чтобы при заполнении профиля пользователю присваивалась эта роль. Вот тут возможно потребуется программирование (довольно нехитрое).
3. В условиях отображения блока с напоминалкой добавить условие Роль != Профиль заполнен.
Не уверен есть ли такой функционал в девятке, но в семерке есть Action с такими параметрами:
1.Пометить (или снять пометку) материал... предполагаю, что можно пометить материал как прочитанный. Который в свою очередь не будет отображаться как прочитанный в блоке. Пустой блок так же не будет отображаться.
2. Есть вариант -Изменить роль пользователя. Тогда ничего программировать не нужно из Вашего предложения.
3. Пометить (или снять пометку) с пользователя... можно обыграть и данное условие.
А в настройках вебформы можно сделать разрешение на отправку всего один раз?
Да, в настройках формы /settings/submissions есть опция SUBMISSION LIMIT SETTINGS.
Да, можно. Веб-формы вообще восхитительны
Ну так в чем проблемы? Просто включить эту опцию. Вебформы то они блоками выводятся. А если человек форму заполнял - ему сообщение будет. Ну или через jQuery дулаить сам блок при наличии этого сообщения. Адано любит когда я такие советы даю
В итоге как сделала я: поскольку элементы формы связаны со значениями из профиля, я установила условие CONDITIONAL LOGIC: если поле из профиля пустое, элемент формы, связанный с ним, отключить. При этом я добавила в начале формы элемент тип Сообщение (тип Предупреждение) с условием visible при наличии отключенных полей, поясняющее о необходимости заполнить профиль.
Принцип такой же, как у conditional_fields.
Однако хотелось бы научиться управлять выводом блоков: отключать блоки при определенных условиях.
Marassa предложил отличное решение через механизм ролей, воспользуйтесь им