ossim_valid($page, OSS_DIGIT, OSS_NULLABLE, 'illegal:' . _("page")); ossim_valid($rp, OSS_DIGIT, OSS_NULLABLE, 'illegal:' . _("rp")); ossim_valid($search, OSS_TEXT, OSS_NULLABLE, 'illegal:' . _("search")); ossim_valid($field, OSS_ALPHA, OSS_SPACE, OSS_PUNC, OSS_NULLABLE, 'illegal:' . _("field")); ossim_valid($id, OSS_ALPHA, 'illegal:' . _("id")); ossim_valid($subcategory_id, OSS_DIGIT, OSS_NULLABLE, 'illegal:' . _("subcategory_id")); if (ossim_error()) { die(ossim_error()); } if (empty($order)) { $order = "sid"; } $where = "WHERE sid <> 20000000 AND sid <> 2000000000 AND plugin_id = {$id}"; if (!empty($search) && !empty($field)) { if ($field == "category_id") { $pids = Plugin_sid::GetPluginSidsByCategory($conn, $id, $search, $subcategory_id); $plugin_list = implode(",", $pids); $where .= " AND sid in ({$plugin_list})"; } else { $where .= " AND {$field} like '%" . $search . "%'"; } } $start = ($page - 1) * $rp; $limit = "LIMIT {$start}, {$rp}"; $xml = ""; if ($plugin_list = Plugin_sid::get_list($conn, "{$where} ORDER BY {$order} {$limit}")) { $total = $plugin_list[0]->get_foundrows(); if ($total == 0) { $total = count($plugin_list); } $xml .= "<rows>\n";