示例#1
0
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;
}
示例#2
0
/**
 * $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;
}
示例#3
0
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, '&nbsp;');
    $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;
     }
 }
示例#5
0
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();
示例#6
0
 /**
  * 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);
     }
 }
示例#8
0
 /**
  * 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;
 }
示例#9
0
 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);
 }