Example #1
0
 public static function getDetails($listing_type_sid, $pageID = 0)
 {
     $system_details = array(array('id' => 'featured', 'caption' => 'Featured', 'type' => 'boolean', 'length' => '20', 'is_required' => false, 'is_system' => true, 'order' => null), array('id' => 'priority', 'caption' => 'Priority Listing', 'type' => 'boolean', 'length' => '20', 'is_required' => false, 'is_system' => true, 'order' => null));
     $listing_field_manager = new SJB_ListingFieldManager();
     $common_details = $listing_field_manager->getCommonListingFieldsInfo($pageID);
     $extra_details = $listing_field_manager->getListingFieldsInfoByListingType($listing_type_sid, $pageID);
     $details = array_merge($common_details, $extra_details);
     foreach ($details as $key => $detail) {
         $details[$key]['is_system'] = true;
         if ($detail['type'] == 'complex' || $detail['id'] == 'ApplicationSettings') {
             $details[$key]['is_system'] = false;
         } elseif ($detail['id'] == 'access_type') {
             $details[$key]['is_system'] = true;
             $details[$key]['list_values'] = array(array('id' => 'everyone', 'caption' => 'Everyone'), array('id' => 'no_one', 'caption' => 'No one'), array('id' => 'only', 'caption' => 'Only selected employers'), array('id' => 'except', 'caption' => 'Everyone except selected employers'));
         }
     }
     $details = array_merge($system_details, $details);
     $isPageLast = SJB_PostingPagesManager::isLastPageByID($pageID, $listing_type_sid);
     if ($isPageLast) {
         $status_details = array(array('id' => 'status', 'caption' => 'Approve Status', 'type' => 'list', 'list_values' => array(array('id' => 'pending', 'caption' => 'Pending'), array('id' => 'approved', 'caption' => 'Approved'), array('id' => 'rejected', 'caption' => 'Rejected')), 'is_required' => false, 'is_system' => true, 'order' => 1000000));
         $details = array_merge($details, $status_details);
         $rejectReasonDetails = array(array('id' => 'reject_reason', 'caption' => 'Reject Reason', 'type' => 'text', 'is_required' => false, 'is_system' => true, 'order' => 1000000));
         $details = array_merge($details, $rejectReasonDetails);
         if (SJB_PluginManager::isPluginActive('CaptchaPlugin') && SJB_System::getSettingByName('postJobCaptcha') && strpos(SJB_System::getURI(), '/add-listing/') === 0) {
             $details_captcha = array(array('id' => 'captcha', 'caption' => 'Enter code from image', 'type' => 'captcha', 'length' => '20', 'is_required' => true, 'is_system' => true, 'order' => 10000000));
             $details = array_merge($details, $details_captcha);
         }
     }
     return $details;
 }
Example #2
0
 public static function getCommonFields()
 {
     $listing_field_manager = new SJB_ListingFieldManager();
     $common_details = $listing_field_manager->getCommonListingFieldsInfo();
     foreach ($common_details as $key => $details) {
         if ($details['type'] == 'video' || $details['id'] == 'Title') {
             unset($common_details[$key]);
         } elseif ($details['type'] == 'location') {
             // Remove 'Search Within' field
             foreach ($details['fields'] as $fieldKey => $field) {
                 if ($field['id'] == 'ZipCode') {
                     unset($common_details[$key]['fields'][$fieldKey]);
                 }
             }
         } else {
             $common_details[$key]['is_required'] = 0;
         }
         if (empty($details['order'])) {
             $maxOrder = 0;
             foreach ($common_details as $val) {
                 if ($val['order'] > $maxOrder) {
                     $maxOrder = $val['order'];
                 }
             }
             $maxOrder += 0.5;
             $common_details[$key]['order'] = $maxOrder;
         }
     }
     return $common_details;
 }
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $listing_field_sid = SJB_Request::getVar('listing_sid', null);
     $errors = array();
     $listingTypes = array();
     if (!is_null($listing_field_sid)) {
         $listing_field = SJB_ListingFieldManager::getFieldInfoBySID($listing_field_sid);
         $listing_type_id = 'Job/Resume';
         if ($listing_field['listing_type_sid'] != 0) {
             $listing_type_id = SJB_ListingTypeManager::getListingTypeIDBySID($listing_field['listing_type_sid']);
             array_push($listingTypes, SJB_ListingTypeManager::getListingTypeInfoBySID(SJB_Array::get($listing_field, 'listing_type_sid')));
         } else {
             $listingTypes = SJB_ListingTypeManager::getAllListingTypesInfo();
         }
         $tp->assign('listingTypesInfo', $listingTypes);
         $tp->assign('listing_type_id', $listing_type_id);
         $tp->assign('listing_sid', $listing_field_sid);
         $tp->assign('listing_field_info', $listing_field);
         $tp->assign('listing_type_sid', $listing_field['listing_type_sid']);
     } else {
         $errors[] = 'The system cannot proceed as Listing SID is not set';
     }
     $tp->assign('errors', $errors);
     $tp->display('attention_listing_type_field.tpl');
 }
Example #4
0
 public function execute()
 {
     $listing_field = new SJB_ListingField($_REQUEST);
     /**
      * add infilll instructions field
      */
     //$listing_field->addInfillInstructions(SJB_Request::getVar('instructions'));
     $template_processor = SJB_System::getTemplateProcessor();
     $add_listing_field_form = new SJB_Form($listing_field);
     $add_listing_field_form->registerTags($template_processor);
     $form_is_submitted = isset($_REQUEST['action']) && $_REQUEST['action'] == 'add';
     $errors = null;
     $pages = SJB_PostingPagesManager::getFirstPageEachListingType();
     if ($form_is_submitted && $add_listing_field_form->isDataValid($errors)) {
         $pages = SJB_PostingPagesManager::getFirstPageEachListingType();
         SJB_ListingFieldManager::saveListingField($listing_field, $pages);
         $listing_sid = $listing_field->getSID();
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/attention-listing-type-field/?listing_sid={$listing_sid}");
     } else {
         $pagesNum = SJB_PostingPagesManager::getNumAllPages();
         $pageCount = 0;
         foreach ($pagesNum as $val) {
             if ($val['num'] > 1) {
                 $pageCount = 1;
             }
         }
         $template_processor->assign("pageCount", $pageCount);
         $template_processor->assign("errors", $errors);
         $add_listing_field_form->registerTags($template_processor);
         $template_processor->assign("form_fields", $add_listing_field_form->getFormFieldsInfo());
         $template_processor->display("add_listing_field.tpl");
     }
 }
Example #5
0
 public static function getListingFieldIDBySID($listing_field_sid)
 {
     $listing_field_info = SJB_ListingFieldManager::getFieldInfoBySID($listing_field_sid);
     if (empty($listing_field_info)) {
         return null;
     }
     return $listing_field_info['id'];
 }
Example #6
0
 public function execute()
 {
     $edit_list_controller = new SJB_ListingComplexEditListController($_REQUEST);
     $template_processor = SJB_System::getTemplateProcessor();
     if (!$edit_list_controller->isvalidFieldSID()) {
         echo 'Invalid Listing Field SID is specified';
     } else {
         switch ($edit_list_controller->getAction()) {
             case 'add':
                 if ($edit_list_controller->isValidValueSubmitted()) {
                     if (!$edit_list_controller->saveItem()) {
                         $template_processor->assign("error", 'LIST_VALUE_ALREADY_EXISTS');
                     }
                 } else {
                     $template_processor->assign("error", 'LIST_VALUE_IS_EMPTY');
                 }
                 break;
             case 'add_multiple':
                 if ($edit_list_controller->isValidMultiValueSubmitted()) {
                     if (!$edit_list_controller->saveItem(true)) {
                         $template_processor->assign("error", 'LIST_VALUE_ALREADY_EXISTS');
                     }
                 } else {
                     $template_processor->assign("error", 'LIST_VALUE_IS_EMPTY');
                 }
                 break;
             case 'delete':
                 //$edit_list_controller->deleteItem(); break;
                 $item_sid = SJB_Request::getVar('item_sid');
                 if (is_array($item_sid)) {
                     foreach ($item_sid as $sid => $val) {
                         $edit_list_controller->deleteItem($sid);
                     }
                 } else {
                     $edit_list_controller->deleteItem();
                 }
                 break;
             case 'move_up':
                 $edit_list_controller->moveUpItem();
                 break;
             case 'move_down':
                 $edit_list_controller->moveDownItem();
                 break;
             case 'save_order':
                 $item_order = SJB_Request::getVar('item_order');
                 $edit_list_controller->saveNewItemsOrder($item_order);
                 break;
         }
         $display_list_controller = new SJB_ListingComplexDisplayListController($_REQUEST);
         $field_info = $display_list_controller->field_info;
         $parentFieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($field_info['field_sid']);
         $listing_type_info = SJB_ListingTypeManager::getListingTypeInfoBySID($parentFieldInfo['listing_type_sid']);
         $display_list_controller->field_info['type_info'] = $listing_type_info;
         $display_list_controller->field_info['parent_field'] = $parentFieldInfo;
         $display_list_controller->display("listing_complex_list_editing.tpl");
     }
 }
Example #7
0
 public function execute()
 {
     $template_processor = SJB_System::getTemplateProcessor();
     $listingTypeSID = isset($_REQUEST['sid']) ? $_REQUEST['sid'] : null;
     if (!is_null($listingTypeSID)) {
         $form_submitted = SJB_Request::getVar('action', '');
         $listing_type_info = SJB_ListingTypeManager::getListingTypeInfoBySID($listingTypeSID);
         $approveSettingChanged = $listing_type_info['waitApprove'] != SJB_Request::getVar('waitApprove');
         $listing_type_info = array_merge($listing_type_info, $_REQUEST);
         $listingType = new SJB_ListingType($listing_type_info);
         $listingType->setSID($listingTypeSID);
         $edit_form = new SJB_Form($listingType);
         $listingTypeEmailAlert = $listingType->getPropertyValue('email_alert');
         if (empty($listingTypeEmailAlert)) {
             $listingType->setPropertyValue('email_alert', 0);
         }
         $listingTypeEmailAlertForGuests = $listingType->getPropertyValue('guest_alert_email');
         if (empty($listingTypeEmailAlertForGuests)) {
             $listingType->setPropertyValue('guest_alert_email', 0);
         }
         $errors = array();
         if ($form_submitted && $edit_form->isDataValid($errors)) {
             SJB_Breadcrumbs::updateBreadcrumbsByListingTypeSID($listingTypeSID, $listingType->getPropertyValue('name'));
             SJB_PageManager::updatePagesByListingTypeSID($listingTypeSID, $listingType->getPropertyValue('name'));
             SJB_ListingTypeManager::saveListingType($listingType);
             if ($approveSettingChanged) {
                 SJB_BrowseDBManager::rebuildBrowses();
             }
             if ($form_submitted == 'save_info') {
                 SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/listing-types/');
             }
         }
         $template_processor->assign('errors', $errors);
         $template_processor->assign('listing_type_sid', $listingTypeSID);
         $listing_fields_info = SJB_ListingFieldManager::getListingFieldsInfoByListingType($listingTypeSID);
         $listing_fields = array();
         $listing_field_sids = array();
         foreach ($listing_fields_info as $listing_field_info) {
             if ($listing_field_info['type'] == 'logo') {
                 continue;
             }
             $listing_field = new SJB_ListingField($listing_field_info);
             $listing_field->setSID($listing_field_info['sid']);
             $listing_fields[] = $listing_field;
             $listing_field_sids[] = $listing_field_info['sid'];
         }
         $edit_form->registerTags($template_processor);
         $template_processor->assign("listing_type_info", $listing_type_info);
         $template_processor->assign("form_fields", $edit_form->getFormFieldsInfo());
         $template_processor->display("edit_listing_type.tpl");
         $form_collection = new SJB_FormCollection($listing_fields);
         $form_collection->registerTags($template_processor);
         $template_processor->assign("listing_field_sids", $listing_field_sids);
         $template_processor->display("listing_type_fields.tpl");
     }
 }
 public function execute()
 {
     $listing_field_sid = SJB_Request::getVar('sid', null);
     if (!is_null($listing_field_sid)) {
         $listing_field_info = SJB_ListingFieldManager::getFieldInfoBySID($listing_field_sid);
         SJB_ListingFieldManager::deleteListingFieldBySID($listing_field_sid);
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-listing-type/?sid=" . $listing_field_info['listing_type_sid']);
     }
     echo 'The system  cannot proceed as Listing Field SID is not set';
 }
Example #9
0
 public function execute()
 {
     $listing_field_sid = SJB_Request::getVar('sid', null);
     if (!is_null($listing_field_sid)) {
         $listingFieldID = SJB_ListingFieldManager::getListingFieldIDBySID($listing_field_sid);
         if ($listingFieldID != 'Location') {
             SJB_ListingFieldManager::deleteListingFieldBySID($listing_field_sid);
         }
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/listing-fields/");
     }
     echo 'The system  cannot proceed as Listing Field SID is not set';
 }
Example #10
0
 function getData($non_existed_values_flag, $values = array())
 {
     $listFieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('list');
     $multilistFieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('multilist');
     $fieldsInfo = array_merge($listFieldsInfo, $multilistFieldsInfo);
     foreach ($fieldsInfo as $key => $fieldInfo) {
         if (empty($fieldInfo['parent_sid'])) {
             $fieldsInfo[$fieldInfo['id']] = $fieldInfo;
         }
         unset($fieldsInfo[$key]);
     }
     $result = array();
     foreach ($this->properties_names as $key => $property_name) {
         if (in_array($property_name, array_keys($fieldsInfo)) && isset($values[$key])) {
             $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($fieldsInfo[$property_name]['sid']);
             if (!empty($fieldInfo['parent_sid']) && $fieldInfo['id'] == 'State') {
                 $fieldInfo['list_values'] = SJB_StatesManager::getStatesNamesByCountry(false, true);
             }
             switch ($fieldInfo['type']) {
                 case 'list':
                     foreach ($fieldInfo['list_values'] as $listValues) {
                         if ($listValues['caption'] == $values[$key]) {
                             $result[$property_name] = $listValues['id'];
                             break;
                         }
                     }
                     break;
                 case 'multilist':
                     $multilistValues = explode(',', $values[$key]);
                     $multilistDisplayValues = array();
                     foreach ($fieldInfo['list_values'] as $listValues) {
                         if (in_array($listValues['caption'], $multilistValues)) {
                             $multilistDisplayValues[] = $listValues['id'];
                         }
                     }
                     $result[$property_name] = implode(',', $multilistDisplayValues);
                     break;
             }
         } else {
             if (strpos($property_name, 'date') && strtotime($values[$key]) == false) {
                 if ($property_name == 'activation_date') {
                     $values[$key] = date('Y-m-d H:i:s');
                 } else {
                     $values[$key] = '';
                 }
             }
             $result[$property_name] = isset($values[$key]) ? $values[$key] : null;
         }
     }
     $result = $result + $this->_getTreeValues($values, $non_existed_values_flag);
     return $result;
 }
Example #11
0
 public function __call($name, $arguments)
 {
     $value = '';
     $aParams = explode('_', $name);
     $method = array_shift($aParams);
     if ('get' == $method) {
         $returnType = SJB_Array::get($arguments, 0);
         $fieldType = SJB_Array::get($arguments, 1);
         $listingFieldID = SJB_Array::get($arguments, 2);
         $value = null;
         switch ($returnType) {
             case 'array':
             case 'string':
             case 'int':
                 $type = '(' . $returnType . ')';
                 break;
             default:
                 $type = '(string)';
                 break;
         }
         $val = '$this->oProfile->' . implode('->', array_map('strtolower', $aParams));
         $exec = 'return (!empty(' . $val . ')) ? ' . $type . $val . ': \'\';';
         switch ($fieldType) {
             case 'tree':
                 $exec = 'return (!empty(' . $val . ')) ? ' . $type . $val . ': \'\';';
                 $value = eval($exec);
                 if (is_array($value)) {
                     if (isset($value[0])) {
                         $value = $value[0];
                     }
                 }
                 $value = $this->getTreeValues($value, $listingFieldID);
                 break;
             case 'array':
                 $listingFieldSID = SJB_ListingFieldManager::getListingFieldSIDByID($listingFieldID);
                 if (!empty($listingFieldSID)) {
                     $exec = 'return (!empty(' . $val . ')) ? ' . $val . ': \'\';';
                     $value = eval($exec);
                     $value = SJB_ListingFieldManager::getListItemSIDByValue($value, $listingFieldSID);
                     $value = eval('return ' . $type . ' $value;');
                 }
                 break;
             default:
                 $value = eval($exec);
                 break;
         }
     }
     return $value;
 }
 public function execute()
 {
     $listing_field_sid = SJB_Request::getVar('sid', null);
     if (!is_null($listing_field_sid)) {
         $listing_field_info = SJB_ListingFieldManager::getFieldInfoBySID($listing_field_sid);
         if ($_REQUEST['action'] == 'move_up') {
             SJB_ListingFieldManager::moveUpFieldBySID($listing_field_sid);
         } elseif ($_REQUEST['action'] == 'move_down') {
             SJB_ListingFieldManager::moveDownFieldBySID($listing_field_sid);
         }
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-listing-type/?sid=" . $listing_field_info['listing_type_sid']);
     } else {
         echo 'The system  cannot proceed as Listing Field SID is not set';
     }
 }
 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';
     }
 }
Example #14
0
 function getPropertyVariablesToAssign()
 {
     $propertyVariables = parent::getPropertyVariablesToAssign();
     $profileFieldAsDv = SJB_Array::get($propertyVariables, 'profile_field_as_dv');
     if ($profileFieldAsDv && !isset($this->property_info['parentID'])) {
         $fieldValue = SJB_UserProfileFieldManager::getListItemValueBySID($profileFieldAsDv);
         if ($fieldValue) {
             $listingListItemSID = SJB_ListingFieldManager::getListItemSIDByValue($fieldValue, SJB_Array::get($this->property_info, 'sid'));
             $propertyVariables['profile_field_as_dv'] = $listingListItemSID;
         }
     }
     $defaultValue = SJB_Array::get($propertyVariables, 'default_value');
     if ($defaultValue == 'default_country') {
         $propertyVariables['default_value'] = SJB_Settings::getSettingByName('default_country');
     }
     $propertyVariables['hidden'] = $this->property_info['hidden'];
     $newPropertyVariables = array('list_values' => $this->list_values, 'caption' => $this->property_info['caption'], 'sort_by_alphabet' => $this->property_info['sort_by_alphabet']);
     return array_merge($newPropertyVariables, $propertyVariables);
 }
Example #15
0
 /**
  * Check 'sort_by_alphabet' flag for field, and sort values if needed
  * 
  * @param $values
  */
 private function getSortedValues($values)
 {
     $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($this->field['sid']);
     if (SJB_Array::get($fieldInfo, 'sort_by_alphabet') > 0) {
         $i18n = SJB_I18N::getInstance();
         // translate captions to current language
         $translates = array();
         foreach ($values as $value) {
             $translates[] = $i18n->gettext('', $value);
         }
         // we need to recover keys for $values after array_multisort
         $keys = array_keys($values);
         // sort $keys and $values order by $translates sort
         array_multisort($translates, SORT_STRING, $keys, $values);
         // restore keys for $values
         $values = array_combine($keys, $values);
     }
     return $values;
 }
Example #16
0
 public function execute()
 {
     $fieldsHolderID = SJB_Request::getVar('fieldsHolderID', null);
     if (!$fieldsHolderID) {
         throw new Exception('FieldsHolderID is not specified');
     }
     $formBuilder = SJB_FormBuilderManager::getFormBuilder();
     $formBuilder->prepareFieldsHolder($fieldsHolderID);
     $tp = $formBuilder->getChargedTemplateProcessor();
     $activeFields = $formBuilder->getActiveFields();
     $locationKeys = array();
     $sortKeys = array();
     foreach ($activeFields as $key => $activeField) {
         if (!empty($activeField['parent_sid'])) {
             $parentInfo = SJB_ListingFieldManager::getFieldInfoBySID($activeField['parent_sid']);
             if ($formBuilder->getBuilderType() == 'search') {
                 $activeFields[$key] = $parentInfo;
                 $activeFields[$key]['fields'] = array();
                 $activeFields[$key]['fields'][$activeField['sid']] = $activeField;
                 $activeFields[$key]['fields'][$activeField['sid']]['parentID'] = $parentInfo['id'];
                 $activeFields[$key]['b_order'] = $activeField['b_order'];
             }
         } elseif ($activeField['type'] == 'location') {
             $activeFields[$key]['fields'] = array();
             if ($formBuilder->getBuilderType() == 'search') {
                 $activeFields[$key]['fields'][$activeField['sid']] = $activeField;
             }
         }
     }
     foreach ($activeFields as $key => $activeField) {
         $sortKeys[$key] = $activeField['b_order'];
     }
     array_multisort($sortKeys, SORT_ASC, SORT_REGULAR, $activeFields);
     $tp->assign('fields_active', $activeFields);
     $tp->assign('fieldsHolderID', $fieldsHolderID);
     $tp->assign('holderType', SJB_Request::getVar('holderType', 'wide'));
     $tp->assign('holderTitle', SJB_Request::getVar('holderTitle', ''));
     $tp->assign('listingTypeID', $formBuilder->getListingTypeID());
     $template = $formBuilder->getFormFieldSetTemplate();
     $tp->display('../builder/' . $template);
 }
Example #17
0
 public function execute()
 {
     $template_processor = SJB_System::getTemplateProcessor();
     $errors = array();
     $ListingFieldListItemManager = new SJB_ListingFieldListItemManager();
     if (!isset($_REQUEST['field_sid'], $_REQUEST['item_sid'])) {
         echo 'The system cannot proceed as some key paramaters are missed';
     } else {
         if (is_null($list_item = $ListingFieldListItemManager->getListItemBySID($_REQUEST['item_sid']))) {
             echo 'Wrong parameters are specified';
         } else {
             $list_item_info['value'] = $list_item->getValue();
             $template_processor->assign("list_item_info", $list_item_info);
             $form_submitted = SJB_Request::getVar('action', '');
             if ($form_submitted) {
                 if (empty($_REQUEST['list_item_value'])) {
                     $errors = array('Value' => 'EMPTY_VALUE');
                 } else {
                     $list_item->setValue(trim($_REQUEST['list_item_value']));
                     $ListingFieldListItemManager->saveListItem($list_item);
                     if ($form_submitted == 'save') {
                         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-listing-field/edit-list/?field_sid=" . $_REQUEST['field_sid']);
                     }
                 }
             }
             $listing_field = SJB_ListingFieldManager::getFieldBySID($_REQUEST['field_sid']);
             $listing_field_info = SJB_ListingFieldManager::getFieldInfoBySID($_REQUEST['field_sid']);
             $template_processor->assign("listing_field_info", $listing_field_info);
             $template_processor->assign("listing_type_sid", $listing_field->getListingTypeSID());
             $template_processor->assign("field_sid", $_REQUEST['field_sid']);
             $template_processor->assign("item_sid", $_REQUEST['item_sid']);
             $template_processor->assign("list_item_value", htmlspecialchars($list_item->getValue()));
             $template_processor->assign("errors", $errors);
             $template_processor->assign("listing_type_info", SJB_ListingTypeManager::getListingTypeInfoBySID($listing_field->getListingTypeSID()));
             $template_processor->display("listing_list_item_editing.tpl");
         }
     }
 }
Example #18
0
 public function execute()
 {
     $template_processor = SJB_System::getTemplateProcessor();
     if (isset($_REQUEST['action'], $_REQUEST['field_sid'])) {
         if ($_REQUEST['action'] == 'move_up') {
             SJB_ListingFieldManager::moveUpFieldBySID($_REQUEST['field_sid']);
         } elseif ($_REQUEST['action'] == 'move_down') {
             SJB_ListingFieldManager::moveDownFieldBySID($_REQUEST['field_sid']);
         }
     }
     $listing_fields_info = SJB_ListingFieldManager::getCommonListingFieldsInfo();
     $listing_fields = array();
     $listing_field_sids = array();
     foreach ($listing_fields_info as $listing_field_info) {
         $listing_field = new SJB_ListingField($listing_field_info);
         $listing_field->setSID($listing_field_info['sid']);
         $listing_fields[] = $listing_field;
         $listing_field_sids[] = $listing_field_info['sid'];
     }
     $form_collection = new SJB_FormCollection($listing_fields);
     $form_collection->registerTags($template_processor);
     $template_processor->assign("listing_field_sids", $listing_field_sids);
     $template_processor->display("listing_fields.tpl");
 }
Example #19
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $action = SJB_Request::getVar('action', 'list');
     $fieldSID = SJB_Request::getVar('field_sid', false);
     $errors = null;
     if ($fieldSID) {
         $tp->assign('field_sid', $fieldSID);
         $field_info = SJB_ListingFieldManager::getFieldInfoBySID($fieldSID);
         $listing_type_info = SJB_ListingTypeManager::getListingTypeInfoBySID($field_info['listing_type_sid']);
         $tp->assign("field_info", $field_info);
         $tp->assign("type_info", $listing_type_info);
         $tp->assign("type_sid", isset($listing_type_info['sid']) ? $listing_type_info['sid'] : false);
         switch ($action) {
             case 'add':
                 $form_is_submitted = SJB_Request::getVar('submit_form', false);
                 $sid = SJB_Request::getVar('sid', false);
                 $request = $_REQUEST;
                 if ($sid) {
                     $listing_field_info = SJB_ListingFieldDBManager::getListingComplexFieldInfoBySID($sid);
                     $request = array_merge($listing_field_info, $request);
                 }
                 $listing_field = new SJB_ListingComplexField($request);
                 if ($sid) {
                     $listing_field->setSID($sid);
                 }
                 $add_listing_field_form = new SJB_Form($listing_field);
                 $add_listing_field_form->registerTags($tp);
                 if ($form_is_submitted && $add_listing_field_form->isDataValid($errors)) {
                     $listing_field->addProperty(array('id' => 'field_sid', 'value' => $fieldSID, 'type' => 'id', 'is_required' => true, 'is_system' => true));
                     SJB_ListingComplexFieldManager::saveListingField($listing_field);
                 }
                 if (SJB_Request::getVar('apply') == 'no' && empty($errors)) {
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/edit-listing-field/edit-fields/?field_sid=" . $fieldSID);
                 }
                 $add_listing_field_form->registerTags($tp);
                 $tp->assign("sid", $listing_field->getSID());
                 $tp->assign("field_type", $listing_field->getFieldType());
                 $tp->assign("form_fields", $this->getFormFieldsInfo($add_listing_field_form));
                 $tp->assign("errors", $errors);
                 $tp->assign("action", $action);
                 $tp->display("edit_complex_field.tpl");
                 break;
             case 'edit':
                 $listing_field_sid = SJB_Request::getVar('sid', 0);
                 $listing_field_info = SJB_ListingFieldDBManager::getListingComplexFieldInfoBySID($listing_field_sid);
                 $listing_field = new SJB_ListingComplexField($listing_field_info);
                 $add_listing_field_form = new SJB_Form($listing_field);
                 $add_listing_field_form->registerTags($tp);
                 $add_listing_field_form->registerTags($tp);
                 $tp->assign("field_type", $listing_field->getFieldType());
                 $tp->assign("sid", $listing_field_sid);
                 $tp->assign("form_fields", $this->getFormFieldsInfo($add_listing_field_form));
                 $tp->assign("errors", $errors);
                 $tp->display("edit_complex_field.tpl");
                 break;
             case 'move_up':
                 $fieldSID = SJB_ListingComplexFieldManager::moveUpFieldBySID($fieldSID);
                 SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-listing-field/edit-fields/?field_sid=" . $fieldSID);
                 break;
             case 'move_down':
                 $fieldSID = SJB_ListingComplexFieldManager::moveDownFieldBySID($fieldSID);
                 SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-listing-field/edit-fields/?field_sid=" . $fieldSID);
                 break;
             case 'delete':
                 $listing_field_sid = SJB_Request::getVar('sid', 0);
                 SJB_ListingComplexFieldManager::deleteListingFieldBySID($listing_field_sid);
                 $action = 'list';
                 break;
         }
         if ($action == 'list') {
             $listing_fields_info = SJB_ListingComplexFieldManager::getListingFieldsInfoByParentSID($fieldSID);
             $listing_fields = array();
             $listing_field_sids = array();
             foreach ($listing_fields_info as $listing_field_info) {
                 $listing_field = new SJB_ListingField($listing_field_info);
                 $listing_field->setSID($listing_field_info['sid']);
                 $listing_fields[] = $listing_field;
                 $listing_field_sids[] = $listing_field_info['sid'];
             }
             $form_collection = new SJB_FormCollection($listing_fields);
             $form_collection->registerTags($tp);
             $tp->assign("listing_field_sids", $listing_field_sids);
             $tp->display("listing_complex_fields.tpl");
         }
     }
 }
Example #20
0
 public static function getPropertyByParentID($parentID, $fieldID, $listing_type_sid = 0)
 {
     $parentSID = SJB_ListingFieldManager::getListingFieldSIDByID($parentID);
     $fields = SJB_ListingFieldManager::getListingFieldsInfoByParentSID($parentSID);
     $fieldSID = null;
     foreach ($fields as $field) {
         if ($field['id'] == $fieldID) {
             $fieldSID = $field['sid'];
         }
     }
     if ($fieldSID) {
         $property_info = SJB_ListingFieldDBManager::getListingFieldInfoBySID($fieldSID);
         $property_info['id'] = $parentID . "_" . $property_info['id'];
         $fieldID = $property_info['id'];
         return new SJB_ObjectProperty($property_info);
     }
     return null;
 }
Example #21
0
 /**
  * @param array $menu
  * @param $item
  * @param $menuKey
  * @param $itemKey
  */
 private function removeSimilarHighlight(array &$menu, $item, $menuKey, $itemKey)
 {
     if (in_array(SJB_System::getSystemSettings('SITE_URL') . $this->pageID, $item['highlight'])) {
         $highlight = '';
         $highlightPrefix = '/manage-';
         $userSid = SJB_Request::getVar('user_sid', 0);
         switch ($menuKey) {
             case 'Listing Configuration':
                 $fieldSID = SJB_Request::getVar('field_sid', false);
                 if ($fieldSID) {
                     $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($fieldSID);
                     //remove unwanted highlights
                     if ($fieldInfo['listing_type_sid'] == 0 && $item['title'] == 'Listing Types' || $fieldInfo['listing_type_sid'] != 0 && $item['title'] == 'Common Fields') {
                         $highlight = $this->pageID;
                     }
                 }
                 break;
             case 'Listing Management':
                 if (preg_match('/manage-resume|job|[a-zA-Z0-9]+-listings/', $item['reference']) && !preg_match('/import|export|flagged-listings/', $item['reference'])) {
                     if (!($listingTypeId = SJB_Request::getVar('listing_type_id', null))) {
                         $listingId = SJB_Request::getVar('listing_id', null);
                         $listingInfo = SJB_ListingManager::getListingInfoBySID($listingId);
                         $listingTypeId = SJB_ListingTypeManager::getListingTypeIDBySID($listingInfo['listing_type_sid']);
                     }
                     $highlight = strtolower($listingTypeId);
                 }
                 break;
             case 'Users':
                 $highlightPrefix = '/manage-users/';
                 if ($userSid) {
                     $userGroupSid = SJB_UserManager::getUserGroupByUserSid($userSid);
                     $userGroupInfo = SJB_UserGroupManager::getUserGroupInfoBySID($userGroupSid);
                     if (preg_match($highlightPrefix, $item['reference'])) {
                         $highlight = strtolower($userGroupInfo['id']);
                     }
                 } else {
                     if ($role = SJB_Request::getVar('role', null)) {
                         $type = SJB_Request::getVar('type', null);
                         // for user permissions
                         if ($type == 'user') {
                             $role = SJB_UserManager::getUserGroupByUserSid($role);
                             $userGroupInfo = SJB_UserGroupManager::getUserGroupInfoBySID($role);
                             $highlight = strtolower($userGroupInfo['id']);
                         } else {
                             if (in_array($type, array('group', 'guest'))) {
                                 $highlightPrefix = 'user-';
                                 $highlight = 'group';
                             }
                         }
                     } else {
                         //retrieve user group from uri
                         if (preg_match('|./(\\w*)/?|u', urldecode(SJB_Navigator::getURI()), $userGroupHub)) {
                             $highlight = array_pop($userGroupHub);
                         }
                         //remove unwanted highlights
                         if ($this->pageID == '/email-log/') {
                             $highlight = $this->pageID;
                         }
                     }
                 }
                 break;
             case 'System Configuration':
                 //remove unwanted highlights
                 if ($this->pageID == '/email-log/' && $userSid) {
                     $highlight = $this->pageID;
                 }
                 break;
             default:
         }
         if (!$highlight || strpos($item['reference'], $highlightPrefix . $highlight) !== false) {
             if (!isset($this->handledHighlightGroups[$highlightPrefix])) {
                 $this->handledHighlightGroups[$highlightPrefix] = true;
                 $handledHighlightGroups[$highlightPrefix] = true;
                 $menu[$menuKey][$itemKey]['active'] = true;
                 $menu[$menuKey]['active'] = true;
             }
         }
     }
 }
Example #22
0
 function _getWhereCommonStatement($criteria)
 {
     $where_common_block = 'AND (0 ';
     foreach ($criteria as $property_criteria) {
         $where_AND_block = '';
         foreach ($property_criteria as $criterion) {
             if ($criterion->isValid() && SJB_ListingFieldManager::getListingFieldSIDByID($criterion->property_name)) {
                 $sql = $criterion->getSQL();
                 if ($sql !== null) {
                     $where_AND_block .= 'AND ' . $sql . ' ';
                 }
             }
         }
         if (!empty($where_AND_block)) {
             $where_common_block .= sprintf('OR(1 %s) ', $where_AND_block);
             $this->valid_criterion_number++;
         }
     }
     if ($this->valid_criterion_number == 0) {
         $where_common_block = '';
     } else {
         $where_common_block .= ') ';
     }
     return $where_common_block;
 }
Example #23
0
 public function execute()
 {
     $field_sid = SJB_Request::getVar('field_sid', null);
     $field_info = SJB_ListingComplexFieldManager::getFieldInfoBySID($field_sid);
     $node_sid = SJB_Request::getVar('node_sid', 0);
     $action = SJB_Request::getVar('action');
     if (empty($field_info)) {
         $errors['INVALID_FIELD_SID'] = 1;
     } else {
         if ($action == 'add') {
             $tree_item_value = $_REQUEST['tree_item_value'];
             $order = $_REQUEST['order'];
             if ($tree_item_value == '') {
                 $field_errors['Value'] = 'EMPTY_VALUE';
             } else {
                 if ($order == 'begin') {
                     SJB_ListingComplexFieldManager::addTreeItemToBeginByParentSID($field_sid, $node_sid, $tree_item_value);
                 } elseif ($order == 'end') {
                     SJB_ListingComplexFieldManager::addTreeItemToEndByParentSID($field_sid, $node_sid, $tree_item_value);
                 } elseif ($order == 'after') {
                     $after_tree_item_sid = $_REQUEST['after_tree_item_sid'];
                     SJB_ListingComplexFieldManager::addTreeItemAfterByParentSID($field_sid, $node_sid, $tree_item_value, $after_tree_item_sid);
                 }
             }
         } elseif ($action == 'save') {
             $tree_item_value = $_REQUEST['tree_item_value'];
             if (empty($tree_item_value)) {
                 $field_errors['Value'] = 'EMPTY_VALUE';
             } else {
                 SJB_ListingComplexFieldManager::updateTreeItemBySID($node_sid, $tree_item_value);
                 $order = isset($_REQUEST['order']) ? $_REQUEST['order'] : null;
                 if ($order == 'begin') {
                     SJB_ListingComplexFieldManager::moveTreeItemToBeginBySID($node_sid);
                 } elseif ($order == 'end') {
                     SJB_ListingComplexFieldManager::moveTreeItemToEndBySID($node_sid);
                 } elseif ($order == 'after') {
                     $after_tree_item_sid = $_REQUEST['after_tree_item_sid'];
                     SJB_ListingComplexFieldManager::moveTreeItemAfterBySID($node_sid, $after_tree_item_sid);
                 }
             }
         } elseif ($action == 'delete') {
             $item_sid = SJB_Request::getVar('item_sid');
             if (is_array($item_sid)) {
                 foreach ($item_sid as $sid => $val) {
                     SJB_ListingComplexFieldManager::deleteTreeItemBySID($sid);
                 }
             } else {
                 SJB_ListingComplexFieldManager::deleteTreeItemBySID($item_sid);
             }
         } elseif ($action == 'move_up') {
             $item_sid = SJB_Request::getVar('item_sid');
             SJB_ListingComplexFieldManager::moveUpTreeItem($item_sid);
         } elseif ($action == 'move_down') {
             $item_sid = SJB_Request::getVar('item_sid');
             SJB_ListingComplexFieldManager::moveDownTreeItem($item_sid);
         } elseif ($action == 'save_order') {
             $item_order = SJB_Request::getVar('item_order');
             SJB_ListingComplexFieldManager::saveNewTreeItemsOrder($item_order);
         }
         $tree_items = SJB_ListingComplexFieldManager::getTreeValuesByParentSID($field_sid, $node_sid);
         $parent_sid = SJB_ListingComplexFieldManager::getTreeParentSID($node_sid);
         $tree_parent_items = SJB_ListingComplexFieldManager::getTreeValuesByParentSID($field_sid, $parent_sid);
     }
     $tp = SJB_System::getTemplateProcessor();
     $listing_field = SJB_ListingComplexFieldManager::getFieldInfoBySID($field_sid);
     $listing_field_info = SJB_ListingFieldManager::getFieldInfoBySID($listing_field['field_sid']);
     $tp->assign("field_sid", $field_sid);
     $tp->assign("listing_field_info", $listing_field_info);
     $tp->assign("listing_type_sid", $listing_field_info['listing_type_sid']);
     $tp->assign("listing_type_info", SJB_ListingTypeManager::getListingTypeInfoBySID($listing_field_info['listing_type_sid']));
     $tp->assign("node_sid", $node_sid);
     $tp->assign("field_info", $field_info);
     $tp->assign("tree_parent_items", $tree_parent_items);
     $tp->assign("tree_items", $tree_items);
     $node_info = SJB_ListingComplexFieldManager::getTreeItemInfoBySID($node_sid);
     $node_path = SJB_ListingComplexFieldManager::getTreeNodePath($node_sid);
     $node_path[0] = array('caption' => 'Root', 'sid' => 0);
     $node_info['node_path'] = $node_path;
     $tp->assign("node_info", $node_info);
     $current_level = isset($node_info['level']) ? $node_info['level'] : 0;
     $tp->assign("current_level", $current_level);
     $tp->assign("complex", 1);
     $tp->assign("errors", isset($errors) ? $errors : null);
     $tp->assign("field_errors", isset($field_errors) ? $field_errors : null);
     $tp->display("edit_tree.tpl");
 }
Example #24
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     if (isset($_REQUEST['listing_type_id'])) {
         $listing_type_id = $_REQUEST['listing_type_id'];
         SJB_Session::setValue('listing_type_id', $listing_type_id);
     } elseif (isset($_REQUEST['restore'])) {
         $listing_type_id = SJB_Session::getValue('listing_type_id');
     } else {
         SJB_Session::setValue('listing_type_id', null);
     }
     $listing_type_sid = 0;
     if (!empty($listing_type_id)) {
         $listing_type_sid = SJB_ListingTypeManager::getListingTypeSIDByID($listing_type_id);
     }
     if (!isset($_REQUEST['listing_type']['equal']) && isset($listing_type_id)) {
         $_REQUEST['listing_type']['equal'] = $listing_type_id;
     }
     if (isset($_REQUEST['searchId'])) {
         $criteria_saver = new SJB_ListingCriteriaSaver($_REQUEST['searchId']);
         $_REQUEST = array_merge($_REQUEST, $criteria_saver->getCriteria());
     }
     $empty_listing = new SJB_Listing(array(), $listing_type_sid);
     $empty_listing->addIDProperty();
     $empty_listing->addActivationDateProperty();
     $empty_listing->addUsernameProperty();
     $empty_listing->addKeywordsProperty();
     $empty_listing->addPicturesProperty();
     $empty_listing->addListingTypeIDProperty();
     $empty_listing->addPostedWithinProperty();
     $search_form_builder = new SJB_SearchFormBuilder($empty_listing);
     $criteria = SJB_SearchFormBuilder::extractCriteriaFromRequestData($_REQUEST);
     $properties = $empty_listing->getProperties();
     foreach ($properties as $propertyName => $property) {
         if ($property->getType() == 'location') {
             $propertyInfo = $property->type->property_info;
             if ($propertyInfo['enable_search_by_radius'] == 1) {
                 if (!isset($criteria['system'][$propertyName])) {
                     $value = array('value' => '', 'radius' => '10');
                     $criterion = SJB_SearchCriterion::getCriterionByType('location');
                     $criterion->setProperty($property);
                     $criterion->setPropertyName($propertyName);
                     $criterion->setValue($value);
                     $criteria['system'][$propertyName][] = $criterion;
                 }
             }
         }
     }
     $search_form_builder->setCriteria($criteria);
     $search_form_builder->registerTags($tp);
     $form_fields = $search_form_builder->getFormFieldsInfo();
     $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
     $template = SJB_Request::getVar('form_template', 'search_form.tpl');
     $formBuilder = SJB_FormBuilderManager::getFormBuilder(SJB_FormBuilderManager::FORM_BUILDER_TYPE_SEARCH, $listing_type_id);
     $formBuilder->setChargedTemplateProcessor($tp);
     if ($template == 'quick_search.tpl') {
         $fieldSID = SJB_ListingFieldManager::getListingFieldSIDByID('Location');
         if ($fieldSID) {
             $fields = SJB_ListingFieldManager::getFieldInfoBySID($fieldSID);
             if (!empty($fields['fields'])) {
                 foreach ($fields['fields'] as $field) {
                     $form_fields[$fields['id'] . '_' . $field['id']] = $field;
                 }
             }
             $tp->assign('locationFields', array($fields));
         }
     }
     $tp->assign('form_fields', $form_fields);
     $tp->assign('METADATA', array('form_fields' => $metaDataProvider->getFormFieldsMetadata($form_fields)));
     $tp->display($template);
 }
Example #25
0
 public static function getListingsFromSimplyHired($params)
 {
     $listingTypeID = SJB_ListingTypeManager::getListingTypeIDBySID($params->listing_type_sid);
     if ($listingTypeID == 'Job' && $GLOBALS['uri'] == '/search-results-jobs/' || $GLOBALS['uri'] == '/ajax/') {
         $publisherID = SJB_Settings::getSettingByName('simplyHiredPublisherID');
         $limit = SJB_Settings::getSettingByName('countSimplyHiredListings');
         $ip = $_SERVER['REMOTE_ADDR'];
         $userAgent = urlencode(SJB_Request::getUserAgent());
         $start = $limit * ($params->listing_search_structure['current_page'] - 1) + 1;
         $stateIndexes = array('AL' => 'Alabama', 'AK' => 'Alaska', 'AZ' => 'Arizona', 'AR' => 'Arkansas', 'CA' => 'California', 'CO' => 'Colorado', 'CT' => 'Connecticut', 'DE' => 'Delaware', 'FL' => 'Florida', 'GA' => 'Georgia', 'HI' => 'Hawaii', 'ID' => 'Idaho', 'IL' => 'Illinois', 'IN' => 'Indiana', 'IA' => 'Iowa', 'KS' => 'Kansas', 'KY' => 'Kentucky', 'LA' => 'Louisiana', 'ME' => 'Maine', 'MD' => 'Maryland', 'MA' => 'Massachusetts', 'MI' => 'Michigan', 'MN' => 'Minnesota', 'MS' => 'Mississippi', 'MO' => 'Missouri', 'MT' => 'Montana', 'NE' => 'Nebraska', 'NV' => 'Nevada', 'NH' => 'New Hampshire', 'NJ' => 'New Jersey', 'NM' => 'New Mexico', 'NY' => 'New York', 'NC' => 'North Carolina', 'ND' => 'North Dakota', 'OH' => 'Ohio', 'OK' => 'Oklahoma', 'OR' => 'Oregon', 'PA' => 'Pennsylvania', 'RI' => 'Rhode Island', 'SC' => 'South Carolina', 'SD' => 'South Dakota', 'TN' => 'Tennessee', 'TX' => 'Texas', 'UT' => 'Utah', 'VT' => 'Vermont', 'VA' => 'Virginia', 'WA' => 'Washington', 'WV' => 'West Virginia', 'WI' => 'Wisconsin', 'WY' => 'Wyoming', 'DC' => 'District of Columbia', 'AS' => 'American Samoa', 'GU' => 'Guam', 'MP' => 'Northern Mariana Islands', 'PR' => 'Puerto Rico', 'UM' => "United's Minor Outlying Islands", 'VI' => 'Virgin Islands');
         $countryCodes = array('United States' => 'us', 'Australia' => 'au', 'Austria' => 'at', 'Belgium' => 'be', 'Brazil' => 'br', 'Canada' => 'ca', 'France' => 'fr', 'Germany' => 'de', 'India' => 'in', 'Ireland' => 'ie', 'Italy' => 'it', 'Mexico' => 'mx', 'Netherlands' => 'nl', 'Spain' => 'es', 'Switzerland' => 'ch', 'United Kingdom' => 'gb');
         // SET PARAMS FOR REQUEST
         $keywords = '';
         $criteria = $params->criteria_saver->criteria;
         $fieldSID = SJB_ListingFieldManager::getListingFieldSIDByID('JobCategory');
         $fieldInfo = SJB_ListingFieldDBManager::getListValuesBySID($fieldSID);
         $fieldList = array();
         foreach ($fieldInfo as $val) {
             $fieldList[$val['id']] = $val['caption'];
         }
         $categoryCriteria = isset($criteria['JobCategory']['multi_like']) ? $criteria['JobCategory']['multi_like'] : '';
         if (!empty($categoryCriteria)) {
             foreach ($categoryCriteria as $category) {
                 if (!empty($fieldList[$category])) {
                     $keywords .= empty($keywords) ? $fieldList[$category] : ' OR ' . $fieldList[$category];
                 }
             }
             if (!empty($keywords)) {
                 $keywords = "({$keywords})";
             }
         }
         foreach ($criteria as $field) {
             if (is_array($field)) {
                 foreach ($field as $fieldType => $values) {
                     if ($fieldType == 'multi_like_and') {
                         foreach ($values as $val) {
                             $keywords .= empty($keywords) ? $val : ' ' . $val;
                         }
                     }
                 }
             }
         }
         if (isset($criteria['keywords']) && !empty($criteria['keywords'])) {
             foreach ($criteria['keywords'] as $key => $item) {
                 if (in_array($key, array('exact_phrase', 'any_words', 'all_words', 'like'))) {
                     $keywords .= $item;
                 }
             }
         }
         $systemKeywords = trim(SJB_Settings::getSettingByName('simplyHiredKeyword'));
         $keywords = $systemKeywords ? '(' . $systemKeywords . ')' . ($keywords ? ' OR (' . $keywords . ')' : '') : $keywords;
         $keywords = preg_replace('/\\s+/', ' ', $keywords);
         $keywords = str_replace(',', '', $keywords);
         $keywords = urlencode(trim($keywords));
         $location = self::getLocation($criteria, 'simplyHiredLocation');
         $radius = SJB_Settings::getSettingByName('simplyHiredMiles');
         if (isset($criteria['Location_ZipCode']['geo']['radius']) && !empty($criteria['Location_ZipCode']['geo']['radius'])) {
             $radius = $criteria['Location_ZipCode']['geo']['radius'];
             if ($radius == 'any') {
                 $radius = '';
             }
         }
         $sortBy = SJB_Settings::getSettingByName('simplyHiredSortBy');
         $siteUrl = SJB_Settings::getSettingByName('simplyHiredSiteUrl');
         $jobAMaticDomain = SJB_Settings::getSettingByName('jobAMaticDomain', false);
         if (!empty($jobAMaticDomain) && $siteUrl == 'simplyhired.com') {
             $jobAMaticDomain = str_replace('http://', '', $jobAMaticDomain);
             $jobAMaticDomain = str_replace('/', '', $jobAMaticDomain);
             $jobAMaticDomain = "&jbd={$jobAMaticDomain}";
         } else {
             $jobAMaticDomain = '';
         }
         if ($siteUrl == 'simplyhired.com') {
             $ssty = 2;
         } else {
             $ssty = 3;
         }
         $url = "http://api.{$siteUrl}/a/jobs-api/xml-v2/q-{$keywords}/l-{$location}/mi-{$radius}/ws-{$limit}/pn-{$params->listing_search_structure['current_page']}/sb-{$sortBy}?pshid={$publisherID}&ssty={$ssty}&cflg=r{$jobAMaticDomain}&clip={$ip}";
         $sxml = new simplexml();
         $xmlString = SJB_HelperFunctions::getUrlContentByCurl($url);
         $simplyhiredListings = array();
         if ($xmlString === false) {
             //				throw new Exception("simplyHiredPlugin: Failed to read XML from url - {$url}");
             SJB_Logger::error("simplyHiredPlugin: Failed to read XML from url - {$url}");
         } else {
             //$tree = $sxml->xml_load_file($url, 'array');
             $tree = $sxml->xml_load_file($xmlString, 'array');
             $totalResults = 0;
             if ($tree !== false) {
                 $results = isset($tree['rs']) ? $tree['rs'] : array();
                 $outputCountry = array_flip($countryCodes);
                 foreach ($results as $node) {
                     if ($tree['rq']['rpd'] == 1) {
                         $node = array($node);
                     }
                     foreach ($node as $key => $result) {
                         $state = (string) $result['loc']['@attributes']['st'];
                         $country = (string) $result['loc']['@attributes']['country'];
                         $simplyhiredListings[$key] = array('Title' => (string) $result['jt'], 'CompanyName' => (string) isset($result['cn']['@content']) ? $result['cn']['@content'] : '', 'JobDescription' => (string) $result['e'], 'Location' => array('Country' => empty($country) ? '' : (isset($outputCountry[strtolower($country)]) ? $outputCountry[strtolower($country)] : ''), 'State' => empty($location[1]) ? '' : (isset($stateIndexes[strtoupper($state)]) ? $stateIndexes[strtoupper($state)] : ''), 'State_Code' => empty($state) ? '' : strtoupper($state), 'City' => (string) $result['loc']['@attributes']['cty']), 'activation_date' => (string) $result['dp'], 'url' => (string) $result['src']['@attributes']['url'], 'api' => 'simplyHired', 'onmousedown' => ' onMouseDown="xml_sclk(this);" ', 'target' => ' target="_blank"', 'onclick' => 'onclick="addStatisticsForSimplyHired();" ', 'code' => '<span style="font-size:10px; position:relative; top:-5px; font-family:Arial,sans-serif;color: #333;"><a style="color: #333; text-decoration:none" href="' . SJB_Request::getProtocol() . '://www.simplyhired.com/">Jobs</a> by</span> <a STYLE="text-decoration:none" href="' . SJB_Request::getProtocol() . '://www.simplyhired.com/"><img src="' . SJB_Request::getProtocol() . '://www.jobamatic.com/c/jbb/images/simplyhired.png" alt="Simply Hired"></a>');
                     }
                 }
             }
         }
         self::$simplyhiredListings = $simplyhiredListings;
     }
     return $params;
 }
Example #26
0
 private function getSortedResults($values)
 {
     if (!empty($values)) {
         $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($this->field['sid']);
         if (SJB_Array::get($fieldInfo, 'sort_by_alphabet') > 0) {
             $i18n = SJB_I18N::getInstance();
             $parents = array();
             // in this place we have 'caption' with ids of children items, like '300,301,302,305' etc.
             // need to get real caption value (for children and parent) and sort by it
             foreach ($values as $parent => $items) {
                 if (!is_array($items)) {
                     $items = array();
                 }
                 $sids = array_keys($items);
                 $parentSid = SJB_ListingFieldTreeManager::getParentSID($parent);
                 $parentInfo = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($parentSid);
                 $parents[] = $i18n->gettext('', $parentInfo['caption']);
                 // sort children by alphabet
                 $children = array();
                 foreach ($sids as $sid) {
                     $info = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($sid);
                     $children[] = $i18n->gettext('', $info['caption']);
                 }
                 array_multisort($children, SORT_STRING, $sids);
                 $sids = array_fill_keys($sids, 1);
                 // set to sorted sids
                 $values[$parent] = $sids;
             }
             // sort parent by alphabet
             $keys = array_keys($values);
             array_multisort($parents, SORT_ASC, SORT_STRING, $keys, $values);
             $values = array_combine($keys, $values);
         }
     }
     return $values;
 }
Example #27
0
 public function execute()
 {
     $field_sid = SJB_Request::getVar('field_sid', null);
     $field_info = SJB_ListingFieldManager::getFieldInfoBySID($field_sid);
     $node_sid = SJB_Request::getVar('node_sid', 0);
     $action = SJB_Request::getVar('action');
     $template_processor = SJB_System::getTemplateProcessor();
     if (empty($field_info)) {
         $errors['INVALID_FIELD_SID'] = 1;
     } else {
         switch ($action) {
             case 'add':
                 $tree_item_value = $_REQUEST['tree_item_value'];
                 $order = $_REQUEST['order'];
                 if ($tree_item_value == '') {
                     $field_errors['Value'] = 'EMPTY_VALUE';
                 } else {
                     if ($order == 'begin') {
                         SJB_ListingFieldManager::addTreeItemToBeginByParentSID($field_sid, $node_sid, $tree_item_value);
                     } elseif ($order == 'end') {
                         SJB_ListingFieldManager::addTreeItemToEndByParentSID($field_sid, $node_sid, $tree_item_value);
                     } elseif ($order == 'after') {
                         $after_tree_item_sid = $_REQUEST['after_tree_item_sid'];
                         SJB_ListingFieldManager::addTreeItemAfterByParentSID($field_sid, $node_sid, $tree_item_value, $after_tree_item_sid);
                     }
                     $treeLevelsNumber = SJB_ListingFieldTreeManager::getTreeDepthBySID($field_sid);
                     SJB_ListingFieldManager::addLevelField($treeLevelsNumber);
                 }
                 break;
             case 'save':
                 $tree_item_value = $_REQUEST['tree_item_value'];
                 if (empty($tree_item_value)) {
                     $field_errors['Value'] = 'EMPTY_VALUE';
                 } else {
                     SJB_ListingFieldManager::updateTreeItemBySID($node_sid, $tree_item_value);
                     $order = SJB_Request::getVar('order', null);
                     if ($order == 'begin') {
                         SJB_ListingFieldManager::moveTreeItemToBeginBySID($node_sid);
                     } elseif ($order == 'end') {
                         SJB_ListingFieldManager::moveTreeItemToEndBySID($node_sid);
                     } elseif ($order == 'after') {
                         $after_tree_item_sid = $_REQUEST['after_tree_item_sid'];
                         SJB_ListingFieldManager::moveTreeItemAfterBySID($node_sid, $after_tree_item_sid);
                     }
                 }
                 break;
             case 'delete':
                 $item_sid = SJB_Request::getVar('item_sid');
                 if (is_array($item_sid)) {
                     foreach ($item_sid as $sid => $val) {
                         SJB_ListingFieldManager::deleteTreeItemBySID($sid);
                     }
                 } else {
                     if (isset($item_sid)) {
                         SJB_ListingFieldManager::deleteTreeItemBySID($item_sid);
                     }
                 }
                 break;
             case 'move_up':
                 $item_sid = SJB_Request::getVar('item_sid');
                 SJB_ListingFieldManager::moveUpTreeItem($item_sid);
                 break;
             case 'move_down':
                 $item_sid = SJB_Request::getVar('item_sid');
                 SJB_ListingFieldManager::moveDownTreeItem($item_sid);
                 break;
             case 'save_order':
                 $item_order = SJB_Request::getVar('item_order', array());
                 SJB_ListingFieldManager::saveNewTreeItemsOrder($item_order);
                 break;
             case 'sort':
                 $node_sid = isset($_REQUEST['node_sid']) ? SJB_Request::getInt('node_sid') : 0;
                 SJB_ListingFieldManager::sortTreeItems(SJB_Request::getVar('field_sid'), $node_sid, SJB_Request::getVar('sorting_order'));
                 $template_processor->assign("sorting_order", SJB_Request::getVar('sorting_order'));
                 break;
             case 'add_multiple':
                 $node_sid = isset($_REQUEST['node_sid']) ? SJB_Request::getInt('node_sid') : 0;
                 $item_sid = SJB_Request::getVar('field_sid');
                 $tree_item_value = SJB_Request::getVar('tree_multiItem_value', false);
                 $after_tree_item_sid = SJB_Request::getVar('after_tree_item_sid', 0);
                 $order = SJB_Request::getVar('order', false);
                 if ($tree_item_value == '') {
                     $field_errors['Value'] = 'EMPTY_VALUE';
                 }
                 SJB_ListingFieldTreeManager::addMultupleTreeItem($item_sid, $node_sid, $tree_item_value, $order, $after_tree_item_sid);
                 break;
         }
         $tree_items = SJB_ListingFieldManager::getTreeValuesByParentSID($field_sid, $node_sid);
         $parent_sid = SJB_ListingFieldManager::getTreeParentSID($node_sid);
         $tree_parent_items = SJB_ListingFieldManager::getTreeValuesByParentSID($field_sid, $parent_sid);
     }
     $template_processor->assign("field_sid", $field_sid);
     $template_processor->assign("node_sid", $node_sid);
     $template_processor->assign("field_info", $field_info);
     $template_processor->assign("tree_parent_items", $tree_parent_items);
     $template_processor->assign("tree_items", $tree_items);
     $node_info = SJB_ListingFieldManager::getTreeItemInfoBySID($node_sid);
     $node_path = SJB_ListingFieldManager::getTreeNodePath($node_sid);
     $node_path[0] = array('caption' => 'Root', 'sid' => 0);
     $node_info['node_path'] = $node_path;
     $template_processor->assign("node_info", $node_info);
     $current_level = isset($node_info['level']) ? $node_info['level'] : 0;
     $template_processor->assign("current_level", $current_level);
     $template_processor->assign("type_sid", $field_info['listing_type_sid']);
     $listing_type_info = SJB_ListingTypeManager::getListingTypeInfoBySID($field_info['listing_type_sid']);
     $template_processor->assign("type_info", $listing_type_info);
     $template_processor->assign("errors", isset($errors) ? $errors : null);
     $template_processor->assign("field_errors", isset($field_errors) ? $field_errors : null);
     $template_processor->display("edit_tree.tpl");
 }
 /**
  * Adding Multiple Tree Values
  *
  * @param int $item_sid
  * @param int $node_sid
  * @param int $tree_item_value
  * @param int $order
  * @param int $after_tree_item_sid
  * @return bool
  */
 public static function addMultupleTreeItem($item_sid, $node_sid, $tree_item_value, $order, $after_tree_item_sid = '')
 {
     $tree_item_value = str_replace("\r", " ", $tree_item_value);
     $tree_item_value = explode("\n", $tree_item_value);
     $result = true;
     foreach ($tree_item_value as $tree_item) {
         $tree_item = trim($tree_item);
         if ($tree_item != "") {
             if ($order == 'begin') {
                 if (!SJB_ListingFieldManager::addTreeItemToBeginByParentSID($item_sid, $node_sid, $tree_item)) {
                     $result = false;
                 }
             } elseif ($order == 'end') {
                 if (!SJB_ListingFieldManager::addTreeItemToEndByParentSID($item_sid, $node_sid, $tree_item)) {
                     $result = false;
                 }
             } elseif ($order == 'after') {
                 if (!SJB_ListingFieldManager::addTreeItemAfterByParentSID($item_sid, $node_sid, $tree_item, $after_tree_item_sid)) {
                     $result = false;
                 }
             }
         }
     }
     return $result;
 }
Example #29
0
 private static function changeMonetaryProperties(&$export_properties, &$export_data)
 {
     $fieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('monetary');
     foreach ($fieldsInfo as $fieldInfo) {
         if (isset($export_properties[$fieldInfo['id']])) {
             foreach ($export_data as $user_sid => $property) {
                 $export_data[$user_sid][$fieldInfo['id']] = isset($property[$fieldInfo['id']]['value']) ? $property[$fieldInfo['id']]['value'] : '';
             }
         }
     }
 }
Example #30
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $listing_type_id = SJB_Request::getVar('listing_type_id', false);
     $action = SJB_Request::getVar('action', false);
     $type = SJB_Request::getVar('type', false);
     $encodingFromCharset = SJB_Request::getVar('encodingFromCharset', 'UTF-8');
     $supportedFormats = array('xlsx', 'xls', 'csv');
     $warning = false;
     $error = '';
     if ($action == 'example' && $type) {
         $listing_type_sid = SJB_ListingTypeManager::getListingTypeSIDByID($listing_type_id);
         $listing_field_manager = new SJB_ListingFieldManager();
         $common_details = $listing_field_manager->getCommonListingFieldsInfo();
         $extra_details = $listing_field_manager->getListingFieldsInfoByListingType($listing_type_sid);
         $listing_fields = array_merge($common_details, $extra_details);
         $directory_to_export = SJB_System::getSystemSettings('EXPORT_FILES_DIRECTORY');
         $export_properties = array();
         $export_data = array();
         foreach ($listing_fields as $listing_field) {
             $export_properties[$listing_field['id']] = $listing_field['id'];
             $export_data[0][$listing_field['id']] = '';
         }
         SJB_ExportController::createExportDirectoriesForExample();
         switch ($type) {
             case 'exl':
                 SJB_ExportController::makeExportFile($export_data, 'example.xls');
                 $export_files_dir = SJB_Path::combine($directory_to_export, 'example.xls');
                 for ($i = 0; $i < ob_get_level(); $i++) {
                     ob_end_clean();
                 }
                 header('Content-type: application/vnd.ms-excel');
                 header('Content-disposition: attachment; filename=example.xls');
                 header('Content-Length: ' . filesize($export_files_dir));
                 readfile($export_files_dir);
                 break;
             case 'csv':
                 $export_files_dir = SJB_Path::combine($directory_to_export, 'example.csv');
                 $fp = fopen($export_files_dir, 'w');
                 fputcsv($fp, explode(',', implode(',', $export_properties)));
                 fclose($fp);
                 for ($i = 0; $i < ob_get_level(); $i++) {
                     ob_end_clean();
                 }
                 header('Content-type: application/vnd.ms-excel');
                 header('Content-disposition: attachment; filename=example.csv');
                 header('Content-Length: ' . filesize($export_files_dir));
                 readfile($export_files_dir);
                 break;
         }
         SJB_Filesystem::delete($directory_to_export);
         exit;
     }
     if ($productsInfo = $this->canCurrentUserAddListing($error)) {
         $acl = SJB_Acl::getInstance();
         if ($acl->isAllowed('bulk_job_import') == true) {
             $fileInfo = null;
             if (isset($_FILES['import_file'])) {
                 $extension = strtolower(substr(strrchr($_FILES['import_file']['name'], '.'), 1));
                 if (empty($_FILES['import_file']['name']) || !in_array($extension, $supportedFormats)) {
                     $warning = 'Please choose Excel or csv file';
                 } else {
                     $fileInfo = $_FILES['import_file'];
                 }
             }
             $contractID = SJB_Request::getVar('contract_id', false);
             $current_user = SJB_UserManager::getCurrentUser();
             if ($contractID) {
                 $contract = new SJB_Contract(array('contract_id' => $contractID));
             } elseif (count($productsInfo) == 1) {
                 $productInfo = array_pop($productsInfo);
                 $contractID = $productInfo['contract_id'];
                 $contract = new SJB_Contract(array('contract_id' => $contractID));
             } else {
                 $tp->assign("products_info", $productsInfo);
                 $tp->assign("listing_type_id", $listing_type_id);
                 $tp->display("listing_product_choice.tpl");
             }
             if ($contractID && $listing_type_id) {
                 $listing_type_sid = SJB_ListingTypeManager::getListingTypeSIDByID($listing_type_id);
                 if ($fileInfo) {
                     switch ($extension) {
                         case 'xls':
                         case 'xlsx':
                             $import_file = new SJB_ImportFileXLS($fileInfo);
                             break;
                         case 'csv':
                             $import_file = new SJB_ImportFileCSV($fileInfo, ',');
                             break;
                     }
                     $import_file->parse($encodingFromCharset);
                     $bulkPermissionParam = $this->acl->getPermissionParams('post_' . $listing_type_id, $contract->getID(), 'contract');
                     $imported_data = $import_file->getData();
                     $countData = 0;
                     foreach ($imported_data as $val) {
                         if ($val) {
                             $countData++;
                         }
                     }
                     if (empty($bulkPermissionParam) || $bulkPermissionParam - $contract->getPostingsNumber() - ($countData - 1) >= 0) {
                         $listing = new SJB_Listing(array(), $listing_type_sid);
                         $count = 0;
                         $listingSIDs = array();
                         foreach ($imported_data as $key => $importedColumn) {
                             if ($key == 1) {
                                 $imported_data_processor = new SJB_ImportedDataProcessor($importedColumn, $listing);
                                 continue;
                             }
                             if (!$importedColumn) {
                                 continue;
                             }
                             $count++;
                             $listing_info = $imported_data_processor->getData('ignore', $importedColumn);
                             $doc = new DOMDocument();
                             foreach ($listing->getProperties() as $property) {
                                 if ($property->getType() == 'complex' && !empty($listing_info[$property->id])) {
                                     $childFields = SJB_ListingComplexFieldManager::getListingFieldsInfoByParentSID($property->sid);
                                     $doc->loadXML($listing_info[$property->id]);
                                     $results = $doc->getElementsByTagName($property->id . 's');
                                     $listing_info[$property->id] = array();
                                     foreach ($results as $complexparent) {
                                         $i = 0;
                                         foreach ($complexparent->getElementsByTagName($property->id) as $result) {
                                             $resultXML = simplexml_import_dom($result);
                                             foreach ($childFields as $childField) {
                                                 if (isset($resultXML->{$childField}['id'])) {
                                                     $listing_info[$property->id][$childField['id']][$i] = (string) $resultXML->{$childField}['id'];
                                                 }
                                             }
                                             $i++;
                                         }
                                     }
                                 } elseif ($property->getType() == 'location') {
                                     $locationFields = array($property->id . '.Country', $property->id . '.State', $property->id . '.City', $property->id . '.ZipCode');
                                     $locationFieldAdded = array();
                                     foreach ($locationFields as $locationField) {
                                         if (array_key_exists($locationField, $listing_info)) {
                                             switch ($locationField) {
                                                 case $property->id . '.Country':
                                                     $value = SJB_CountriesManager::getCountrySIDByCountryName($listing_info[$locationField]);
                                                     if (!$value) {
                                                         $value = SJB_CountriesManager::getCountrySIDByCountryCode($listing_info[$locationField]);
                                                     }
                                                     break;
                                                 case $property->id . '.State':
                                                     $value = SJB_StatesManager::getStateSIDByStateName($listing_info[$locationField]);
                                                     if (!$value) {
                                                         $value = SJB_StatesManager::getStateSIDByStateCode($listing_info[$locationField]);
                                                     }
                                                     break;
                                                 default:
                                                     $value = $listing_info[$locationField];
                                                     break;
                                             }
                                             $listing_info[$property->id][str_replace($property->id . '.', '', $locationField)] = $value;
                                             $locationFieldAdded[] = str_replace($property->id . '.', '', $locationField);
                                         }
                                     }
                                     if ($property->id == 'Location') {
                                         $locationFields = array('Country', 'State', 'City', 'ZipCode');
                                         foreach ($locationFields as $locationField) {
                                             if (array_key_exists($locationField, $listing_info) && !in_array($locationField, $locationFieldAdded) && !$listing->getProperty($locationField)) {
                                                 switch ($locationField) {
                                                     case 'Country':
                                                         $value = SJB_CountriesManager::getCountrySIDByCountryName($listing_info[$locationField]);
                                                         if (!$value) {
                                                             $value = SJB_CountriesManager::getCountrySIDByCountryCode($listing_info[$locationField]);
                                                         }
                                                         break;
                                                     case 'State':
                                                         $value = SJB_StatesManager::getStateSIDByStateName($listing_info[$locationField]);
                                                         if (!$value) {
                                                             $value = SJB_StatesManager::getStateSIDByStateCode($listing_info[$locationField]);
                                                         }
                                                         break;
                                                     default:
                                                         $value = $listing_info[$locationField];
                                                         break;
                                                 }
                                                 $listing_info[$property->id][$locationField] = $value;
                                             }
                                         }
                                     }
                                 }
                             }
                             $field_info = null;
                             $listing = new SJB_Listing($listing_info, $listing_type_sid);
                             foreach ($listing->getProperties() as $property) {
                                 if ($property->getType() == 'tree' && $property->value !== '') {
                                     $treeValues = explode(',', $property->value);
                                     $treeSIDs = array();
                                     foreach ($treeValues as $treeValue) {
                                         $info = SJB_ListingFieldTreeManager::getItemInfoByCaption($property->sid, trim($treeValue));
                                         $treeSIDs[] = $info['sid'];
                                     }
                                     $listing->setPropertyValue($property->id, implode(',', $treeSIDs));
                                     $listing->details->properties[$property->id]->type->property_info['value'] = implode(',', $treeSIDs);
                                 } elseif ($property->getType() == 'monetary') {
                                     $currency = SJB_CurrencyManager::getDefaultCurrency();
                                     $listing->details->properties[$property->id]->type->property_info['value']['add_parameter'] = $currency['sid'];
                                 } elseif ($property->id == 'ApplicationSettings' && !empty($listing_info['ApplicationSettings'])) {
                                     if (preg_match("^[a-z0-9\\._-]+@[a-z0-9\\._-]+\\.[a-z]{2,}\$^iu", $listing_info['ApplicationSettings'])) {
                                         $listing_info['ApplicationSettings'] = array('value' => $listing_info['ApplicationSettings'], 'add_parameter' => 1);
                                     } elseif (preg_match("^(https?:\\/\\/)^iu", $listing_info['ApplicationSettings'])) {
                                         $listing_info['ApplicationSettings'] = array('value' => $listing_info['ApplicationSettings'], 'add_parameter' => 2);
                                     } else {
                                         $listing_info['ApplicationSettings'] = array('value' => '', 'add_parameter' => '');
                                     }
                                     $listing->details->properties[$property->id]->type->property_info['value'] = $listing_info['ApplicationSettings'];
                                 } elseif ($property->getType() == 'complex' && is_array($property->value)) {
                                     $childFields = SJB_ListingComplexFieldManager::getListingFieldsInfoByParentSID($property->sid);
                                     $complexChildValues = $property->value;
                                     foreach ($childFields as $childField) {
                                         if ($childField['type'] == 'complexfile' && !empty($complexChildValues[$childField['id']])) {
                                             $field_info = SJB_ListingComplexFieldManager::getFieldInfoBySID($childField['sid']);
                                             if (isset($listing_info[$property->id][$field_info['id']]) && file_exists($listing_info[$property->id][$field_info['id']])) {
                                                 SJB_UploadFileManager::fileImport($listing_info, $field_info, $property->id);
                                             }
                                         }
                                     }
                                 }
                                 // The import of files at import of listings
                                 if (in_array($property->getType(), array('file', 'logo', 'picture', 'video')) && $property->value !== '') {
                                     $field_info = SJB_ListingFieldDBManager::getListingFieldInfoByID($property->id);
                                     if (isset($listing_info[$field_info['id']]) && file_exists($listing_info[$field_info['id']])) {
                                         SJB_UploadFileManager::fileImport($listing_info, $field_info);
                                     }
                                 }
                             }
                             $listing->deleteProperty('featured');
                             $listing->deleteProperty('priority');
                             $listing->deleteProperty('status');
                             $listing->deleteProperty('reject_reason');
                             $listing->addProperty(array('id' => 'contract_id', 'type' => 'id', 'value' => $contract->getID(), 'is_system' => true));
                             $extraInfo = $contract->extra_info;
                             $listing->setProductInfo($extraInfo);
                             $listing->setPropertyValue('access_type', 'everyone');
                             $listing->setUserSID($current_user->sid);
                             if ($current_user->isSubuser()) {
                                 $subuserInfo = $current_user->getSubuserInfo();
                                 $listing->addSubuserProperty($subuserInfo['sid']);
                             }
                             SJB_ListingManager::saveListing($listing);
                             SJB_Statistics::addStatistics('addListing', $listing->getListingTypeSID(), $listing->getSID(), false, $extraInfo['featured'], $extraInfo['priority']);
                             $contract->incrementPostingsNumber();
                             SJB_ProductsManager::incrementPostingsNumber($contract->product_sid);
                             if (!empty($extraInfo['featured'])) {
                                 SJB_ListingManager::makeFeaturedBySID($listing->getSID());
                             }
                             if (!empty($extraInfo['priority'])) {
                                 SJB_ListingManager::makePriorityBySID($listing->getSID());
                             }
                             $this->FillGallery($listing, $listing_info);
                             $listingSIDs[] = $listing->getSID();
                         }
                         SJB_ListingManager::activateListingBySID($listingSIDs);
                         $tp->assign('listingsNum', count($listingSIDs));
                         $tp->display('job_import_complete.tpl');
                     } else {
                         $tp->assign('charSets', SJB_HelperFunctions::getCharSets());
                         $error = 'LISTINGS_NUMBER_LIMIT_EXCEEDED';
                         $tp->assign('listing_type_id', $listing_type_id);
                         $tp->assign('error', $error);
                         $tp->display('job_import.tpl');
                     }
                 } else {
                     $tp->assign('charSets', SJB_HelperFunctions::getCharSets());
                     $tp->assign('warning', $warning);
                     $tp->assign('contract_id', $contractID);
                     $tp->assign('listing_type_id', $listing_type_id);
                     $tp->display('job_import.tpl');
                 }
             }
         } else {
             $error = $acl->getPermissionMessage('bulk_job_import');
             if (empty($error)) {
                 $error = 'This action is not allowed within your current product';
             }
             $tp->assign('error', $error);
             $tp->assign('charSets', SJB_HelperFunctions::getCharSets());
             $tp->assign('listing_type_id', $listing_type_id);
             $tp->display('job_import.tpl');
         }
     } else {
         if ($error == 'NO_CONTRACT') {
             if ($_GET) {
                 $getParam = '?';
                 foreach ($_GET as $key => $val) {
                     $getParam .= $key . '=' . $val . '&';
                 }
                 $getParam = substr($getParam, 0, -1);
             }
             $page = base64_encode(SJB_System::getURI() . $getParam);
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/my-products/?page=' . $page);
         }
         $tp->assign('charSets', SJB_HelperFunctions::getCharSets());
         $tp->assign('listing_type_id', $listing_type_id);
         $tp->assign('error', $error);
         $tp->display('job_import.tpl');
     }
 }