Skip to Content Skip to Menu

require subfield_A if subfield_B is filled

  • abqsueNM
  • abqsueNM
  • OFFLINE
  • Posts: 6
  • Thanks: 1
  • Karma: 0
1 month 2 weeks ago #344252 by abqsueNM
I have a field group named cb_dog3, which includes the subfields cb_dogname and cb_rabiesexpire. In an auto action, I'm using the condition [cb:userdata field="_cb_dog3_0_cb_dogname" /] is not empty and  [cb:userdata field="_cb_dog3_0_cb_rabiesexpire" /] is empty, I want to make the rabiesexpire subfield required and return an error message. Have I set the condition up correctly? Is there a PHP code (or other way) that will do this?

Please Log in or Create an account to join the conversation.

  • krileon
  • krileon
  • ONLINE
  • Posts: 50645
  • Thanks: 8679
  • Karma: 1474
1 month 1 week ago - 1 month 1 week ago #344257 by krileon
Replied by krileon on topic require subfield_A if subfield_B is filled
The substitution format is as follows.

[FIELDGROUP_ROW_FIELDNAME]

Field Group = cb_myfields
First Row = 0
Field = cb_favoritecolor

This would give a substitution of the following.

[cb_myfields_0_cb_favoritecolor]

It's generally not ideal accessing the nested fields though. You'd have to know the exact row number and there's not a guarantee that row would always exist. Ideally you'd use PHP and access them via the JSON. Example as follows using the above.

Code:
return ( new \CBLib\Registry\Registry( $user->getString( 'cb_myfields', '' ) ) )->getString( '0.cb_favoritecolor' );


You can use PHP to loop through the Registry object for more control.

Code:
$colors = array(); foreach ( new \CBLib\Registry\Registry( $user->getString( 'cb_myfields', '' ) ) as $row => $fields ) { $color = $fields->getString( 'cb_favoritecolor', '' ); if ( ! $color ) { continue; } $colors = $color; } return $colors;


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.
Last edit: 1 month 1 week ago by krileon.

Please Log in or Create an account to join the conversation.

Moderators: beatnantkrileon
Powered by Kunena Forum