Example #1
0
/**
* 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');
}
Example #3
0
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 . '&amp;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';
}
Example #4
0
function rd_show_sections()
{
    global $xoopsModule, $xoopsSecurity;
    $id = rmc_server_var($_GET, 'id', 0);
    if ($id <= 0) {
        redirectMsg('resources.php', __('Select a Document to see the sections inside this', 'docs'), 0);
        die;
    }
    $res = new RDResource($id);
    if ($res->isNew()) {
        redirectMsg('resources.php', __('The specified Document does not exists!', 'docs'), 1);
        die;
    }
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    //Lista de Publicaciones
    $sql = "SELECT id_res,title FROM " . $db->prefix('rd_resources');
    $result = $db->queryF($sql);
    $resources = array();
    while ($rows = $db->fetchArray($result)) {
        $r = new RDResource();
        $r->assignVars($rows);
        $resources[] = array('id' => $r->id(), 'title' => $r->getVar('title'));
        unset($r);
    }
    //Secciones
    $sections = array();
    RDFunctions::sections_tree_index(0, 0, $res, '', '', false, $sections, false, true);
    // Event
    $sections = RMEvents::get()->run_event('docs.loading.sections', $sections);
    RDFunctions::toolbar();
    xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; " . __('Sections Management', 'docs'));
    RMTemplate::get()->assign('xoops_pagetitle', __('Sections Management', 'docs'));
    RMTemplate::get()->add_style('admin.css', 'docs');
    RMTemplate::get()->add_style('sections.css', 'docs');
    RMTemplate::get()->add_local_script('sections.js', 'docs', 'include');
    RMTemplate::get()->add_local_script('jquery.ui.nestedSortable.js', 'docs', 'include');
    xoops_cp_header();
    include RMEvents::get()->run_event('docs.get.sections.template', RMTemplate::get()->get_template('admin/rd_sections.php', 'module', 'docs'));
    xoops_cp_footer();
}
 public function get_item($params, $com, $url = false)
 {
     static $cresources;
     static $csections;
     $params = urldecode($params);
     parse_str($params);
     if (!isset($res) || $res <= 0) {
         return __('Unknow element', 'docs');
     }
     include_once XOOPS_ROOT_PATH . '/modules/docs/class/rdresource.class.php';
     include_once XOOPS_ROOT_PATH . '/modules/docs/class/rdsection.class.php';
     if (isset($id) && $id > 0) {
         if (isset($csections[$id])) {
             $ret = $csections[$id]->getVar('title');
             return $ret;
         }
         $sec = new RDSection($id);
         if ($sec->isNew()) {
             return __('Unknow element', 'docs');
         }
         $ret = $sec->getVar('title');
         $csections[$id] = $sec;
         return $ret;
     } else {
         if (isset($cresources[$res])) {
             $ret = $cresources[$res]->getVar('title');
             return $ret;
         }
         $resoruce = new RDResource($res);
         if ($resoruce->isNew()) {
             return __('Unknow element', 'docs');
         }
         $ret = $resoruce->getVar('title');
         $cresources[$res] = $resoruce;
         return $ret;
     }
 }
Example #6
0
 /**
  * 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;
 }
Example #7
0
/**
* @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&amp;id=' . $section->id() . '&amp;action=pdfbook';
            $pdf_section_url = XOOPS_URL . '/modules/docs/index.php?page=content&amp;id=' . $section->id() . '&amp;action=pdfsection';
        }
        $print_book_url = XOOPS_URL . '/modules/docs/index.php?page=content&amp;id=' . $section->id() . '&amp;action=printbook';
        $print_section_url = XOOPS_URL . '/modules/docs/index.php?page=content&amp;id=' . $section->id() . '&amp;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';
}
Example #8
0
/**
* @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'));
        }
    }
}
Example #9
0
// Mensajes de Error
$rmc_messages = array();
if (isset($_SESSION['rmMsg'])) {
    foreach ($_SESSION['rmMsg'] as $msg) {
        $rmc_messages[] = $msg;
    }
    unset($_SESSION['rmMsg']);
}
$id = rmc_server_var($_GET, 'id', 0);
$res = new RDResource($id);
//Verificamos si el usuario tiene permisos de edicion
if (!$xoopsUser) {
    redirect_header(XOOPS_URL . '/modules/docs', 2, __('You are not allowed to view this page', 'docs'));
    die;
} else {
    if (!($xoopsUser->uid() == $res->getVar('owner')) && !$res->isEditor($xoopsUser->uid()) && !$xoopsUser->isAdmin() && !$res->isNew()) {
        redirect_header(XOOPS_URL . '/modules/docs/figures.php', 2, __('You are not allowed to view this page', 'docs'));
        die;
    }
}
/**
* @desc Visualiza  todas las figuras existentes de una publicación
**/
function Figures()
{
    global $rmc_messages, $xoopsTpl, $xoopsSecurity;
    define('DF_LOCATION', 'list');
    $id = rmc_server_var($_GET, 'id', 0);
    $search = rmc_server_var($_GET, 'search', '');
    $rmc_config = RMFunctions::configs();
    //Navegador de páginas
Example #10
0
function showFormEdits()
{
    global $xoopsModule, $xoopsConfig;
    $id = rmc_server_var($_GET, 'id', 0);
    if ($id <= 0) {
        redirectMsg('edits.php', __('You have not specified any waiting section!', 'docs'), 1);
        die;
    }
    $edit = new RDEdit($id);
    if ($edit->isNew()) {
        redirectMsg('edits.php', __('Specified content does not exists!', 'docs'), 1);
        die;
    }
    $sec = new RDSection($edit->getVar('id_sec'));
    if ($sec->isNew()) {
        redirectMsg('edits.php', __('This waiting content does not have any section assigned!', 'docs'), 1);
        die;
    }
    $res = new RDResource($sec->getVar('id_res'));
    $form = new RMForm(__('Editing Waiting Content', 'docs'), 'frmsec', 'edits.php');
    $form->addElement(new RMFormLabel(__('Belong to', 'docs'), $res->getVar('title')));
    $form->addElement(new RMFormText(__('Title', 'docs'), 'title', 50, 200, $edit->getVar('title')), true);
    $form->addElement(new RMFormEditor(__('Contenido', 'docs'), 'content', '90%', '300px', $edit->getVar('content', 'e')), true);
    // Arbol de Secciones
    $ele = new RMFormSelect(__('Parent Section', 'docs'), 'parent');
    $ele->addOption(0, __('Select section...', 'docs'));
    $tree = array();
    RDFunctions::sections_tree_index(0, 0, $res, '', '', false, $tree, false);
    foreach ($tree as $k) {
        $ele->addOption($k['id'], str_repeat('&#151;', $k['jump']) . ' ' . $k['title'], $edit->getVar('parent') == $k['id'] ? 1 : 0);
    }
    $form->addElement($ele);
    $form->addElement(new RMFormText(__('Display order', 'docs'), 'order', 5, 5, $edit->getVar('order')), true);
    // Usuario
    $form->addElement(new RMFormUser(__('Owner', 'docs'), 'uid', 0, array($edit->getVar('uid')), 30));
    $buttons = new RMFormButtonGroup();
    $buttons->addButton('sbt', __('Save Now', 'docs'), 'submit');
    $buttons->addButton('cancel', __('Cancel', 'docs'), 'button', 'onclick="window.location=\'edits.php\';"');
    $form->addElement($buttons);
    $form->addElement(new RMFormHidden('action', 'save'));
    $form->addElement(new RMFormHidden('id', $edit->id()));
    xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; <a href='./edits.php'>" . __('Waiting Content', 'docs') . "</a> &raquo; " . sprintf(__('Editing %s', 'docs'), $edit->getVar('title')));
    xoops_cp_header();
    RMTemplate::get()->assign('xoops_pagetitle', __('Editing Waiting Content', 'docs'));
    $form->display();
    xoops_cp_footer();
}
 /**
  * Get the permalink for this section
  */
 public function permalink($edit = 0)
 {
     global $standalone;
     $config = RMUtilities::module_config('docs');
     $res = new RDResource($this->getVar('id_res'));
     if ($res->getVar('single') && defined('RD_LOCATION') && RD_LOCATION == 'resource_content') {
         return "#" . $this->getVar('nameid');
     }
     if ($config['permalinks']) {
         if ($this->getVar('parent') > 0) {
             $sec = new RDSection($this->getVar('parent'));
             $perma = $sec->permalink() . '#' . ($edit ? '<span>' . $this->getVar('nameid') . '</span>' : $this->getVar('nameid'));
         } else {
             $perma = ($config['subdomain'] != '' ? $config['subdomain'] : XOOPS_URL) . $config['htpath'] . '/' . $res->getVar('nameid') . '/' . ($edit ? '<span>' . $this->getVar('nameid') . '</span>' : $this->getVar('nameid')) . '/';
             $perma .= $standalone ? 'standalone/1/' : '';
         }
     } else {
         if ($this->getVar('parent') > 0) {
             $sec = new RDSection($this->getVar('parent'));
             $perma = $sec->permalink() . '#' . $this->getVar('nameid');
         } else {
             $perma = XOOPS_URL . '/modules/docs/index.php?page=content&amp;id=' . $this->id();
             $perma .= $standalone ? '&amp;standalone=1' : '';
         }
     }
     return $perma;
 }
Example #12
0
// Author: Eduardo Cortés <*****@*****.**>
// Email: i.bitcero@gmail.com
// License: GPL 2.0
// --------------------------------------------------------------
if (isset($special) && ($special == 'references' || $special == 'figures')) {
    $xoopsOption['module_subpage'] = 'content';
} else {
    $xoopsOption['module_subpage'] = 'resource';
}
// Check if Document exist
$res = new RDResource($id);
if ($res->isNew()) {
    // Error 404 - When resrouce does not exists
    RDFunctions::error_404();
}
if ($res->getVar('single')) {
    define('RD_LOCATION', 'resource_content');
}
include 'header.php';
//Verificamos si la publicacion esta aprobada
if (!$res->getVar('approved')) {
    redirect_header(RDURL, 1, __('Sorry, this Document does not exists!', 'docs'));
    die;
}
//Verifica si el usuario cuenta con permisos para ver la publicación
$allowed = $res->isAllowed($xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS);
if (!$allowed && !$res->getVar('show_index')) {
    redirect_header(RDURL, 2, __('Sorry, you are not authorized to view this Document', 'docs'));
    die;
}
if (!$allowed && !$res->getVar('quick')) {
Example #13
0
$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();
Example #14
0
/**
* @desc Permite aprobar o no una publicación
**/
function approved_resources($app = 0)
{
    global $xoopsSecurity, $xoopsConfig, $xoopsModuleConfig;
    $resources = rmc_server_var($_POST, 'ids', array());
    $page = rmc_server_var($_POST, 'page', 1);
    if (!$xoopsSecurity->check()) {
        redirectMsg('./resources.php?page=' . $page, __('Session token expired!', 'docs'), 1);
        die;
    }
    //Verifica que se haya proporcionado una publicación
    if (!is_array($resources) || empty($resources)) {
        redirectMsg('./resources.php?page=' . $page, __('Select at least a Document!', 'docs'), 1);
        die;
    }
    $errors = '';
    foreach ($resources as $k) {
        //Comprueba si la publicación es válida
        if ($k <= 0) {
            $errors .= sprintf(__('Document ID "%s" is not valid!', 'docs'), $k);
            continue;
        }
        //Comprueba si la publicación existe
        $res = new RDResource($k);
        if ($res->isNew()) {
            $errors .= sprintf(__('Document with ID "%s" does not exists!', 'docs'), $k);
            continue;
        }
        $approved = $res->getVar('approved');
        $res->setVar('approved', $app);
        if (!$res->save()) {
            $errors .= sprintf(__('Resoource "%s" could not be saved!', 'docs'), $k);
        } else {
            if ($app && !$approved) {
                $errors .= RDFunctions::mail_approved($res) != true ? __('Notification email could not be sent!', 'docs') . '<br />' : '';
            }
        }
    }
    if ($errors != '') {
        redirectMsg('./resources.php?page=' . $page, __('Errors ocurred while trying to update resources.') . '<br />' . $errors, 1);
    } else {
        redirectMsg('./resources.php?page=' . $page, __('Documents updated successfully!', 'docs'), 0);
    }
}