/** * @return array */ public function getResources($type = 'all', $role = '') { $listingsTypes = SJB_ListingTypeDBManager::getAllListingTypesInfo(); /* sort by resume, job then others */ usort($listingsTypes, function ($listingType) { return $listingType['id'] == 'Job' || $listingType['id'] == 'Resume' ? true : false; }); $listingsTypes = array_reverse($listingsTypes); $listingsTypesResources = array(); foreach ($listingsTypes as $listingType) { $listingType['name'] = !in_array($listingType['name'], array('Resume', 'Job')) ? "'{$listingType['name']}' Listings" : $listingType['name'] . 's'; $listingType['id'] = !in_array($listingType['id'], array('Resume', 'Job')) ? "{$listingType['id']}_listings" : $listingType['id'] . 's'; $listingsTypesResources['manage_' . mb_strtolower($listingType['id'], 'UTF-8')] = array('title' => "Manage {$listingType['name']}", 'group' => 'listings', 'type' => 'subadmin'); $listingsTypesResources['get_notifications_on_' . mb_strtolower($listingType['id'], 'UTF-8') . '_added'] = array('title' => 'Get Notifications on ' . $listingType['name'] . ' Added', 'group' => 'listings', 'type' => 'subadmin', 'parent' => 'manage_' . mb_strtolower($listingType['id'], 'UTF-8'), 'notification' => true); $listingsTypesResources['get_notifications_on_' . mb_strtolower($listingType['id'], 'UTF-8') . '_expiration'] = array('title' => 'Get Notifications on ' . $listingType['name'] . ' Expiration', 'group' => 'listings', 'type' => 'subadmin', 'parent' => 'manage_' . mb_strtolower($listingType['id'], 'UTF-8'), 'notification' => true); } $resources = array('manage_common_listing_fields' => array('title' => 'Manage Common Listing Fields', 'group' => 'listings', 'type' => 'subadmin'), 'manage_listing_types_and_specific_listing_fields' => array('title' => 'Manage Listing Types and Specific Listing Fields', 'group' => 'listings', 'type' => 'subadmin'), 'set_posting_pages' => array('title' => 'Set Posting Pages', 'group' => 'listings', 'type' => 'subadmin'), 'import_listings' => array('title' => 'Import Listings', 'group' => 'listings', 'type' => 'subadmin'), 'export_listings' => array('title' => 'Export Listings', 'group' => 'listings', 'type' => 'subadmin'), 'set_xml_feeds' => array('title' => 'Set XML Feeds', 'group' => 'listings', 'type' => 'subadmin'), 'set_xml_import' => array('title' => 'Set XML Import', 'group' => 'listings', 'type' => 'subadmin'), 'manage_flagged_listings' => array('title' => 'Manage Flagged Listings', 'group' => 'listings', 'type' => 'subadmin'), 'get_notifications_on_listing_flagged' => array('title' => 'Get Notifications on Listing Flagged', 'group' => 'listings', 'type' => 'subadmin', 'parent' => 'manage_flagged_listings', 'notification' => true), 'manage_user_groups' => array('title' => 'Manage User Groups', 'group' => 'users', 'type' => 'subadmin'), 'manage_user_groups_permissions' => array('title' => 'Manage User Groups Permissions', 'group' => 'users', 'type' => 'subadmin', 'parent' => 'manage_user_groups'), 'edit_user_groups_profile_fields' => array('title' => 'Edit User Groups Profile Fields', 'group' => 'users', 'type' => 'subadmin', 'parent' => 'manage_user_groups'), 'import_users' => array('title' => 'Import Users', 'group' => 'users', 'type' => 'subadmin'), 'export_users' => array('title' => 'Export Users', 'group' => 'users', 'type' => 'subadmin'), 'create_and_send_mass_mailings' => array('title' => 'Create and Send Mass Mailings', 'group' => 'users', 'type' => 'subadmin'), 'manage_guest_email_alerts' => array('title' => 'Manage Guest Email Alerts', 'group' => 'users', 'type' => 'subadmin'), 'manage_banned_ips' => array('title' => 'Manage Banned IPs', 'group' => 'users', 'type' => 'subadmin'), 'edit_form_builder' => array('title' => 'Use Form Bulider', 'group' => 'layout and content', 'type' => 'subadmin'), 'edit_templates_and_themes' => array('title' => 'Edit Templates and Themes', 'group' => 'layout and content', 'type' => 'subadmin'), 'manage_banners' => array('title' => 'Manage Banners', 'group' => 'layout and content', 'type' => 'subadmin'), 'manage_site_pages' => array('title' => 'Manage Site Pages', 'group' => 'layout and content', 'type' => 'subadmin'), 'manage_static_content' => array('title' => 'Manage Static Content', 'group' => 'layout and content', 'type' => 'subadmin'), 'manage_news' => array('title' => 'Manage News', 'group' => 'layout and content', 'type' => 'subadmin'), 'manage_polls' => array('title' => 'Manage Polls', 'group' => 'layout and content', 'type' => 'subadmin'), 'configure_system_settings' => array('title' => 'Configure System Settings', 'group' => 'system configuration', 'type' => 'subadmin'), 'social_media' => array('title' => 'Social Media', 'group' => 'system configuration', 'type' => 'subadmin'), 'social_media_bitly' => array('title' => 'Bitly Settings', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'social_media'), 'edit_zipcode_database' => array('title' => 'Edit ZipCode Database', 'group' => 'system configuration', 'type' => 'subadmin'), 'manage_countries' => array('title' => 'Manage Countries', 'group' => 'system configuration', 'type' => 'subadmin'), 'manage_states_or_regions' => array('title' => 'Manage States/Regions', 'group' => 'system configuration', 'type' => 'subadmin'), 'configure_breadcrumbs' => array('title' => 'Configure Breadcrumbs', 'group' => 'system configuration', 'type' => 'subadmin'), 'set_html_filters' => array('title' => 'Set HTML filters', 'group' => 'system configuration', 'type' => 'subadmin'), 'manage_currencies' => array('title' => 'Manage Currencies', 'group' => 'system configuration', 'type' => 'subadmin'), 'set_task_scheduler' => array('title' => 'Set Task Scheduler', 'group' => 'system configuration', 'type' => 'subadmin'), 'manage_plug-ins' => array('title' => 'Manage Plug-ins', 'group' => 'system configuration', 'type' => 'subadmin'), 'set_phpbb_plug-in' => array('title' => 'Set PhpBB Plug-in', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_facebook_plug-in' => array('title' => 'Set Facebook Plug-in', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_linkedin_plug-in' => array('title' => 'Set Linkedin Plug-in', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_wordpress_plug-in' => array('title' => 'Set WordPress Plug-in', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_twitter_plug-in' => array('title' => 'Set Twitter Plug-in', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_sharethisplugin' => array('title' => 'Set ShareThisPlugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_captchaplugin' => array('title' => 'Set CaptchaPlugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_indeedplugin' => array('title' => 'Set IndeedPlugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_jujuplugin' => array('title' => 'Set JujuPlugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_simplyhiredplugin' => array('title' => 'Set SimplyHiredPlugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_googleplugin' => array('title' => 'Set Google Social Plugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_googleanalyticsplugin' => array('title' => 'Set Google Analytics Plugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_beyondplugin' => array('title' => 'Set Beyond Plugin', 'group' => 'system configuration', 'type' => 'subadmin', 'parent' => 'manage_plug-ins'), 'set_refine_search_parameters' => array('title' => 'Set Refine Search Parameters', 'group' => 'system configuration', 'type' => 'subadmin'), 'create_and_restore_backups' => array('title' => 'Create and Restore Backups', 'group' => 'system configuration', 'type' => 'subadmin'), 'edit_flag_listing_settings' => array('title' => 'Edit Flag Listing Settings', 'group' => 'system configuration', 'type' => 'subadmin'), 'email_log' => array('title' => 'View Email Log', 'group' => 'system configuration', 'type' => 'subadmin'), 'manage_invoices' => array('title' => 'Manage Invoices', 'group' => 'billing', 'type' => 'subadmin'), 'manage_products' => array('title' => 'Manage Products', 'group' => 'billing', 'type' => 'subadmin'), 'manage_promotions' => array('title' => 'Manage Promotions', 'group' => 'billing', 'type' => 'subadmin'), 'manage_tax_rules' => array('title' => 'Manage Tax Rules', 'group' => 'billing', 'type' => 'subadmin'), 'manage_payment_gateways' => array('title' => 'Manage Payment Gateways', 'group' => 'billing', 'type' => 'subadmin'), 'transaction_history' => array('title' => 'View Transaction History', 'group' => 'billing', 'type' => 'subadmin'), 'payment_log' => array('title' => 'View Payment Log', 'group' => 'billing', 'type' => 'subadmin'), 'general_statistics' => array('title' => 'View General Statistics', 'group' => 'reports', 'type' => 'subadmin'), 'listings_reports' => array('title' => 'View Listings Reports', 'group' => 'reports', 'type' => 'subadmin'), 'applications_and_views_reports' => array('title' => 'View Applications and Views Reports', 'group' => 'reports', 'type' => 'subadmin'), 'sales_reports' => array('title' => 'View Sales Reports', 'group' => 'reports', 'type' => 'subadmin'), 'guest_alerts_reports' => array('title' => 'View Guest Alerts Reports', 'group' => 'reports', 'type' => 'subadmin'), 'manage_languages' => array('title' => 'Manage Languages', 'group' => 'languages', 'type' => 'subadmin'), 'translate_phrases' => array('title' => 'Translate Phrases', 'group' => 'languages', 'type' => 'subadmin'), 'import_languages' => array('title' => 'Import Languages', 'group' => 'languages', 'type' => 'subadmin'), 'export_languages' => array('title' => 'Export Languages', 'group' => 'languages', 'type' => 'subadmin')); $resources = array_merge($listingsTypesResources, $resources); $userGroups = SJB_UserGroupManager::getAllUserGroupsInfo(); foreach ($userGroups as $userGroup) { $userGroupId = mb_strtolower($userGroup['id'], 'UTF-8'); $userGroupName = $userGroup['name']; if ($userGroup['name'] == 'Job Seeker' || $userGroup['name'] == 'Employer') { $titleEdition = $userGroup['name'] . 's'; } else { $titleEdition = '\'$permission.groupName\' users'; } $resources['manage_' . $userGroupId] = array('title' => 'Manage ' . $titleEdition, 'groupName' => $userGroupName, 'group' => 'users', 'type' => 'subadmin'); $resources['get_notifications_on_' . $userGroupId . '_registration'] = array('title' => 'Get Notifications on Registration of ' . $titleEdition, 'groupName' => $userGroupName, 'group' => 'users', 'type' => 'subadmin', 'parent' => 'manage_' . $userGroupId, 'notification' => true); $resources['get_notifications_on_' . $userGroupId . '_subscription_expiration'] = array('title' => 'Get Notifications on Products Expiration of ' . $titleEdition, 'groupName' => $userGroupName, 'group' => 'users', 'type' => 'subadmin', 'parent' => 'manage_' . $userGroupId, 'notification' => true); $resources['get_notifications_on_deleting_' . $userGroupId . '_profile'] = array('title' => 'Get Notifications on Profile Deletion of ' . $titleEdition, 'groupName' => $userGroupName, 'group' => 'users', 'type' => 'subadmin', 'parent' => 'manage_' . $userGroupId, 'notification' => true); } return $resources; }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $invoice_sid = SJB_Request::getVar('invoice_sid', null, false, 'int'); $invoice = SJB_InvoiceManager::getObjectBySID($invoice_sid); $user = null; $errors = null; $userHasContract = false; if (!is_null($invoice)) { $status = $invoice->getStatus(); if ($status == SJB_Invoice::INVOICE_STATUS_VERIFIED) { $userSID = $invoice->getPropertyValue('user_sid'); $items = $invoice->getPropertyValue('items'); $products = $items['products']; $user = SJB_UserManager::getObjectBySID($userSID); $userHasContract = $user->hasContract(); $paymentStatus = false; foreach ($products as $key => $productSID) { if ($productSID != -1) { $product_info = $invoice->getItemValue($key); $products[$key] = $product_info; if (!empty($product_info['listing_type_sid'])) { $listingTypeID = SJB_ListingTypeDBManager::getListingTypeIDBySID($product_info['listing_type_sid']); $listingTypeName = SJB_ListingTypeManager::getListingTypeNameBySID($product_info['listing_type_sid']); if (!in_array($listingTypeID, array('Job', 'Resume'))) { $listingTypeName .= ' Listing'; } $listingTypes[] = array('ID' => $listingTypeID, 'name' => $listingTypeName); } $listingNumber = $product_info['qty']; $contract = new SJB_Contract(array('product_sid' => $productSID, 'numberOfListings' => $listingNumber, 'is_recurring' => $invoice->isRecurring())); $contract->setUserSID($userSID); $contract->setPrice($items['amount'][$key]); if ($contract->saveInDB()) { SJB_ListingManager::activateListingsAfterPaid($userSID, $productSID, $contract->getID(), $listingNumber); SJB_ShoppingCart::deleteItemFromCartBySID($product_info['shoppingCartRecord'], $userSID); $bannerInfo = $product_info['banner_info']; $paymentStatus = true; if ($product_info['product_type'] == 'banners' && !empty($bannerInfo)) { $bannersObj = new SJB_Banners(); $bannersObj->addBanner($bannerInfo['title'], $bannerInfo['link'], $bannerInfo['bannerFilePath'], $bannerInfo['sx'], $bannerInfo['sy'], $bannerInfo['type'], 0, $bannerInfo['banner_group_sid'], $bannerInfo, $userSID, $contract->getID()); $bannerGroup = $bannersObj->getBannerGroupBySID($bannerInfo['banner_group_sid']); SJB_AdminNotifications::sendAdminBannerAddedLetter($userSID, $bannerGroup); } if ($contract->isFeaturedProfile()) { SJB_UserManager::makeFeaturedBySID($userSID); } if (SJB_UserNotificationsManager::isUserNotifiedOnSubscriptionActivation($userSID)) { SJB_Notifications::sendSubscriptionActivationLetter($userSID, $product_info); } } } else { if (isset($items['custom_info'][$key]['type'])) { $products[$key] = $this->updateListing($items['custom_info'][$key]['type'], $key, $items, $userSID); } else { $products[$key] = array('name' => $items['custom_item'][$key]); } $paymentStatus = true; } } if ($paymentStatus) { $invoice->setStatus(SJB_Invoice::INVOICE_STATUS_PAID); SJB_InvoiceManager::saveInvoice($invoice); SJB_PromotionsManager::markPromotionAsPaidByInvoiceSID($invoice->getSID()); } if (isset($listingTypes)) { $tp->assign('listingTypes', $listingTypes); } $tp->assign('products', $products); } else { $errors['INVOICE_IS_NOT_VERIFIED'] = 1; } } else { $errors['INVALID_INVOICE_ID'] = 1; } if (!$errors) { $subTotal = $invoice->getPropertyValue('sub_total'); if (empty($subTotal)) { SJB_Statistics::addStatisticsFromInvoice($invoice); } $isUserJustRegistered = SJB_UserManager::isCurrentUserJustRegistered(); if (isset($items['products']) && count($items['products']) == 1 && $isUserJustRegistered && !$userHasContract) { $userGroupInfo = SJB_UserGroupManager::getUserGroupInfoBySID($user->getUserGroupSID()); $pageId = !empty($userGroupInfo['after_registration_redirect_to']) ? $userGroupInfo['after_registration_redirect_to'] : ''; $redirectUrl = SJB_UserGroupManager::getRedirectUrlByPageID($pageId); SJB_HelperFunctions::redirect($redirectUrl); } } $tp->assign('errors', $errors); $tp->display('create_contract.tpl'); }
function copyEntireTheme($copiedThemeName, $newThemeName) { $newThemePath = SJB_TemplatePathManager::getAbsoluteThemePath($copiedThemeName); $copiedThemePath = SJB_TemplatePathManager::getAbsoluteThemePath($newThemeName); SJB_Filesystem::copy($newThemePath, $copiedThemePath); SJB_Filesystem::mkpath(SJB_TemplatePathManager::getAbsoluteThemeCachePath($newThemeName)); $themeFields = SJB_FormBuilderManager::getFieldsByTheme($copiedThemeName); foreach ($themeFields as $themeField) { SJB_FormBuilderManager::insertField($newThemeName, $themeField); } $screenFile = $copiedThemePath . "main/images/{$copiedThemeName}.png"; $newScreenFile = $copiedThemePath . "main/images/{$newThemeName}.png"; if (file_exists($screenFile)) { rename($screenFile, $newScreenFile); } $listingTypes = SJB_ListingTypeDBManager::getAllListingTypesInfo(); foreach ($listingTypes as $listingType) { SJB_Settings::addSetting("display_layout_{$listingType['id']}_{$newThemeName}", SJB_Settings::getSettingByName("display_layout_{$listingType['id']}_{$copiedThemeName}")); } }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $current_user = SJB_UserManager::getCurrentUser(); $action = SJB_Request::getVar('action', 'productList'); $productSID = SJB_Request::getVar('product_sid', 0, 'default', 'int'); $template = 'products.tpl'; $availableProducts = array(); $errors = array(); switch ($action) { case 'productList': if (SJB_UserManager::isUserLoggedIn()) { $postingProductsOnly = SJB_Request::getVar('postingProductsOnly', false); $availableProducts = SJB_ProductsManager::getProductsByUserGroupSID($current_user->getUserGroupSID(), $current_user->getSID()); $trialProduncts = $current_user->getTrialProductSIDByUserSID(); foreach ($availableProducts as $key => $availableProduct) { if (in_array($availableProduct['sid'], $trialProduncts) || $postingProductsOnly && $availableProduct['product_type'] != "post_listings" && $availableProduct['product_type'] != "mixed_product") { unset($availableProducts[$key]); } } if ($postingProductsOnly) { $tp->assign('postingProductsOnly', $postingProductsOnly); } } elseif ($userGroupID = SJB_Request::getVar('userGroupID', false)) { $userGroupSID = SJB_UserGroupManager::getUserGroupSIDByID($userGroupID); $availableProducts = SJB_ProductsManager::getProductsByUserGroupSID($userGroupSID, 0); } else { $availableProducts = SJB_ProductsManager::getAllActiveProducts(); } foreach ($availableProducts as $key => $availableProductInfo) { if (SJB_ProductsManager::isProductTrialAndAlreadyInCart($availableProductInfo, $current_user)) { unset($availableProducts[$key]); continue; } $availableProduct = new SJB_Product($availableProductInfo, $availableProductInfo['product_type']); $availableProduct->setNumberOfListings(1); $availableProducts[$key]['price'] = $availableProduct->getPrice(); if (isset($availableProducts[$key]['listing_type_sid'])) { $availableProducts[$key]['listing_type_id'] = SJB_ListingTypeDBManager::getListingTypeIDBySID($availableProducts[$key]['listing_type_sid']); } } SJB_Event::dispatch('RedefineTemplateName', $template, true); SJB_Event::dispatch('RedefineProductsDisplayInfo', $availableProducts, true); $tp->assign("account_activated", SJB_Request::getVar('account_activated', '')); $tp->assign("availableProducts", $availableProducts); break; case 'view_product_detail': $template = 'view_product_detail.tpl'; if (!SJB_UserManager::isUserLoggedIn() || $current_user->mayChooseProduct($productSID, $errors)) { $productInfo = SJB_ProductsManager::getProductInfoBySID($productSID); if (in_array($productInfo['product_type'], array('post_listings', 'mixed_product'))) { $productInfo['listingTypeID'] = SJB_ListingTypeManager::getListingTypeIDBySID($productInfo['listing_type_sid']); } $event = SJB_Request::getVar('event', false); if ($event) { if ($productInfo) { switch ($productInfo['product_type']) { case 'banners': $params = $_REQUEST; if (empty($params['title'])) { $errors[] = "Banner Title is empty."; } if (empty($params['link'])) { $errors[] = "Banner link mismatched!"; } if (empty($_FILES['image']['name'])) { $errors[] = "No file attached!"; } elseif ($_FILES['image']['error']) { switch ($_FILES['image']['error']) { case '1': $errors[] = 'UPLOAD_ERR_INI_SIZE'; break; case '2': $errors[] = 'UPLOAD_ERR_FORM_SIZE'; break; case '3': $errors[] = 'UPLOAD_ERR_PARTIAL'; break; case '4': $errors[] = 'UPLOAD_ERR_NO_FILE'; break; default: $errors[] = 'NOT_UPLOAD_FILE'; break; } } else { $imageInfo = @getimagesize($_FILES['image']['tmp_name']); if (!$imageInfo || $imageInfo['2'] < 1 && $imageInfo['2'] > 3) { $errors[] = 'Image format is not supported'; } elseif (!empty($productInfo['width']) && $imageInfo[0] != $productInfo['width']) { $errors[] = "Your banner dimensions exceed the required size. Please upload an appropriate banner."; } elseif (!empty($productInfo['height']) && $imageInfo[1] != $productInfo['height']) { $errors[] = "Your banner dimensions exceed the required size. Please upload an appropriate banner."; } } if ($errors) { break; } //add banner $title = $params['title']; $link = $params['link']; $expr = preg_match("/(http:\\/\\/)/", $link, $matches); if ($expr != true) { $link = "http://" . $link; } $filesDir = SJB_System::getSystemSettings('FILES_DIR'); $ext = preg_match("|\\.(\\w{3})\\b|u", $_FILES['image']['name'], $arr); $fileName = preg_replace("|\\.(\\w{3})\\b|u", "", $_FILES['image']['name']); $hashName = md5(time() * $_FILES['image']['size']) . "_" . $fileName; $bannerFilePath = $filesDir . "banners/" . $hashName . "." . $arr[1]; $copy = move_uploaded_file($_FILES['image']['tmp_name'], $bannerFilePath); if (!$copy) { $errors[] = 'Cannot copy file from TMP dir to Banners Dir'; break; } if ($_FILES['image']['type'] != 'application/x-shockwave-flash') { $bannerInfo = getimagesize($bannerFilePath); if ($productInfo['width'] != '' && $productInfo['height'] != '') { $sx = $productInfo['width']; $sy = $productInfo['height']; } else { $sx = $bannerInfo[0]; $sy = $bannerInfo[1]; } $type = $bannerInfo['mime']; } else { if ($productInfo['width'] == '' || $productInfo['height'] == '') { $errors[] = 'Your banner dimensions exceed the required size. Please upload an appropriate banner.'; break; } $sx = $productInfo['width']; $sy = $productInfo['height']; $type = $_FILES['image']['type']; } $active = 0; $group = $productInfo['banner_group_sid']; $params['bannerFilePath'] = "/" . str_replace("../", "/", str_replace(SJB_BASE_DIR, '', $bannerFilePath)); $params['openBannerIn'] = ''; $params['bannerType'] = 'file'; $params['code'] = ''; $params['title'] = $title; $params['link'] = $link; $params['type'] = $type; $params['sx'] = $sx; $params['sy'] = $sy; $params['banner_group_sid'] = $group; $productInfo['banner_info'] = $params; break; } if (!$errors) { $numberOfListings = SJB_Request::getVar('number_of_listings'); $extraInfo = SJB_ProductsManager::getProductExtraInfoBySID($productSID); if (!empty($extraInfo['pricing_type']) && $extraInfo['pricing_type'] == 'volume_based' && $numberOfListings) { $productInfo['number_of_listings'] = $numberOfListings; $productObj = new SJB_Product($productInfo, $productInfo['product_type']); $number_of_listings = !empty($productInfo['number_of_listings']) ? $productInfo['number_of_listings'] : 1; $productObj->setNumberOfListings($number_of_listings); $productInfo['price'] = $productObj->getPrice(); } if (SJB_UserManager::isUserLoggedIn()) { SJB_ShoppingCart::addToShoppingCart($productInfo, $current_user->getSID()); } else { if (isset($_SESSION['products'])) { foreach ($_SESSION['products'] as $addedProduct) { $addedProductInfo = unserialize($addedProduct['product_info']); if ($addedProductInfo['user_group_sid'] != $productInfo['user_group_sid']) { $errors[] = 'You are trying to add products of different User Groups in your Shopping Cart. You сan add only products belonging to one User Group. If you want to add this product in the Shopping Cart please go back to the Shopping Cart and remove products of other User Groups.'; break; } } } if (!$errors) { $id = time(); $_SESSION['products'][$id]['product_info'] = serialize($productInfo); $_SESSION['products'][$id]['sid'] = $id; $_SESSION['products'][$id]['user_sid'] = 0; } } if (!$errors) { SJB_HelperFunctions::redirect(SJB_System::getSystemsettings('SITE_URL') . '/shopping-cart/'); } } } } if (!empty($productInfo['expiration_period']) && !is_numeric($productInfo['expiration_period'])) { $productInfo['period'] = ucwords($productInfo['expiration_period']); } elseif (!empty($productInfo['pricing_type']) && $productInfo['pricing_type'] == 'volume_based' && !empty($productInfo['volume_based_pricing'])) { $volumeBasedPricing = $productInfo['volume_based_pricing']; $price = array(); $firstPrice = 0; if (!empty($volumeBasedPricing['listings_range_from'])) { for ($i = 1; $i <= count($volumeBasedPricing['listings_range_from']); $i++) { if ($volumeBasedPricing['listings_range_from'][$i] == $volumeBasedPricing['listings_range_to'][$i]) { $price[$i]['range']['from'] = $volumeBasedPricing['listings_range_from'][$i]; } else { $price[$i]['range']['from'] = $volumeBasedPricing['listings_range_from'][$i]; $price[$i]['range']['to'] = $volumeBasedPricing['listings_range_to'][$i]; } $price[$i]['price'] = $volumeBasedPricing['price_per_unit'][$i]; if ($i > 1 && $firstPrice > $volumeBasedPricing['price_per_unit'][$i]) { $price[$i]['savings'] = round(100 - 100 / $firstPrice * $volumeBasedPricing['price_per_unit'][$i]); } else { $firstPrice = $volumeBasedPricing['price_per_unit'][$i]; } } } $productInfo['volume_based_pricing'] = $price; $minListings = min($volumeBasedPricing['listings_range_from']); $maxListings = max($volumeBasedPricing['listings_range_to']); $countListings = array(); for ($i = $minListings; $i <= $maxListings; $i++) { $countListings[] = $i; } $productInfo['count_listings'] = $countListings; } elseif (!empty($productInfo['pricing_type']) && $productInfo['pricing_type'] == 'fixed') { $productInfo['fixed_period'] = 1; } if ($productInfo['product_type'] == 'banners') { $params = $_REQUEST; $bannersObj = new SJB_Banners(); $banner_fields = $bannersObj->getBannersMeta(); foreach ($banner_fields as $key => $banner_field) { $banner_fields[$banner_field['id']] = $banner_field; if (!empty($params[$banner_field['id']])) { $banner_fields[$banner_field['id']]['value'] = $params[$banner_field['id']]; } unset($banner_fields[$key]); } if (!empty($params['errors'])) { $tp->assign("errors", $params['errors']); } $tp->assign("banner_fields", $banner_fields); } $userGroupID = SJB_UserGroupDBManager::getUserGroupIDBySID($productInfo['user_group_sid']); $tp->assign('productInfo', $productInfo); $tp->assign('userGroupID', $userGroupID); $tp->assign('productSID', $productSID); $tp->assign('mayChooseProduct', true); } $tp->assign('errors', $errors); break; } $tp->display($template); }
public static function getListingTypeIDBySID($listing_type_sid) { return SJB_ListingTypeDBManager::getListingTypeIDBySID($listing_type_sid); }
private function redirectToListingByKeywords() { $arrayKeywords = SJB_Request::getVar('keywords'); if (empty($arrayKeywords)) { return; } $keywords = array_pop($arrayKeywords); if (empty($keywords)) { return; } $id_listing = intval($keywords); if ($id_listing == 0) { return; } $listing_info = SJB_ListingDBManager::getListingInfoBySID($id_listing); if (empty($listing_info)) { return; } $type = SJB_ListingTypeDBManager::getListingTypeInfoBySID($listing_info['listing_type_sid']); $listing_type = $type['id']; $arrayType = SJB_Request::getVar('listing_type'); if (empty($arrayType)) { return; } $expected_type = array_pop($arrayType); if ($expected_type != $listing_type) { return; } $id = $listing_info['sid']; $name_listing = SJB_HelperFunctions::slugify($listing_info['Title']); $type = strtolower($listing_type); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/display-{$type}/{$id}/{$name_listing}.html"); }