예제 #1
0
 public function execute()
 {
     $listing_type_sid = isset($_REQUEST['listing_type_sid']) ? $_REQUEST['listing_type_sid'] : null;
     if (!is_null($listing_type_sid)) {
         $pages = SJB_PostingPagesManager::getPagesByListingTypeSID($listing_type_sid);
         $pages_list = array();
         if (count($pages) > 1) {
             $pages_list[] = array('id' => 'no', 'caption' => 'Don’t add to a page');
             foreach ($pages as $page) {
                 $pages_list[] = array('id' => $page['sid'], 'caption' => $page['page_name']);
             }
         }
         $listing_field = new SJB_ListingField($_REQUEST, $listing_type_sid, $pages_list);
         /**
          * add infilll instructions field
          */
         //	$listing_field->addInfillInstructions(SJB_Request::getVar('instructions'));
         $add_listing_field_form = new SJB_Form($listing_field);
         $form_is_submitted = isset($_REQUEST['action']) && $_REQUEST['action'] == 'add';
         $errors = null;
         if ($form_is_submitted && $add_listing_field_form->isDataValid($errors)) {
             $page = array();
             if (count($pages) == 1) {
                 $pages = array_pop($pages);
                 $page = array(array('sid' => $pages['sid'], 'listing_type_sid' => $listing_type_sid));
             } else {
                 $posting_page = $listing_field->getProperty('posting_page');
                 $listing_field->deleteProperty('posting_page');
                 if ($posting_page->value != "no") {
                     $page = array(array('sid' => $posting_page->value, 'listing_type_sid' => $listing_type_sid));
                 }
             }
             SJB_ListingFieldManager::saveListingField($listing_field, $page);
             $listing_sid = $listing_field->getSID();
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/attention-listing-type-field/?listing_sid={$listing_sid}");
         } else {
             $template_processor = SJB_System::getTemplateProcessor();
             $template_processor->assign("errors", $errors);
             $template_processor->assign("listing_type_sid", $listing_type_sid);
             $template_processor->assign("listing_type_info", SJB_ListingTypeManager::getListingTypeInfoBySID($listing_type_sid));
             $add_listing_field_form->registerTags($template_processor);
             $template_processor->assign("form_fields", $add_listing_field_form->getFormFieldsInfo());
             $template_processor->display("add_listing_type_field.tpl");
         }
     } else {
         echo 'The system cannot proceed as Listing Type SID is not set';
     }
 }