function b_recent_partners_show($options) { include_once XOOPS_ROOT_PATH . "/modules/smartpartner/include/common.php"; // Creating the partner handler object $smartpartner_partner_handler =& smartpartner_gethandler('partner'); $smartpartner_category_handler =& smartpartner_gethandler('category'); // Randomize $partnersObj =& $smartpartner_partner_handler->getPartners($options[2], 0, _SPARTNER_STATUS_ACTIVE, 'datesub', 'DESC'); include_once XOOPS_ROOT_PATH . '/modules/smartobject/class/smartobjectpermission.php'; $smartpermissions_handler = new SmartobjectPermissionHandler($smartpartner_partner_handler); $grantedItems = $smartpermissions_handler->getGrantedItems('full_view'); if ($partnersObj) { $block = array(); foreach ($partnersObj as $partnerObj) { if (in_array($partnerObj->id(), $grantedItems)) { $block['partners'][] = $partnerObj->toArray(); } } } if (!empty($block['partners'])) { if ($options[0] == 1) { $block['insertBr'] = true; } if ($options[1] == 1) { $block['fadeImage'] = 'style="filter:alpha(opacity=20);" onmouseover="nereidFade(this,100,30,5)" onmouseout="nereidFade(this,50,30,5)"'; } //$block['see_all'] = $options[6]; $block['lang_see_all'] = _MB_SPARTNER_LANG_SEE_ALL; $block['smartpartner_url'] = SMARTPARTNER_URL; } return $block; }
/** * $Id: random_offer.php,v 1.1 2007/09/18 14:00:53 marcan Exp $ * Module: SmartPartner * Author: The SmartFactory <www.smartfactory.ca> * Licence: GNU */ function b_random_offer_show($options) { include_once XOOPS_ROOT_PATH . "/modules/smartpartner/include/common.php"; // Creating the partner handler object $smartpartner_offer_handler =& smartpartner_gethandler('offer'); $smartpartner_partner_handler =& smartpartner_gethandler('partner'); include_once XOOPS_ROOT_PATH . '/modules/smartobject/class/smartobjectpermission.php'; $smartpermissions_handler = new SmartobjectPermissionHandler($smartpartner_partner_handler); //var_dump($smartpermissions_handler->handler);exit; $grantedItems = $smartpermissions_handler->getGrantedItems('full_view'); if (!empty($grantedItems)) { $criteria = new CriteriaCompo(); $criteria->add(new Criteria('partnerid', '(' . implode(', ', $grantedItems) . ')', 'IN')); $criteria->add(new Criteria('date_pub', time(), '<')); $criteria->add(new Criteria('date_end', time(), '>')); $criteria->add(new Criteria('status', _SPARTNER_STATUS_ONLINE)); // Randomize $offersObj =& $smartpartner_offer_handler->getObjects($criteria); if (count($offersObj) > 0) { $key_arr = array_keys($offersObj); $key_rand = array_rand($key_arr, 1); $offerObj = $offersObj[$key_rand]; } $block = array(); if (isset($offerObj) && is_object($offerObj)) { $block['offers'][] = $offerObj->toArray('e'); $smartConfig =& smartpartner_getModuleConfig(); //$image_info = smartpartner_imageResize($partnerObj->getImagePath(), $smartConfig['img_max_width'], $smartConfig['img_max_height']); if ($options[0] == 1) { $block['fadeImage'] = 'style="filter:alpha(opacity=20);" onmouseover="nereidFade(this,100,30,5)" onmouseout="nereidFade(this,50,30,5)"'; } $block['see_all'] = $options[2]; $block['lang_see_all'] = _MB_SPARTNER_LANG_SEE_ALL_OFFERS; $block['smartpartner_url'] = SMARTPARTNER_URL; } } return $block; }
function editpartner($showmenu = false, $id = 0) { global $xoopsDB, $smartpartner_partner_handler, $xoopsUser, $xoopsConfig, $xoopsModuleConfig, $xoopsModule; if (!isset($smartpartner_partner_handler)) { $smartpartner_partner_handler =& smartpartner_gethandler('partner'); } include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; // If there is a parameter, and the id exists, retrieve data: we're editing a partner if ($id != 0) { // Creating the partner object $partnerObj = new SmartpartnerPartner($id); if ($partnerObj->notLoaded()) { redirect_header("partner.php", 1, _AM_SPARTNER_NOPARTNERSELECTED); exit; } switch ($partnerObj->status()) { case _SPARTNER_STATUS_SUBMITTED: $breadcrumb_action1 = _AM_SPARTNER_SUBMITTED_PARTNERS; $breadcrumb_action2 = _AM_SPARTNER_APPROVING; $page_title = _AM_SPARTNER_SUBMITTED_TITLE; $page_info = _AM_SPARTNER_SUBMITTED_INFO; $button_caption = _AM_SPARTNER_APPROVE; $new_status = _SPARTNER_STATUS_ACTIVE; break; case _SPARTNER_STATUS_ACTIVE: $breadcrumb_action1 = _AM_SPARTNER_ACTIVE_PARTNERS; $breadcrumb_action2 = _AM_SPARTNER_EDITING; $page_title = _AM_SPARTNER_ACTIVE_EDITING; $page_info = _AM_SPARTNER_ACTIVE_EDITING_INFO; $button_caption = _AM_SPARTNER_MODIFY; $new_status = _SPARTNER_STATUS_ACTIVE; break; case _SPARTNER_STATUS_INACTIVE: $breadcrumb_action1 = _AM_SPARTNER_INACTIVE_PARTNERS; $breadcrumb_action2 = _AM_SPARTNER_EDITING; $page_title = _AM_SPARTNER_INACTIVE_EDITING; $page_info = _AM_SPARTNER_INACTIVE_EDITING_INFO; $button_caption = _AM_SPARTNER_MODIFY; $new_status = _SPARTNER_STATUS_INACTIVE; break; case _SPARTNER_STATUS_REJECTED: $breadcrumb_action1 = _AM_SPARTNER_REJECTED_PARTNERS; $breadcrumb_action2 = _AM_SPARTNER_EDITING; $page_title = _AM_SPARTNER_REJECTED_EDITING; $page_info = _AM_SPARTNER_REJECTED_EDITING_INFO; $button_caption = _AM_SPARTNER_MODIFY; $new_status = _SPARTNER_STATUS_REJECTED; break; case "default": default: break; } if ($showmenu) { smartpartner_adminMenu(2, $breadcrumb_action1 . " > " . $breadcrumb_action2); } echo "<br />\n"; smartpartner_collapsableBar('editpartner', 'editpartmericon', $page_title, $page_info); } else { // there's no parameter, so we're adding a partner $partnerObj =& $smartpartner_partner_handler->create(); $breadcrumb_action1 = _AM_SPARTNER_PARTNERS; $breadcrumb_action2 = _AM_SPARTNER_CREATE; $button_caption = _AM_SPARTNER_CREATE; $new_status = _SPARTNER_STATUS_ACTIVE; if ($showmenu) { smartpartner_adminMenu(2, $breadcrumb_action1 . " > " . $breadcrumb_action2); } smartpartner_collapsableBar('addpartner', 'addpartmericon', _AM_SPARTNER_PARTNER_CREATING, _AM_SPARTNER_PARTNER_CREATING_DSC); } // PARTNER FORM $sform = new XoopsThemeForm(_AM_SPARTNER_PARTNERS, "op", xoops_getenv('PHP_SELF')); $sform->setExtra('enctype="multipart/form-data"'); // TITLE $title_text = new XoopsFormText(_AM_SPARTNER_TITLE, 'title', 50, 255, $partnerObj->title('e')); $sform->addElement($title_text, true); // Parent Category $mytree = new SmartTree($xoopsDB->prefix("smartpartner_categories"), "categoryid", "parentid"); ob_start(); $mytree->makeMySelBox("name", "weight", explode('|', $partnerObj->categoryid()), 0, 'categoryid', '', true); //makeMySelBox($title,$order="",$preset_id=0, $none=0, $sel_name="", $onchange="") $parent_cat_select = new XoopsFormLabel(_AM_SPARTNER_CATEGORY_BELONG, ob_get_contents()); $parent_cat_select->setDescription(_AM_SPARTNER_BELONG_CATEGORY_DSC); $sform->addElement($parent_cat_select); ob_end_clean(); // LOGO $logo_array =& XoopsLists::getImgListAsArray(smartpartner_getImageDir()); $logo_select = new XoopsFormSelect('', 'image', $partnerObj->image()); $logo_select->addOption('-1', '---------------'); $logo_select->addOptionArray($logo_array); $logo_select->setExtra("onchange='showImgSelected(\"image3\", \"image\", \"" . 'uploads/' . SMARTPARTNER_DIRNAME . '/images' . "\", \"\", \"" . XOOPS_URL . "\")'"); $logo_tray = new XoopsFormElementTray(_AM_SPARTNER_LOGO, ' '); $logo_tray->addElement($logo_select); $logo_tray->addElement(new XoopsFormLabel('', "<br /><br /><img src='" . smartpartner_getImageDir('', false) . $partnerObj->image() . "' name='image3' id='image3' alt='' />")); $logo_tray->setDescription(_AM_SPARTNER_LOGO_DSC); $sform->addElement($logo_tray); // LOGO UPLOAD $max_size = 5000000; $file_box = new XoopsFormFile(_AM_SPARTNER_LOGO_UPLOAD, "logo_file", $max_size); $file_box->setExtra("size ='45'"); $file_box->setDescription(sprintf(_AM_SPARTNER_LOGO_UPLOAD_DSC, $xoopsModuleConfig['img_max_width'], $xoopsModuleConfig['img_max_height'])); $sform->addElement($file_box); // IMAGE_URL $image_url_text = new XoopsFormText(_CO_SPARTNER_IMAGE_URL, 'image_url', 50, 255, $partnerObj->image_url()); $image_url_text->setDescription(_CO_SPARTNER_IMAGE_URL_DSC); $sform->addElement($image_url_text, false); // URL $url_text = new XoopsFormText(_AM_SPARTNER_URL, 'url', 50, 255, $partnerObj->url()); $url_text->setDescription(_AM_SPARTNER_URL_DSC); $sform->addElement($url_text, false); // SUMMARY $summary_text = new XoopsFormTextArea(_AM_SPARTNER_SUMMARY, 'summary', $partnerObj->summary(0, 'e'), 7, 60); $summary_text->setDescription(_AM_SPARTNER_SUMMARY_DSC); $sform->addElement($summary_text, true); // SHOW summary on partner page $showsum_radio = new XoopsFormRadioYN(_AM_SPARTNER_SHOW_SUMMARY, 'showsummary', $partnerObj->getVar('showsummary')); $showsum_radio->setDescription(_AM_SPARTNER_SHOW_SUMMARY_DSC); $sform->addElement($showsum_radio); // DESCRIPTION $description_text = new XoopsFormDhtmlTextArea(_AM_SPARTNER_DESCRIPTION, 'description', $partnerObj->description(0, 'e'), 15, 60); $description_text->setDescription(_AM_SPARTNER_DESCRIPTION_DSC); $sform->addElement($description_text, false); // CONTACT_NAME $contact_name_text = new XoopsFormText(_CO_SPARTNER_CONTACT_NAME, 'contact_name', 50, 255, $partnerObj->contact_name('e')); $contact_name_text->setDescription(_CO_SPARTNER_CONTACT_NAME_DSC); $sform->addElement($contact_name_text, false); // CONTACT_EMAIL $contact_email_text = new XoopsFormText(_CO_SPARTNER_CONTACT_EMAIL, 'contact_email', 50, 255, $partnerObj->contact_email('e')); $contact_email_text->setDescription(_CO_SPARTNER_CONTACT_EMAIL_DSC); $sform->addElement($contact_email_text, false); // EMAIL_PRIV $email_priv_radio = new XoopsFormRadioYN(_CO_SPARTNER_CONTACT_EMAILPRIV, 'email_priv', $partnerObj->email_priv('e')); $email_priv_radio->setDescription(_CO_SPARTNER_CONTACT_EMAILPRIV_DSC); $sform->addElement($email_priv_radio); // CONTACT_PHONE $contact_phone_text = new XoopsFormText(_CO_SPARTNER_CONTACT_PHONE, 'contact_phone', 50, 255, $partnerObj->contact_phone('e')); $contact_phone_text->setDescription(_CO_SPARTNER_CONTACT_PHONE_DSC); $sform->addElement($contact_phone_text, false); // PHONE_PRIV $phone_priv_radio = new XoopsFormRadioYN(_CO_SPARTNER_CONTACT_PHONEPRIV, 'phone_priv', $partnerObj->phone_priv('e')); $phone_priv_radio->setDescription(_CO_SPARTNER_CONTACT_PHONEPRIV_DSC); $sform->addElement($phone_priv_radio); // ADRESS //$adress_text = new XoopsFormText(_CO_SPARTNER_ADRESS, 'adress', 50, 255, $partnerObj->adress('e')); $adress_text = new XoopsFormTextArea(_CO_SPARTNER_ADRESS, 'adress', $partnerObj->adress('e')); $adress_text->setDescription(_CO_SPARTNER_ADRESS_DSC); $sform->addElement($adress_text, false); // ADRESS_PRIV $adress_priv_radio = new XoopsFormRadioYN(_CO_SPARTNER_CONTACT_ADRESSPRIV, 'adress_priv', $partnerObj->adress_priv('e')); $adress_priv_radio->setDescription(_CO_SPARTNER_CONTACT_ADRESSPRIV_DSC); $sform->addElement($adress_priv_radio); // STATUS $options = $partnerObj->getAvailableStatus(); $status_select = new XoopsFormSelect(_AM_SPARTNER_STATUS, 'status', $new_status); $status_select->addOptionArray($options); $status_select->setDescription(_AM_SPARTNER_STATUS_DSC); $sform->addElement($status_select); // WEIGHT $weight_text = new XoopsFormText(_AM_SPARTNER_WEIGHT, 'weight', 4, 4, $partnerObj->weight()); $weight_text->setDescription(_AM_SPARTNER_WEIGHT_DSC); $sform->addElement($weight_text); //perms global $smartpermissions_handler; include_once XOOPS_ROOT_PATH . '/modules/smartobject/class/smartobjectpermission.php'; $smartpermissions_handler = new SmartobjectPermissionHandler($smartpartner_partner_handler); if ($partnerObj->id() != 0) { $grantedGroups = $smartpermissions_handler->getGrantedGroups('full_view', $partnerObj->id()); } else { $grantedGroups = $xoopsModuleConfig['default_full_view']; } $full_view_select = new XoopsFormSelectGroup(_CO_SPARTNER_FULL_PERM_READ, 'full_view', true, $grantedGroups, 5, true); $full_view_select->setDescription(_CO_SPARTNER_FULL_PERM_READ_DSC); $sform->addElement($full_view_select); if ($partnerObj->id() != 0) { $partGrantedGroups = $smartpermissions_handler->getGrantedGroups('partial_view', $partnerObj->id()); } else { $partGrantedGroups = $xoopsModuleConfig['default_part_view']; } $part_view_select = new XoopsFormSelectGroup(_CO_SPARTNER_PART_PERM_READ, 'partial_view', true, $partGrantedGroups, 5, true); $part_view_select->setDescription(_CO_SPARTNER_PART_PERM_READ_DSC); $sform->addElement($part_view_select); // Partner id $sform->addElement(new XoopsFormHidden('id', $partnerObj->id())); $button_tray = new XoopsFormElementTray('', ''); $hidden = new XoopsFormHidden('op', 'addpartner'); $button_tray->addElement($hidden); $sform->addElement(new XoopsFormHidden('original_status', $partnerObj->status())); if (!$id) { // there's no id? Then it's a new partner // $button_tray -> addElement( new XoopsFormButton( '', 'mod', _AM_SPARTNER_CREATE, 'submit' ) ); $butt_create = new XoopsFormButton('', '', _AM_SPARTNER_CREATE, 'submit'); $butt_create->setExtra('onclick="this.form.elements.op.value=\'addpartner\'"'); $button_tray->addElement($butt_create); $butt_clear = new XoopsFormButton('', '', _AM_SPARTNER_CLEAR, 'reset'); $button_tray->addElement($butt_clear); $butt_cancel = new XoopsFormButton('', '', _AM_SPARTNER_CANCEL, 'button'); $butt_cancel->setExtra('onclick="history.go(-1)"'); $button_tray->addElement($butt_cancel); } else { // else, we're editing an existing partner // $button_tray -> addElement( new XoopsFormButton( '', 'mod', _AM_SPARTNER_MODIFY, 'submit' ) ); $butt_create = new XoopsFormButton('', '', $button_caption, 'submit'); $butt_create->setExtra('onclick="this.form.elements.op.value=\'addpartner\'"'); $button_tray->addElement($butt_create); $butt_cancel = new XoopsFormButton('', '', _AM_SPARTNER_CANCEL, 'button'); $butt_cancel->setExtra('onclick="history.go(-1)"'); $button_tray->addElement($butt_cancel); } $sform->addElement($button_tray); $sform->display(); unset($hidden); if (!$id) { smartpartner_close_collapsable('addpartner', 'addpartnericon'); } else { smartpartner_close_collapsable('editpartner', 'editpartnericon'); } if ($id != 0) { showfiles($partnerObj); } }
function setGrantedObjectsCriteria(&$criteria, $perm_name) { $smartpermissions_handler = new SmartobjectPermissionHandler($this); $grantedItems = $smartpermissions_handler->getGrantedItems($perm_name); if (count($grantedItems) > 0) { $criteria->add(new Criteria($this->keyName, '(' . implode(', ', $grantedItems) . ')', 'IN')); return true; } else { return false; } }
include_once "footer.php"; global $xoopsUser, $xoopsConfig, $xoopsModuleConfig, $xoopsModule; $id = isset($_GET['id']) ? intval($_GET['id']) : 0; if ($id == 0) { redirect_header("javascript:history.go(-1)", 2, _MD_SPARTNER_NOPARTNERSELECTED); exit; } // Creating the Partner object for the selected FAQ $partnerObj = new SmartpartnerPartner($id); // If the selected partner was not found, exit if ($partnerObj->notLoaded()) { redirect_header("javascript:history.go(-1)", 2, _MD_SPARTNER_NOPARTNERSELECTED); exit; } include_once XOOPS_ROOT_PATH . '/modules/smartobject/class/smartobjectpermission.php'; $smartpermissions_handler = new SmartobjectPermissionHandler($smartpartner_partner_handler); $grantedItems = $smartpermissions_handler->getGrantedItems('full_view'); $grantedItems = array_merge($grantedItems, $smartpermissions_handler->getGrantedItems('partial_view')); // Chech the status if ($partnerObj->status() != _SPARTNER_STATUS_ACTIVE || !in_array($id, $grantedItems)) { redirect_header("javascript:history.go(-1)", 2, _NOPERM); exit; } // Updating the counter $partnerObj->updateHits_page(); // Populating the smarty variables with informations related to the selected Partner $partner = $partnerObj->toArray(); // Creating the files object associated with this item $filesObj = $partnerObj->getFiles(); $files = array(); $embeded_files = array();
/** * Retreive the group that have been granted access to a specific permission for this object * * @return string $group_perm name of the permission */ function getGroupPerm($group_perm) { if (!$this->handler->getPermissions()) { $this->setError("Trying to access a permission that does not exists for thisobject's handler"); return false; } $smartpermissions_handler = new SmartobjectPermissionHandler($this->handler); $ret = $smartpermissions_handler->getGrantedGroups($group_perm, $this->id()); if (count($ret) == 0) { return false; } else { return $ret; } }
function &doStoreFromDefaultForm(&$smartObj, $objectid, $created_success_msg, $modified_success_msg, $redirect_page = false, $debug = false) { global $smart_previous_page; $this->postDataToObject($smartObj); if ($smartObj->isNew()) { $redirect_msg = $created_success_msg; } else { $redirect_msg = $modified_success_msg; } // Check if there were uploaded files if (isset($_POST['smart_upload_image']) || isset($_POST['smart_upload_file'])) { include_once XOOPS_ROOT_PATH . "/modules/smartobject/class/smartuploader.php"; $uploaderObj = new SmartUploader($smartObj->getImageDir(true), $this->handler->_allowedMimeTypes, $this->handler->_maxFileSize, $this->handler->_maxWidth, $this->handler->_maxHeight); foreach ($_FILES as $name => $file_array) { if (isset($file_array['name']) && $file_array['name'] != "" && in_array(str_replace('upload_', '', $name), array_keys($smartObj->vars))) { if ($uploaderObj->fetchMedia($name)) { $uploaderObj->setTargetFileName(time() . "_" . $uploaderObj->getMediaName()); if ($uploaderObj->upload()) { // Find the related field in the SmartObject $related_field = str_replace('upload_', '', $name); $uploadedArray[] = $related_field; //si c'est un fichier Rich if ($smartObj->vars[$related_field]['data_type'] == XOBJ_DTYPE_FILE) { $object_fileurl = $smartObj->getUploadDir(); $fileObj = $smartObj->getFileObj($related_field); $fileObj->setVar('url', $object_fileurl . $uploaderObj->getSavedFileName()); $fileObj->setVar('caption', $_POST['caption_' . $related_field]); $fileObj->setVar('description', $_POST['desc_' . $related_field]); $smartObj->storeFileObj($fileObj); //todo : catch errors $smartObj->setVar($related_field, $fileObj->getVar('fileid')); } else { $old_file = $smartObj->getUploadDir(true) . $smartObj->getVar($related_field); unlink($old_file); $smartObj->setVar($related_field, $uploaderObj->getSavedFileName()); } } else { $smartObj->setErrors($uploaderObj->getErrors(false)); } } else { $smartObj->setErrors($uploaderObj->getErrors(false)); } } } } if ($debug) { $storeResult = $this->handler->insertD($smartObj); } else { $storeResult = $this->handler->insert($smartObj); } if ($storeResult) { if ($this->handler->getPermissions()) { $smartpermissions_handler = new SmartobjectPermissionHandler($this->handler); $smartpermissions_handler->storeAllPermissionsForId($smartObj->id()); } } if ($redirect_page === null) { return $smartObj; } else { if (!$storeResult) { redirect_header($smart_previous_page, 3, _CO_SOBJECT_SAVE_ERROR . $smartObj->getHtmlErrors()); } $redirect_page = $redirect_page ? $redirect_page : smart_get_page_before_form(); redirect_header($redirect_page, 2, $redirect_msg); } }
/** * insert a new Partner in the database * * @param object $partner reference to the {@link SmartpartnerPartner} object * @param bool $force * @return bool FALSE if failed, TRUE if already present and unchanged or successful */ function insert(&$partner, $force = false) { if (strtolower(get_class($partner)) != strtolower($this->className)) { return false; } if (!$partner->isDirty()) { return true; } if (!$partner->cleanVars()) { return false; } foreach ($partner->cleanVars as $k => $v) { ${$k} = $v; } if ($partner->isNew()) { $sql = sprintf("INSERT INTO %s (id, weight, hits, hits_page, url, image, image_url, title, datesub, summary, description, contact_name, contact_email, contact_phone, adress, `status`, `last_update`, `email_priv`, `phone_priv`, `adress_priv`, `showsummary`) VALUES ('', %u, %u, %u, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %u, %u, %u, %u, %u, %u)", $this->table, $weight, $hits, $hits_page, $this->db->quoteString($url), $this->db->quoteString($image), $this->db->quoteString($image_url), $this->db->quoteString($title), time(), $this->db->quoteString($summary), $this->db->quoteString($description), $this->db->quoteString($contact_name), $this->db->quoteString($contact_email), $this->db->quoteString($contact_phone), $this->db->quoteString($adress), $status, time(), $email_priv, $phone_priv, $adress_priv, $showsummary); } else { $sql = sprintf("UPDATE %s SET weight = %u, hits = %u, hits_page = %u, url = %s, image = %s, image_url = %s, title = %s, datesub = %s, summary = %s, description = %s, contact_name = %s, contact_email = %s, contact_phone = %s, adress = %s, `status` = %u, `last_update` = %u, `email_priv` = %u, `phone_priv` = %u, `adress_priv` = %u, `showsummary` = %u WHERE id = %u", $this->table, $weight, $hits, $hits_page, $this->db->quoteString($url), $this->db->quoteString($image), $this->db->quoteString($image_url), $this->db->quoteString($title), $this->db->quoteString($datesub), $this->db->quoteString($summary), $this->db->quoteString($description), $this->db->quoteString($contact_name), $this->db->quoteString($contact_email), $this->db->quoteString($contact_phone), $this->db->quoteString($adress), $status, time(), $email_priv, $phone_priv, $adress_priv, $showsummary, $id); } //echo "<br />" . $sql . "<br />";exit; if (false != $force) { $result = $this->db->queryF($sql); } else { $result = $this->db->query($sql); } if (!$result) { return false; } if ($partner->isNew()) { $partner->assignVar('id', $this->db->getInsertId()); } global $smartpartner_partner_cat_link_handler; $criteria = new CriteriaCompo(); $criteria->add(new Criteria('partnerid', $partner->getVar('id'))); $links = $smartpartner_partner_cat_link_handler->getObjects($criteria); $categoryid = explode('|', $partner->getVar('categoryid')); $parent_array = array(); foreach ($links as $link) { if (!in_array($link->getVar('categoryid'), $categoryid)) { $smartpartner_partner_cat_link_handler->delete($link); } else { $parent_array[] = $link->getVar('categoryid'); } } foreach ($categoryid as $cat) { if (!in_array($cat, $parent_array)) { $linkObj = $smartpartner_partner_cat_link_handler->create(); $linkObj->setVar('partnerid', $partner->getVar('id')); $linkObj->setVar('categoryid', $cat); $smartpartner_partner_cat_link_handler->insert($linkObj); } } if (isset($_POST['partial_view']) || isset($_POST['full_view'])) { $smartpermissions_handler = new SmartobjectPermissionHandler($this); $smartpermissions_handler->storeAllPermissionsForId($partner->id()); } return true; }
function getObjectsForUserSide() { global $xoopsModuleConfig, $smartpartner_category_handler, $smartpartner_partner_handler, $xoopsUser; $criteria = new CriteriaCompo(); $criteria->setSort($xoopsModuleConfig['offer_sort']); $criteria->setOrder($xoopsModuleConfig['offer_order']); $criteria->add(new Criteria('date_pub', time(), '<')); $criteria->add(new Criteria('date_end', time(), '>')); $criteria->add(new Criteria('status', _SPARTNER_STATUS_ONLINE)); $offersObj = $this->getObjects($criteria); foreach ($offersObj as $offerObj) { } $catsObj = $smartpartner_category_handler->getObjects(null, true); $partnersObj = $smartpartner_partner_handler->getObjects(null, true); include_once XOOPS_ROOT_PATH . '/modules/smartobject/class/smartobjectpermission.php'; $smartpermissions_handler = new SmartobjectPermissionHandler($smartpartner_partner_handler); $userGroups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS; $grantedItems = $smartpermissions_handler->getGrantedItems('full_view'); $relevantCat = array(); foreach ($offersObj as $offerObj) { if (in_array($offerObj->getVar('partnerid', 'e'), $grantedItems)) { $categId = $partnersObj[$offerObj->getVar('partnerid', 'e')]->categoryid(); $parentCatArray = explode('|', $categId); $relevantCat = array_merge($relevantCat, $parentCatArray); foreach ($parentCatArray as $p_cat) { $parentid = $p_cat; while ($catsObj[$parentid]->parentid() != 0) { $parentid = $catsObj[$parentid]->parentid(); $relevantCat[] = $parentid; } } } } $relevantCat = array_unique($relevantCat); $partnersArray = array(); foreach ($partnersObj as $partnerObj) { $grantedGroups = $smartpermissions_handler->getGrantedGroups('full_view', $partnerObj->id()); if (array_intersect($userGroups, $grantedGroups)) { $partnerArray = array(); $partnerArray['name'] = $partnerObj->title(); $partnerArray['offers'] = array(); foreach ($offersObj as $offerObj) { if ($offerObj->getVar('partnerid', 'e') == $partnerObj->id()) { $partnerArray['offers'][] = $offerObj->toArray(); } } $partnersArray[$partnerObj->id()] = $partnerArray; unset($partnerArray); } } $categoriesArray = array(); foreach ($catsObj as $catObj) { if (in_array($catObj->categoryid(), $relevantCat)) { $categoryArray = array(); $categoryArray['parentid'] = $catObj->parentid(); $categoryArray['categoryid'] = $catObj->categoryid(); $categoryArray['name'] = $catObj->name(); $categoryArray['partners'] = array(); foreach ($partnersObj as $partnerObj) { $catArray = explode('|', $partnerObj->categoryid()); if (in_array($catObj->categoryid(), $catArray)) { $categoryArray['partners'][$partnerObj->id()] = $partnersArray[$partnerObj->id()]; } } $categoriesArray[] = $categoryArray; unset($categoryArray); } } return $this->hierarchize($categoriesArray); }