/** * @param f_peristentdocument_PersistentDocument $conditionOn * @return integer[] */ private function getExcludeIds($conditionOn) { $excludeIds = array(); if ($conditionOn instanceof form_persistentdocument_field) { $excludeIds = array($conditionOn->getId()); } else { if ($conditionOn instanceof form_persistentdocument_group) { $query = form_FieldService::getInstance()->createQuery(); $query->add(Restrictions::descendentOf($conditionOn->getId())); $query->setProjection(Projections::property('id')); $excludeIds = $query->findColumn('id'); } } return $excludeIds; }
/** * @param form_persistentdocument_baseform $form * @param integer[] $excludeIds */ public function getValidActivationFields($form, $excludeIds = array()) { $query = form_FieldService::getInstance()->createQuery(); $query->add(Restrictions::descendentOf($form->getId())); if (f_util_ArrayUtils::isNotEmpty($excludeIds)) { $query->add(Restrictions::notin('id', $excludeIds)); } $validFields = array(); foreach ($query->find() as $field) { if ($field instanceof form_persistentdocument_boolean || $field instanceof form_persistentdocument_list) { $validFields[] = $field; } } return $validFields; }
/** * @param form_persistentdocument_form * @deprecated with no replacement */ public function getPreviewAttributes($document) { $attributes = array(); $query = f_persistentdocument_PersistentProvider::getInstance()->createQuery('modules_form/field'); $query->add(Restrictions::descendentOf($document->getId())); $fields = $query->find(); $attributes['fieldsCount'] = count($fields); $attributes['responsesCount'] = $document->getResponseCount(); return $attributes; }