Exemple #1
0
function faqAccessGranted($faqObj)
{
    global $xoopsUser;
    if (sf_userIsAdmin()) {
        $result = 1;
    } else {
        $result = -1;
        $groups = $xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
        $gperm_handler =& xoops_gethandler('groupperm');
        $smartModule =& sf_getModuleInfo();
        $module_id = $smartModule->getVar('mid');
        // Do we have access to the parent category
        if ($gperm_handler->checkRight('category_read', $faqObj->categoryid(), $groups, $module_id)) {
            // Do we have access to the faq?
            if ($gperm_handler->checkRight('item_read', $faqObj->faqid(), $groups, $module_id)) {
                $result = 1;
            } else {
                // No we don't !
                // Check to see if we have partial view access
                if (!is_object($xoopsUser) && $faqObj->partialView()) {
                    return 0;
                }
            }
        } else {
            // No we don't !
            $result = false;
        }
    }
    return $result;
}
Exemple #2
0
 function getSubCats(&$categories)
 {
     $criteria = new CriteriaCompo('parentid', "(" . implode(',', array_keys($categories)) . ")", 'IN');
     $ret = array();
     if (!sf_userIsAdmin()) {
         $smartPermHandler =& xoops_getmodulehandler('permission', 'smartfaq');
         $categoriesGranted = $smartPermHandler->getPermissions('category');
         $criteria->add(new Criteria('categoryid', "(" . implode(',', $categoriesGranted) . ")", 'IN'));
     }
     $subcats = $this->getObjects($criteria, true);
     foreach ($subcats as $subcat_id => $subcat) {
         $ret[$subcat->getVar('parentid')][$subcat->getVar('categoryid')] = $subcat;
     }
     return $ret;
 }
Exemple #3
0
 } else {
     $uid = $xoopsUser->uid();
 }
 $notifypub = isset($_POST['notifypub']) ? $_POST['notifypub'] : 0;
 // Putting the values about the FAQ in the FAQ object
 $newFaqObj->setVar('categoryid', $_POST['categoryid']);
 $newFaqObj->setVar('uid', $uid);
 $newFaqObj->setVar('question', $_POST['question']);
 $newFaqObj->setVar('howdoi', $_POST['howdoi']);
 $newFaqObj->setVar('diduno', $_POST['diduno']);
 $newFaqObj->setVar('notifypub', $notifypub);
 //$newFaqObj->setVar('modulelink', $_POST['modulelink']);
 //$newFaqObj->setVar('contextpage', $_POST['contextpage']);
 // Setting the status of the FAQ
 // if user is admin, FAQ are automatically published
 $isAdmin = sf_userIsAdmin();
 if ($isAdmin) {
     $newFaqObj->setVar('status', _SF_STATUS_PUBLISHED);
 } elseif ($xoopsModuleConfig['autoapprove_submitted_faq'] == 1) {
     $newFaqObj->setVar('status', _SF_STATUS_PUBLISHED);
 } else {
     $newFaqObj->setVar('status', _SF_STATUS_SUBMITTED);
 }
 // Storing the FAQ object in the database
 if (!$newFaqObj->store()) {
     redirect_header("javascript:history.go(-1)", 2, _MD_SF_SUBMIT_ERROR);
     exit;
 }
 // Putting the values in the answer object
 $newAnswerObj->setVar('status', _SF_AN_STATUS_APPROVED);
 $newAnswerObj->setVar('faqid', $newFaqObj->faqid());
Exemple #4
0
<?php

/**
* $Id: footer.php,v 1.13 2005/08/15 16:51:58 fx2024 Exp $
* Module: SmartFAQ
* Author: The SmartFactory <www.smartfactory.ca>
* Licence: GNU
*/
global $xoopsTpl, $xoopsModule, $xoopsModuleConfig;
$uid = $xoopsUser ? $xoopsUser->getVar("uid") : 0;
$isAdmin = sf_userIsAdmin() || sf_moderator();
$xoopsTpl->assign("sf_adminpage", "<a href='" . XOOPS_URL . "/modules/smartfaq/admin/index.php'>" . _MD_SF_ADMIN_PAGE . "</a>");
$xoopsTpl->assign("isAdmin", $isAdmin);
$xoopsTpl->assign(array('lang_on' => _MD_SF_ON, 'lang_postedby' => _MD_SF_POSTEDBY, 'lang_faq' => _MD_SF_QUESTION, 'lang_datesub' => _MD_SF_DATESUB, 'lang_hits' => _MD_SF_HITS));
$xoopsTpl->assign('sectionname', $myts->displayTarea($xoopsModule->getVar('name')));
$xoopsTpl->assign('modulename', $xoopsModule->dirname());
$xoopsTpl->assign('displaylastfaq', $xoopsModuleConfig['displaylastfaq']);
$xoopsTpl->assign('displaysubcatdsc', $xoopsModuleConfig['displaysubcatdsc']);
$xoopsTpl->assign('displaycollaps', $xoopsModuleConfig['displaycollaps']);
$xoopsTpl->assign('display_date_col', $xoopsModuleConfig['display_date_col']);
$xoopsTpl->assign('display_hits_col', $xoopsModuleConfig['display_hits_col']);
$xoopsTpl->assign("displaytopcatdsc", $xoopsModuleConfig['displaytopcatdsc']);
$xoopsTpl->assign("ref_smartfaq", "SmartFAQ is developed by The SmartFactory (http://www.smartfactory.ca), a division of InBox Solutions (http://www.inboxsolutions.net)");
$xoopsTpl->assign("xoops_module_header", "<link rel='stylesheet' type='text/css' href='" . XOOPS_URL . "/modules/smartfaq/smartfaq.css'/>");
Exemple #5
0
<?php

/**
* $Id: permissions.php,v 1.8 2004/11/20 16:52:32 malanciault Exp $
* Module: SmartFAQ
* Author: The SmartFactory <www.smartfactory.ca>
* Licence: GNU
*/
include_once "admin_header.php";
include_once XOOPS_ROOT_PATH . '/class/xoopsform/grouppermform.php';
if (!sf_userIsAdmin()) {
    redirect_header("javascript:history.go(-1)", 1, _NOPERM);
    exit;
}
$op = '';
foreach ($_POST as $k => $v) {
    ${$k} = $v;
}
foreach ($_GET as $k => $v) {
    ${$k} = $v;
}
switch ($op) {
    case "default":
    default:
        global $xoopsDB, $xoopsModule;
        xoops_cp_header();
        sf_adminMenu(4, _AM_SF_PERMISSIONS);
        // View Categories permissions
        $item_list_view = array();
        $block_view = array();
        // echo "<h3 style='color: #2F5376; '>"._AM_SF_PERMISSIONSADMIN."</h3>\n" ;
Exemple #6
0
function editfaq($faqid = '')
{
    global $answer_handler, $xoopsUser, $xoopsUser, $xoopsConfig, $xoopsDB, $modify, $xoopsModuleConfig, $xoopsModule, $XOOPS_URL, $myts;
    include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
    // Creating the FAQ object
    $faqObj = new sfFaq($faqid);
    // Creating the category object
    $categoryObj =& $faqObj->category();
    if ($faqObj->notLoaded()) {
        redirect_header("index.php", 1, _AM_SF_NOFAQSELECTED);
        exit;
    }
    switch ($faqObj->status()) {
        case _SF_STATUS_ANSWERED:
            $breadcrumb_action1 = _AM_SF_SUBMITTED;
            $breadcrumb_action2 = _AM_SF_APPROVING;
            $collapsableBar_title = _AM_SF_SUBMITTED_TITLE;
            $collapsableBar_info = _AM_SF_SUBMITTED_INFO;
            $button_caption = _AM_SF_APPROVE;
            $an_status = _SF_AN_STATUS_PROPOSED;
            break;
    }
    $module_id = $xoopsModule->getVar('mid');
    $gperm_handler =& xoops_gethandler('groupperm');
    $groups = $xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
    if (!sf_userIsAdmin() && !$gperm_handler->checkRight('category_admin', $faqObj->categoryid(), $groups, $module_id)) {
        redirect_header("javascript:history.go(-1)", 1, _NOPERM);
        exit;
    }
    // Retreiving the official answer
    $official_answer = $faqObj->answer();
    sf_adminMenu(-1, _AM_SF_SMARTFAQ . " > " . _AM_SF_ANSWER);
    sf_collapsableBar('bottomtable', 'bottomtableicon');
    echo "<img id='bottomtableicon' src=" . XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/images/icon/close12.gif alt='' /></a>&nbsp;" . _AM_SF_SUBMITTED_ANSWER . "</h3>";
    echo "<div id='bottomtable'>";
    echo "<span style=\"color: #567; margin: 3px 0 12px 0; font-size: small; display: block; \">" . _AM_SF_SUBMITTED_ANSWER_INFO . "</span>";
    $proposed_answers = $answer_handler->getAllAnswers($faqid, _SF_AN_STATUS_PROPOSED);
    if (count($proposed_answers) == 0) {
        redirect_header("index.php", 1, _AM_SF_NOANSWERS);
        exit;
    }
    echo "<table width='100%' cellspacing=1 cellpadding=3 border=0 class = outer>\r\n\t        <tr>\r\n\t          <td class='head' width='100px'>" . _AM_SF_CATEGORY . "</td>\r\n\t          <td class='even'>" . $categoryObj->name() . "</td>\r\n\t        </tr>\r\n\t        <tr>\r\n\t          <td class='head' width='100px'>" . _AM_SF_QUESTION . "</td>\r\n\t          <td class='even'>" . $faqObj->question() . "</td>\r\n\t        </tr>";
    if ($official_answer) {
        echo "\r\n\t        <tr>\r\n\t          <td class='head' width='100px'>" . _AM_SF_ANSWER_OFFICIAL . "</td>\r\n\t          <td class='even'>" . $official_answer->answer() . "</td>\r\n\t        </tr>";
    }
    echo "</table><br />\n";
    echo "<table width='100%' cellspacing=1 cellpadding=3 border=0 class = outer>";
    echo "<tr>";
    echo "<td width='40' class='bg3' align='center'><b>" . _AM_SF_ARTID . "</b></td>";
    echo "<td class='bg3' class='bg3' align='center'><b>" . _AM_SF_ANSWER . "</b></td>";
    echo "<td width='180' class='bg3' align='center'><b>" . _AM_SF_CREATED . "</b></td>";
    echo "<td width='120' class='bg3' align='center'><b>" . _AM_SF_ACTION . "</b></td>";
    echo "</tr>";
    $merge = '';
    $modify = '';
    $approve = '';
    foreach ($proposed_answers as $proposed_answer) {
        if ($faqObj->status() == _SF_STATUS_NEW_ANSWER) {
            $merge = "<a href='faq.php?op=merge&amp;faqid=" . $faqObj->faqid() . "&amp;answerid=" . $proposed_answer->answerid() . "'><img src='" . XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/images/icon/merge.gif' title='" . _AM_SF_FAQ_MERGE . "' alt='" . _AM_SF_FAQ_MERGE . "' /></a>&nbsp;";
            $approve = "<a href='answer.php?op=selectanswer&amp;faqid=" . $faqid . "&amp;answerid=" . $proposed_answer->answerid() . "'><img src='" . XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/images/icon/approve.gif' title='" . _AM_SF_FAQ_APPROVE_NEW_ANSWER . "' alt='" . _AM_SF_APPROVESUB . "' /></a>";
        }
        $modify = "<a href='faq.php?op=mod&amp;faqid=" . $faqObj->faqid() . "&amp;answerid=" . $proposed_answer->answerid() . "'><img src='" . XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/images/icon/edit.gif' title='" . _AM_SF_FAQ_REVIEW . "' alt='" . _AM_SF_FAQ_REVIEW . "' /></a>&nbsp;";
        $delete = "<a href='answer.php?op=del&amp;faqid=" . $faqObj->faqid() . "&amp;answerid=" . $proposed_answer->answerid() . "'><img src='" . XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/images/icon/delete.gif' title='" . _AM_SF_DELETESUBM . "' alt='" . _AM_SF_DELETESUBM . "' /></a>";
        echo "<tr>";
        echo "<td class='head' align='center'>" . $proposed_answer->answerid() . "</td>";
        echo "<td class='even' align='left'>" . $proposed_answer->answer() . "</td>";
        echo "<td class='even' align='center'>" . $proposed_answer->datesub() . "</td>";
        echo "<td class='even' align='center'> {$merge} {$modify} {$approve} {$delete} </td>";
        echo "</tr>";
    }
    echo "</table>\n<br />";
}
Exemple #7
0
 function getCountsByCat($cat_id = 0, $status)
 {
     global $xoopsUser;
     $ret = array();
     $sql = 'SELECT categoryid, COUNT(*) AS count FROM ' . $this->db->prefix('smartfaq_faq');
     if (intval($cat_id) > 0) {
         $sql .= ' WHERE categoryid = ' . intval($cat_id);
         $sql .= ' AND status IN (' . implode(',', $status) . ')';
     } else {
         $sql .= ' WHERE status IN (' . implode(',', $status) . ')';
         if (!sf_userIsAdmin()) {
             $smartPermHandler =& xoops_getmodulehandler('permission', 'smartfaq');
             $items = $smartPermHandler->getPermissions('item');
             if (is_object($xoopsUser)) {
                 $sql .= ' AND faqid IN (' . implode(',', $items) . ')';
             } else {
                 $sql .= ' AND (faqid IN (' . implode(',', $items) . ') OR partialview = 1)';
             }
         }
     }
     $sql .= ' GROUP BY categoryid';
     //echo "<br />" . $sql . "<br />";
     $result = $this->db->query($sql);
     if (!$result) {
         return $ret;
     }
     while ($row = $this->db->fetchArray($result)) {
         $ret[$row['categoryid']] = intval($row['count']);
     }
     return $ret;
 }