Exemplo n.º 1
0
 /**
  * Get all references list according to given parameters
  * @param int Resource ID
  * @param Referenced var to return results count
  * @param string Search keyword
  * @param int Start results
  * @param int Results number limit
  * @return array
  */
 public function references($res = 0, &$count, $search = '', $start = 0, $limit = 15)
 {
     $db = XoopsDatabaseFactory::getDatabaseConnection();
     $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_references') . ($res > 0 ? " WHERE id_res='{$res}'" : '');
     if ($search != '') {
         $sql .= ($res > 0 ? " AND " : " WHERE ") . " (title LIKE '%{$k}%' OR text LIKE '%{$k}%')";
     }
     if ($res > 0) {
         $res = new RDResource($res);
     }
     list($num) = $db->fetchRow($db->query($sql));
     $limit = $limit <= 0 ? 15 : $limit;
     $count = $num;
     //Fin de navegador de páginas
     $sql = str_replace("COUNT(*)", "*", $sql);
     $sql .= " ORDER BY id_ref DESC LIMIT {$start},{$limit}";
     $result = $db->query($sql);
     $references = array();
     while ($rows = $db->fetchArray($result)) {
         $ref = new RDReference();
         $ref->assignVars($rows);
         if ($res->isNew()) {
             $res = new RDResource($ref->resource());
         }
         $references[] = array('id' => $ref->id(), 'title' => $ref->getVar('title'), 'text' => substr(TextCleaner::getInstance()->clean_disabled_tags($ref->getVar('text')), 0, 50) . "...", 'resource' => $res->getVar('title'));
     }
     return $references;
 }
Exemplo n.º 2
0
/**
* @desc Muestra todas las referencias existentes
**/
function rd_show_notes()
{
    global $xoopsModule, $xoopsSecurity;
    define('RMCSUBLOCATION', 'notes_list');
    $id_res = rmc_server_var($_GET, 'res', 0);
    if ($id_res <= 0) {
        redirectMsg('resources.php', __('Select a Document to view notes from this', 'docs'), 0);
        die;
    }
    $res = new RDResource($id_res);
    if ($res->isNew()) {
        redirectMsg('resources.php', __('The specified Document does not exists!', 'docs'), 0);
        die;
    }
    $search = rmc_server_var($_GET, 'search', '');
    //Separamos frase en palabras
    $words = explode(" ", $search);
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    //Navegador de páginas
    $sql = "SELECT COUNT(*) FROM " . $db->prefix('rd_references') . ($id_res ? " WHERE id_res='{$id_res}'" : '');
    $sql1 = '';
    if ($search) {
        foreach ($words as $k) {
            //verifica que palabra sea mayor a 2 letras
            if (strlen($k) <= 2) {
                continue;
            }
            $sql1 .= ($sql1 == '' ? $id_res ? " AND " : " WHERE " : " OR ") . " (title LIKE '%{$k}%' OR text LIKE '%{$k}%')";
        }
    }
    list($num) = $db->fetchRow($db->query($sql . $sql1));
    $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('notes.php?res=' . $id_res . '&amp;page={PAGE_NUM}');
    $sql = str_replace("COUNT(*)", "*", $sql);
    $sql2 = " LIMIT {$start},{$limit}";
    $result = $db->queryF($sql . $sql1 . $sql2);
    $notes = array();
    while ($rows = $db->fetchArray($result)) {
        $ref = new RDReference();
        $ref->assignVars($rows);
        $notes[] = array('id' => $ref->id(), 'title' => $ref->getVar('title'), 'text' => substr(strip_tags($ref->getVar('text')), 0, 50) . '...');
    }
    // Event
    $notes = RMEvents::get()->run_event('docs.loading.notes', $notes, $res);
    RMTemplate::get()->add_style('admin.css', 'docs');
    RMTemplate::get()->add_script('../include/js/admin.js');
    RMTemplate::get()->assign('xoops_pagetitle', sprintf(__('Notes in %s', 'docs'), $res->getVar('title')));
    RMTemplate::get()->add_script(RMCURL . '/include/js/jquery.checkboxes.js');
    RMTemplate::get()->add_head('<script type="text/javascript">
    var rd_select_message = "' . __('You have not selected any note!', 'docs') . '";
    var rd_message = "' . __('Do you really wish to delete selected notes?', 'docs') . '";
    </script>');
    xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; " . __('References', 'docs'));
    xoops_cp_header();
    include RMEvents::get()->run_event('docs.admin.template.notes', RMTemplate::get()->get_template('admin/rd_notes.php', 'module', 'docs'));
    xoops_cp_footer();
}