Beispiel #1
0
function pico_common_get_objects_from_content_id($mydirname, $content_id)
{
    $picoPermission =& PicoPermission::getInstance();
    $permissions = $picoPermission->getPermissions($mydirname);
    $cat_id = pico_common_get_cat_id_from_content_id($mydirname, $content_id);
    $categoryObj = new PicoCategory($mydirname, intval($cat_id), $permissions);
    $contentObj = new PicoContent($mydirname, $content_id, $categoryObj);
    return array($categoryObj, $contentObj);
}
 function pico_notify_base($mydirname, $category, $item_id)
 {
     include_once dirname(__FILE__) . '/include/common_functions.php';
     $db =& Database::getInstance();
     $module_handler =& xoops_gethandler('module');
     $module =& $module_handler->getByDirname($mydirname);
     $picoPermission =& PicoPermission::getInstance();
     $permissions = $picoPermission->getPermissions($mydirname);
     // global
     if ($category == 'global') {
         $item['name'] = '';
         $item['url'] = '';
     }
     // category
     if ($category == 'category') {
         // Assume we have a valid cat_id
         $cat_id = intval($item_id);
         $currentCategoryObj =& new PicoCategory($mydirname, intval($cat_id), $permissions);
         $cat_data = $currentCategoryObj->getData();
         if (!$cat_data['can_read']) {
             return false;
         }
         $category4assign = $currentCategoryObj->getData4html();
         // $item should be assigned HTML escaped data
         $item['name'] = $category4assign['cat_title'];
         $item['url'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/' . $category4assign['link'];
     }
     // content
     if ($category == 'content') {
         // Assume we have a valid content_id
         $content_id = intval($item_id);
         $cat_id = pico_common_get_cat_id_from_content_id($mydirname, $content_id);
         $currentCategoryObj =& new PicoCategory($mydirname, intval($cat_id), $permissions);
         $cat_data = $currentCategoryObj->getData();
         if (!$cat_data['can_read']) {
             return false;
         }
         $contentObj =& new PicoContent($mydirname, $content_id, $currentCategoryObj);
         $content4assign = $contentObj->getData4html();
         if (!$content4assign['can_read']) {
             return false;
         }
         // $item should be assigned HTML escaped data
         $item['name'] = $content4assign['subject'];
         $item['url'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/' . $content4assign['link'];
     }
     return $item;
 }
function pico_get_content_history_profile($mydirname, $content_history_id, $content_id = null)
{
    $db =& Database::getInstance();
    if (empty($content_history_id) && !empty($content_id)) {
        // fetch from contents table as the latest content_history
        $history_row = $db->fetchArray($db->query("SELECT o.*,up.uname AS poster_uname,mp.uname AS modifier_uname FROM " . $db->prefix($mydirname . "_contents") . " o LEFT JOIN " . $db->prefix("users") . " up ON o.poster_uid=up.uid LEFT JOIN " . $db->prefix("users") . " mp ON o.modifier_uid=mp.uid WHERE o.content_id={$content_id}"));
    } else {
        // get $history_row and $content_id
        $history_row = $db->fetchArray($db->query("SELECT oh.*,up.uname AS poster_uname,mp.uname AS modifier_uname FROM " . $db->prefix($mydirname . "_content_histories") . " oh LEFT JOIN " . $db->prefix("users") . " up ON oh.poster_uid=up.uid LEFT JOIN " . $db->prefix("users") . " mp ON oh.modifier_uid=mp.uid WHERE oh.content_history_id={$content_history_id}"));
        if (empty($history_row['content_id'])) {
            die('Invalid content_history_id');
        }
        $content_id = intval($history_row['content_id']);
    }
    // get and process $cat_id
    $cat_id = pico_common_get_cat_id_from_content_id($mydirname, $content_id);
    // unserialize and visualize extra_fields
    $ef4display = print_r(pico_common_unserialize($history_row['extra_fields']), true);
    return array($cat_id, $content_id, "content_id: {$history_row['content_id']}\nsubject:    {$history_row['subject']}\ncat_id:     {$history_row['cat_id']}\nvpath:      {$history_row['vpath']}\ncreated:    " . formatTimestamp($history_row['created_time'], 'm') . " ({$history_row['poster_ip']}) {$history_row['poster_uname']}({$history_row['poster_uid']})\nmodified:   " . formatTimestamp($history_row['modified_time'], 'm') . " ({$history_row['modifier_ip']}) {$history_row['modifier_uname']}({$history_row['modifier_uid']})\nfilters:    {$history_row['filters']}\ntags:    {$history_row['tags']}\n\nhtmlheader:\n{$history_row['htmlheader']}\n\nbody:\n{$history_row['body']}\n\nextra_fields:\n{$ef4display}\n");
}
 function parsePathInfo($path_info)
 {
     // check vpath in DB (1st)
     $ext = strtolower(substr(strrchr($path_info, '.'), 1));
     if (in_array($ext, explode('|', _MD_PICO_EXTS4HTMLWRAPPING))) {
         $db =& Database::getInstance();
         $result = $db->query("SELECT content_id,cat_id FROM " . $db->prefix($this->mydirname . "_contents") . " WHERE vpath='" . mysql_real_escape_string($path_info) . "'");
         list($content_id, $cat_id) = $db->fetchRow($result);
         if ($content_id > 0) {
             return array(intval($content_id), intval($cat_id));
         }
     }
     // check cat_vpath in DB (2nd)
     if (substr($path_info, -1) == '/') {
         $db =& Database::getInstance();
         $result = $db->query("SELECT cat_id FROM " . $db->prefix($this->mydirname . "_categories") . " WHERE cat_vpath='" . mysql_real_escape_string($path_info) . "' OR cat_vpath='" . mysql_real_escape_string(substr($path_info, 0, -1)) . "'");
         list($cat_id) = $db->fetchRow($result);
         if ($cat_id > 0) {
             return array(0, intval($cat_id));
         }
     }
     // check path_info obeys the ruled for autonaming for contents (3rd)
     if (preg_match(_MD_PICO_AUTONAME4PREGEX, $path_info, $regs)) {
         $content_id = intval(@$regs[1]);
         return array($content_id, pico_common_get_cat_id_from_content_id($this->mydirname, $content_id));
     }
     // check path_info obeys the ruled for autonaming for category (4th)
     if (preg_match(_MD_PICO_AUTOCATNAME4PREGEX, $path_info, $regs)) {
         return array(0, intval(@$regs[1]));
     }
     return array(null, null);
 }