v.2.5 Contains function info

5 posts by 2 authors in: Forums > CMS Builder
Last Post: January 14, 2013   (RSS)

By In-House-Logic - January 14, 2013

Saw that the new 2.5 release of CMSBuilder sports a "contains" function. Are there any docs or examples of this floating around that I've missed?

Cheers,
J.

By In-House-Logic - January 14, 2013

Many thanks Greg!  I think this means that this function can not be used to detect whether a mutli-list (checkbox, radiobox, list) pulled from a record in CMSB contains certain values. 
i.e.: a multi-list has had some values checked/present but not others.

Is that correct?

By gregThomas - January 14, 2013

Hi,

You could use this function to check if an item has been checked in in a list, something like this would work:

// load records from 'blog'
  list($blog, $blogMetaData) = getRecords(array(
  'tableName' => 'blog',
  'perPage' => '10',
  'loadUploads' => true,
  'allowSearch' => false,
));


foreach($blog as $item){
  if(contains("option one\t",$item['listField'])){
    echo 'true';
  }else{
    echo 'false';
  }
    echo '<br>';
}

You would need to change the listField variable to the name of the field that contains your list options. So this would return a list of true or false depending on if the list field has the 'option one' value selected. CMS Builder stores list fields as a string that is tab seperated.

If your using getRecord to return your records, then you might be better using the PHP in_array function instead:

foreach($blog as $item){
  if(in_array("option one",$item['listField:values'])){
    echo 'true';
  }else{
    echo 'false';
  }
  echo '<br>';
}

This will check if the meta field listField:values -which is an array of all of the selected values for a drop down- contains the value 'option one'.

Thanks!

Greg

Greg Thomas







PHP Programmer - interactivetools.com

By In-House-Logic - January 14, 2013

Thank you Greg. That's exceptionally helpful. I really appreciate you going through the "what if" process in your response.

Be well!