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; }
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'); }
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"); } }
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']; }
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"); } }
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'; }
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'; }
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; }
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'; } }
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); }
/** * 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; }
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); }
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"); } } }
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"); }
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"); } } }
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; }
/** * @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; } } } }
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; }
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"); }
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); }
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; }
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; }
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; }
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'] : ''; } } } }
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'); } }