コード例 #1
0
ファイル: browse.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $uri = parse_url($_SERVER['REQUEST_URI']);
     if (!preg_match("/\\/\$/", $uri['path'])) {
         $uri = parse_url($_SERVER['REQUEST_URI']);
         $query = isset($uri['query']) ? '?' . $uri['query'] : '';
         SJB_HelperFunctions::redirect($uri['path'] . '/' . $query);
     } else {
         $uri = SJB_Request::getVar('browseUrl', $this->getUri());
     }
     $listingTypeId = SJB_Request::getVar('listing_type_id', '');
     $browseManager = SJB_ObjectMother::createBrowseManager($listingTypeId, $this->parameters);
     $browseItems = array();
     if ($browseManager->canBrowse()) {
         if (SJB_Settings::getValue('enableBrowseByCounter')) {
             $browseItems = $browseManager->getItemsFromDB($uri, true);
         } else {
             $browseItems = $browseManager->getItems($this->parameters, true);
         }
     }
     $tp = $this->getTemplateProcessor($browseManager, $listingTypeId);
     $tp->assign('browseItems', $browseItems);
     $tp->assign('recordsNumToDisplay', SJB_Request::getVar('recordsNumToDisplay', 20));
     $tp->assign('user_page_uri', $uri);
     $tp->assign('sitePageUri', SJB_HelperFunctions::getSiteUrl() . $this->getUri());
     $tp->assign('browse_level', $browseManager->getLevel() + 1);
     $tp->assign('browse_navigation_elements', $browseManager->getNavigationElements($uri));
     $tp->display(SJB_Request::getVar('browse_template', 'browse_items_and_results.tpl'));
 }
コード例 #2
0
 /**
  * @param array $info
  * @param bool $isGroupsExist
  * @param bool $isAuthorized
  */
 function __construct($info = array(), $isGroupsExist = false, $isAuthorized = false)
 {
     $this->commonFields = parent::getCommonFields();
     $this->postingFields = self::getPostingFields();
     $this->systemFields = self::getSystemFields($isGroupsExist, $isAuthorized);
     $detailsInfo = self::getDetails($this->commonFields, $isGroupsExist, $isAuthorized);
     $locationPrefix = '';
     foreach ($detailsInfo as $index => $propertyInfo) {
         $sortArray[$index] = $propertyInfo['order'];
         if ($propertyInfo['type'] == 'location') {
             $locationPrefix = $propertyInfo['id'];
         }
     }
     $sortArray = SJB_HelperFunctions::array_sort($sortArray);
     foreach ($sortArray as $index => $value) {
         $sortedDetailsInfo[$index] = $detailsInfo[$index];
     }
     foreach ($sortedDetailsInfo as $detailInfo) {
         $detailInfo['value'] = '';
         if (isset($info[$detailInfo['id']])) {
             $detailInfo['value'] = $info[$detailInfo['id']];
         } elseif ($detailInfo['id'] == 'post_template') {
             $detailInfo['value'] = '{$user.CompanyName}: {$listing.Title} ({$listing.' . $locationPrefix . '.City}, {$listing.' . $locationPrefix . '.State})';
         }
         $this->properties[$detailInfo['id']] = new SJB_ObjectProperty($detailInfo);
     }
 }
コード例 #3
0
ファイル: add_listing_field.php プロジェクト: Maxlander/shixi
 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");
     }
 }
コード例 #4
0
 public function execute()
 {
     if (isset($_REQUEST['passed_parameters_via_uri'])) {
         $passed_parameters_via_uri = SJB_UrlParamProvider::getParams();
         $etSID = SJB_Array::get($passed_parameters_via_uri, 0);
     }
     $field_id = SJB_Request::getVar('field_id', null);
     $etInfo = SJB_EmailTemplateEditor::getEmailTemplateInfoBySID($etSID);
     if (is_null($etSID) || is_null($field_id)) {
         $errors['PARAMETERS_MISSED'] = 1;
     } elseif (is_null($etInfo) || !isset($etInfo[$field_id])) {
         $errors['WRONG_PARAMETERS_SPECIFIED'] = 1;
     } else {
         $uploaded_file_id = $etInfo[$field_id];
         SJB_UploadFileManager::deleteUploadedFileByID($uploaded_file_id);
         $etInfo[$field_id] = '';
         $emailTemplate = new SJB_EmailTemplate($etInfo);
         $emailTemplate->setSID($etSID);
         SJB_EmailTemplateEditor::saveEmailTemplate($emailTemplate);
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/edit-email-templates/' . $emailTemplate->getPropertyValue('group') . '/' . $etSID);
     }
     $tp = SJB_System::getTemplateProcessor();
     $tp->assign('errors', isset($errors) ? $errors : null);
     $tp->display('delete_uploaded_file.tpl');
 }
コード例 #5
0
ファイル: partnersite.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $action = SJB_Request::getVar('action');
     $api = SJB_Request::getVar('api', false);
     $request = $_REQUEST;
     unset($request['action']);
     switch ($action) {
         case 'header':
             $test = $tp->fetch("header.tpl");
             echo $test;
             exit;
             break;
         case 'simplyHired':
             SJB_Statistics::addStatistics('partneringSites');
             break;
         default:
             $isIPhone = false;
             if (class_exists('MobilePlugin')) {
                 $isIPhone = MobilePlugin::isPhone();
             }
             $url = SJB_Request::getVar('url');
             $url = $url ? base64_decode($url) : '';
             if (str_replace('www.', '', $_SERVER['HTTP_HOST']) === SJB_Settings::getValue('mobile_url') || SJB_Settings::getValue('detect_iphone') && $isIPhone) {
                 $url = str_replace('viewjob', 'm/viewjob', $url);
             }
             SJB_Statistics::addStatistics('partneringSites');
             if ($api && $api == 'indeed') {
                 SJB_HelperFunctions::redirect($url);
             }
             $tp->assign('url', $url);
             $tp->display("partnersite.tpl");
             break;
     }
 }
コード例 #6
0
 public function SJB_FacebookSocialDetails($info)
 {
     $this->commonFields = parent::getCommonFields();
     $this->postingFields = self::getPostingFields();
     $this->systemFields = self::getSystemFields();
     $detailsInfo = self::getDetails($this->commonFields);
     $sortArray = array();
     $locationPrefix = '';
     foreach ($detailsInfo as $index => $propertyInfo) {
         $sortArray[$index] = $propertyInfo['order'];
         if ($propertyInfo['type'] == 'location') {
             $locationPrefix = $propertyInfo['id'];
         }
     }
     $sortArray = SJB_HelperFunctions::array_sort($sortArray);
     foreach ($sortArray as $index => $value) {
         $sortedDetailsInfo[$index] = $detailsInfo[$index];
     }
     foreach ($sortedDetailsInfo as $detailInfo) {
         $detailInfo['value'] = '';
         $accountID = SJB_Request::getVar('account_id', false);
         if (isset($info[$detailInfo['id']])) {
             $detailInfo['value'] = $info[$detailInfo['id']];
         } elseif ($detailInfo['id'] == 'hash_tags') {
             $detailInfo['value'] = '#Jobs';
         } elseif ($detailInfo['id'] == 'post_template') {
             $detailInfo['value'] = '{$user.CompanyName}: {$listing.Title} ({$listing.' . $locationPrefix . '.City}, {$listing.' . $locationPrefix . '.State})';
         } elseif (isset($accountID) && $detailInfo['id'] == 'account_id') {
             $detailInfo['value'] = $accountID;
         }
         $this->properties[$detailInfo['id']] = new SJB_ObjectProperty($detailInfo);
     }
 }
コード例 #7
0
 public function execute()
 {
     $user_group_sid = isset($_REQUEST['user_group_sid']) ? $_REQUEST['user_group_sid'] : null;
     $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid);
     $user_profile_field = new SJB_UserProfileField($_REQUEST);
     $user_profile_field->setUserGroupSID($user_group_sid);
     //infill instructions field
     //$user_profile_field->addInfillInstructions(SJB_Request::getVar('instructions'));
     $add_user_profile_field_form = new SJB_Form($user_profile_field);
     $form_is_submitted = isset($_REQUEST['action']) && $_REQUEST['action'] == 'add';
     $errors = null;
     if ($form_is_submitted && $add_user_profile_field_form->isDataValid($errors)) {
         SJB_UserProfileFieldManager::saveUserProfileField($user_profile_field);
         if (SJB_Request::getVar('type', '') == 'youtube') {
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/instruction_user_profile_field/?user_group_sid=" . $user_group_sid . "&user_field_sid=" . $user_profile_field->sid);
         } else {
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/edit-user-profile/?user_group_sid=" . $user_group_sid);
         }
     } else {
         $template_processor = SJB_System::getTemplateProcessor();
         $add_user_profile_field_form->registerTags($template_processor);
         $template_processor->assign("form_fields", $add_user_profile_field_form->getFormFieldsInfo());
         $template_processor->assign("user_group_sid", $user_group_sid);
         $template_processor->assign("errors", $errors);
         $template_processor->assign("user_group_info", $user_group_info);
         $template_processor->display("add_user_profile_field.tpl");
     }
 }
コード例 #8
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     if (SJB_UserManager::isUserLoggedIn()) {
         $user_id = SJB_UserManager::getCurrentUserSID();
         $errors = array();
         $id = SJB_Request::getInt('id', 0, 'GET');
         $action = SJB_Request::getVar('action', '', 'GET');
         if ($id > 0) {
             // read message
             if (SJB_PrivateMessage::isMyMessage($id)) {
                 if ($action == 'delete') {
                     SJB_PrivateMessage::delete(array($id));
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/private-messages/inbox/');
                 }
                 $message = SJB_PrivateMessage::readMessage($id);
                 SJB_Authorization::updateCurrentUserSession();
                 $current_user_info = SJB_UserManager::createTemplateStructureForCurrentUser();
                 $current_user_info['logged_in'] = true;
                 $current_user_info['new_messages'] = SJB_PrivateMessage::getCountUnreadMessages($current_user_info['id']);
                 SJB_System::setCurrentUserInfo($current_user_info);
                 $tp->assign('message', $message);
                 $tp->assign('include', 'message_detail.tpl');
             } else {
                 $errors['NOT_EXISTS_MESSAGE'] = 1;
             }
         }
         $tp->assign('errors', $errors);
         $tp->assign('unread', SJB_PrivateMessage::getCountUnreadMessages($user_id));
         $tp->display('main.tpl');
     } else {
         $tp->assign('return_url', base64_encode(SJB_Navigator::getURIThis()));
         $tp->display('../users/login.tpl');
     }
 }
コード例 #9
0
 public function init()
 {
     $this->cleanSessionData(self::$network);
     $error = SJB_Request::getVar('error', false);
     if ($error && $error == 'access_denied') {
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL'));
     }
     if (isset($_GET['code'])) {
         $this->initialize();
         $googlePlusService = new Google_PlusService(self::$object);
         $oauth2 = new Google_Oauth2Service(self::$object);
         self::$object->authenticate($_GET['code']);
         $_SESSION['access_token'] = self::$object->getAccessToken();
         if (!empty($_SESSION['access_token'])) {
             self::$oProfile = self::getProfileInformation($googlePlusService, $oauth2);
             if (self::$oProfile) {
                 $this->flagSocialPluginInSession(self::$network);
                 self::$oSocialPlugin = $this;
                 $this->redirectToRegistrationSocialPage();
             }
         }
     }
     if (is_null(self::$object) && empty($_SESSION['sn']['authorized'])) {
         $this->initialize();
         $authUrl = self::$object->createAuthUrl();
         SJB_HelperFunctions::redirect($authUrl);
     } elseif (self::$oProfile && !parent::ifUserIsRegistered(self::$network)) {
         $this->redirectToRegistrationSocialPage();
     }
 }
コード例 #10
0
ファイル: email_scheduling.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     set_time_limit(0);
     $notifiedEmails = array();
     $emailScheduling = SJB_Settings::getSettingByName('email_scheduling');
     $numberEmails = SJB_Settings::getSettingByName('number_emails');
     $emailsSend = SJB_Settings::getSettingByName('send_emails');
     $limit = $numberEmails - $emailsSend;
     $limit = $limit > 0 ? $limit : 20;
     $letters = SJB_DB::query('SELECT * FROM `email_scheduling` ORDER BY `id` ASC LIMIT 0, ?n', $limit);
     if ($emailScheduling && $numberEmails || count($letters)) {
         foreach ($letters as $letter) {
             $params = $letter;
             unset($params['id']);
             $email = new SJB_Email($params['email']);
             $email->setSubject($params['subject']);
             $email->setText($params['text']);
             $email->setFile($params['file']);
             if ($email->send(true)) {
                 SJB_DB::query('DELETE FROM `email_scheduling` WHERE `id` = ?n', $letter['id']);
                 array_push($notifiedEmails, $params['email']);
             }
         }
     }
     $tp = SJB_System::getTemplateProcessor();
     $tp->assign('notified_emails', $notifiedEmails);
     $schedulerLog = $tp->fetch('email_scheduler_log.tpl');
     SJB_HelperFunctions::writeCronLogFile('email_scheduler.log', $schedulerLog);
 }
コード例 #11
0
ファイル: saved_listings.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $errors = array();
     $listingTypeID = SJB_Request::getVar('listing_type_id', '');
     if (SJB_UserManager::isUserLoggedIn()) {
         if (!SJB_Acl::getInstance()->isAllowed('save_' . trim($listingTypeID))) {
             $errors[] = 'DENIED_VIEW_SAVED_LISTING';
         }
         if (!$errors) {
             $userSid = SJB_UserManager::getCurrentUserSID();
             if (SJB_Request::getVar('action', '') == 'delete') {
                 $listing_id = SJB_Request::getVar('listing_id', null);
                 if (!is_null($listing_id)) {
                     foreach ($listing_id as $key => $value) {
                         SJB_SavedListings::deleteListingFromDBBySID($key, $userSid);
                     }
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . SJB_Navigator::getURI());
                 }
             }
             $saved_listings_id = SJB_SavedListings::getSavedListingsFromDB($userSid);
             $listings_structure = array();
             $listing_structure_meta_data = array();
             foreach ($saved_listings_id as $saved_listing) {
                 $saved_listing_id = $saved_listing['listing_sid'];
                 $listing = SJB_ListingManager::getObjectBySID($saved_listing_id);
                 if (is_null($listing)) {
                     continue;
                 }
                 $listing->addPicturesProperty();
                 $listing_structure = SJB_ListingManager::createTemplateStructureForListing($listing);
                 $listings_structure[$listing->getID()] = $listing_structure;
                 $listings_structure[$listing->getID()]['saved_listing'] = $saved_listing;
                 if (isset($listing_structure['METADATA'])) {
                     $listing_structure_meta_data = array_merge($listing_structure_meta_data, $listing_structure['METADATA']);
                 }
             }
             $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
             $tp->assign("METADATA", array("listing" => $metaDataProvider->getMetaData($listing_structure_meta_data)));
             $tp->assign("listings", $listings_structure);
             $tp->assign("listing_type_id", $listingTypeID);
             $tp->display("saved_listings.tpl");
         } else {
             $tp->assign("errors", $errors);
             $tp->display("save_search_failed.tpl");
         }
     } else {
         $url = base64_encode(SJB_System::getSystemSettings("SITE_URL") . "/system/classifieds" . SJB_System::getURI());
         switch ($listingTypeID) {
             case 'job':
                 $url = base64_encode(SJB_System::getSystemSettings("SITE_URL") . "/saved-jobs/");
                 break;
             case 'resume':
                 $url = base64_encode(SJB_System::getSystemSettings("SITE_URL") . "/saved-resumes/");
                 break;
         }
         $tp->assign("return_url", $url);
         $tp->display("../users/login.tpl");
     }
 }
コード例 #12
0
ファイル: pm_outbox.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $user = SJB_UserManager::getUserInfoBySID(SJB_Request::getVar('user_sid', 0, SJB_Request::METHOD_GET));
     $user_id = $user['sid'];
     if (SJB_Request::getVar('pm_action', '', SJB_Request::METHOD_POST) == 'delete') {
         $checked = SJB_Request::getVar('pm_check', array(), SJB_Request::METHOD_POST);
         SJB_PrivateMessage::delete($checked);
     }
     $page = intval(SJB_Request::getVar('page', 1, SJB_Request::METHOD_GET));
     $per_page = 10;
     $total = SJB_PrivateMessage::getTotalOutbox($user_id);
     $max_pages = ceil($total / $per_page);
     if ($max_pages == 0) {
         $max_pages = 1;
     }
     if ($max_pages < $page) {
         SJB_HelperFunctions::redirect("?user_sid={$user_id}&page={$max_pages}");
     }
     $navigate = SJB_PrivateMessage::getNavigate($page, $total, $per_page);
     $list = SJB_PrivateMessage::getListOutbox($user_id, $page, $per_page);
     $userGroupInfo = SJB_UserGroupManager::getUserGroupInfoBySID($user['user_group_sid']);
     SJB_System::setGlobalTemplateVariable('wikiExtraParam', $userGroupInfo['id']);
     $tp->assign("user_group_info", $userGroupInfo);
     $tp->assign('username', $user['username']);
     $tp->assign('user_sid', $user_id);
     $tp->assign('message', $list);
     $tp->assign('navigate', $navigate);
     $tp->assign('page', $page);
     $tp->display('pm_outbox.tpl');
 }
コード例 #13
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     if (SJB_UserManager::isUserLoggedIn()) {
         $user_id = SJB_UserManager::getCurrentUserSID();
         if (SJB_Request::getVar('pm_action', '', SJB_Request::METHOD_POST) == 'delete') {
             $checked = SJB_Request::getVar('pm_check', array(), SJB_Request::METHOD_POST);
             SJB_PrivateMessage::delete($checked);
         }
         $page = intval(SJB_Request::getVar('page', 1, SJB_Request::METHOD_GET));
         $messagesPerPage = SJB_Request::getInt('messagesPerPage', 10);
         $total = SJB_PrivateMessage::getTotalOutbox($user_id);
         $totalPages = ceil($total / $messagesPerPage);
         if ($totalPages == 0) {
             $totalPages = 1;
         }
         if (empty($page) || $page <= 0) {
             $page = 1;
         }
         if ($totalPages < $page) {
             SJB_HelperFunctions::redirect("?page={$totalPages}");
         }
         $list = SJB_PrivateMessage::getListOutbox($user_id, $page, $messagesPerPage);
         $tp->assign('message_list', $list);
         $tp->assign('messagesPerPage', $messagesPerPage);
         $tp->assign('page', $page);
         $tp->assign('totalPages', $totalPages);
         $tp->assign('include', 'list_outbox.tpl');
         $tp->assign('unread', SJB_PrivateMessage::getCountUnreadMessages($user_id));
     }
     $tp->display('main.tpl');
 }
コード例 #14
0
ファイル: add_user_group.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $user_group = new SJB_UserGroup($_REQUEST);
     $add_user_group_form = new SJB_Form($user_group);
     $form_is_submitted = isset($_REQUEST['action']) && $_REQUEST['action'] == 'add';
     $errors = null;
     $tp = SJB_System::getTemplateProcessor();
     if ($form_is_submitted && $add_user_group_form->isDataValid($errors)) {
         SJB_UserGroupManager::saveUserGroup($user_group);
         $page = array('uri' => '/' . mb_strtolower($user_group->getPropertyValue('id'), 'UTF-8') . '-products/', 'module' => 'payment', 'function' => 'user_products', 'access_type' => 'user', 'parameters' => 'userGroupID=' . $user_group->getID());
         $userPage = new SJB_UserPage();
         $page_data = SJB_UserPage::extractPageData($page);
         $userPage->setPageData($page_data);
         $userPage->save();
         $this->addLocationField($user_group->getSID());
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/user-groups/");
     } else {
         $add_user_group_form->registerTags($tp);
         $tp->assign('notifications', $user_group->getNotifications());
         $tp->assign('notificationGroups', $user_group->getNotificationsGroups());
         $tp->assign('form_fields', $add_user_group_form->getFormFieldsInfo());
         $tp->assign('errors', $errors);
         $tp->display('add_user_group.tpl');
     }
 }
コード例 #15
0
ファイル: export_users.php プロジェクト: Maxlander/shixi
 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');
 }
コード例 #16
0
ファイル: edit_list_item.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $template_processor = SJB_System::getTemplateProcessor();
     $errors = array();
     $UserProfileFieldListItemManager = new SJB_UserProfileFieldListItemManager();
     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 = $UserProfileFieldListItemManager->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);
             if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'save') {
                 $list_item->setValue($_REQUEST['list_item_value']);
                 if (empty($_REQUEST['list_item_value'])) {
                     $errors = array('Value' => 'EMPTY_VALUE');
                 } else {
                     $UserProfileFieldListItemManager->saveListItem($list_item);
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-user-profile-field/edit-list/?field_sid=" . $_REQUEST['field_sid']);
                 }
             }
             $user_profile_field = SJB_UserProfileFieldManager::getFieldBySID($_REQUEST['field_sid']);
             $user_profile_field_info = SJB_UserProfileFieldManager::getFieldInfoBySID($_REQUEST['field_sid']);
             $template_processor->assign("user_profile_field_info", $user_profile_field_info);
             $template_processor->assign("user_group_sid", $user_profile_field->getUserGroupSID());
             $template_processor->assign("user_profile_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("user_group_info", SJB_UserGroupManager::getUserGroupInfoBySID($user_profile_field->getUserGroupSID()));
             $template_processor->display("user_profile_list_item_editing.tpl");
         }
     }
 }
コード例 #17
0
ファイル: edit_user_group.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $user_group_sid = SJB_Request::getVar('sid', null);
     $errors = array();
     if (!is_null($user_group_sid)) {
         $action = SJB_Request::getVar("action", false);
         $product_sid = SJB_Request::getVar("product_sid", false);
         if ($action && $product_sid !== false) {
             switch ($action) {
                 case 'move_up':
                     SJB_ProductsManager::moveUpProductBySID($product_sid, $user_group_sid);
                     break;
                 case 'move_down':
                     SJB_ProductsManager::moveDownProductBySID($product_sid, $user_group_sid);
                     break;
                 case 'set_default_product':
                     SJB_UserGroupManager::setDefaultProduct($user_group_sid, $product_sid);
                     break;
             }
         }
         $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid);
         $user_group_info = array_merge($user_group_info, $_REQUEST);
         $userGroup = new SJB_UserGroup($user_group_info);
         $userGroup->setSID($user_group_sid);
         $edit_user_group_form = new SJB_Form($userGroup);
         $form_is_submitted = SJB_Request::getVar('submit');
         if ($form_is_submitted && $edit_user_group_form->isDataValid($errors)) {
             SJB_UserGroupManager::saveUserGroup($userGroup);
             if ($form_is_submitted == 'save_info') {
                 SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/user-groups/');
             }
         }
         $productSIDs = SJB_ProductsManager::getProductsInfoByUserGroupSID($user_group_sid);
         $productsInfo = array();
         $user_sids_in_group = SJB_UserManager::getUserSIDsByUserGroupSID($user_group_sid);
         $user_group_product_user_number = array();
         foreach ($productSIDs as $product) {
             $productsInfo[] = $product;
             $user_sids_in_product = SJB_UserManager::getUserSIDsByProductSID($product['sid']);
             $user_number = count(array_intersect($user_sids_in_group, $user_sids_in_product));
             $user_group_product_user_number[$product['sid']] = $user_number;
         }
         $edit_user_group_form->registerTags($tp);
         $tp->assign('object_sid', $userGroup->getSID());
         $tp->assign('notifications', $userGroup->getNotifications());
         $tp->assign('notificationGroups', $userGroup->getNotificationsGroups());
         $tp->assign('user_group_sid', $user_group_sid);
         $tp->assign('user_group_products_info', $productsInfo);
         $tp->assign('user_group_product_user_number', $user_group_product_user_number);
         $tp->assign('form_fields', $edit_user_group_form->getFormFieldsInfo());
     } else {
         $errors['USER_GROUP_SID_NOT_SET'] = 1;
     }
     $tp->assign('user_group_info', isset($user_group_info) ? $user_group_info : null);
     $tp->assign('errors', $errors);
     $tp->assign('object_sid', $user_group_sid);
     $tp->display('edit_user_group.tpl');
 }
コード例 #18
0
ファイル: delete_import.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $id = SJB_Request::getVar('id', false);
     if ($id) {
         SJB_DB::query("DELETE FROM `parsers` WHERE id = ?n", $id);
     }
     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/show-import/");
 }
コード例 #19
0
ファイル: edit_subadmin.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $subAdminSID = SJB_Request::getVar('subadmin', 0);
     if (!empty($subAdminSID) && ($adminInfo = SJB_SubAdminManager::getSubAdminInfoBySID($subAdminSID))) {
         $editedSubAdminInfo = $_REQUEST;
         $subAdminInfo = array_merge($adminInfo, $editedSubAdminInfo);
         // create subAdmin object
         $oSubAdmin = SJB_ObjectMother::createSubAdmin($subAdminInfo);
         $oSubAdmin->setSID($adminInfo['sid']);
         $oSubAdmin->makePropertyNotRequired("password");
         // permissions
         $acl = SJB_SubAdminAcl::getInstance();
         $type = 'subadmin';
         $resources = $acl->getResources();
         $perms = SJB_SubAdminAcl::getAllPermissions($type, $oSubAdmin->getSID());
         // /permissions
         SJB_SubAdminAcl::mergePermissionsWithResources($resources, $perms);
         $registration_form = SJB_ObjectMother::createForm($oSubAdmin);
         $action = SJB_Request::getVar('action', '');
         $registration_form->registerTags($tp);
         $errors = array();
         if ('save' == $action || $action == 'apply') {
             if ($adminInfo['username'] == $subAdminInfo['username']) {
                 $oSubAdmin->deleteProperty('username');
             }
             if ($adminInfo['email'] == $subAdminInfo['email']) {
                 $oSubAdmin->deleteProperty('email');
             }
             if ($registration_form->isDataValid($errors)) {
                 $password_value = $oSubAdmin->getPropertyValue('password');
                 if (empty($password_value['original'])) {
                     $oSubAdmin->deleteProperty('password');
                 }
                 // save subAdmin
                 SJB_SubAdminManager::saveSubAdmin($oSubAdmin);
                 $role = $oSubAdmin->getSID();
                 SJB_Acl::clearPermissions($type, $role);
                 foreach ($resources as $name => $resource) {
                     SJB_SubAdminAcl::allow($name, $type, $role, SJB_SubAdminAcl::definePermission($name), SJB_Array::get($resource, 'params', ''));
                 }
                 SJB_FlashMessages::getInstance()->addMessage('CHANGES_SAVED');
                 if ($action == 'save') {
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/manage-subadmins/");
                 }
             }
             SJB_SubAdminAcl::mergePermissionsWithRequest($resources);
         }
         SJB_SubAdminAcl::prepareSubPermissions($resources);
         $tp->assign("errors", $errors);
         $tp->assign("form_fields", $registration_form->getFormFieldsInfo());
         $tp->assign('groups', SJB_SubAdminAcl::getPermissionGroups());
         $tp->assign('resources', $resources);
         $tp->assign('type', $type);
         $tp->assign('sid', $subAdminInfo['sid']);
         $tp->display('add_subadmin.tpl');
     }
 }
コード例 #20
0
 public function execute()
 {
     $breadcrumbs = new SJB_Breadcrumbs();
     $errors = array();
     if (isset($_REQUEST['action'])) {
         // проверим, задали element_id или нет
         if (!isset($_REQUEST['element_id'])) {
             // задаем текст ошибки и сбрасываем 'action', чтобы ничего не выполнялось
             $errors[] = "NOT_ID";
             $_REQUEST['action'] = '';
         } else {
             $element_id = $_REQUEST['element_id'];
         }
         switch ($_REQUEST['action']) {
             case 'add':
                 // если была отправка формы добавления элемента
                 if (isset($_REQUEST['addElement']) && $_REQUEST['addElement'] != '') {
                     $item_name = $_REQUEST['item_name'];
                     $item_uri = $_REQUEST['item_uri'];
                     $breadcrumbs->addElement($item_name, $item_uri, $element_id);
                     $site_url = SJB_System::getSystemSettings("SITE_URL");
                     SJB_HelperFunctions::redirect($site_url . "/manage-breadcrumbs/");
                 }
                 $parentElement = $breadcrumbs->getElement($element_id);
                 $tp = SJB_System::getTemplateProcessor();
                 $tp->assign("parentElement", $parentElement);
                 $tp->display("add_item.tpl");
                 break;
             case 'edit':
                 // если была отправка формы редактирования элемента
                 if (isset($_REQUEST['updateElement']) && $_REQUEST['updateElement'] != '') {
                     $item_name = $_REQUEST['item_name'];
                     $item_uri = $_REQUEST['item_uri'];
                     $breadcrumbs->updateElement($item_name, $item_uri, $element_id);
                     $site_url = SJB_System::getSystemSettings("SITE_URL");
                     SJB_HelperFunctions::redirect($site_url . "/manage-breadcrumbs/");
                 }
                 $editElement = $breadcrumbs->getElement($element_id);
                 $tp = SJB_System::getTemplateProcessor();
                 $tp->assign("editElement", $editElement);
                 $tp->display("edit_item.tpl");
                 break;
             case 'delete':
                 $breadcrumbs->deleteElement($element_id);
                 $site_url = SJB_System::getSystemSettings("SITE_URL");
                 SJB_HelperFunctions::redirect($site_url . "/manage-breadcrumbs/");
                 break;
             default:
                 break;
         }
     }
     $navStructure = $breadcrumbs->makeStructure();
     $tp = SJB_System::getTemplateProcessor();
     $tp->assign('ERRORS', $errors);
     $tp->assign("navStructure", $navStructure);
     $tp->display("manage_breadcrumbs.tpl");
 }
コード例 #21
0
ファイル: configure_gateway.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $templateProcessor = SJB_System::getTemplateProcessor();
     $errors = array();
     $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
     $gateway_id = isset($_REQUEST['gateway']) ? $_REQUEST['gateway'] : null;
     $formSubmitted = SJB_Request::getVar('submit');
     $gateway_sid = SJB_PaymentGatewayManager::getSIDByID($gateway_id);
     if ($_SERVER['REQUEST_METHOD'] == 'GET' && !empty($action)) {
         if ($action == 'deactivate') {
             SJB_PaymentGatewayManager::deactivateByID($gateway_id);
         } elseif ($action == 'activate') {
             SJB_PaymentGatewayManager::activateByID($gateway_id);
         }
     }
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         $gateway = SJB_PaymentGatewayManager::createObjectByID($gateway_id, $_REQUEST);
         $gateway->dontSaveProperty('id');
         $gateway->dontSaveProperty('caption');
         $gateway->setSID($gateway_sid);
         if ($gateway->isValid()) {
             if (SJB_PaymentGatewayManager::saveGateway($gateway) !== false) {
                 $templateProcessor->assign('gatewaySaved', true);
                 if ($formSubmitted == 'save_gateway') {
                     $siteUrl = SJB_System::getSystemsettings('SITE_URL') . '/system/payment/gateways/?gatewaySaved=1';
                     SJB_HelperFunctions::redirect($siteUrl);
                 }
             } else {
                 $errors['SETTINGS_SAVED_WITH_PROBLEMS'] = 1;
             }
         } else {
             $errors = $gateway->getErrors();
         }
     }
     $gateway = SJB_PaymentGatewayManager::getObjectByID($gateway_id);
     $gateway_form = new SJB_Form($gateway);
     $gateway_form->registerTags($templateProcessor);
     $gateway_form->makeDisabled('id');
     $gateway_form->makeDisabled('caption');
     $countryCode = $gateway->getPropertyValue('country');
     if (empty($countryCode)) {
         $countryValue = SJB_CountriesManager::getCountrySIDByCountryCode('US');
         $gateway->setPropertyValue('country', $countryValue);
     }
     if (empty($gateway)) {
         $errors['GATEWAY_NOT_FOUND'] = 1;
         $templateProcessor->assign('errors', $errors);
         $templateProcessor->display('configure_gateway.tpl');
         return;
     }
     $gateway_info = SJB_PaymentGatewayManager::getInfoBySID($gateway_sid);
     $form_fields = $gateway_form->getFormFieldsInfo();
     $templateProcessor->assign('gateway', $gateway_info);
     $templateProcessor->assign('form_fields', $form_fields);
     $templateProcessor->assign('errors', $errors);
     $templateProcessor->display('configure_gateway.tpl');
 }
コード例 #22
0
ファイル: edit_listing_type.php プロジェクト: Maxlander/shixi
 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");
     }
 }
コード例 #23
0
ファイル: SearchFormBuilder.php プロジェクト: Maxlander/shixi
 function getVariablesToAssign($params)
 {
     $value = array();
     if (!empty($params['parent'])) {
         $params['property'] = $params['parent'] . "_" . $params['property'];
     }
     if (!empty($params['fields'])) {
         foreach ($params['fields'] as $field) {
             $criteria = $this->getCriteriaByFieldName($params['property'] . "_" . $field['id']);
             if (!empty($criteria)) {
                 foreach ($criteria as $criterion) {
                     $value[$field['id']] = $criterion->getValue();
                 }
             }
         }
     }
     $criteria = $this->getCriteriaByFieldName($params['property']);
     if (!empty($criteria)) {
         $value = array();
         foreach ($criteria as $criterion) {
             $criterion_type = $criterion->getType();
             $field_value = $criterion->getFieldValue();
             if (!empty($field_value)) {
                 $value[$criterion_type] = SJB_HelperFunctions::getClearVariablesToAssign($field_value);
             } else {
                 if ($criterion->type == 'tree') {
                     $criterionProperty = $criterion->getProperty();
                     if (!$criterionProperty->type->displayAsSelectBoxes) {
                         $treeHelper = new SJB_TreeHelper('');
                         $value = $treeHelper->createTreeObjects($criterion->value);
                     } else {
                         $value = SJB_HelperFunctions::getClearVariablesToAssign($criterion->value);
                     }
                 } else {
                     $value = $value + SJB_HelperFunctions::getClearVariablesToAssign($criterion->getValue());
                 }
             }
         }
     } else {
         $value = SJB_HelperFunctions::getClearVariablesToAssign($value);
     }
     $res = array('id' => $params['property'], 'value' => $value);
     if (isset($params['type']) && $params['type'] == 'bool' && $params['property'] !== 'Title') {
         $params2 = $params;
         $params2['property'] = 'Title';
         $titleProp = $this->getVariablesToAssign($params2);
         if (!empty($titleProp) && !empty($titleProp['value'])) {
             $res['title'] = true;
             $res['value'] = $titleProp['value'];
         }
     }
     if (!empty($params['complexParent'])) {
         $res['id'] = $params['complexParent'] . ":" . $res['id'];
     }
     return $res;
 }
コード例 #24
0
ファイル: add_product.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $productType = SJB_Request::getVar('product_type', false);
     $action = SJB_Request::getVar('action', false);
     $errors = array();
     $productErrors = array();
     if ($productType) {
         if ($productType == 'featured_user') {
             $_REQUEST['user_group_sid'] = SJB_UserGroupManager::getUserGroupSIDByID('Employer');
         }
         $product = new SJB_Product($_REQUEST, $productType);
         $pages = $product->getProductPages();
         $addProductForm = new SJB_Form($product);
         $addProductForm->registerTags($tp);
         $form_submitted = SJB_Request::getVar('action', '') == 'save';
         if ($form_submitted) {
             $productErrors = $product->isValid($product);
             if (in_array($productType, array('access_listings', 'featured_user', 'banners', 'custom_product'))) {
                 $periodName = $product->getPropertyValue('period_name');
                 if ($periodName == 'unlimited') {
                     $product->makePropertyNotRequired('period');
                 }
             }
         }
         if ($form_submitted && $addProductForm->isDataValid($errors) && !$productErrors) {
             $product->addProperty(array('id' => 'product_type', 'type' => 'string', 'value' => $productType, 'is_system' => true));
             $product->saveProduct($product, $_REQUEST);
             $product->savePermissions($_REQUEST);
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . '/products/');
         }
         $errors = array_merge($errors, $productErrors);
         $formFieldsInfo = $addProductForm->getFormFieldsInfo();
         $formFields = array();
         foreach ($pages as $pageID => $page) {
             foreach ($formFieldsInfo as $formFieldInfo) {
                 if (in_array($formFieldInfo['id'], $page['fields'])) {
                     $formFields[$pageID][] = $formFieldInfo;
                 }
             }
             if (!isset($formFields[$pageID])) {
                 $formFields[$pageID] = array();
             }
         }
         $tp->assign('form_fields', $formFields);
         $tp->assign('product_type', $productType);
         $tp->assign('request', $_REQUEST);
         $tp->assign('params', http_build_query($_REQUEST));
         $tp->assign('pages', $pages);
         $tp->assign('pageTab', SJB_Request::getVar('page', false));
         $tp->assign("errors", $errors);
         $tp->display('add_product.tpl');
     } else {
         $tp->display('select_product_type.tpl');
     }
 }
コード例 #25
0
ファイル: delete_user_group.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $user_group_sid = SJB_Request::getVar('sid', null);
     if (!is_null($user_group_sid)) {
         SJB_UserGroupManager::deleteUserGroupBySID($user_group_sid);
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/user-groups/");
     } else {
         echo 'The system  cannot proceed as User Group SID is not set';
     }
 }
コード例 #26
0
 public function execute()
 {
     $listingTypeSID = SJB_Request::getVar('sid', null);
     if (!is_null($listingTypeSID)) {
         SJB_Breadcrumbs::deleteBreadcrumbsByListingTypeSID($listingTypeSID);
         SJB_ListingTypeManager::deleteListingTypeBySID($listingTypeSID);
         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/listing-types/");
     }
     echo 'The system  cannot proceed as Listing Type SID is not set';
 }
コード例 #27
0
 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';
 }
コード例 #28
0
ファイル: pay_for_listing.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $templateProcessor = SJB_System::getTemplateProcessor();
     $listingSid = isset($_REQUEST['listing_id']) ? $_REQUEST['listing_id'] : null;
     $listing = SJB_ListingManager::getObjectBySID($listingSid);
     if (!is_null($listing) && !$listing->isActive()) {
         $listingInfo = SJB_ListingManager::getListingInfoBySID($listingSid);
         $productInfo = !empty($listingInfo['product_info']) ? unserialize($listingInfo['product_info']) : array();
         if (isset($listingInfo['complete']) && $listingInfo['complete'] == 1 && $listingInfo['checkouted'] == 1) {
             $subTotalPrice = 0;
             // проверить истек ли листинг, если истек , прайс прировнять к renewal_price
             if (SJB_ListingManager::getIfListingHasExpiredBySID($listing->getID()) && isset($productInfo['renewal_price'])) {
                 $subTotalPrice = $productInfo['renewal_price'];
             }
             $userSid = $listing->getUserSID();
             $productSid = $productInfo['product_sid'];
             $listingTitle = $listing->getProperty('Title')->getValue();
             $listingTypeSid = $listing->getListingTypeSID();
             $listingTypeId = SJB_ListingTypeManager::getListingTypeIDBySID($listingTypeSid);
             $newProductName = "Reactivation of \"{$listingTitle}\" {$listingTypeId}";
             $newProductInfo = SJB_ShoppingCart::createInfoForCustomProduct($userSid, $productSid, $listingSid, $subTotalPrice, $newProductName, 'activateListing');
             if ($subTotalPrice <= 0) {
                 if (SJB_ListingManager::activateListingBySID($listing->getSID())) {
                     SJB_Notifications::sendUserListingActivatedLetter($listing, $listing->getUserSID());
                 }
             } else {
                 SJB_ShoppingCart::createCustomProduct($newProductInfo, $userSid);
                 $shoppingUrl = SJB_System::getSystemSettings('SITE_URL') . '/shopping-cart/';
                 SJB_HelperFunctions::redirect($shoppingUrl);
             }
             $templateProcessor->assign('listingTypeID', SJB_ListingTypeManager::getListingTypeIDBySID($listingTypeSid));
         } elseif ($listingInfo['checkouted'] == 0) {
             $productsInfoFromShopppingCart = SJB_ShoppingCart::getProductsInfoFromCartByProductSID($productInfo['product_sid'], $listing->getUserSID());
             if (empty($productsInfoFromShopppingCart)) {
                 $productInfoToShopCart = SJB_ProductsManager::getProductInfoBySID($productInfo['product_sid']);
                 $productInfo['number_of_listings'] = 1;
                 $productObj = new SJB_Product($productInfoToShopCart, $productInfoToShopCart['product_type']);
                 $productObj->setNumberOfListings($productInfoToShopCart['number_of_listings']);
                 $productInfoToShopCart['price'] = $productObj->getPrice();
                 SJB_ShoppingCart::addToShoppingCart($productInfoToShopCart, $listing->getUserSID());
             }
             SJB_HelperFunctions::redirect(SJB_System::getSystemsettings('SITE_URL') . '/shopping-cart/');
         } else {
             $errors['LISTING_IS_NOT_COMPLETE'] = 1;
         }
     } elseif (is_null($listingSid)) {
         $errors['INVALID_LISTING_ID'] = 1;
     } elseif (!is_null($listing) && $listing->isActive()) {
         $errors['LISTING_ALREADY_ACTIVE'] = 1;
     } else {
         $errors['WRONG_LISTING_ID_SPECIFIED'] = 1;
     }
     $templateProcessor->assign("errors", isset($errors) ? $errors : null);
     $templateProcessor->display("pay_for_listing.tpl");
 }
コード例 #29
0
ファイル: captcha_plugin.php プロジェクト: Maxlander/shixi
 public static function editCaptcha($info)
 {
     $captchaType = !empty($info['type']) ? $info['type'] : '';
     $info['template'] = '../../../system/plugins/captcha/edit_captcha.tpl';
     $event = !empty($info['event']) ? $info['event'] : false;
     $settings = array();
     $errors = array();
     switch ($captchaType) {
         case 'reCaptcha':
             if ($event == 'save' && !empty($info['settings'])) {
                 foreach ($info['settings'] as $setting => $val) {
                     if ($val == '') {
                         $errors[$setting] = 'empty';
                     }
                 }
                 if (!$errors) {
                     SJB_Settings::updateSettings($info['settings']);
                     if (SJB_Request::getVar('submit') == 'save') {
                         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/system/miscellaneous/plugins/?action=settings&plugin=CaptchaPlugin');
                     }
                 }
             }
             $settings = array(array('id' => 'reCaptchaPubkey', 'caption' => 'Public Key', 'type' => 'string', 'length' => '50', 'order' => null, 'comment' => 'To get these Keys go to http://google.com/recaptcha/admin/create,<br/> register/sign in and then create a reCAPTCHA key following the given instructions.'), array('id' => 'reCaptchaPrivkey', 'caption' => 'Private Key', 'type' => 'string', 'length' => '50', 'order' => null, 'comment' => 'To get these Keys go to http://google.com/recaptcha/admin/create,<br/> register/sign in and then create a reCAPTCHA key following the given instructions.'), array('id' => 'reCaptchaTheme', 'caption' => 'Theme', 'type' => 'list', 'list_values' => array(array('id' => 'red', 'caption' => 'red'), array('id' => 'white', 'caption' => 'white'), array('id' => 'blackglass', 'caption' => 'blackglass'), array('id' => 'clean', 'caption' => 'clean')), 'length' => '50', 'order' => null));
             break;
         case 'customCaptcha':
             if ($event == 'save' && !empty($info['settings'])) {
                 foreach ($info['settings'] as $setting => $val) {
                     if ($val == '') {
                         $errors[$setting] = 'empty';
                     }
                 }
                 if (!$errors) {
                     SJB_Settings::updateSettings($info['settings']);
                     if (SJB_Request::getVar('submit') == 'save') {
                         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/system/miscellaneous/plugins/?action=settings&plugin=CaptchaPlugin');
                     }
                 }
             }
             $fontsDir = dir(SJB_BASE_DIR . "system/plugins/captcha/fonts");
             $fonts = array();
             $i = 0;
             while (false !== ($entry = $fontsDir->read())) {
                 if (strstr($entry, '.ttf') || strstr($entry, '.TTF')) {
                     $fonts[$i]['id'] = $fonts[$i]['caption'] = str_replace('.TTF', '', str_replace('.ttf', '', $entry));
                     $i++;
                 }
             }
             $settings = array(array('id' => 'custCaptchaFont', 'caption' => 'Font', 'type' => 'list', 'length' => '50', 'list_values' => $fonts, 'order' => null), array('id' => 'custCaptchaFontSize', 'caption' => 'Font Size', 'type' => 'integer', 'length' => '50', 'comment' => 'Allow you to specify the font size in pixels for generating the CAPTCHA. The default is 24px.', 'order' => null), array('id' => 'custCaptchaHeight', 'caption' => 'Height', 'type' => 'integer', 'length' => '50', 'order' => null), array('id' => 'custCaptchaWidth', 'caption' => 'Width', 'type' => 'integer', 'length' => '50', 'order' => null), array('id' => 'custCaptchaWordlen', 'caption' => 'Word Length', 'type' => 'integer', 'comment' => 'Allow you to specify the length of the generated "word" in characters.', 'length' => '50', 'order' => null), array('id' => 'custDotNoiseLevel', 'caption' => 'Dot Noise Level', 'type' => 'integer', 'length' => '50', 'order' => null), array('id' => 'custLineNoiseLevel', 'caption' => 'Line Noise Level', 'type' => 'integer', 'length' => '50', 'order' => null));
             break;
     }
     $info['fieldErrors'] = $errors;
     $info['savedSettings'] = SJB_Settings::getSettings();
     $info['settings'] = $settings;
     return $info;
 }
コード例 #30
0
 public function execute()
 {
     $request_uri = $_SERVER['REQUEST_URI'];
     $template_processor = SJB_System::getTemplateProcessor();
     $callback_page_uri = '';
     preg_match('#.*/system/payment/callback/([^/?]+)#', $request_uri, $mm);
     if (!empty($mm)) {
         $gateway_id = $mm[1];
         $redirectPage = $callback_page_uri . $gateway_id . "/";
         preg_match("(.*{$redirectPage}([^/]*)/?)", $request_uri, $invoice_sid);
         $invoice_sid = !empty($invoice_sid[1]) ? $invoice_sid[1] : '';
         $redirectPage = $callback_page_uri . $gateway_id . "/" . $invoice_sid;
         preg_match("(.*{$redirectPage}([^/]*)/?)", $request_uri, $tt);
         $redirectPage = !empty($tt[1]) ? $tt[1] : '';
         $invoice = SJB_InvoiceManager::getObjectBySID($invoice_sid);
         if (!empty($invoice) && $invoice->getStatus() == SJB_Invoice::INVOICE_STATUS_PAID) {
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/payment-completed/");
         }
         $gateway = SJB_PaymentGatewayManager::getObjectByID($gateway_id);
         $gateway_caption = $gateway->getPropertyValue('caption');
         $invoice = $gateway->getPaymentFromCallbackData($_REQUEST);
         SJB_PaymentLogManager::recordPaymentLog($gateway->getPaymentStatusFromCallbackData($_REQUEST), $gateway_caption, $_REQUEST);
         if (is_null($invoice)) {
             $errors = $gateway->getErrors();
             $template_processor->assign('errors', $errors);
             $template_processor->display('callback_payment_page.tpl');
         } else {
             $status = $invoice->getStatus();
             if ($status == SJB_Invoice::INVOICE_STATUS_VERIFIED) {
                 SJB_Statistics::addStatisticsFromInvoice($invoice);
                 $success_url = $invoice->getSuccessPageURL();
                 $page = empty($redirectPage) ? '' : '&' . $redirectPage;
                 SJB_HelperFunctions::redirect($success_url . '?invoice_sid=' . $invoice->getSID() . $page);
             } elseif ($status == SJB_Invoice::INVOICE_STATUS_PENDING) {
                 $template_processor->assign('message', 'INVOICE_WAITING');
                 $template_processor->display('callback_payment_page.tpl');
             } else {
                 SJB_InvoiceManager::markUnPaidInvoiceBySID($invoice_sid);
                 $payment_error = 1;
                 if ($gateway_id == 'paypal_pro') {
                     $httpPostResponse = SJB_Request::getVar('http_post_response', false);
                     if (!empty($httpPostResponse['L_SHORTMESSAGE0']) && urldecode($httpPostResponse['L_SHORTMESSAGE0']) == 'Authentication/Authorization Failed') {
                         $payment_error = 2;
                     }
                 }
                 SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/view-invoice/?sid=" . $invoice_sid . "&payment_error=" . $payment_error . "&payment_gateway=" . $gateway_id);
             }
         }
     } else {
         $errors['INVOICE_ID_IS_NOT_SET'] = 1;
         $template_processor->assign('errors', $errors);
         $template_processor->display('callback_payment_page.tpl');
     }
 }