protected function _preDelete()
 {
     $db = $this->_db;
     $formDestinationId = $this->get('form_destination_id');
     $formDestinationIdQuoted = $db->quote($formDestinationId);
     $db->delete('lpsf_form_destination_option', "form_destination_id = {$formDestinationIdQuoted}");
     parent::_preDelete();
 }
Пример #2
0
 protected function _preDelete()
 {
     $db = $this->_db;
     $formId = $this->get('form_id');
     $formIdQuoted = $db->quote($formId);
     $db->delete('lpsf_response_field', "field_id IN (SELECT field_id FROM lpsf_field WHERE form_id = {$formIdQuoted})");
     $db->delete('lpsf_response', "form_id = {$formIdQuoted}");
     $db->delete('lpsf_form_destination_option', "form_destination_id IN (SELECT form_destination_id FROM lpsf_form_destination WHERE form_id = {$formIdQuoted})");
     $db->delete('lpsf_form_destination', "form_id = {$formIdQuoted}");
     $db->delete('lpsf_field', "form_id = {$formIdQuoted}");
     parent::_preDelete();
 }
Пример #3
0
 protected function _preDelete()
 {
     $db = $this->_db;
     $responseId = $this->get('response_id');
     $responseIdQuoted = $db->quote($responseId);
     $db->delete('lpsf_response_field', "response_id = {$responseIdQuoted}");
     parent::_preDelete();
 }
Пример #4
0
 /**
  * Pre-delete behaviors.
  */
 protected function _preDelete()
 {
     $db = $this->_db;
     $options = XenForo_Application::getOptions();
     // unassociate global field
     if ($this->get('type') == 'global') {
         $fieldModel = new LiquidPro_SimpleForms_Model_Field();
         $associatedFields = $fieldModel->getFields(array('parent_field_id' => $this->get('field_id')));
         switch ($options->deleteGlobalFieldsHandling) {
             // delete all the associated fields
             case 'delete':
                 foreach ($associatedFields as $associatedFieldId => $associatedField) {
                     $quotedFieldId = $db->quote($associatedFieldId);
                     // delete the responses for that field
                     $db->delete('lpsf_response_field', "field_id = {$quotedFieldId}");
                     // delete the field
                     $db->delete('lpsf_field', "field_id = {$quotedFieldId}");
                 }
                 break;
                 // convert all the associated fields to user fields
             // convert all the associated fields to user fields
             case 'convert':
                 foreach ($associatedFields as $associatedFieldId => $associatedField) {
                     $dw = new LiquidPro_SimpleForms_DataWriter_Field();
                     $dw->setExistingData($associatedField, true);
                     // unassociate from the global field
                     $dw->set('parent_field_id', null);
                     // override global settings
                     $dw->set('field_name', $this->get('field_name'));
                     $dw->set('field_type', $this->get('field_type'));
                     $dw->set('field_choices', $this->get('field_choices'));
                     $dw->set('match_type', $this->get('match_type'));
                     $dw->set('match_regex', $this->get('match_regex'));
                     $dw->set('match_callback_class', $this->get('match_callback_class'));
                     $dw->set('match_callback_method', $this->get('match_callback_method'));
                     $dw->set('max_length', $this->get('max_length'));
                     $dw->set('hide_title', $this->get('hide_title'));
                     $dw->set('default_value', $this->get('default_value'));
                     $dw->set('placeholder', $this->get('placeholder'));
                     $dw->set('min_length', $this->get('min_length'));
                     $dw->set('pre_text', $this->get('pre_text'));
                     $dw->set('post_text', $this->get('post_text'));
                     // save the associated field
                     $dw->save();
                 }
                 break;
                 // prevent the field from being deleted
             // prevent the field from being deleted
             case 'prevent':
                 if (count($associatedFields) > 0) {
                     $this->error(new XenForo_Phrase('fields_associated_with_global_field'));
                 }
                 break;
         }
     }
     $fieldId = $this->get('field_id');
     $fieldIdQuoted = $db->quote($fieldId);
     $db->delete('lpsf_response_field', "field_id = {$fieldIdQuoted}");
     parent::_preDelete();
 }