Example #1
0
 function related_search()
 {
     //relatedsearch//
     $this->rapyd->load("datafilter", "datagrid");
     $artid = intval($this->uri->segment(4));
     $filter = new DataFilter("Search Associable Articles", "articles");
     $filter->db->where("article_id<>", $artid);
     ## subqueries works only for mysql4.1+
     //$filter->db->where("article_id NOT IN
     // (SELECT rel_id FROM articles_related WHERE art_id = $artid)
     //");
     $subquery = $this->db->query("SELECT rel_id FROM articles_related WHERE art_id = {$artid}");
     if ($subquery->num_rows() > 0) {
         foreach ($subquery->result_array() as $row) {
             $rels[] = $row["rel_id"];
         }
         $not_in = join(",", $rels);
         $filter->db->where("article_id NOT IN ({$not_in})");
     }
     $filter->title = new inputField("title", "title");
     $filter->artid = new inputField("article id", "article_id");
     $filter->artid->clause = "where";
     $filter->buttons("reset", "search");
     $uri = site_url("rapyd/supercrud/related/{$artid}/related");
     $action = "javascript:window.location='" . $uri . "';";
     $filter->button_status("btn_undo", "Undo", $action, "TR", "create", "button");
     $filter->build();
     $grid = new DataGrid("List of associable articles");
     $grid->per_page = 6;
     $grid->column_orderby("article id", "article_id", "article_id", 'width="100"');
     $grid->column_orderby("title", "title", "title");
     $link = anchor("rapyd/supercrud/related_add/{$artid}/to/<#article_id#>", "add rel");
     $grid->column("add rel", $link);
     $grid->build();
     $head = $this->rapyd->get_head();
     $this->loadiframe($filter->output . $grid->output, $head, "related");
     //endrelatedsearch//
 }