public static function setRaiting($rate, $listing_sid, $user_id) { if ($rate < 1 || $rate > 5 || !SJB_Rating::canRate($listing_sid)) { return false; } SJB_DB::query("INSERT INTO rating VALUES (NULL, '{$user_id}', '{$listing_sid}', '{$rate}', NOW())"); $result = SJB_DB::query("SELECT COUNT(*) AS `num` , ROUND((SUM(vote) / COUNT(*)), 1) AS rating FROM `rating` WHERE `listing_id` = ?n ", $listing_sid); $row = array_shift($result); return array('rating' => $row['rating'], 'total' => $row['num']); }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $errors = array(); $listing_id = SJB_Request::getVar('listing_id', null); $listingInfo = SJB_ListingManager::getListingInfoBySID($listing_id); $listingTypeInfo = SJB_ListingTypeManager::getListingTypeInfoBySID($listingInfo['listing_type_sid']); $display_form = new SJB_Form(); $display_form->registerTags($tp); if (is_null($listing_id)) { $errors['LISTING_ID_DOESNOT_SPECIFIED'] = $listing_id; } else { $listing = SJB_ListingManager::getObjectBySID($listing_id); $filename = SJB_Request::getVar('filename', false); if ($filename) { $file = SJB_UploadFileManager::openFile($filename, $listing_id); $errors['NO_SUCH_FILE'] = true; } if (!empty($listing)) { $listing->addPicturesProperty(); if ($listing->listing_type_sid == 6) { $listing->deleteProperty('access_type'); $listing->deleteProperty('anonymous'); } $access_type_properties = $listing->getProperty('access_type'); $tp->assign('access_type_properties', $access_type_properties); $listing_structure = SJB_ListingManager::createTemplateStructureForListing($listing); $tp->assign("listing", $listing_structure); $display_form = new SJB_Form($listing); $display_form->registerTags($tp); $form_fields = $display_form->getFormFieldsInfo(); $tp->assign("form_fields", $form_fields); $waitApprove = SJB_ListingTypeManager::getWaitApproveSettingByListingType($listing->listing_type_sid); $tp->assign('wait_approve', $waitApprove); } else { $errors['LISTING_DOESNOT_EXIST'] = $listing_id; } } $comments = SJB_CommentManager::getEnabledCommentsToListing($listing_id); $comments_total = count($comments); $rate = SJB_Rating::getRatingNumToListing($listing_id); $displayTemplate = SJB_Request::getVar('display_template', 'display_listing.tpl'); $videoFileId = SJB_Request::getVar('videoFileId', false); if ($videoFileId) { $videoFileLink = SJB_UploadFileManager::getUploadedFileLink($videoFileId); $tp->assign('videoFileLink', $videoFileLink); } $tp->assign('listingType', SJB_ListingTypeManager::createTemplateStructure($listingTypeInfo)); $tp->assign('errors', $errors); $tp->assign('comments_total', $comments_total); $tp->assign('rate', $rate); SJB_System::setGlobalTemplateVariable('wikiExtraParam', $listingTypeInfo['id']); $tp->display($displayTemplate); }
private function jsRate() { if (!SJB_UserManager::isUserLoggedIn()) { exit; } $listing_sid = SJB_Request::getInt('listing', 0, SJB_Request::METHOD_POST); $rate = SJB_Request::getInt('rate', 0, SJB_Request::METHOD_POST); $new_rating = SJB_Rating::setRaiting($rate, $listing_sid, SJB_UserManager::getCurrentUserSID()); if (isset($new_rating['rating'])) { echo $new_rating['rating']; } }
public function execute() { $listing_id = isset($_REQUEST['listing_id']) ? $_REQUEST['listing_id'] : null; $template_processor = SJB_System::getTemplateProcessor(); if (isset($_REQUEST['action'])) { $action = strtolower($_REQUEST['action']); $rating_id = isset($_REQUEST['rating_id']) ? $_REQUEST['rating_id'] : null; $comment_ids = array(); if (isset($_REQUEST['rating']) && is_array($_REQUEST['rating'])) { $rating_ids = array_keys($_REQUEST['rating']); } else { $rating_ids = array($rating_id); } $listing_id = SJB_Rating::getListingSIDByRatingSID($rating_ids[0]); $listing_id = $listing_id[0]['listing_id']; switch ($action) { case 'delete': foreach ($rating_ids as $rating_id) { SJB_Rating::deleteRating($rating_id); } break; } header('Location: ' . SJB_System::getSystemSettings('SITE_URL') . '/listing-rating/?listing_id=' . $listing_id); exit; } if (!is_null($listing_id) && SJB_Settings::getSettingByName('show_rates') == 1) { $rating = SJB_Rating::getRatingListing($listing_id); $listingInfo = SJB_ListingManager::getListingInfoBySID($listing_id); $listingTypeInfo = SJB_ListingTypeManager::getListingTypeInfoBySID($listingInfo['listing_type_sid']); $template_processor->assign('rating', $rating); $template_processor->assign('listing_id', $listing_id); $template_processor->assign('rating_num', count($rating)); $template_processor->assign('listingType', SJB_ListingTypeManager::createTemplateStructure($listingTypeInfo)); $template_processor->display('listing_rating.tpl'); } }
/** * @param SJB_Listing $listing */ public static function createTemplateStructureForListing($listing, $extraInfo = array()) { $listing_info = parent::getObjectInfo($listing); if (SJB_MemoryCache::has('listingTypeInfo' . $listing->getListingTypeSID())) { $listing_type_info = SJB_MemoryCache::get('listingTypeInfo' . $listing->getListingTypeSID()); } else { $listing_type_info = SJB_ListingTypeManager::getListingTypeInfoBySID($listing->getListingTypeSID()); SJB_MemoryCache::set('listingTypeInfo' . $listing->getListingTypeSID(), $listing_type_info); } foreach ($listing->getProperties() as $property) { if ($property->isComplex()) { $isPropertyEmpty = true; $properties = $property->type->complex->getProperties(); $properties = is_array($properties) ? $properties : array(); foreach ($properties as $subProperty) { if (!empty($listing_info['user_defined'][$property->getID()][$subProperty->getID()]) && is_array($listing_info['user_defined'][$property->getID()][$subProperty->getID()])) { foreach ($listing_info['user_defined'][$property->getID()][$subProperty->getID()] as $subValue) { if (!empty($subValue)) { $isPropertyEmpty = false; } } } } if ($isPropertyEmpty) { $listing_info['user_defined'][$property->getID()] = ''; } } if ($property->getType() == 'list') { $value = $property->getValue(); $properties = $property->type->property_info; $listValues = isset($properties['list_values']) ? $properties['list_values'] : array(); foreach ($listValues as $listValue) { if ($listValue['id'] == $value) { $listing_info['user_defined'][$property->getID()] = $listValue['caption']; } } } elseif ($property->getType() == 'multilist') { $value = $property->getValue(); if (!is_array($property->getValue())) { $value = explode(',', $property->getValue()); } $properties = $property->type->property_info; $listValues = isset($properties['list_values']) ? $properties['list_values'] : array(); $listing_info['user_defined'][$property->getID()] = array(); foreach ($listValues as $listValue) { if (in_array($listValue['id'], $value)) { $listing_info['user_defined'][$property->getID()][$listValue['id']] = $listValue['caption']; } } } elseif ($property->getType() == 'location' && is_array($listing_info['user_defined'][$property->getID()])) { foreach ($property->type->fields as $locationField) { if (array_key_exists($locationField['id'], $listing_info['user_defined'][$property->getID()])) { if ($locationField['id'] == 'State') { $listValues = SJB_StatesManager::getStateNamesBySid($property->value['State'], 'state_name'); } else { $listValues = isset($locationField['list_values']) ? $locationField['list_values'] : array(); } $value = $property->getValue(); $value = isset($value[$locationField['id']]) ? $value[$locationField['id']] : ''; foreach ($listValues as $listValue) { if ($listValue['id'] == $value) { $listing_info['user_defined'][$property->getID()][$locationField['id']] = $listValue['caption']; $listing_info['user_defined'][$property->getID()][$locationField['id'] . '_Code'] = $listValue['Code']; $listing_info['user_defined'][$property->getID()][$locationField['id'] . '_Name'] = $listValue['Name']; } } } } } } $cache = SJB_Cache::getInstance(); $cacheId = md5('SJB_UserManager::getObjectBySID' . $listing_info['system']['user_sid']); $user_info = array(); if ($cache->test($cacheId)) { $user_info = $cache->load($cacheId); } else { $user = SJB_UserManager::getObjectBySID($listing_info['system']['user_sid']); $user_info = !empty($user) ? SJB_UserManager::createTemplateStructureForUser($user) : null; $cache->save($user_info, $cacheId, array(SJB_Cache::TAG_USERS)); } $productInfo = SJB_ProductsManager::createTemplateStructureForProduct($listing_info['system']['product_info']); $priceForUpgradeToFeatured = 0; $priceForUpgradeToPriority = 0; if (!empty($listing_info['system']['product_info'])) { $listingProductInfo = unserialize($listing_info['system']['product_info']); $priceForUpgradeToFeatured = SJB_Array::get($listingProductInfo, 'upgrade_to_featured_listing_price', 0); $priceForUpgradeToPriority = SJB_Array::get($listingProductInfo, 'upgrade_to_priority_listing_price', 0); } $structure = array('id' => $listing_info['system']['id'], 'type' => array('id' => $listing_type_info['id'], 'caption' => $listing_type_info['name']), 'user' => $user_info, 'activation_date' => $listing_info['system']['activation_date'], 'expiration_date' => $listing_info['system']['expiration_date'], 'featured' => $listing_info['system']['featured'], 'priority' => $listing_info['system']['priority'], 'views' => $listing_info['system']['views'], 'active' => $listing_info['system']['active'], 'product' => $productInfo, 'contract_id' => $listing_info['system']['contract_id'], 'number_of_pictures' => isset($listing_info['user_defined']['pictures']) ? count($listing_info['user_defined']['pictures']) : 0, 'approveStatus' => $listing_info['system']['status'], 'complete' => $listing_info['system']['complete'], 'external_id' => $listing_info['system']['external_id'], 'priceForUpgradeToFeatured' => $priceForUpgradeToFeatured, 'priceForUpgradeToPriority' => $priceForUpgradeToPriority); if (SJB_Settings::getSettingByName('jobg8Installed') && SJB_PluginManager::isPluginActive('JobG8IntegrationPlugin')) { $structure['jobType'] = JobG8::getJobProperty($listing_info['system']['id'], 'jobType'); } if (array_search('comments', $extraInfo)) { $structure['comments_num'] = SJB_CommentManager::getCommentsNumToListing($listing_info['system']['id']); } if (array_search('ratings', $extraInfo)) { $structure['rating_num'] = SJB_Rating::getRatingNumToListing($listing_info['system']['id']); $structure['rating'] = SJB_Rating::getRatingToListing($listing_info['system']['id']); $structure['rating_array'] = SJB_Rating::getRatingTplToListing($listing_info['system']['id']); } if (!empty($listing_info['system']['subuser_sid'])) { $structure['subuser'] = SJB_UserManager::getUserInfoBySID($listing_info['system']['subuser_sid']); } $structure['METADATA'] = array('activation_date' => array('type' => 'date'), 'expiration_date' => array('type' => 'date'), 'views' => array('type' => 'integer'), 'number_of_pictures' => array('type' => 'integer'), 'approveStatus' => array('type' => 'string'), 'rejectReason' => array('type' => 'string')); $structure = array_merge($structure, $listing_info['user_defined']); $structure['METADATA'] = array_merge($structure['METADATA'], parent::getObjectMetaData($listing)); $listing_user_meta_data = array(); if (isset($user_info['METADATA'])) { $listing_user_meta_data = $user_info['METADATA']; unset($user_info['METADATA']); } $listing_product_meta_data = array(); if (isset($productInfo['METADATA'])) { $listing_product_meta_data = $productInfo['METADATA']; unset($productInfo['METADATA']); } $listing_type_meta_data = array('caption' => array('type' => 'string', 'propertyID' => 'listing_type')); $structure['METADATA'] = array_merge($structure['METADATA'], array('user' => $listing_user_meta_data, 'product' => $listing_product_meta_data, 'type' => $listing_type_meta_data)); return array_merge($structure, $listing_info['user_defined']); }
public static function deleteUserById($id) { $user = SJB_UserManager::getObjectBySID($id); if (empty($user)) { SJB_UserDBManager::deleteEmptyUsers(); return true; } SJB_Event::dispatch('onBeforeUserDelete', $user); $listings = SJB_ListingDBManager::getListingsSIDByUserSID($id); SJB_ListingManager::deleteListingBySID($listings); $subusers = self::getSubusers($id); foreach ($subusers as $subuser) { self::deleteUserById($subuser['sid']); } // delete user logo file $pictProp = $user->getProperty('Logo'); if ($pictProp) { SJB_UploadFileManager::deleteUploadedFileByID($pictProp->value); } $videoProp = $user->getProperty('video'); if ($videoProp) { SJB_UploadFileManager::deleteUploadedFileByID($videoProp->value); } // delete social info $socialReference = SJB_SocialPlugin::getProfileSocialID($user->getSID()); if ($socialReference) { SJB_SocialPlugin::deleteProfileSocialInfoByReference($socialReference); } $result = SJB_UserDBManager::deleteUserById($id) && SJB_ContractManager::deleteAllContractsByUserSID($id) && SJB_Rating::deleteRatingByUserSID($id); SJB_Cache::getInstance()->clean('matchingAnyTag', array(SJB_Cache::TAG_USERS)); return $result && SJB_SavedSearches::deleteUserSearchesFromDB($id); }
public function execute() { $listing_id = SJB_Request::getVar('listing_id', null); $listing_info = SJB_ListingManager::getListingInfoBySID($listing_id); $listingTypeInfo = SJB_ListingTypeManager::getListingTypeInfoBySID($listing_info['listing_type_sid']); if (!is_null($listing_info)) { $filename = SJB_Request::getVar('filename', false); if ($filename) { $file = SJB_UploadFileManager::openFile($filename, $listing_id); $errors['NO_SUCH_FILE'] = true; } if (isset($_REQUEST['Occupations']) && isset($_REQUEST['Occupations']['tree']) && !$_REQUEST['Occupations']['tree']) { unset($_REQUEST['Occupations']['tree']); } $listing_info = array_merge($listing_info, $_REQUEST); if (isset($_REQUEST['Occupations']) && isset($_REQUEST['Occupations']['tree']) && $_REQUEST['Occupations']['tree']) { $listing_info['Occupations'] = $_REQUEST['Occupations']['tree']; } $listing = new SJB_Listing($listing_info, $listing_info['listing_type_sid']); $listing->setSID($listing_id); $listing_edit_form = new SJB_Form($listing); $form_is_submitted = SJB_Request::getVar('action'); $errors = array(); if ($form_is_submitted) { $listing->addProperty(array('id' => 'access_list', 'type' => 'multilist', 'value' => SJB_Request::getVar('list_emp_ids'), 'is_system' => true)); } if ($form_is_submitted && $listing_edit_form->isDataValid($errors)) { $listingSid = $listing->getID(); SJB_BrowseDBManager::deleteListings($listingSid); SJB_ListingManager::saveListing($listing); SJB_BrowseDBManager::addListings($listingSid); $formToken = SJB_Request::getVar('form_token'); $sessionFilesStorage = SJB_Session::getValue('tmp_uploads_storage'); $uploadedFields = SJB_Array::getPath($sessionFilesStorage, $formToken); if (!empty($uploadedFields)) { foreach ($uploadedFields as $fieldId => $fieldValue) { // get field of listing $isComplex = false; if (strpos($fieldId, ':') !== false) { $isComplex = true; } $tmpUploadedFileId = $fieldValue['file_id']; // rename it to real listing field value $newFileId = $fieldId . "_" . $listing->getSID(); SJB_DB::query("UPDATE `uploaded_files` SET `id` = ?s WHERE `id` =?s", $newFileId, $tmpUploadedFileId); if ($isComplex) { list($parentField, $subField, $complexStep) = explode(':', $fieldId); $parentProp = $listing->getProperty($parentField); $parentValue = $parentProp->getValue(); // look for complex property with current $fieldID and set it to new value of property if (!empty($parentValue)) { foreach ($parentValue as $id => $value) { if ($id == $subField) { $parentValue[$id][$complexStep] = $newFileId; } } $listing->setPropertyValue($parentField, $parentValue); } } else { $listing->setPropertyValue($fieldId, $newFileId); } // unset value from session temporary storage $sessionFilesStorage = SJB_Array::unsetValueByPath($sessionFilesStorage, "{$formToken}/{$fieldId}"); } //and remove token key from temporary storage $sessionFilesStorage = SJB_Array::unsetValueByPath($sessionFilesStorage, "{$formToken}"); SJB_Session::setValue('tmp_uploads_storage', $sessionFilesStorage); SJB_ListingManager::saveListing($listing); } SJB_Event::dispatch('listingEdited', $listingSid); if (SJB_Request::isAjax()) { echo '<p class="green">Listing Saved</p>'; exit; } if ($form_is_submitted == 'save_info') { $listingTypeId = SJB_ListingTypeManager::getListingTypeIDBySID($listing_info['listing_type_sid']); $listingType = $listingTypeId != 'Job' && $listingTypeId != 'Resume' ? $listingTypeId . '-listings' : $listingTypeId . 's'; SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/manage-" . strtolower($listingType) . "/?restore=1"); } } $listing->deleteProperty('access_list'); $comments = SJB_CommentManager::getEnabledCommentsToListing($listing_id); $comments_total = count($comments); $rate = SJB_Rating::getRatingNumToListing($listing_id); $form_fields = $listing_edit_form->getFormFieldsInfo(); $pages = SJB_PostingPagesManager::getPagesByListingTypeSID($listing->getListingTypeSID()); $realFormFields = array(); foreach ($pages as $page) { $listingFields = SJB_PostingPagesManager::getAllFieldsByPageSIDForForm($page['sid']); foreach ($listingFields as $fieldID => $listingField) { if (isset($form_fields[$fieldID])) { $realFormFields[$fieldID] = $form_fields[$fieldID]; } } } $adminFields = array(); foreach ($form_fields as $fieldName => $field) { if (!isset($realFormFields[$fieldName])) { $adminFields[$fieldName] = $field; } } $realFormFields = array_merge($adminFields, $realFormFields); $tp = SJB_System::getTemplateProcessor(); $listing_edit_form->registerTags($tp); $extraInfo = $listing_info['product_info']; if ($extraInfo) { $extraInfo = unserialize($extraInfo); $numberOfPictures = isset($extraInfo['number_of_pictures']) ? $extraInfo['number_of_pictures'] : 0; $tp->assign("listing_duration", $extraInfo['listing_duration']); $tp->assign("pic_limit", $numberOfPictures); } $listing_structure = SJB_ListingManager::createTemplateStructureForListing($listing); if (!isset($listing_structure['access_type'])) { $listing_structure['access_type'] = 'everyone'; } $listing_access_list = SJB_ListingManager::getListingAccessList($listing_id, $listing->getPropertyValue('access_type')); $tp->assign("uploadMaxFilesize", SJB_UploadFileManager::getIniUploadMaxFilesize()); $tp->assign('form_fields', $realFormFields); $tp->assign('listing', $listing_structure); $tp->assign('errors', $errors); $tp->assign('listingType', SJB_ListingTypeManager::createTemplateStructure($listingTypeInfo)); $tp->assign('listing_access_list', $listing_access_list); $tp->assign('comments_total', $comments_total); $tp->assign('rate', $rate); $tp->assign('expired', SJB_ListingManager::getIfListingHasExpiredBySID($listing->getSID())); SJB_System::setGlobalTemplateVariable('wikiExtraParam', $listingTypeInfo['id']); $tp->display('edit_listing.tpl'); } }