コード例 #1
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');
 }
コード例 #2
0
ファイル: add_banner_group.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $bannersObj = new SJB_Banners();
     $action = SJB_Request::getVar('action');
     if (isset($action)) {
         $groupID = SJB_Request::getVar('groupID');
         switch ($action) {
             case 'add':
                 if ($groupID == '') {
                     SJB_FlashMessages::getInstance()->addWarning('EMPTY_VALUE', array('fieldCaption' => 'Group ID'));
                     break;
                 }
                 $result = $bannersObj->addBannerGroup($groupID);
                 if ($result === false) {
                     SJB_FlashMessages::getInstance()->addWarning('ERROR_ADD_BANNER_GROUP');
                     break;
                 }
                 $site_url = SJB_System::getSystemsettings('SITE_URL') . "/manage-banner-groups/";
                 header("Location: {$site_url}");
                 break;
         }
     }
     $tp->display("add_banner_group.tpl");
 }
コード例 #3
0
ファイル: FlashMessages.php プロジェクト: Maxlander/shixi
 /**
  * @return SJB_FlashMessages
  */
 public static function getInstance()
 {
     if (self::$instance === null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
コード例 #4
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');
     }
 }
コード例 #5
0
ファイル: export_listings.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     ini_set('max_execution_time', 0);
     $tp = SJB_System::getTemplateProcessor();
     $listingTypeId = SJB_Request::getVar('listing_type_id', 0);
     if (!$listingTypeId) {
         $listingTypeId = SJB_Request::getVar('listing_type', 0);
         if ($listingTypeId) {
             $listingTypeId = $listingTypeId['equal'];
         }
     }
     $exportProperties = SJB_Request::getVar('export_properties', array());
     $listing = SJB_ExportController::createListing($listingTypeId);
     $criteria = SJB_SearchFormBuilder::extractCriteriaFromRequestData($_REQUEST, $listing);
     $searchFormBuilder = new SJB_SearchFormBuilder($listing);
     $searchFormBuilder->registerTags($tp);
     $searchFormBuilder->setCriteria($criteria);
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         if (empty($exportProperties)) {
             SJB_FlashMessages::getInstance()->addWarning('EMPTY_EXPORT_PROPERTIES');
         } else {
             $searcher = new SJB_ListingSearcher();
             $searchAliases = SJB_ExportController::getSearchPropertyAliases();
             $foundListingsSid = $searcher->getObjectsSIDsByCriteria($criteria, $searchAliases);
             if (empty($foundListingsSid)) {
                 SJB_FlashMessages::getInstance()->addWarning('EMPTY_EXPORT_DATA');
             } else {
                 $result = SJB_ExportController::createExportDirectories();
                 if ($result === true) {
                     $exportProperties['extUserID'] = 1;
                     $exportAliases = SJB_ExportController::getExportPropertyAliases();
                     $exportData = SJB_ExportController::getExportData($foundListingsSid, $exportProperties, $exportAliases);
                     $fileName = 'export.xls';
                     SJB_ExportController::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') . '/archive-and-send-export-data');
                     }
                 }
             }
         }
     }
     $listingPropertiesId = SJB_ListingManager::getAllListingPropertiesID($listingTypeId);
     $tp->assign('properties_id', $listingPropertiesId);
     $tp->assign('selected_listing_type_id', $listingTypeId);
     $tp->display('export_listings.tpl');
 }
コード例 #6
0
ファイル: PageConstructor.php プロジェクト: Maxlander/shixi
 /**
  * 
  * @param SJB_PageConfig $page_config
  */
 public static function getPage($page_config)
 {
     SJB_System::setPageTitle($page_config->getPageTitle());
     SJB_System::setGlobalTemplateVariable('user_page_uri', $page_config->getPageUri());
     SJB_System::setPageKeywords($page_config->getPageKeywords());
     SJB_System::setPageDescription($page_config->getPageDescription());
     if ($page_config->getMainContentFunction() == 'add_listing') {
         $passed_parameters_via_uri = SJB_Request::getVar('passed_parameters_via_uri', false);
         if ($passed_parameters_via_uri) {
             $passed_parameters_via_uri = SJB_UrlParamProvider::getParams();
             if (isset($passed_parameters_via_uri[2])) {
                 $page_config->setMainContentFunction('add_listing_step');
             }
         }
     }
     $maincontent = SJB_System::executeFunction($page_config->getMainContentModule(), $page_config->getMainContentFunction(), $page_config->getParameters(), $page_config->getPageUri());
     if ($page_config->hasRawOutput()) {
         return $maincontent;
     }
     $page_templates_set_name = SJB_System::getSystemSettings('PAGE_TEMPLATES_MODULE_NAME');
     $template_supplier = new SJB_TemplateSupplier($page_templates_set_name);
     $tp = new SJB_TemplateProcessor($template_supplier);
     // assign 'highlight_templates' variable to main or index template
     if (SJB_Settings::getSettingByName('highlight_templates') == 1 && SJB_Request::getVar('admin_mode', false, 'COOKIE')) {
         $tp->assign('highlight_templates', true);
     }
     if ($errors = SJB_Error::getErrorContent()) {
         SJB_FlashMessages::getInstance()->addWarning($errors);
     }
     $tp->assign('MAIN_CONTENT', $maincontent);
     $tp->registerGlobalVariables();
     $tp->assign('sjb_version', SJB_System::getSystemSettings('SJB_VERSION'));
     $template = $page_config->getPageTemplate();
     $template_supplier->addContainerTemplate($template);
     if (SJB_Request::isAjax()) {
         $template = SJB_System::getSettingByName('default_page_template_by_http');
     } elseif (SJB_FormBuilderManager::getIfBuilderModeIsSet()) {
         $template = 'index_b.tpl';
     } else {
         if (empty($template)) {
             $template = SJB_Settings::getSettingByName('DEFAULT_PAGE_TEMPLATE');
         }
     }
     return $tp->fetch($template);
 }
コード例 #7
0
 /**
  * @param $invoice
  * @return bool
  */
 private function invoiceValidation($invoice)
 {
     if ($invoice instanceof SJB_Invoice) {
         if (SJB_UserManager::getCurrentUserSID() != $invoice->getUserSID()) {
             SJB_FlashMessages::getInstance()->addError('NOT_OWNER');
             return false;
         } else {
             if ($invoice->getStatus() == SJB_Invoice::INVOICE_STATUS_PAID) {
                 SJB_FlashMessages::getInstance()->addError('INVOICE_ALREADY_PAID');
                 return false;
             }
         }
     } else {
         SJB_FlashMessages::getInstance()->addError('NOT_VALID_PAYMENT_ID');
         return false;
     }
     return true;
 }
コード例 #8
0
ファイル: display.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $tp->assign('messagesArray', SJB_FlashMessages::getInstance()->getContentAndRemove());
     $tp->display('flash_errors.tpl');
 }
コード例 #9
0
ファイル: view_invoice.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $displayForm = new SJB_Form();
     $displayForm->registerTags($tp);
     $invoiceSid = SJB_Request::getVar('sid', false);
     if (SJB_Request::getVar('error', false)) {
         SJB_FlashMessages::getInstance()->addWarning('TCPDF_ERROR');
     }
     $action = SJB_Request::getVar('action', false);
     $paymentGateway = SJB_Request::getVar('payment_gateway', false);
     $template = 'print_invoice.tpl';
     $currentUserSID = SJB_UserManager::getCurrentUserSID();
     $invoiceInfo = SJB_InvoiceManager::getInvoiceInfoBySID($invoiceSid);
     if ($invoiceInfo) {
         if ($currentUserSID == $invoiceInfo['user_sid']) {
             $taxInfo = SJB_TaxesManager::getTaxInfoBySID($invoiceInfo['tax_info']['sid']);
             $invoiceInfo = array_merge($invoiceInfo, $_REQUEST);
             if (is_array($taxInfo)) {
                 $taxInfo = array_merge($invoiceInfo['tax_info'], $taxInfo);
             } else {
                 $taxInfo = $invoiceInfo['tax_info'];
             }
             $invoice = new SJB_Invoice($invoiceInfo);
             $invoice->setSID($invoiceSid);
             $userInfo = SJB_UserManager::getUserInfoBySID($currentUserSID);
             $username = $userInfo['CompanyName'] . ' ' . $userInfo['FirstName'] . ' ' . $userInfo['LastName'];
             $user = SJB_UserManager::getObjectBySID($currentUserSID);
             $productsSIDs = SJB_ProductsManager::getProductsIDsByUserGroupSID($userInfo['user_group_sid']);
             $products = array();
             foreach ($productsSIDs as $key => $productSID) {
                 $product = SJB_ProductsManager::getProductInfoBySID($productSID);
                 $products[$key] = $product;
             }
             $displayForm = new SJB_Form($invoice);
             $displayForm->registerTags($tp);
             $show = true;
             if ($action == 'download_pdf_version' || $action == 'print') {
                 $show = false;
             }
             $tp->assign('show', $show);
             $tp->assign('products', $products);
             $tp->assign('invoice_sid', $invoiceSid);
             $tp->assign('invoice_status', $invoiceInfo['status']);
             $tp->assign('username', trim($username));
             $tp->assign('user_sid', $currentUserSID);
             $tp->assign('tax', $taxInfo);
             $userStructure = SJB_UserManager::createTemplateStructureForUser($user);
             $tp->assign('user', $userStructure);
             $tp->assign('include_tax', $invoiceInfo['include_tax']);
             if ($action == 'download_pdf_version') {
                 $template = 'invoice_to_pdf.tpl';
                 $filename = 'invoice_' . $invoiceSid . '.pdf';
                 try {
                     SJB_HelperFunctions::html2pdf($tp->fetch($template), $filename);
                     exit;
                 } catch (Exception $e) {
                     SJB_Error::writeToLog($e->getMessage());
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . '/print-invoice/?sid=' . $invoiceSid . '&action=print&error=TCPDF_ERROR');
                 }
             }
         } else {
             SJB_FlashMessages::getInstance()->addError('NOT_OWNER');
         }
     } else {
         SJB_FlashMessages::getInstance()->addError('WRONG_INVOICE_ID_SPECIFIED');
     }
     if ($paymentGateway) {
         $gatewaySID = SJB_PaymentGatewayManager::getSIDByID($paymentGateway);
         $gatewayInfo = SJB_PaymentGatewayManager::getInfoBySID($gatewaySID);
         $tp->assign('gatewayInfo', $gatewayInfo);
     }
     $tp->assign('paymentError', SJB_Request::getVar('payment_error', false));
     $tp->display($template);
 }
コード例 #10
0
ファイル: TemplateProcessor.php プロジェクト: Maxlander/shixi
 public function display($template = null, $cache_id = null, $compile_id = null, $parent = null)
 {
     if (SJB_FlashMessages::getInstance()->isErrors()) {
         return;
     }
     $compile_id = $this->module_name;
     if (SJB_HelperFunctions::debugModeIsTurnedOn()) {
         SJB_HelperFunctions::debugInfoPush(array($compile_id => $template), 'TEMPLATE_PROCESSOR');
     }
     parent::display($this->templateSupplier->getTplName($template), $cache_id, $compile_id, $parent);
 }
コード例 #11
0
ファイル: ModuleManager.php プロジェクト: Maxlander/shixi
 /**
  * Execute module function
  *
  * This function will execute function of the module
  * If function does not exists, it will display error message
  *
  * @param string $module_name name of the module
  * @param string $function_name function's name
  * @param array $parameters_override _REQUEST parameters to rewrite
  */
 function executeFunction($module_name, $function_name, $parameters_override = array(), $pageID = false)
 {
     if (SJB_Users_CookiePreferences::isModuleDisabled($function_name)) {
         return;
     }
     ob_start();
     if ($this->isFunctionAccessible($module_name, $function_name)) {
         $script_filename = $this->getFunctionScriptFilename($module_name, $function_name);
         if ($script_filename != null && is_readable($script_filename)) {
             $adminAccessType = SJB_System::getSystemSettings('SYSTEM_ACCESS_TYPE') == SJB_System::getSystemSettings('ADMIN_ACCESS_TYPE');
             $this->prepareFunctionEnvironment($parameters_override);
             $this->pushExecutionStack($module_name, $function_name);
             $function = $this->getFunction($function_name, $module_name, $parameters_override);
             // permissions checking
             if (!$function->isAccessible()) {
                 if ($adminAccessType && SJB_SubAdmin::admin_authed()) {
                     $function = $this->getFunction('function_is_not_accessible_for_subadmin', 'miscellaneous');
                 } else {
                     $function = $this->getFunction('function_is_not_accessible', 'miscellaneous');
                 }
                 SJB_Request::getInstance()->setPageTemplate('index.tpl');
             }
             if (SJB_Profiler::getInstance()->isProfilerEnable()) {
                 SJB_DB::setFunctionInfo($function_name, $module_name);
                 $startTime = microtime(true);
                 $function->execute();
                 $spendTime = microtime(true) - $startTime;
                 $spendTime = number_format($spendTime, 8);
                 SJB_Profiler::getInstance()->gatherFunctionInfo($module_name, $function_name, $spendTime);
             } else {
                 $function->execute();
             }
             if (SJB_FlashMessages::getInstance()->isErrors()) {
                 $errors = SJB_FlashMessages::getInstance()->getErrorsAndRemove();
                 $function = $this->getFunctionForErrors($errors);
                 if ($function) {
                     ob_clean();
                     $function->execute();
                     SJB_Request::getInstance()->setPageTemplate('index.tpl');
                 }
             }
             $this->popExecutionStack();
             $this->restoreEnvironment();
         } else {
             return "<!-- Either wrong module/function or function script file does not exist for {$module_name}, {$function_name} -->";
         }
     } else {
         return "<!-- No such function or function is not accessible for {$module_name}, {$function_name} -->";
     }
     return ob_get_clean();
 }
コード例 #12
0
ファイル: registration.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $errors = array();
     $registration_form_template = 'registration_form.tpl';
     if (SJB_Authorization::isUserLoggedIn()) {
         $tp->display('already_logged_in.tpl');
         return;
     }
     $tp->assign('terms_of_use_check', SJB_System::getSettingByName('terms_of_use_check'));
     $user_group_id = SJB_Request::getVar('user_group_id', null);
     if (!is_null($user_group_id)) {
         $user_group_sid = SJB_UserGroupManager::getUserGroupSIDByID($user_group_id);
         if (empty($user_group_sid)) {
             $errors['NO_SUCH_USER_GROUP_IN_THE_SYSTEM'] = 1;
         }
     }
     $this->setSessionValueForRedirectAfterRegister();
     if (!is_null($user_group_id) && empty($errors)) {
         $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid);
         $user = SJB_ObjectMother::createUser($_REQUEST, $user_group_sid);
         if (SJB_Request::isAjax() || 'true' == SJB_Request::getVar('isajaxrequest')) {
             $field = SJB_Request::getVar('type');
             if ('email' == $field) {
                 $user->getProperty($field)->type->disableEmailConfirmation();
             }
             echo $user->getProperty($field)->isValid();
             exit;
         }
         $user->deleteProperty('active');
         $user->deleteProperty('featured');
         $form_submitted = SJB_Request::getVar('action', false) == 'register';
         if (class_exists('MobilePlugin') && MobilePlugin::isMobileThemeOn()) {
             $user->prepareRegistrationFields();
         }
         $registration_form = SJB_ObjectMother::createForm($user);
         $registration_form->registerTags($tp);
         if (SJB_UserGroupManager::isUserEmailAsUsernameInUserGroup($user_group_sid) && $form_submitted) {
             $email = $user->getPropertyValue('email');
             if (is_array($email)) {
                 $email = $email['original'];
             }
             $user->setPropertyValue('username', $email);
         }
         if ($form_submitted && $registration_form->isDataValid($errors)) {
             $user->deleteProperty('captcha');
             $defaultProduct = SJB_UserGroupManager::getDefaultProduct($user_group_sid);
             SJB_UserManager::saveUser($user);
             SJB_Statistics::addStatistics('addUser', $user->getUserGroupSID(), $user->getSID());
             $availableProductIDs = SJB_ProductsManager::getProductsIDsByUserGroupSID($user_group_sid);
             if ($defaultProduct && in_array($defaultProduct, $availableProductIDs)) {
                 $contract = new SJB_Contract(array('product_sid' => $defaultProduct));
                 $contract->setUserSID($user->getSID());
                 $contract->saveInDB();
             }
             // >>> SJB-1197
             // needs to check session for ajax-uploaded files, and set it to user profile
             $formToken = SJB_Request::getVar('form_token');
             $tmpUploadsStorage = SJB_Session::getValue('tmp_uploads_storage');
             if (!empty($formToken)) {
                 $tmpUploadedFields = SJB_Array::getPath($tmpUploadsStorage, $formToken);
                 if (!is_null($tmpUploadsStorage) && is_array($tmpUploadedFields)) {
                     // prepare user profile fields array
                     $userProfileFieldsInfo = SJB_UserProfileFieldManager::getAllFieldsInfo();
                     $userProfileFields = array();
                     foreach ($userProfileFieldsInfo as $field) {
                         $userProfileFields[$field['id']] = $field;
                     }
                     // look for temporary values
                     foreach ($tmpUploadedFields as $fieldId => $fieldInfo) {
                         // check field ID for valid ID in user profile fields
                         if (!array_key_exists($fieldId, $userProfileFields) || empty($fieldInfo)) {
                             continue;
                         }
                         $fieldType = $userProfileFields[$fieldId]['type'];
                         $profilePropertyId = $fieldId . '_' . $user->getSID();
                         switch (strtolower($fieldType)) {
                             case 'video':
                             case 'file':
                                 // change temporary file ID
                                 SJB_DB::query("UPDATE `uploaded_files` SET `id` = ?s WHERE `id` = ?s", $profilePropertyId, $fieldInfo['file_id']);
                                 // set value of user property to new uploaded file
                                 $user->setPropertyValue($fieldId, $profilePropertyId);
                                 break;
                             case 'logo':
                                 // change temporary file ID and thumb ID
                                 SJB_DB::query("UPDATE `uploaded_files` SET `id` = ?s WHERE `id` = ?s", $profilePropertyId, $fieldInfo['file_id']);
                                 SJB_DB::query("UPDATE `uploaded_files` SET `id` = ?s WHERE `id` = ?s", $profilePropertyId . '_thumb', $fieldInfo['file_id'] . '_thumb');
                                 // set value of user property to new uploaded file
                                 $user->setPropertyValue($fieldId, $profilePropertyId);
                                 break;
                             default:
                                 break;
                         }
                         $tmpUploadsStorage = SJB_Array::unsetValueByPath($tmpUploadsStorage, "{$formToken}/{$fieldId}");
                     }
                     // save user with new values
                     SJB_UserManager::saveUser($user);
                     // clean temporary storage
                     $tmpUploadsStorage = SJB_Array::unsetValueByPath($tmpUploadsStorage, "{$formToken}");
                     // CLEAR TEMPORARY SESSION STORAGE
                     SJB_Session::setValue('tmp_uploads_storage', $tmpUploadsStorage);
                 }
             }
             // <<< SJB-1197
             // notifying administrator
             SJB_AdminNotifications::sendAdminUserRegistrationLetter($user);
             // Activation
             $isSendActivationEmail = SJB_UserGroupManager::isSendActivationEmail($user_group_sid);
             $isApproveByAdmin = SJB_UserGroupManager::isApproveByAdmin($user_group_sid);
             if ($isApproveByAdmin) {
                 SJB_UserManager::setApprovalStatusByUserName($user->getUserName(), 'Pending');
             }
             if ($isSendActivationEmail) {
                 $fromAnonymousShoppingCart = SJB_Session::getValue('fromAnonymousShoppingCart');
                 SJB_Session::unsetValue('fromAnonymousShoppingCart');
                 $isSent = SJB_Notifications::sendUserActivationLetter($user->getSID(), $fromAnonymousShoppingCart ? true : false);
                 if ($isSent) {
                     $registration_form_template = 'registration_confirm.tpl';
                 } else {
                     SJB_FlashMessages::getInstance()->addWarning('ERROR_SEND_ACTIVATION_EMAIL');
                     $registration_form_template = 'registration_failed_to_send_activation_email.tpl';
                 }
             } else {
                 if (!$isSendActivationEmail && $isApproveByAdmin) {
                     SJB_UserManager::setApprovalStatusByUserName($user->getUserName(), 'Pending');
                     $registration_form_template = 'registration_pending.tpl';
                 } else {
                     SJB_UserManager::activateUserByUserName($user->getUserName());
                     if (!SJB_SocialPlugin::getProfileSocialID($user->getSID())) {
                         SJB_Notifications::sendUserWelcomeLetter($user->getSID());
                     }
                     SJB_Authorization::login($user->getUserName(), $_REQUEST['password']['original'], false, $errors);
                     $proceedToPosting = SJB_Session::getValue('proceed_to_posting');
                     if ($proceedToPosting) {
                         $redirectUrl = SJB_HelperFunctions::getSiteUrl() . '/add-listing/?listing_type_id=' . SJB_Session::getValue('listing_type_id') . '&proceed_to_posting=' . $proceedToPosting . '&productSID=' . SJB_Session::getValue('productSID');
                     } else {
                         $pageId = !empty($user_group_info['after_registration_redirect_to']) ? $user_group_info['after_registration_redirect_to'] : '';
                         $redirectUrl = SJB_UserGroupManager::getRedirectUrlByPageID($pageId);
                     }
                     SJB_HelperFunctions::redirect($redirectUrl);
                 }
             }
         } else {
             if (SJB_UserGroupManager::isUserEmailAsUsernameInUserGroup($user_group_sid)) {
                 $user->deleteProperty('username');
             }
             $registration_form = SJB_ObjectMother::createForm($user);
             $registration_form->registerTags($tp);
             $registration_form_template = 'registration_form.tpl';
             if (isset($_REQUEST['reg_form_template'])) {
                 $registration_form_template = $_REQUEST['reg_form_template'];
             } elseif (!empty($user_group_info['reg_form_template'])) {
                 $registration_form_template = $user_group_info['reg_form_template'];
             }
             $form_fields = $registration_form->getFormFieldsInfo();
             // define default template with ajax checking
             $registration_form->setDefaultTemplateByFieldName('email', 'email_ajaxchecking.tpl');
             $registration_form->setDefaultTemplateByFieldName('username', 'unique_string.tpl');
             // use specific template for user profile video
             $registration_form->setDefaultTemplateByFieldName('video', 'video_profile.tpl');
             $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid);
             $tp->assign('user_group_info', $user_group_info);
             $tp->assign('errors', $errors);
             $tp->assign('form_fields', $form_fields);
             $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
             $tp->assign('METADATA', array('form_fields' => $metaDataProvider->getFormFieldsMetadata($form_fields)));
         }
     } else {
         $registration_form_template = 'registration_choose_user_group.tpl';
         $user_groups_info = SJB_UserGroupManager::getAllUserGroupsInfo();
         $tp->assign('user_groups_info', $user_groups_info);
     }
     $tp->assign('userTree', true);
     $tp->assign('errors', $errors);
     $tp->display($registration_form_template);
 }
コード例 #13
0
ファイル: social_media.php プロジェクト: Maxlander/shixi
 /**
  * @param  array  $settings
  * @param  string $socialPlugin
  * @return bool
  */
 private function checkFields(array $settings, $socialPlugin)
 {
     $pluginObj = new $socialPlugin();
     $settingsFields = $pluginObj->getConnectSettings();
     $error = false;
     foreach ($settingsFields as $settingsField) {
         if (!empty($settingsField['is_required']) && $settingsField['is_required'] === true && empty($settings[$settingsField['id']])) {
             SJB_FlashMessages::getInstance()->addWarning('EMPTY_VALUE', array('fieldCaption' => $settingsField['caption']));
             $error = true;
         } else {
             if (!empty($settingsField['validators'])) {
                 foreach ($settingsField['validators'] as $validator) {
                     $isValid = $validator::isValid($settings[$settingsField['id']]);
                     if ($isValid !== true) {
                         SJB_FlashMessages::getInstance()->addWarning('EMPTY_VALUE', array('fieldCaption' => $settingsField['caption']));
                         $error = true;
                     }
                 }
             }
         }
     }
     return $error;
 }
コード例 #14
0
ファイル: view.php プロジェクト: Maxlander/shixi
 private function executeApplicationsForEmployer($appsPerPage, $appJobId, SJB_User $currentUser, $score, $orderInfo, $listingTitle)
 {
     $limit['countRows'] = $appsPerPage;
     $limit['startRow'] = $this->currentPage * $appsPerPage - $appsPerPage;
     $subuser = false;
     if ($appJobId) {
         $isUserOwnerApps = SJB_Applications::isUserOwnsAppsByAppJobId($currentUser->getID(), $appJobId);
         if (!$isUserOwnerApps) {
             SJB_FlashMessages::getInstance()->addWarning('NOT_OWNER_OF_APPLICATIONS', array('listingTitle' => $listingTitle));
         }
         $allAppsCountByJobID = SJB_Applications::getCountAppsByJob($appJobId, $score);
         $this->setPaginationInfo($appsPerPage, $allAppsCountByJobID);
         $apps = SJB_Applications::getByJob($appJobId, $orderInfo, $score, $limit);
     } else {
         if ($currentUser->isSubuser()) {
             $subuserInfo = $currentUser->getSubuserInfo();
             if (!SJB_Acl::getInstance()->isAllowed('subuser_manage_listings', $subuserInfo['sid'])) {
                 $subuser = $subuserInfo['sid'];
             }
         }
         $allAppsCount = SJB_Applications::getCountApplicationsByEmployer($currentUser->getSID(), $score, $subuser);
         $this->setPaginationInfo($appsPerPage, $allAppsCount);
         $apps = SJB_Applications::getByEmployer($currentUser->getSID(), $orderInfo, $score, $subuser, $limit);
     }
     return $apps;
 }
コード例 #15
0
ファイル: add_questionnaire.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $action = SJB_Request::getVar('action', 'add');
     $submit = SJB_Request::getVar('submit', false);
     $template = SJB_Request::getVar('template_name', 'add_questionnaire.tpl');
     $sid = SJB_Request::getVar('sid', null, null, 'int');
     $edit = SJB_Request::getVar('edit', false);
     if (isset($_REQUEST['passed_parameters_via_uri'])) {
         $passed_parameters_via_uri = SJB_UrlParamProvider::getParams();
         $sid = isset($passed_parameters_via_uri[0]) ? $passed_parameters_via_uri[0] : null;
     }
     $errors = array();
     $questionnaireInfo = SJB_ScreeningQuestionnaires::getInfoBySID($sid);
     if (!empty($questionnaireInfo['sid']) && !SJB_ScreeningQuestionnaires::isUserOwnerQuestionnaire(SJB_UserManager::getCurrentUserSID(), $questionnaireInfo['sid'])) {
         SJB_FlashMessages::getInstance()->addError('NOT_OWNER');
     } else {
         if (SJB_Acl::getInstance()->isAllowed('use_screening_questionnaires')) {
             $questionnaireInfo = $questionnaireInfo ? $questionnaireInfo : array();
             $questionnaireInfo = array_merge($questionnaireInfo, $_REQUEST);
             $questionnaire = new SJB_ScreeningQuestionnaires($questionnaireInfo);
             if ($submit) {
                 $questionnaire->addProperty(array('id' => 'user_sid', 'type' => 'id', 'value' => SJB_UserManager::getCurrentUserSID(), 'is_system' => true));
             }
             if (isset($sid) && !is_null($sid)) {
                 $questionnaire->setSID($sid);
             }
             $addForm = new SJB_Form($questionnaire);
             $addForm->registerTags($tp);
             switch ($submit) {
                 case 'add':
                     if ($addForm->isDataValid($errors)) {
                         SJB_ScreeningQuestionnaires::save($questionnaire);
                         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/screening-questionnaires/add-questions/{$questionnaire->sid}/");
                     } else {
                         $action = 'add';
                         $questionnaire->deleteProperty('user_sid');
                         $addForm = new SJB_Form($questionnaire);
                         $addForm->registerTags($tp);
                     }
                     break;
                 case 'edit':
                     if ($addForm->isDataValid($errors)) {
                         SJB_ScreeningQuestionnaires::save($questionnaire);
                         SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/screening-questionnaires/edit/{$questionnaire->sid}/?edit=1");
                     } else {
                         $tp->assign('sid', $_REQUEST['sid']);
                         $questionnaire->deleteProperty('user_sid');
                         $addForm = new SJB_Form($questionnaire);
                         $addForm->registerTags($tp);
                         $action = 'edit';
                     }
                     break;
             }
             $form_fields = $addForm->getFormFieldsInfo();
             $tp->assign('form_fields', $form_fields);
             $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
             $tp->assign('METADATA', array('form_fields' => $metaDataProvider->getFormFieldsMetadata($form_fields)));
             $tp->assign('edit', $edit);
             $tp->assign('request', $questionnaireInfo);
             $tp->assign('sid', $sid);
             $tp->assign('action', $action);
             $tp->assign('errors', $errors);
             $tp->display($template);
         }
     }
 }