public function execute() { ini_set('max_execution_time', 0); $tp = SJB_System::getTemplateProcessor(); $userGroupID = SJB_Request::getVar('user_group_id', 0); $user = SJB_UsersExportController::createUser($userGroupID); $searchFormBuilder = new SJB_SearchFormBuilder($user); $criteria = $searchFormBuilder->extractCriteriaFromRequestData($_REQUEST, $user); $searchFormBuilder->registerTags($tp); $searchFormBuilder->setCriteria($criteria); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $exportProperties = SJB_Request::getVar('export_properties', array()); if (empty($exportProperties)) { SJB_FlashMessages::getInstance()->addWarning('EMPTY_EXPORT_PROPERTIES'); } else { $innerJoin = false; if (isset($_REQUEST['product']['multi_like']) && $_REQUEST['product']['multi_like'] != '') { $products = $_REQUEST['product']['multi_like']; if (is_array($products)) { $products = implode(',', $products); } $whereParam = implode(',', explode(',', SJB_DB::quote($products))); $innerJoin = array('contracts' => array('join_field' => 'user_sid', 'join_field2' => 'sid', 'join' => 'INNER JOIN', 'where' => "AND FIND_IN_SET(`contracts`.`product_sid`, '{$whereParam}')")); unset($criteria['system']['product']); } $searcher = new SJB_UserSearcher(false, 'parent_sid', 'ASC', $innerJoin); $searchAliases = SJB_UsersExportController::getSearchPropertyAliases(); $foundUsersSid = $searcher->getObjectsSIDsByCriteria($criteria, $searchAliases); if (!empty($foundUsersSid)) { $result = SJB_UsersExportController::createExportDirectories(); if ($result === true) { $exportProperties['extUserID'] = 1; $exportProperties['parent_sid'] = 1; $exportAliases = SJB_UsersExportController::getExportPropertyAliases(); $exportData = SJB_UsersExportController::getExportData($foundUsersSid, $exportProperties, $exportAliases); $fileName = 'users.xls'; SJB_UsersExportController::makeExportFile($exportData, $fileName); if (!file_exists(SJB_System::getSystemSettings('EXPORT_FILES_DIRECTORY') . "/{$fileName}")) { SJB_FlashMessages::getInstance()->addWarning('CANT_CREATE_EXPORT_FILES'); } else { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/users/archive-and-send-export-data/"); } } } else { SJB_FlashMessages::getInstance()->addWarning('EMPTY_EXPORT_DATA'); } } } $userSystemProperties = SJB_UserManager::getAllUserSystemProperties(); $userGroups = SJB_UserGroupManager::getAllUserGroupsInfo(); $userCommonProperties = array(); foreach ($userGroups as $userGroup) { $userGroupProperties = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($userGroup['sid']); $userCommonProperties[$userGroup['id']] = $userGroupProperties; } $tp->assign('userSystemProperties', $userSystemProperties); $tp->assign('userCommonProperties', $userCommonProperties); $tp->assign('selected_user_group_id', $userGroupID); $tp->display('export_users.tpl'); }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $user_group_sid = SJB_Request::getVar('user_group_sid', null); $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid); $errors = null; if (!is_null($user_group_sid)) { if (isset($_REQUEST['action'], $_REQUEST['field_sid'])) { if ($_REQUEST['action'] == 'move_up') { SJB_UserProfileFieldManager::moveUpFieldBySID($_REQUEST['field_sid']); } elseif ($_REQUEST['action'] == 'move_down') { SJB_UserProfileFieldManager::moveDownFieldBySID($_REQUEST['field_sid']); } } $user_profile_fields = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($user_group_sid); } else { $errors['USER_GROUP_SID_NOT_SET'] = 1; $user_profile_fields = null; } $tp->assign("errors", $errors); $tp->assign("user_profile_fields", $user_profile_fields); $tp->assign("user_group_sid", $user_group_sid); $tp->assign("user_group_info", $user_group_info); $tp->display("edit_user_profile_fields.tpl"); }
public static function getDetails($user_group_sid, $referenceUid = false) { $details = array(array('id' => 'featured', 'caption' => 'Featured', 'type' => 'boolean', 'length' => '20', 'is_required' => false, 'is_system' => true, 'order' => null), array('id' => 'active', 'caption' => 'Status', 'type' => 'list', 'list_values' => array(array('id' => '1', 'caption' => 'Active'), array('id' => '0', 'caption' => 'Not active')), 'length' => '10', 'is_required' => false, 'is_system' => true), array('id' => 'sendmail', 'caption' => "Don't send mailings", 'type' => 'boolean', 'length' => '1', 'is_required' => false, 'is_system' => true)); $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid); $email_confirmation = false; if (isset($user_group_info['email_confirmation'])) { $email_confirmation = $user_group_info['email_confirmation']; } if (SJB_UserGroupManager::isUserEmailAsUsernameInUserGroup($user_group_sid) || class_exists('SJB_SocialPlugin') && $referenceUid) { $userFields = array(array('id' => 'username', 'caption' => 'User name', 'type' => 'string', 'table_name' => 'users', 'length' => '20', 'is_required' => true, 'is_system' => true, 'order' => 0), array('id' => 'password', 'caption' => 'Password', 'type' => 'password', 'length' => '20', 'is_required' => true, 'is_system' => true, 'order' => 2), array('id' => 'email', 'caption' => 'Email', 'type' => 'unique_email', 'table_name' => 'users', 'length' => '20', 'is_required' => true, 'is_system' => true, 'order' => 1, 'email_confirmation' => $email_confirmation)); } else { $userFields = array(array('id' => 'username', 'caption' => 'User name', 'type' => 'unique_string', 'table_name' => 'users', 'length' => '20', 'validators' => array('SJB_IdValidator', 'SJB_UniqueSystemValidator'), 'is_required' => true, 'is_system' => true, 'order' => 0), array('id' => 'password', 'caption' => 'Password', 'type' => 'password', 'length' => '20', 'is_required' => true, 'is_system' => true, 'order' => 1), array('id' => 'email', 'caption' => 'Email', 'type' => 'unique_email', 'table_name' => 'users', 'length' => '20', 'is_required' => true, 'is_system' => true, 'order' => 2, 'email_confirmation' => $email_confirmation)); } $details = array_merge($userFields, $details); $extra_details = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($user_group_sid); foreach ($extra_details as $key => $extra_detail) { if ($extra_detail['type'] == 'monetary' || $extra_detail['type'] == 'complex') { $extra_details[$key]['is_system'] = false; } else { $extra_details[$key]['is_system'] = true; } } $details = array_merge($details, $extra_details); if (SJB_PluginManager::isPluginActive('CaptchaPlugin') && SJB_System::getSettingByName('registrationCaptcha') == 1 && SJB_System::getURI() == '/registration/') { $details_captcha = array(array('id' => 'captcha', 'caption' => 'Enter code from image', 'type' => 'captcha', 'length' => '20', 'is_required' => true, 'is_system' => false)); $details = array_merge($details, $details_captcha); } return $details; }
public static function deleteUserGroupBySID($user_group_sid) { $user_profile_fields_info = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($user_group_sid); foreach ($user_profile_fields_info as $user_profile_field_info) { SJB_UserProfileFieldManager::deleteUserProfileFieldBySID($user_profile_field_info['sid']); } SJB_DB::query('DELETE FROM `products` WHERE `user_group_sid` = ?n', $user_group_sid); return SJB_UserGroupDBManager::deleteUserGroupInfo($user_group_sid); }
public function execute() { set_time_limit(0); ini_set('memory_limit', -1); $tp = SJB_System::getTemplateProcessor(); $user_groups_info = SJB_UserGroupManager::getAllUserGroupsInfo(); $user_group_info = reset($user_groups_info); $user_group_sid = $user_group_info['sid']; $fields_info = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($user_group_sid); $fields = array(); $tp->assign('test_message', SJB_Request::getVar('test_message', false)); $tp->assign('undeliveredMailingsForTest', SJB_Request::getVar('undeliveredMailingsForTest', false)); foreach ($fields_info as $key => $val) { if ($val['id'] == 'Location') { foreach ($val['fields'] as $field) { if ($field['id'] == 'Country') { $fields['country'] = SJB_CountriesManager::getAllCountriesCodesAndNames(); } elseif ($field['id'] == 'State') { $fields['state'] = SJB_StatesManager::getStatesNamesByCountry(); } } } } $tp->assign('fields', $fields); $errors = array(); $errorId = SJB_Request::getVar('error', null, 'GET'); if ($errorId) { $errors[$errorId] = 1; } if (isset($_REQUEST['submit']) && $_FILES['file_mail']['name'] && $_FILES['file_mail']['error']) { $errorId = SJB_UploadFileManager::getErrorId($_FILES['file_mail']['error']); if ($_REQUEST['submit'] != 'save') { $mailID = SJB_Request::getVar('mail_id', 0); $parameter = $mailID ? '?edit=' . $mailID : ''; SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/mailing/' . $parameter . '&error=' . $errorId); } $errors[$errorId] = 1; } else { if (isset($_REQUEST['submit'])) { SJB_DB::query("DELETE FROM uploaded_files WHERE id = 'file_mail'"); $upload_manager = new SJB_UploadFileManager(); $upload_manager->setFileGroup('files'); $upload_manager->setUploadedFileID('file_mail'); $upload_manager->uploadFile('file_mail'); $file_name = ''; if (!isset($_REQUEST['delete_file']) && isset($_REQUEST['old_file']) && !$upload_manager->getUploadedFileName('file_mail')) { $file_name = $_REQUEST['old_file']; } elseif ($upload_manager->getUploadedFileName('file_mail')) { $file_name = "files/files/" . $upload_manager->getUploadedSavedFileName('file_mail'); } $language = SJB_Request::getVar('language', 'any'); $users = SJB_Request::getVar('users', 'any'); $without_cv = SJB_Request::getVar('without_cv', false); $country = SJB_Request::getVar('country', ''); $state = SJB_Request::getVar('state', ''); $city = SJB_Request::getVar('city', ''); $products = SJB_Request::getVar('products', array()); $user_status = SJB_Request::getVar('user_status', ''); $registration_date = SJB_Request::getVar('registration_date', array()); $param = serialize(array('language' => $language, 'users' => $users, 'without_cv' => $without_cv, 'products' => $products, 'country' => $country, 'state' => $state, 'city' => $city, 'status' => $user_status, 'registration' => $registration_date)); $email = ''; $mailSubject = SJB_Request::getVar('subject', ''); $mailText = stripcslashes(SJB_Request::getVar('text', '')); $mailID = SJB_Request::getVar('mail_id', 0); if ($mailID) { SJB_DB::query('UPDATE `mailing` SET `subject` = ?s, `text` = ?s, `email` = ?s, `file` = ?s, `param` = ?s WHERE `id` = ?s', $mailSubject, $mailText, $email, $file_name, $param, $mailID); } else { $query = "INSERT INTO mailing ( email , subject , text , file, param) VALUES ( ?s, ?s, ?s, ?s, ?s)"; SJB_DB::query($query, $email, $mailSubject, $mailText, $file_name, $param); } if ($_REQUEST['submit'] == 'save') { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/mailing/'); } else { $parameter = $mailID ? '?edit=' . $mailID : ''; SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/mailing/' . $parameter); } } } if (SJB_Request::getVar('delete')) { $mailings = SJB_Request::getVar('mailing'); if (is_array($mailings)) { foreach ($mailings as $id => $value) { SJB_DB::query('DELETE FROM `mailing` WHERE `id` = ?n', $id); SJB_DB::query('DELETE FROM `mailing_info` WHERE `mailing_id` = ?n', $id); } } else { $idToDelete = SJB_Request::getInt('delete', 0); SJB_DB::query('DELETE FROM `mailing` WHERE `id` = ?n', $idToDelete); SJB_DB::query('DELETE FROM `mailing_info` WHERE `mailing_id` = ?n', $idToDelete); } SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/mailing/'); } if (isset($_REQUEST['edit'])) { $idToEdit = SJB_Request::getInt('edit', 0); $mail_arr = SJB_DB::query('SELECT * FROM mailing WHERE id = ?n', $idToEdit); $tp->assign("mail_id", $mail_arr[0]['id']); $tp->assign("subject", $mail_arr[0]['subject']); $tp->assign("text", $mail_arr[0]['text']); $tp->assign("file", $mail_arr[0]['file']); $tp->assign("file_url", $mail_arr[0]['file']); $tp->assign("param", unserialize($mail_arr[0]['param'])); } // get products by UserGroup ID if (SJB_Request::isAjax()) { $userGroupID = SJB_Request::getVar('usergr', 0); if ($userGroupID > 0) { $products = SJB_ProductsManager::getProductsInfoByUserGroupSID($userGroupID); } else { $products = SJB_ProductsManager::getAllProductsInfo(); } $tp->assign("products", $products); $tp->display("mailing_products.tpl"); exit; } $mail_list = SJB_DB::query('SELECT * FROM mailing'); foreach ($mail_list as $key => $var) { $param = unserialize($mail_list[$key]['param']); $where = ''; $join = ''; $numSentEmails = SJB_DB::queryValue('SELECT count(*) FROM `mailing_info` WHERE `mailing_id` = ?n AND `status`=0', $var['id']); if ($param["language"] != 'any') { $where .= " and language='{$param['language']}'"; } if ($param["users"] != '0') { $where .= ' and u.user_group_sid=' . $param['users']; } if ($param["without_cv"]) { $join = "left join listings l on l.user_sid = u.sid"; $where .= " and l.sid is null"; } // user status if (!empty($param['status'])) { $where .= ' and `u`.`active`=' . (int) $param['status']; } // registration date if (!empty($param['registration']) && is_array($param['registration'])) { $i18n = SJB_I18N::getInstance(); if (!empty($param['registration']['not_less'])) { $where .= ' AND `u`.`registration_date` > \'' . $i18n->getInput('date', $param['registration']['not_less']) . '\''; } if (!empty($param['registration']['not_more'])) { $where .= ' AND `u`.`registration_date` < \'' . $i18n->getInput('date', $param['registration']['not_more']) . '\''; } } // products if (!empty($param['products'])) { $join .= "\n LEFT JOIN contracts ON u.sid = contracts.user_sid\n LEFT JOIN products ON products.sid = contracts.product_sid\n "; $whereProduct = array(); foreach ($param['products'] as $theProduct) { $theProduct = (int) $theProduct; if (!empty($theProduct)) { $whereProduct[] .= "products.sid = '{$theProduct}'"; } else { $whereProduct[] .= 'products.sid IS NULL'; } } if (!empty($whereProduct)) { $where .= ' AND (' . implode(' OR ', $whereProduct) . ')'; } } /// products if (!empty($param['country']) || !empty($param['state'])) { if (!empty($param['country'])) { $where_country = array(); foreach ($param['country'] as $the_country) { if (!empty($the_country)) { $where_country[] .= "`u`.`Location_Country` = '{$the_country}'"; } else { $where_country[] .= "`u`.`Location_Country` IS NULL"; } } if (!empty($where_country)) { $where .= ' AND (' . implode(' OR ', $where_country) . ')'; } } if (!empty($param['state'])) { $where_state = array(); foreach ($param['state'] as $the_state) { if (!empty($the_state)) { $where_state[] .= "`u`.`Location_State` = '{$the_state}'"; } else { $where_state[] .= "`u`.`Location_State` IS NULL"; } } } if (!empty($where_state)) { $where .= ' AND (' . implode(' OR ', $where_state) . ')'; } if (!empty($param['city'])) { $where .= " AND `u`.`Location_City` = '{$param['city']}'"; } } $mail_list[$key]['not_send'] = $numSentEmails; $mail_list[$key]['mail_arr'] = SJB_DB::query("\n SELECT u.sid as sid, u.username, u.user_group_sid, u.language\n FROM users u\n {$join}\n WHERE u.sendmail = 0\n {$where}\n GROUP BY `u`.`sid`"); $mail_list[$key]['count'] = count($mail_list[$key]['mail_arr']); } /* * test sending */ $testMailingID = SJB_Request::getVar('test_send', 0); if ($testMailingID) { if ($this->isTestEmailValid()) { $testSendResult = false; $oMailing = new SJB_Mailing($testMailingID); $mailings = SJB_Request::getVar('mailing'); if (is_array($mailings)) { foreach ($mailings as $id => $value) { $oMailing->setMailingID($id); $oMailing->setMailingList($mail_list); if ($oMailing->testSend()) { $testSendResult = true; } } } else { $oMailing->setMailingList($mail_list); $testSendResult = $oMailing->testSend(); } if ($testSendResult) { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/mailing/?test_message=1'); } else { $email = urlencode(SJB_Request::getString('email', false)); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/mailing/?undeliveredMailingsForTest={$email}"); } } else { $tp->assign('testEmailNotValid', true); } } // general sending $sendToMailingID = SJB_Request::getVar('sending', 0); $sendResult = false; if ($sendToMailingID) { $oMailing = new SJB_Mailing($sendToMailingID); $mailings = SJB_Request::getVar('mailing'); $undeliveredMailingsInfo = array(); if (is_array($mailings)) { foreach ($mailings as $id => $value) { $oMailing->setMailingID($id); $oMailing->setMailingList($mail_list); $countOfSendMailings = $oMailing->send(); if ($countOfSendMailings != 0) { $sendResult = true; } $undeliveredMailingsInfo = array_merge($oMailing->getUndeliveredMailingsInfo(), $undeliveredMailingsInfo); } } else { $oMailing->setMailingList($mail_list); $countOfSendMailings = $oMailing->send(); if ($countOfSendMailings != 0) { $sendResult = true; } $undeliveredMailingsInfo = $oMailing->getUndeliveredMailingsInfo(); } if ($sendResult) { $tp->assign('send_result', $sendResult); } if (count($undeliveredMailingsInfo)) { $tp->assign("UndeliveredMailings", $oMailing->getUndeliveredMailingsInfo()); } } // send mailing to undelivered $sendToUndeliveredMailingID = SJB_Request::getVar('sendToUndeliveredEmails', 0); if (!empty($sendToUndeliveredMailingID)) { $oMailing = new SJB_Mailing($sendToUndeliveredMailingID); $oMailing->setMailingList($mail_list); $oMailing->sendToUndelivered(); if ($oMailing->getUndeliveredMailingsInfo()) { $tp->assign("UndeliveredMailings", $oMailing->getUndeliveredMailingsInfo()); } } $groups = SJB_DB::query("SELECT * FROM `user_groups`"); $products = SJB_ProductsManager::getAllProductsInfo(); $testEmail = SJB_Settings::getSettingByName('test_email'); $tp->assign('test_email', $testEmail); $tp->assign("products", $products); $tp->assign("groups", $groups); $tp->assign("mail_list", $mail_list); $tp->assign('errors', $errors); $tp->assign("uploadMaxFilesize", SJB_UploadFileManager::getIniUploadMaxFilesize()); $tp->display("mailing.tpl"); }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $listing_field_sid = SJB_Request::getVar('sid', null); if (!is_null($listing_field_sid)) { $listingFieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($listing_field_sid); $old_listing_field_id = $listingFieldInfo['id']; $listingFieldInfo = array_merge($listingFieldInfo, $_REQUEST); $listing_field = new SJB_ListingField($listingFieldInfo, $listingFieldInfo['listing_type_sid']); $listing_field->setSID($listing_field_sid); $formSubmitted = SJB_Request::getVar('action', ''); if (!in_array($listing_field->field_type, array('video', 'picture', 'file', 'complex'))) { $profileField = SJB_Request::getVar('profile_field', false); if ($formSubmitted) { if ($profileField) { $listingFieldInfo['default_value'] = ''; } else { $listingFieldInfo['profile_field_as_dv'] = ''; } } $default_value = array('id' => 'default_value', 'sid' => isset($listingFieldInfo['sid']) ? $listingFieldInfo['sid'] : '', 'caption' => 'Default Value', 'value' => isset($listingFieldInfo['default_value']) ? $listingFieldInfo['default_value'] : '', 'type' => $listing_field->field_type, 'length' => '', 'is_required' => false, 'is_system' => true); $additionalParameters = array(); switch ($listing_field->field_type) { case 'list': if (isset($listingFieldInfo['list_values'])) { $additionalParameters = array('list_values' => $listingFieldInfo['list_values']); } break; case 'multilist': if (isset($listingFieldInfo['list_values'])) { $additionalParameters = array('list_values' => $listingFieldInfo['list_values']); } if (!is_array($default_value['value'])) { if (strpos($default_value['value'], ',')) { $default_value['value'] = explode(',', $default_value['value']); } else { $default_value['value'] = array($default_value['value']); } } break; case 'tree': if (isset($listingFieldInfo['tree_values'])) { $additionalParameters = array('tree_values' => $listingFieldInfo['tree_values']); } break; case 'monetary': if (isset($listingFieldInfo['currency_values'])) { $default_value['currency_values'] = $listingFieldInfo['currency_values']; } break; } $default_value = array_merge($default_value, $additionalParameters); $listing_field->addProperty($default_value); $user_groups = SJB_UserGroupManager::getAllUserGroupsInfo(); $list_values = array(); foreach ($user_groups as $user_group) { $list_values = array_merge($list_values, SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($user_group['sid'])); } $profile_field_as_dv = array('id' => 'profile_field_as_dv', 'caption' => 'Default Value', 'value' => isset($listingFieldInfo['profile_field_as_dv']) ? $listingFieldInfo['profile_field_as_dv'] : '', 'type' => 'list', 'list_values' => $list_values, 'length' => '', 'is_required' => false, 'is_system' => true); $listing_field->addProperty($profile_field_as_dv); if (in_array($listing_field->field_type, array('tree', 'multilist', 'list'))) { $sort_by_alphabet = array('id' => 'sort_by_alphabet', 'caption' => 'Sort Values By Alphabet', 'value' => isset($listingFieldInfo['sort_by_alphabet']) ? $listingFieldInfo['sort_by_alphabet'] : '', 'type' => 'boolean', 'lenght' => '', 'is_required' => false, 'is_system' => true); $listing_field->addProperty($sort_by_alphabet); } $tp->assign('profileFieldAsDV', !empty($listingFieldInfo['profile_field_as_dv'])); } if (in_array($listing_field->field_type, array('multilist', 'list'))) { $listing_field->addDisplayAsProperty($listingFieldInfo['display_as']); } // infil instructions should be the last element in form if (!in_array($listing_field->getFieldType(), array('complex', 'tree', 'location')) && 'ApplicationSettings' != $listing_field->getPropertyValue('id')) { if ($formSubmitted) { $listing_field->addInfillInstructions(SJB_Request::getVar('instructions')); } else { $listing_field->addInfillInstructions(isset($listingFieldInfo['instructions']) ? $listingFieldInfo['instructions'] : ''); } } /** * "Display as" options for TREE TYPE */ if ('tree' == $listing_field->getFieldType()) { $listing_field->addProperty(SJB_TreeType::getDisplayAsDetail(isset($listingFieldInfo['display_as_select_boxes']) ? $listingFieldInfo['display_as_select_boxes'] : '')); $treeLevelsNumber = SJB_ListingFieldTreeManager::getTreeDepthBySID($listing_field_sid); $tp->assign('tree_levels_number', $treeLevelsNumber); // treee levels captions for ($i = 1; $i <= $treeLevelsNumber; $i++) { $levelID = 'level_' . $i; $listing_field->addProperty(array('id' => $levelID, 'caption' => $i . ' Level Name', 'value' => isset($listingFieldInfo[$levelID]) ? $listingFieldInfo[$levelID] : '', 'type' => 'string', 'length' => '250', 'is_required' => false, 'is_system' => true)); } } /* * end of ""Display as" options for TREE TYPE" */ $edit_form = new SJB_Form($listing_field); $edit_form->makeDisabled("type"); $errors = array(); if ($formSubmitted && $edit_form->isDataValid($errors)) { SJB_ListingFieldManager::saveListingField($listing_field); SJB_ListingFieldManager::changeListingPropertyIDs($listingFieldInfo['id'], $old_listing_field_id); if ($formSubmitted == 'save_info') { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/edit-listing-type/?sid=" . $listing_field->getListingTypeSID()); } } $edit_form->registerTags($tp); $tp->assign("form_fields", $edit_form->getFormFieldsInfo()); $tp->assign("errors", $errors); $tp->assign("listing_type_sid", $listing_field->getListingTypeSID()); $tp->assign("field_type", $listing_field->getFieldType()); $tp->assign("field_sid", $listing_field->getSID()); $listing_type_info = SJB_ListingTypeManager::getListingTypeInfoBySID($listing_field->getListingTypeSID()); $tp->assign("listing_type_info", $listing_type_info); $tp->assign("listing_field_info", $listingFieldInfo); $tp->display("edit_listing_type_field.tpl"); } }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $template = SJB_Request::getVar('display_template'); $page = 1; $searchId = strip_tags(SJB_Request::getVar('searchId', time())); if (!empty($_REQUEST["page"])) { $page = intval($_REQUEST["page"]); } $items_per_page = SJB_Request::getVar('companies_per_page', false); $listing_type_sid = SJB_ListingTypeManager::getListingTypeSIDByID($_REQUEST["listing_type_id"]); $alphabets = SJB_AlphabetManager::getAlphabetsForDisplay(); $abArr = array(); foreach ($alphabets as $alphabet) { $abArr[] = explode(' ', $alphabet['value']); } $action = SJB_Request::getVar('action', 'search_form'); if (SJB_Request::getVar('first_char')) { $action = 'search'; $_REQUEST['CompanyName']['first_char_like'] = SJB_Request::getVar('first_char'); } elseif (!isset($_REQUEST['CompanyName']) || $_REQUEST['CompanyName']['like'] == '') { $_REQUEST['CompanyName']['not_empty'] = true; } $userGroupSid = SJB_UserGroupManager::getUserGroupSIDByID('Employer'); $userGroupFields = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($userGroupSid); foreach ($userGroupFields as $key => $userGroupField) { if ($userGroupField['type'] == 'location') { $userGroupFields[$key]['fields'] = array(); $userGroupFields[$key]['fields'][$userGroupField['sid']] = $userGroupField; } } $user = new SJB_User(array(), $userGroupSid); $_REQUEST['active']['equal'] = 1; $search_form_builder = new SJB_SearchFormBuilder($user); $criteria_saver = new SJB_UserCriteriaSaver($searchId); $criteria_saver->setSessionForOrderInfo($_REQUEST); if (isset($_REQUEST['searchId'])) { $action = 'search'; $criteria = $criteria_saver->getCriteria(); if (!empty($_REQUEST['sorting_field'])) { unset($criteria['sorting_field']); } else { $orderInfo = $criteria_saver->getOrderInfo(); if (!empty($orderInfo['sorting_order'])) { $criteria['sorting_order'] = $orderInfo['sorting_order']; } } $_REQUEST = array_merge($_REQUEST, $criteria); if (!$items_per_page) { $items_per_page = $criteria_saver->listings_per_page; } } $items_per_page = $items_per_page ? $items_per_page : 10; $criteria = $search_form_builder->extractCriteriaFromRequestData(array_merge($_REQUEST, array('username' => array('not_equal' => 'jobg8'))), $user); if ($items_per_page) { $criteria_saver->setSessionForListingsPerPage($items_per_page); } $search_form_builder->setCriteria($criteria); $search_form_builder->registerTags($tp); $form_fields = $search_form_builder->getFormFieldsInfo(); $tp->assign('form_fields', $form_fields); $metaDataProvider = SJB_ObjectMother::getMetaDataProvider(); $tp->assign('METADATA', array('form_fields' => $metaDataProvider->getFormFieldsMetadata($form_fields))); $tp->assign('userGroupFields', $userGroupFields); $tp->assign('action', $action); $tp->assign('alphabets', $abArr); if ($action == 'search') { $sorting_field = SJB_Request::getVar('sorting_field', false); $sorting_order = SJB_Request::getVar('sorting_order', false); if (isset($_REQUEST['searchId']) && !$sorting_field) { $order_info = $criteria_saver->order_info; if ($order_info) { $sorting_field = $order_info['sorting_field']; $sorting_order = $order_info['sorting_order']; } } if (!$sorting_field) { $sorting_field = 'CompanyName'; $sorting_order = 'ASC'; } $inner_join = array(); if ($sorting_field == 'number_of_jobs') { if (SJB_ListingTypeManager::getWaitApproveSettingByListingType($listing_type_sid) == 1) { $count = "sum( if( `listings`.`status` = 'approved', `listings`.`active`, 0 ) )"; } else { $count = "sum(`listings`.`active`)"; } $inner_join = array('listings' => array('sort_field' => $count, 'noPresix' => true, 'join_field' => 'user_sid', 'join_field2' => 'sid', 'join' => 'LEFT JOIN', 'groupBy' => '`users`.`sid`')); } elseif ($sorting_field == 'Location_State') { $inner_join = array('states' => array('sort_field' => 'state_name', 'noPresix' => true, 'join_field' => 'sid', 'join_field2' => 'Location_State', 'join' => 'LEFT JOIN')); } $searcher = new SJB_UserSearcher(false, $sorting_field, $sorting_order, $inner_join, array('limit' => ($page - 1) * $items_per_page, 'num_rows' => $items_per_page)); $found_users = array(); $found_users_sids = array(); $found_users_by_criteria = $searcher->getObjectsByCriteria($criteria, null, array(), true); $foundObjectSIDs = $searcher->getFoundObjectSIDs(); // display search form $tp->display($template); $criteria_saver->setSession($_REQUEST, $foundObjectSIDs); if (count($foundObjectSIDs) > 0) { $listingType = SJB_ListingTypeManager::getListingTypeInfoBySID($listing_type_sid); $countListings = SJB_ListingDBManager::getActiveAndApproveJobsNumberForUsers($foundObjectSIDs, $listingType); } foreach ($found_users_by_criteria as $id => $user) { $listingsNumber = isset($countListings[$id]) ? $countListings[$id] : 0; $user->addProperty(array('id' => 'countListings', 'type' => 'string', 'value' => $listingsNumber)); if ($user->getProperty('CompanyName')) { $found_users_sids[$user->getSID()] = $user->getSID(); $found_users[$id] = $user; } } $usersCount = $searcher->getAffectedRows(); $form_collection = new SJB_FormCollection($found_users); $form_collection->registerTags($tp); $pages = array(); for ($i = $page - 3; $i < $page + 3; $i++) { if ($i > 0) { $pages[] = $i; } if ($i * $items_per_page > $usersCount) { break; } } $totalPages = ceil($usersCount / $items_per_page); if (empty($totalPages)) { $totalPages = 1; } if (array_search(1, $pages) === false) { array_unshift($pages, 1); } if (array_search($totalPages, $pages) === false) { array_push($pages, $totalPages); } $tp->assign("sorting_order", $sorting_order); $tp->assign("sorting_field", $sorting_field); $tp->assign("found_users_sids", $found_users_sids); $tp->assign("companies_per_page", $items_per_page); $tp->assign("searchId", $searchId); $tp->assign("usersCount", $usersCount); $tp->assign("current_page", $page); $tp->assign("pages_number", $totalPages); $tp->display('search_result_company.tpl'); } else { // display search form $tp->display($template); } }