Source for file importlinks.php
Documentation is available at importlinks.php
<?php /* <!-- Dokeos metadata/importlinks.php -->
<!-- Copyright (C) 2006 rene.haentjens@UGent.be - see metadata/md_funcs.php -->
==============================================================================
* Dokeos Metadata: create table entries for a category of Link-type items
* @package dokeos.metadata
==============================================================================
// PRELIMS -------------------------------------------------------------------->
$getpostvars = array('lcn', 'slo'); require ('md_funcs.php');
define('OF_EID_TYPE', "eid LIKE '" . EID_TYPE . ".%'");
require ('md_' . strtolower(EID_TYPE) . '.php');
// name of the language file that needs to be included
include('../inc/global.inc.php');
'Language file ' . $language_file . " doesn't define 'Tool' and 'Sorry'");
$is_allowed_to_edit = isset ($_user['user_id']) && $is_courseMember && is_allowed_to_edit();
$mdStore = new mdstore($is_allowed_to_edit); // create table if needed
require (api_get_path(LIBRARY_PATH) . 'xmd.lib.php');
require (api_get_path(LIBRARY_PATH) . 'xht.lib.php');
require ('md_phpdig.php');
$mdCat = $mdObj->mdo_dcmap_v['Coverage'];
$mdUrl = 'metadata/lom/technical/location[1]';
$mdObj->mdo_add_breadcrump_nav(); // see 'md_' . EID_TYPE . '.php'
global $mdCat, $htmldecode;
if (!$check && !$get) return FALSE;
$regs = array(); // for use with ereg()
if ($get == $mdCat && !$check) // cheat to be quicker
if (ereg('<coverage>[^<]*<string language="..">([^<]+)<\/string>',
$row['mdxmltext'], $regs)) return strtr($regs[1], $htmldecode);
if ($check == $mdCat && !$get) // cheat to be quicker
if (ereg('<coverage>[^<]*<string language="..">([^<]+)<\/string>',
$row['mdxmltext'], $regs))
return (strtr($regs[1], $htmldecode) == $tobe);
if ($xmlDoc->error) return FALSE;
if (!$check) return $xmlDoc->xmd_value($get);
if ($xmlDoc->xmd_value($check) == $tobe)
return $get ? $xmlDoc->xmd_value($get) : TRUE;
global $_course; $cateq = "category_title='". addslashes($catname) . "'";
$result = api_sql_query("SELECT id FROM $linkcat_table WHERE " . $cateq, __FILE__ , __LINE__ );
return $row['id']; // several categories with same name: take first
// SET CURRENT LINKS CATEGORY - HEADER ---------------------------------------->
unset ($lci); // category-id
if (isset ($lcn)) // category_title
$uceids = array(); $mceids = array();
$result = $mdStore->mds_get_many('eid,mdxmltext', OF_EID_TYPE);
if (($lci = get_cat($lcn)) !== FALSE)
$result = api_sql_query("SELECT id FROM $link_table WHERE category_id=" . $lci, __FILE__ , __LINE__ );
$lceids[$id = (int) $row['id']] = ($eid = EID_TYPE . '.' . $id);
if (in_array($eid, $uceids)) $mceids[] = $eid;
$uceids = array_diff($uceids, $mceids); // old entries with no link
$interbreadcrumb[]= array(
<link rel="stylesheet" type="text/css" href="md_styles.css">
<script type="text/javascript" src="md_script.js"></script>
// OPERATIONS ----------------------------------------------------------------->
if ($ufos) echo '<h3>', $ufos, ' ', get_lang('RemainingFor'), ' ',
if (isset ($slo)) echo '<h3>', $slo, '</h3>', "\n"; // selected links op
foreach ($lceids as $id => $eid)
$mdObj = new mdobject($_course, $id); $xht = $mdObj->mdo_define_htt();
$mdStore->mds_put($eid, $mdt = $mdObj->mdo_generate_default_xml_metadata(),
$mdStore->mds_put($eid, $xht->xht_fill_template('INDEXABLETEXT'),
echo '<span class="lbs" onClick="', "makeWindow('index.php?eid=",
echo $aff, ' MDEs/ ', count($lceids), ' ', get_lang('MdCallingTool'),
'<br><br><b>', get_lang('AllRemovedFor'),
elseif ($slo == get_lang('Remove') && count($mceids)) // obsolete category
$mdStore->mds_delete_many($mceids);
$result = $mdStore->mds_get_many('eid,mdxmltext,indexabletext',
require ($phpDigIncCn); // switch to PhpDig DB
foreach ($idt as $url => $text)
if (!isset ($pu['scheme'])) $pu['scheme'] = "http";
$url = $pu['scheme'] . "://" . $pu['host'] . "/"; $file = '';
if (($path = $pu['path']))
$pi = pathinfo($path); $path = $pi['dirname'];
if ($path{0} == '\\') $path = substr($path, 1);
if ($path{0} == '/') $path = substr($path, 1) . '/';
$file .= ($pu['query'] ? '?'. $pu['query'] : '') .
($pu['fragment'] ? '#'. $pu['fragment'] : '');
elseif (isset ($pu['scheme']) && $pu['scheme'] == 'mailto' && isset ($pu['path']))
echo 'Problem! PhpDig connect.php has gone ...';
// STATISTICS ----------------------------------------------------------------->
echo '<h3>', get_lang('Statistics'), '</h3>', "\n";
$result = $mdStore->mds_get_many('eid,mdxmltext', OF_EID_TYPE);
$perCat[$cat] = ($pc = $perCat[$cat]) ? $pc + 1 : 1;
foreach ($perCat as $cat => $number)
$cat == $lcn ? '' : ')', ':</td><td align="right">',
$number, '</td></tr>', "\n";
': ', count($lceids), '<br>', "\n";
// SELECT & FOOTER ------------------------------------------------------------>
echo '<h3>', $nameTools, $hdrInfo, '</h3>', "\n";
'" method="post">', "\n";
'<input type="submit" name="slo" value="', get_lang('Create'), '">', "\n";
'<input type="submit" name="slo" value="', get_lang('Remove'), '">', "\n";
'<input type="submit" name="slo" value="', get_lang('Index'), '">', "\n";
if (count($perCat)) foreach ($perCat as $cat => $number)
$result = api_sql_query("SELECT category_title FROM $linkcat_table", __FILE__ , __LINE__ );
if ($perCat[$cat] == $hcat) $dups[] = $cat;
else $perCat[$cat] = $hcat;
foreach ($dups as $cat) unset ($perCat[$cat]);
echo '<h3>', get_lang('OrElse'), $warning, '</h3>', "\n", // select new target
'<table><tr><td align="right" class="alternativeBgDark">', "\n",
get_lang('SLC'), ' :', "\n", '<select name="lcn">', "\n",
'<option value=""></option>', "\n";
foreach ($perCat as $cat => $text) echo '<option value="' .
($cat == $lcn ? ' selected' : '') . '>' . $text . '</option>', "\n";
echo '</select><input type="submit" value="', get_lang('Ok'), '">', "\n",
'</form>', "\n", '</td></tr></table>', "\n";
|