function search_resources() { global $xoopsConfig, $xoopsUser, $page, $xoopsTpl; $keyword = rmc_server_var($_GET, 'keyword', ''); $db = XoopsDatabaseFactory::getDatabaseConnection(); $sql = "SELECT COUNT(*) FROM " . $db->prefix("rd_resources") . " WHERE (title LIKE '%{$keyword}%' OR description LIKE '%{$keyword}%') AND public=1 AND approved=1"; list($num) = $db->fetchRow($db->query($sql)); $page = rmc_server_var($_GET, 'page', 1); $limit = 15; $tpages = ceil($num / $limit); $page = $page > $tpages ? $tpages : $page; $start = $num <= 0 ? 0 : ($page - 1) * $limit; $nav = new RMPageNav($num, $limit, $page, 5); $nav->target_url(RDFunctions::make_link('search') . '?keyword=' . $keyword . '&page={PAGE_NUM}'); $sql = "SELECT * FROM " . $db->prefix("rd_resources") . " WHERE (title LIKE '%{$keyword}%' OR description LIKE '%{$keyword}%') AND public=1 AND approved=1 LIMIT {$start}, {$limit}"; $result = $db->query($sql); $resources = array(); while ($row = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($row); $resources[] = array('id' => $res->id(), 'title' => $res->getVar('title'), 'desc' => TextCleaner::truncate($res->getVar('description'), 100), 'link' => $res->permalink(), 'created' => $res->getVar('created'), 'owner' => $res->getVar('owner'), 'uname' => $res->getVar('owname'), 'reads' => $res->getVar('reads')); } RDFunctions::breadcrumb(); RMBreadCrumb::get()->add_crumb(__('Browsing recent Documents', 'docs')); RMTemplate::get()->add_style('docs.css', 'docs'); include 'header.php'; $xoopsTpl->assign('xoops_pagetitle', sprintf(__('Search results for "%s"', 'docs'), $keyword)); include RMEvents::get()->run_event('docs.template.search', RMTemplate::get()->get_template('rd_search.php', 'module', 'docs')); include 'footer.php'; }
/** * Este archivo permite controlar el bloque o los bloques * Bloques Existentes: * * 1. Publicaciones Recientes * 2. Publicaciones Populares (Mas Leídas) * 3. Publicaciones Mejor Votadas */ function rd_block_resources($options) { global $xoopsModule; include_once XOOPS_ROOT_PATH . '/modules/docs/class/rdresource.class.php'; $db = XoopsDatabaseFactory::getDatabaseConnection(); $mc = RMUtilities::module_config('docs'); $sql = "SELECT * FROM " . $db->prefix("rd_resources") . ' WHERE public=1 AND approved=1'; switch ($options[0]) { case 'recents': $sql .= " ORDER BY created DESC"; break; case 'popular': $sql .= " ORDER BY `reads` DESC"; break; } $sql .= " LIMIT 0, " . ($options[1] > 0 ? $options[1] : 5); $result = $db->query($sql); $block = array(); while ($row = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($row); $ret = array(); $ret['id'] = $res->id(); $ret['title'] = $res->getVar('title'); if ($options[2]) { $ret['desc'] = $options[3] == 0 ? $res->getVar('description') : TextCleaner::truncate($res->getVar('description'), $options[3]); } $ret['link'] = $res->permalink(); $ret['author'] = sprintf(__('Created by %s', 'docs'), '<strong>' . $res->getVar('owname') . '</strong>'); $ret['reads'] = sprintf(__('Viewed %s times', 'docs'), '<strong>' . $res->getVar('reads') . '</strong>'); $block['resources'][] = $ret; } RMTemplate::get()->add_style('blocks.css', 'docs'); return $block; }
/** * Shows a list of existing resources in RapidDocs */ function resources_list() { global $xoopsUser, $xoopsModule; $db = XoopsDatabaseFactory::getDatabaseConnection(); //Navegador de páginas $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_resources'); list($num) = $db->fetchRow($db->queryF($sql)); $page = rmc_server_var($_REQUEST, 'page', 1); $limit = 20; $tpages = ceil($num / $limit); $page = $page > $tpages ? $tpages : $page; $start = $num <= 0 ? 0 : ($page - 1) * $limit; $nav = new RMPageNav($num, $limit, $page, 5); $nav->target_url('javascript:;" onclick="docsAjax.getSectionsList({PAGE_NUM});'); //Fin navegador de páginas $sql = "SELECT * FROM " . $db->prefix('rd_resources'); if ($xoopsUser->isAdmin()) { $sql .= " ORDER BY `created` DESC LIMIT {$start},{$limit}"; } else { $sql .= " WHERE public=1 OR (public=0 AND owner=" . $xoopsUser->uid() . ") ORDER BY `created` DESC LIMIT {$start},{$limit}"; } $result = $db->queryF($sql); $resources = array(); while ($rows = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($rows); $resources[] = array('id' => $res->id(), 'title' => $res->getVar('title')); } include RMTemplate::get()->get_template('ajax/rd_sections_list.php', 'module', 'docs'); }
/** * @desc Muestra todas las publicaciones existentes **/ function show_resources() { global $xoopsModule, $xoopsConfig, $xoopsSecurity; $query = rmc_server_var($_REQUEST, 'query', ''); $db = XoopsDatabaseFactory::getDatabaseConnection(); //Navegador de páginas $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_resources'); if ($query) { $sql .= " WHERE title LIKE '%query%'"; } list($num) = $db->fetchRow($db->queryF($sql)); $page = rmc_server_var($_REQUEST, 'page', 1); $limit = 15; $tpages = ceil($num / $limit); $page = $page > $tpages ? $tpages : $page; $start = $num <= 0 ? 0 : ($page - 1) * $limit; $nav = new RMPageNav($num, $limit, $page, 5); $nav->target_url('resources.php?page={PAGE_NUM}'); //Fin navegador de páginas $sql = "SELECT * FROM " . $db->prefix('rd_resources') . ($query != '' ? " WHERE title LIKE '%{$query}%'" : '') . " ORDER BY `created` DESC LIMIT {$start},{$limit}"; $result = $db->queryF($sql); $resources = array(); while ($rows = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($rows); $resources[] = array('id' => $res->id(), 'title' => $res->getVar('title'), 'created' => formatTimestamp($res->getVar('created'), 'm'), 'public' => $res->getVar('public'), 'quick' => $res->getVar('quick'), 'approvededit' => $res->getVar('editor_approve'), 'featured' => $res->getVar('featured'), 'approved' => $res->getVar('approved'), 'owname' => $res->getVar('owname'), 'owner' => $res->getVar('owner'), 'description' => $res->getVar('description'), 'sections' => $res->sections_count(), 'notes' => $res->notes_count(), 'figures' => $res->figures_count()); } RMTemplate::get()->add_style('admin.css', 'docs'); RMTemplate::get()->assign('xoops_pagetitle', __('Documents', 'docs')); RMTemplate::get()->add_script(RMCURL . '/include/js/jquery.checkboxes.js'); RMTemplate::get()->add_script(XOOPS_URL . '/modules/docs/include/js/admin.js'); RMTemplate::get()->add_head('<script type="text/javascript"> var rd_message = "' . __('Do you really wish to delete selected Documents?', 'docs') . '"; var rd_select_message = "' . __('You must select an element before to do this action!', 'docs') . '"; </script>'); xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> » " . __('Documents', 'docs')); RDFunctions::toolbar(); xoops_cp_header(); include RMTemplate::get()->get_template('admin/rd_resources.php', 'module', 'docs'); xoops_cp_footer(); }
/** * Get resources index according to given options */ public function resources_index($type = 'all', $display = 1, $cols = 3, $limit = 15) { $db = XoopsDatabaseFactory::getDatabaseConnection(); $sql = "SELECT * FROM " . $db->prefix("rd_resources"); if ($type == 'featured') { $sql .= " WHERE public=1 AND approved=1 AND featured=1 ORDER BY created DESC"; } elseif ($type == 'all') { $sql .= " WHERE public=1 AND approved=1 ORDER BY created DESC"; } $sql .= " LIMIT 0,{$limit}"; $result = $db->query($sql); $resources = array(); while ($row = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($row); $resources[] = array('id' => $res->id(), 'title' => $res->getVar('title'), 'desc' => $res->getVar('description'), 'link' => $res->permalink()); } ob_start(); include RMEvents::get()->run_event('docs.template.resources.index', RMTemplate::get()->get_template('rd_resindex.php', 'module', 'docs')); $ret = ob_get_clean(); return $ret; }
/** * @desc Muestra el contenido completo de una sección */ function showSection(RDResource &$res, RDSection &$section) { global $xoopsUser, $xoopsModuleConfig, $xoopsOption, $xoopsTpl, $xoopsConfig, $standalone; include 'header.php'; $xoopsTpl->assign('xoops_pagetitle', $section->getVar('title')); // Resource data $resource = array('id' => $res->id(), 'title' => $res->getVar('title'), 'link' => $res->permalink(), 'reads' => $res->getVar('reads')); $res->add_read($res); // Navegación de Secciones $db = XoopsDatabaseFactory::getDatabaseConnection(); $sql = "SELECT * FROM " . $db->prefix("rd_sections") . " WHERE id_res='" . $res->id() . "' AND parent = '0' ORDER BY `order`"; $result = $db->query($sql); $i = 1; $number = 1; $located = false; // Check if current position has been located while ($row = $db->fetchArray($result)) { $sec = new RDSection(); $sec->assignVars($row); if ($sec->id() == $section->id()) { $number = $i; $located = true; } if ($sec->id() == $section->id() && isset($sprev)) { $prev_section = array('id' => $sprev->id(), 'title' => $sprev->getVar('title'), 'link' => $sprev->permalink()); } if ($number == $i - 1 && $located) { $next_section = array('id' => $sec->id(), 'title' => $sec->getVar('title'), 'link' => $sec->permalink()); break; } $i++; $sprev = $sec; } $GLOBALS['rd_section_number'] = $number; $sections = RDFunctions::get_section_tree($section->id(), $res, $number, true); array_walk($sections, 'rd_insert_edit'); // Check last modification date $last_modification = 0; foreach ($sections as $sec) { if ($sec['modified'] > $last_modification) { $last_modification = $sec['modified']; $last_author = array('id' => $sec['author'], 'name' => $sec['author_name']); } } // Event $sections = RMEvents::get()->run_event('docs.show.section', $sections, $res, $section); RMTemplate::get()->add_style('docs.css', 'docs'); RMTemplate::get()->add_jquery(); RMTemplate::get()->add_script(XOOPS_URL . '/modules/docs/include/js/docs.js'); // URLs if ($xoopsModuleConfig['permalinks']) { /** * @todo Generate friendly links */ if (RMFunctions::plugin_installed('topdf')) { $pdf_book_url = RDFunctions::url() . '/pdfbook/' . $section->id() . '/'; $pdf_section_url = RDFunctions::url() . '/pdfsection/' . $section->id() . '/'; } $print_book_url = RDFunctions::url() . '/printbook/' . $section->id() . '/'; $print_section_url = RDFunctions::url() . '/printsection/' . $section->id() . '/'; if (RDFunctions::new_resource_allowed($xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS)) { $publish_url = RDFunctions::url() . '/publish/'; } } else { if (RMFunctions::plugin_installed('topdf')) { $pdf_book_url = XOOPS_URL . '/modules/docs/index.php?page=content&id=' . $section->id() . '&action=pdfbook'; $pdf_section_url = XOOPS_URL . '/modules/docs/index.php?page=content&id=' . $section->id() . '&action=pdfsection'; } $print_book_url = XOOPS_URL . '/modules/docs/index.php?page=content&id=' . $section->id() . '&action=printbook'; $print_section_url = XOOPS_URL . '/modules/docs/index.php?page=content&id=' . $section->id() . '&action=printsection'; if (RDFunctions::new_resource_allowed($xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS)) { $publish_url = RDFunctions::url() . '/?action=publish'; } } // Comments RMFunctions::get_comments('docs', 'res=' . $res->id() . '&id=' . $section->id(), 'module', 0); RMFunctions::comments_form('docs', 'res=' . $res->id() . '&id=' . $section->id(), 'module', RDPATH . '/class/mywordscontroller.php'); RDFunctions::breadcrumb(); RMBreadCrumb::get()->add_crumb($res->getVar('title'), $res->permalink()); RMBreadCrumb::get()->add_crumb($section->getVar('title'), $section->permalink()); include RMEvents::get()->run_event('docs.section.template', RMTemplate::get()->get_template('rd_section.php', 'module', 'docs')); if ($standalone) { RDFunctions::standalone(); } include 'footer.php'; }
/** * @desc Almacena toda la información referente a la sección **/ function saveSection($edit = 0, $ret = 0) { global $xoopsUser, $xoopsModuleConfig; foreach ($_POST as $k => $v) { ${$k} = $v; } //Verifica si se proporcionó una publicación para la sección if ($res <= 0) { redirect_header(RDURL, 1, __('Operation not allowed!', 'docs')); die; } //Verifica si la publicación existe $res = new RDResource($res); if ($res->isNew()) { redirect_header(RDURL, 1, __('Operation not allowed!', 'docs')); die; } //Verificamos si es una publicación aprobada if (!$res->getVar('approved')) { redirect_header(RDURL, 2, __('This Document has not been approved yet!', 'docs')); die; } // TODO: Crear el link correcto de retorno if ($xoopsModuleConfig['permalinks']) { $retlink = RDFunctions::url() . '/list/' . $res->getVar('nameid') . '/'; } else { $retlink = RDFunctions::url() . '?page=edit&action=list&res=' . $res->id(); } //Verificamos si el usuario tiene permisos de edicion if (!$xoopsUser->uid() == $res->getVar('owner') && !$res->isEditor($xoopsUser->uid()) && !$xoopsUser->isAdmin()) { redirect_header(RDURL, 2, __('You can not edit this content!', 'docs')); die; } $db = XoopsDatabaseFactory::getDatabaseConnection(); if ($edit) { //Verifica si la sección es válida if ($id == '') { redirect_header($retlink, 1, __('Specified section is not valid!', 'docs')); die; } //Comprueba si la sección es existente $sec = new RDSection($id); if ($sec->isNew()) { redirect_header($retlink, 1, __('Specified section does not exists!', 'docs')); die; } //Comprueba que el título de la sección no exista $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_sections') . " WHERE title='{$title}' AND id_res='{$res}' AND id_sec<>" . $sec->id(); list($num) = $db->fetchRow($db->queryF($sql)); if ($num > 0) { redirect_header($sec->editlink(), 1, __('Already exists another section with same title!', 'docs')); die; } /** * Comprobamos si debemos almacenar las ediciones en la * tabla temporal o directamente en la tabla de secciones */ if (!$res->getVar('editor_approve') && !$xoopsUser->isAdmin()) { $sec = new RDEdit(null, $id_sec); } } else { //Comprueba que el título de la sección no exista $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_sections') . " WHERE title='{$title}' AND id_res='" . $res->id() . "'"; list($num) = $db->fetchRow($db->queryF($sql)); if ($num > 0) { redirect_header(ah_make_link('publish/' . $res->nameId() . '/'), 1, _MS_AH_ERRTITLE); die; } $sec = new RDSection(); } //Genera $nameid Nombre identificador if ($title != $sec->getVar('title')) { $found = false; $i = 0; do { $nameid = TextCleaner::getInstance()->sweetstring($title) . ($found ? $i : ''); $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_sections') . " WHERE nameid = '{$nameid}'"; list($num) = $db->fetchRow($db->queryF($sql)); if ($num > 0) { $found = true; $i++; } else { $found = false; } } while ($found == true); } if (!$res->getVar('editor_approve') && !$xoopsUser->isAdmin() && !($res->getVar('owner') == $xoopsUser->uid())) { $sec->setVar('id_sec', $id); } $sec->setVar('title', $title); $sec->setVar('content', $content); $sec->setVar('order', $order); $sec->setVar('id_res', $res->id()); isset($nameid) ? $sec->setVar('nameid', $nameid) : ''; $sec->setVar('parent', $parent); $sec->setVar('uid', $xoopsUser->uid()); $sec->setVar('uname', $xoopsUser->uname()); if ($edit) { $sec->setVar('modified', time()); } else { $sec->setVar('created', time()); $sec->setVar('modified', time()); } // Metas if ($edit) { $sec->clear_metas(); } // Clear all metas // Initialize metas array if not exists if (!isset($metas)) { $metas = array(); } // Get meta key if "select" is visible if (isset($meta_name_sel) && $meta_name_sel != '') { $meta_name = $meta_name_sel; } // Add meta to metas array if (isset($meta_name) && $meta_name != '') { array_push($metas, array('key' => $meta_name, 'value' => $meta_value)); } // Assign metas foreach ($metas as $value) { $sec->add_meta($value['key'], $value['value']); } RMEvents::get()->run_event('docs.saving.section', $sec); if (!$sec->save()) { redirect_header($sec->editlink(), 3, __('Section could not be saved!', 'docs')); } else { if ($edit) { $sec = new RDSection($sec->getVar('id_sec')); } if ($return == 1) { redirect_header($sec->permalink(), 1, __('Database updated successfully!', 'docs')); } elseif ($return == 2) { redirect_header($sec->editlink(), 1, __('Database updated successfully!', 'docs')); } else { redirect_header($retlink, 1, __('Database updated successfully!', 'docs')); } } }
/** * @desc Formulario de creación y edición de sección **/ function rd_show_form($edit = 0) { global $xoopsModule, $xoopsConfig, $xoopsSecurity, $xoopsUser, $xoopsModuleConfig, $rmc_config; define('RMCSUBLOCATION', 'newresource'); $id = rmc_server_var($_GET, 'id', 0); $parent = rmc_server_var($_GET, 'parent', 0); if ($id <= 0) { redirectMsg('sections.php?id=' . $id, __('You must select a Document in order to create a new section', 'docs'), 1); die; } // Check if provided Document exists global $res; $res = new RDResource($id); if ($res->isNew()) { redirectMsg('sections.php?id=' . $id, __('Specified Document does not exists!', 'docs'), 1); die; } if ($edit) { $id_sec = rmc_server_var($_GET, 'sec', 0); //Verifica si la sección es válida if ($id_sec <= 0) { redirectMsg('sections.php?id=' . $id, __('Specify a section to edit', 'docs'), 1); die; } //Comprueba si la sección es existente $sec = new RDSection($id_sec); if ($sec->isNew()) { redirectMsg('sections.php?id=' . $id, __('Specified section does not exists', 'docs'), 1); die; } } // Get order $order = RDFunctions::order('MAX', $parent, $res->id()); $order++; $rmc_config = RMFunctions::configs(); $form = new RMForm('', 'frmsec', 'sections.php'); if ($rmc_config['editor_type'] == 'tiny') { $tiny = TinyEditor::getInstance(); $tiny->add_config('theme_advanced_buttons1', 'rd_refs'); $tiny->add_config('theme_advanced_buttons1', 'rd_figures'); $tiny->add_config('theme_advanced_buttons1', 'rd_toc'); } $editor = new RMFormEditor('', 'content', '100%', '300px', $edit ? $rmc_config['editor_type'] == 'tiny' ? $sec->getVar('content') : $sec->getVar('content', 'e') : '', '', 0); $usrfield = new RMFormUser('', 'uid', false, $edit ? array($sec->getVar('uid')) : $xoopsUser->getVar('uid')); RMTemplate::get()->add_style('admin.css', 'docs'); RMTemplate::get()->add_script('../include/js/scripts.php?file=metas.js'); RMTemplate::get()->add_script(RMCURL . '/include/js/jquery.validate.min.js'); RMTemplate::get()->add_head('<script type="text/javascript">var docsurl = "' . XOOPS_URL . '/modules/docs";</script>'); RDFunctions::toolbar(); xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> » " . ($edit ? __('Edit Section', 'docs') : __('Create Section', 'docs'))); RMTemplate::get()->assign('xoops_pagetitle', $edit ? __('Edit Section', 'docs') : __('Create Section', 'docs')); xoops_cp_header(); $sections = array(); RDFunctions::getSectionTree($sections, 0, 0, $id, 'id_sec, title', isset($sec) ? $sec->id() : 0); include RMEvents::get()->run_event('docs.get.secform.template', RMTemplate::get()->get_template('admin/rd_sections_form.php', 'module', 'docs')); xoops_cp_footer(); }
/** * @desc Almacena información perteneciente a una publicación **/ function savePublish() { global $xoopsSecurity, $xoopsModuleConfig, $xoopsUser, $xoopsConfig; $config_handler =& xoops_gethandler('config'); $xconfig = $config_handler->getConfigsByCat(XOOPS_CONF_MAILER); foreach ($_POST as $k => $v) { ${$k} = $v; } if ($xoopsModuleConfig['permalinks']) { $purl = RDFunctions::url() . '/publish/'; } else { $purl = RDFunctions::url() . '?page=publish&action=publish'; } if (!$xoopsSecurity->check()) { redirect_header($prul, 1, __('Session token expired!', 'docs')); die; } $db = XoopsDatabaseFactory::getDatabaseConnection(); //Comprueba que el título de publicación no exista $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_resources') . " WHERE title='{$title}' "; list($num) = $db->fetchRow($db->queryF($sql)); if ($num > 0) { redirect_header($purl, 1, __('Already exists a Document with same name!', 'docs')); die; } $res = new RDResource(); //Genera $nameid Nombre identificador $found = false; $i = 0; do { $nameid = TextCleaner::getInstance()->sweetstring($title) . ($found ? $i : ''); $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_resources') . " WHERE nameid = '{$nameid}'"; list($num) = $db->fetchRow($db->queryF($sql)); if ($num > 0) { $found = true; $i++; } else { $found = false; } } while ($found == true); $res->setVar('title', $title); $res->setVar('description', $desc); $res->setVar('created', time()); $res->setVar('modified', time()); $res->setVar('editors', $editors); $res->setVar('groups', $groups); $res->setVar('public', 1); $res->setVar('quick', $quick); $res->setVar('nameid', $nameid); $res->setVar('owner', $xoopsUser->uid()); $res->setVar('owname', $xoopsUser->uname()); $res->setVar('approved', $xoopsModuleConfig['approved']); $res->setVar('single', $single); if (!$res->save()) { redirect_header($prul, 1, __('Document could not be created!', 'docs')); } else { //Si no se aprobó la publicación enviamos correo al administrador if (!$xoopsModuleConfig['approved']) { $mailer = new RMMailer('text/plain'); $mailer->add_user($xconfig['from'], $xconfig['fromname'], 'to'); $mailer->set_subject(__('New Document created at RapidDocs is waiting for approval', 'rmcommon')); $mailer->assign('to_name', $xconfig['fromname']); $mailer->assign('link_to_resource', XOOPS_URL . '/modules/docs/admin/resources.php?action=edit&id=' . $res->id()); $mailer->template(RMTemplate::get()->get_template('mail/resource_for_approval.php', 'module', 'docs')); if (!$mailer->send()) { redirect_header(RDFunctions::url(), 1, __('Your Document has been created, however the email to administrator could no be sent.', 'docs')); die; } redirect_header(RDFunctions::url(), 1, __('Your Document has been created and is pending for approval. We will sent an email when you can access to it and add content.', 'docs')); die; } if ($xoopsModuleConfig['permalinks']) { $purl = RDFunctions::url() . '/list/' . $res->id() . '/'; } else { $purl = RDFunctions::url() . '?page=edit&action=list&id=' . $res->id(); } redirect_header($purl, 1, __('Document created successfully!', 'docs')); die; } }
$resume_data['sections'] = $num; list($num) = $db->fetchRow($db->query("SELECT COUNT(*) FROM " . $db->prefix("rd_figures"))); $resume_data['figures'] = $num; list($num) = $db->fetchRow($db->query("SELECT COUNT(*) FROM " . $db->prefix("rd_references"))); $resume_data['notes'] = $num; // No published resoruces $sql = "SELECT * FROM " . $db->prefix("rd_resources") . " WHERE public=0 ORDER BY created DESC LIMIT 0,5"; $result = $db->query($sql); $nopublished = array(); while ($row = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($row); $nopublished[] = array('id' => $res->id(), 'title' => $res->getVar('title'), 'created' => $res->getVar('created'), 'desc' => TextCleaner::getInstance()->truncate($res->getVar('description'), 60)); } // No published resoruces $sql = "SELECT * FROM " . $db->prefix("rd_resources") . " WHERE approved=0 ORDER BY created DESC LIMIT 0,5"; $result = $db->query($sql); $noapproved = array(); while ($row = $db->fetchArray($result)) { $res = new RDResource(); $res->assignVars($row); $noapproved[] = array('id' => $res->id(), 'title' => $res->getVar('title'), 'created' => $res->getVar('created'), 'desc' => TextCleaner::getInstance()->truncate($res->getVar('description'), 60)); } xoops_cp_header(); RMTemplate::get()->add_style('admin.css', 'docs'); RMTemplate::get()->add_style('dashboard.css', 'docs'); RMTemplate::get()->add_script(RMCURL . '/include/js/jquery.gcharts.js'); RMTemplate::get()->add_head('<script type="text/javascript">var xoops_url="' . XOOPS_URL . '";</script>'); RMTemplate::get()->add_script('../include/js/dashboard.js'); include RMTemplate::get()->get_template('admin/rd_index.php', 'module', 'docs'); xoops_cp_footer();
define('AH_LOCATION', 'rate'); include '../../mainfile.php'; $id = isset($_GET['id']) ? intval($_GET['id']) : 0; $rate = isset($_GET['rate']) ? intval($_GET['rate']) : 0; $ret = isset($_GET['ret']) ? $_GET['ret'] : ''; $mc =& $xoopsModuleConfig; if ($id <= 0) { redirect_header(XOOPS_URL . '/modules/ahelp/', 2, _MS_AH_NOID); die; } $res = new RDResource($id); if ($res->isNew()) { redirect_header(XOOPS_URL . '/modules/ahelp/', 2, _MS_AH_NOID); die; } $retlink = $ret != '' ? urldecode($ret) : XOOPS_URL . '/modules/ahelp/' . ($mc['access'] ? 'content/' . $res->id() . '/' . $res->nameId() : 'content.php?id=' . $res->id()); if ($rate <= 0 || $rate > 5) { redirect_header($retlink, 2, _MS_AH_NORATE); die; } $db->queryF("DELETE FROM " . $db->prefix("pa_votedata") . " WHERE date<'" . (time() - 86400) . "'"); $ip = $_SERVER['REMOTE_ADDR']; $sql = "SELECT COUNT(*) FROM " . $db->prefix("pa_votedata") . " WHERE "; if ($xoopsUser) { $sql .= "uid='" . $xoopsUser->uid() . "' AND date>'" . (time() - 86400) . "' AND res='" . $res->id() . "'"; } else { $sql .= "ip='{$ip}' AND date>'" . (time() - 86400) . "' AND res='" . $res->id() . "'"; } list($num) = $db->fetchRow($db->query($sql)); if ($num > 0) { redirect_header($retlink, 2, _MS_AH_NODAY);