Example #1
0
 function createElements()
 {
     $controls = $this->targetObject->controls;
     $vars = $this->targetObject->vars;
     foreach ($vars as $key => $var) {
         // If $displayOnForm is false OR this is the primary key, it doesn't
         // need to be displayed, then we only create an hidden field
         if ($key == $this->targetObject->handler->keyName || !$var['displayOnForm']) {
             $elementToAdd = new XoopsFormHidden($key, $var['value']);
             $this->addElement($elementToAdd, $key, $var, false);
             unset($elementToAdd);
             // If not, the we need to create the proper form control for this fields
         } else {
             // If this field has a specific control, we will use it
             if ($key == 'parentid') {
                 /**
                  * Why this ?
                  */
             }
             if (isset($controls[$key])) {
                 /* If the control has name, it's because it's an object already present in the script
                  * for example, "user"
                  * If the field does not have a name, than we will use a "select" (ie XoopsFormSelect)
                  */
                 if (!isset($controls[$key]['name']) || !$controls[$key]['name']) {
                     $controls[$key]['name'] = 'select';
                 }
                 $form_select = $this->getControl($controls[$key]['name'], $key);
                 // Adding on the form, the control for this field
                 $this->addElement($form_select, $key, $var);
                 unset($form_select);
                 // If this field don't have a specific control, we will use the standard one, depending on its data type
             } else {
                 switch ($var['data_type']) {
                     case XOBJ_DTYPE_TXTBOX:
                         $form_text = $this->getControl("text", $key);
                         $this->addElement($form_text, $key, $var);
                         unset($form_text);
                         break;
                     case XOBJ_DTYPE_INT:
                         $this->targetObject->setControl($key, array('name' => 'text', 'size' => '5'));
                         $form_text = $this->getControl("text", $key);
                         $this->addElement($form_text, $key, $var);
                         unset($form_text);
                         break;
                     case XOBJ_DTYPE_FLOAT:
                         $this->targetObject->setControl($key, array('name' => 'text', 'size' => '5'));
                         $form_text = $this->getControl("text", $key);
                         $this->addElement($form_text, $key, $var);
                         unset($form_text);
                         break;
                     case XOBJ_DTYPE_LTIME:
                         $form_date_time = $this->getControl('date_time', $key);
                         $this->addElement($form_date_time, $key, $var);
                         unset($form_date_time);
                         break;
                     case XOBJ_DTYPE_STIME:
                         $form_date_time = $this->getControl('date', $key);
                         $this->addElement($form_date_time, $key, $var);
                         unset($form_date_time);
                         break;
                     case XOBJ_DTYPE_TIME_ONLY:
                         $form_time = $this->getControl('time', $key);
                         $this->addElement($form_time, $key, $var);
                         unset($form_time);
                         break;
                     case XOBJ_DTYPE_CURRENCY:
                         $this->targetObject->setControl($key, array('name' => 'text', 'size' => '15'));
                         $form_currency = $this->getControl("text", $key);
                         $this->addElement($form_currency, $key, $var);
                         unset($form_currency);
                         break;
                     case XOBJ_DTYPE_URLLINK:
                         $form_urllink = $this->getControl("urllink", $key);
                         $this->addElement($form_urllink, $key, $var);
                         unset($form_urllink);
                         break;
                     case XOBJ_DTYPE_FILE:
                         $form_file = $this->getControl("richfile", $key);
                         $this->addElement($form_file, $key, $var);
                         unset($form_file);
                         break;
                     case XOBJ_DTYPE_TXTAREA:
                         $form_text_area = $this->getTextArea($key, $var);
                         $this->addElement($form_text_area, $key, $var);
                         unset($form_text_area);
                         break;
                     case XOBJ_DTYPE_ARRAY:
                         // TODO : To come...
                         break;
                     case XOBJ_DTYPE_SOURCE:
                         // TODO : To come...
                         break;
                     case XOBJ_DTYPE_FORM_SECTION:
                         $section_control = new SmartFormSection($key, $var['value']);
                         $this->addElement($section_control, $key, $var);
                         unset($section_control);
                         break;
                     case XOBJ_DTYPE_FORM_SECTION_CLOSE:
                         $section_control = new SmartFormSectionClose($key, $var['value']);
                         $this->addElement($section_control, $key, $var);
                         unset($section_control);
                         break;
                 }
             }
         }
     }
     // Add an hidden field to store the URL of the page before this form
     $this->addElement(new XoopsFormHidden('smart_page_before_form', smart_get_page_before_form()));
 }
Example #2
0
     include_once XOOPS_ROOT_PATH . "/modules/smartobject/class/smartobjectcontroller.php";
     $controller = new SmartObjectController($smartobject_tag_handler);
     $controller->handleObjectDeletion(_AM_SOBJECT_TAG_DELETE_CONFIRM);
     break;
 case "addtag":
     include_once XOOPS_ROOT_PATH . "/modules/smartobject/class/smartobjectcontroller.php";
     $controller = new SmartObjectController($smartobject_tag_handler);
     $tagObj = $controller->storeSmartObject();
     if ($tagObj->hasError()) {
         redirect_header($smart_previous_page, 3, _CO_SOBJECT_SAVE_ERROR . $tagObj->getHtmlErrors());
         exit;
     }
     if ($tagObj->hasError()) {
         redirect_header($smart_previous_page, 3, _CO_SOBJECT_SAVE_ERROR . $tagObj->getHtmlErrors());
     } else {
         redirect_header(smart_get_page_before_form(), 3, _CO_SOBJECT_SAVE_SUCCESS);
     }
     exit;
     break;
 case "mod":
     smart_xoops_cp_header();
     edittag($tagid, $language, $fct);
     break;
 default:
     smart_xoops_cp_header();
     smart_adminMenu(2, _AM_SOBJECT_TAGS);
     smart_collapsableBar('tags', _AM_SOBJECT_TAGS, _AM_SOBJECT_TAGS_INFO);
     include_once SMARTOBJECT_ROOT_PATH . "class/smartobjecttable.php";
     $objectTable = new SmartObjectTable($smartobject_tag_handler, false, array('delete'));
     $objectTable->addColumn(new SmartObjectColumn('name'));
     $objectTable->addColumn(new SmartObjectColumn('language'));
 function &doStoreFromDefaultForm(&$smartObj, $objectid, $created_success_msg, $modified_success_msg, $redirect_page = false, $debug = false)
 {
     global $smart_previous_page;
     $this->postDataToObject($smartObj);
     if ($smartObj->isNew()) {
         $redirect_msg = $created_success_msg;
     } else {
         $redirect_msg = $modified_success_msg;
     }
     // Check if there were uploaded files
     if (isset($_POST['smart_upload_image']) || isset($_POST['smart_upload_file'])) {
         include_once XOOPS_ROOT_PATH . "/modules/smartobject/class/smartuploader.php";
         $uploaderObj = new SmartUploader($smartObj->getImageDir(true), $this->handler->_allowedMimeTypes, $this->handler->_maxFileSize, $this->handler->_maxWidth, $this->handler->_maxHeight);
         foreach ($_FILES as $name => $file_array) {
             if (isset($file_array['name']) && $file_array['name'] != "" && in_array(str_replace('upload_', '', $name), array_keys($smartObj->vars))) {
                 if ($uploaderObj->fetchMedia($name)) {
                     $uploaderObj->setTargetFileName(time() . "_" . $uploaderObj->getMediaName());
                     if ($uploaderObj->upload()) {
                         // Find the related field in the SmartObject
                         $related_field = str_replace('upload_', '', $name);
                         $uploadedArray[] = $related_field;
                         //si c'est un fichier Rich
                         if ($smartObj->vars[$related_field]['data_type'] == XOBJ_DTYPE_FILE) {
                             $object_fileurl = $smartObj->getUploadDir();
                             $fileObj = $smartObj->getFileObj($related_field);
                             $fileObj->setVar('url', $object_fileurl . $uploaderObj->getSavedFileName());
                             $fileObj->setVar('caption', $_POST['caption_' . $related_field]);
                             $fileObj->setVar('description', $_POST['desc_' . $related_field]);
                             $smartObj->storeFileObj($fileObj);
                             //todo : catch errors
                             $smartObj->setVar($related_field, $fileObj->getVar('fileid'));
                         } else {
                             $old_file = $smartObj->getUploadDir(true) . $smartObj->getVar($related_field);
                             unlink($old_file);
                             $smartObj->setVar($related_field, $uploaderObj->getSavedFileName());
                         }
                     } else {
                         $smartObj->setErrors($uploaderObj->getErrors(false));
                     }
                 } else {
                     $smartObj->setErrors($uploaderObj->getErrors(false));
                 }
             }
         }
     }
     if ($debug) {
         $storeResult = $this->handler->insertD($smartObj);
     } else {
         $storeResult = $this->handler->insert($smartObj);
     }
     if ($storeResult) {
         if ($this->handler->getPermissions()) {
             $smartpermissions_handler = new SmartobjectPermissionHandler($this->handler);
             $smartpermissions_handler->storeAllPermissionsForId($smartObj->id());
         }
     }
     if ($redirect_page === null) {
         return $smartObj;
     } else {
         if (!$storeResult) {
             redirect_header($smart_previous_page, 3, _CO_SOBJECT_SAVE_ERROR . $smartObj->getHtmlErrors());
         }
         $redirect_page = $redirect_page ? $redirect_page : smart_get_page_before_form();
         redirect_header($redirect_page, 2, $redirect_msg);
     }
 }