-------------------------------------------------------------------------------- PhpDig Version 1.8.6 is provided WITHOUT warranty under the GNU/GPL license. See the LICENSE file for more information about the GNU/GPL license. Contributors are listed in the CREDITS and CHANGELOG files in this package. Developer from inception to and including PhpDig v.1.6.2: Antoine Bajolet Developer from PhpDig v.1.6.3 to and including current version: Charter Copyright (C) 2001 - 2003, Antoine Bajolet, http://www.toiletoine.net/ Copyright (C) 2003 - current, Charter, http://www.phpdig.net/ Contributors hold Copyright (C) to their code submissions. Do NOT edit or remove this copyright or licence information upon redistribution. If you modify code and redistribute, you may ADD your copyright to this notice. -------------------------------------------------------------------------------- */ /** ============================================================================== * Dokeos Metadata: search Dokeos course objects via PhpDig 1.8.6 * * customized search.php 1.8.6 for Dokeos 1.6 assumes $template == "array" * * @package dokeos.metadata ============================================================================== */ $langFile = "md_mix"; include('../../../main/inc/global.inc.php'); if (! $is_allowed_in_course) api_not_allowed(); // start of part copied (with some changes) from standard PhpDig search.php $relative_script_path = '.'; $no_connect = 0; if (is_file("$relative_script_path/includes/config.php")) { include "$relative_script_path/includes/config.php"; } else { die("Cannot find config.php file.\n"); } if (is_file("$relative_script_path/libs/search_function.php")) { include "$relative_script_path/libs/search_function.php"; } else { die("Cannot find PhpDig search_function.php file.\n"); } // extract vars extract(phpdigHttpVars( array('query_string'=>'string', 'mdsc'=>'string', 'kwdswere_string'=>'string', // Dokeos 'refine'=>'integer', 'refine_url'=>'string', 'site'=>'string', // set to integer later 'limite'=>'integer', 'option'=>'string', 'lim_start'=>'integer', 'browse'=>'integer', 'path'=>'string' ) ),EXTR_SKIP); $adlog_flag = 0; $rssdf = ""; // end of part copied (with some changes) from standard PhpDig search.php // Course keywords $_course = api_get_course_info(); $ckw = $_course['path'] . '/CourseKwds.js'; define('KEYWORDS_CACHE', api_get_path('SYS_COURSE_PATH') . $ckw); if (file_exists(KEYWORDS_CACHE)) $kcdt = htmlspecialchars(date('Y/m/d H:i:s', filemtime(KEYWORDS_CACHE))); $keywordscache = $kcdt ? '' . '
(CourseKwds cache: ' . $kcdt . ')' : ''; // Dokeos header $nameTools = get_lang('Search'); $htmlHeadXtra[] = ''; $htmlHeadXtra[] = ''; $htmlHeadXtra[] = ' '; Display::display_header($nameTools); echo "\n"; echo '', '

', get_lang('Search'), '

'; // Store new extra criteria (see below), or execute PhpDig Search // and echo result message, table with results, pages bar if (!$query_string) $query_string = trim($mdsc); $ckwcdt = file_exists($ckwc = KEYWORDS_CACHE . 'c') ? date('Y/m/d H:i:s', filemtime($ckwc)) : '?'; $pkwc = ''; if (strpos($query_string, '>') && api_is_allowed_to_edit()) { if ($ckwcdt{0} != '?') { $fckwc = fopen($ckwc, 'rb'); $pkwc = fread($fckwc, filesize($ckwc)); fclose($fckwc); unset($fckwc); } if(($fckwc = fopen($ckwc, 'wb'))) { fwrite($fckwc, $query_string); fclose($fckwc); unset($fckwc); $ckwcdt = file_exists($ckwc) ? date('Y/m/d H:i:s', filemtime($ckwc)) : '? Write Error'; } else $ckwcdt = '? Open Error'; $phpdigSearchResults = array('result_message' => $ckw . 'c: ' . $ckwcdt, 'pages_bar' => '', 'results' => array()); } else { $phpdigSearchResults = phpdigSearch($id_connect, $query_string, $option, $refine, $refine_url, $lim_start, $limite, $browse, $site, $path, $relative_script_path, $template, $adlog_flag, $rssdf, $template_demo); } $result_message = ''; $hits = 11; if ($result_message = $phpdigSearchResults['result_message']) if (($cspos = strpos($result_message, ', ')) !== FALSE) if (($sppos = strpos($result_message, ' ', $cspos += 2)) !== FALSE) if (is_numeric($total = substr($result_message, $cspos, $sppos-$cspos))) $hits = (int) $total; if (!($pages_bar = $phpdigSearchResults['pages_bar'])) $hits = 0; if ($result_message == phpdigMsg('noresults')) $result_message .= ' '.phpdigMsg('on').' "'.htmlspecialchars($query_string,ENT_QUOTES).'"'; echo $result_message, '

', "\n"; if ($phpdigSearchResults['results']) foreach ($phpdigSearchResults['results'] as $searchResult) { $url = $searchResult['complete_path']; if (ereg("/[^?/]*\\?.*thumb=", $url)) { // direct URL: $thumburl = ereg_replace("/[^?/]*\\?.*thumb=", "/", $url); $thumburl = ereg_replace("\\?.*thumb=", "?th=", $url); // via index.php } else { $thumburl = "tpl_img/link.gif"; } echo '', "\n"; } echo '
', $searchResult['link_title'], '
', $searchResult['text'], '

'; if ($result_message && ($hits > 10)) echo "Results page ", str_replace('?template_demo=', '?kwdswere_string=' . urlencode($kwdswere_string), $pages_bar), '

'; /* Extra criteria: course manager types in the descriptive zone (Advanced): keyword=k> - keyword=k>label
descriptive-word=d>label for dword */ $tdhtm = ''; function tdhtm($xc, $pp, $type = 'k') { $value = substr($xc, 0, $pp); if (!($label = trim(substr($xc, $pp + 2 + strlen($type))))) $label = $value; return '' . $label . ''; } if ($ckwcdt{0} != '?') // there is a file with extra criteria { $fckwc = fopen($ckwc, 'rb'); foreach (explode("\n", fread($fckwc, filesize($ckwc))) as $xc) $tdhtm .= "\n" . (($pp = strpos($xc, '=k>')) ? tdhtm($xc, $pp) : (($pp = strpos($xc, '=d>')) ? tdhtm($xc, $pp, 'd') : $xc)); fclose($fckwc); unset($fckwc); } /* Sample result for the above extra criteria: keyword - label
label for dword */ // Search criteria form and keywords tree ?>
: