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); }