parent
c7666f7f24
commit
d33184427c
@ -1,196 +1,196 @@ |
||||
<?php
|
||||
// setting the character set to UTF-8 |
||||
header('Content-Type: text/xml; charset=utf-8'); |
||||
|
||||
// name of the language file that needs to be included |
||||
$language_file = 'document'; |
||||
|
||||
// including the global dokeos file |
||||
require_once('../../global.inc.php'); |
||||
|
||||
// outputting the opening tag of the xml file |
||||
echo '<?xml version="1.0" encoding="utf-8" ?>';
|
||||
|
||||
// is this needed? |
||||
$IMConfig['base_url'] = $_configuration['root_web'].'main/img/gallery/'; |
||||
|
||||
// load a stylesheet |
||||
$css = loadCSS(api_get_setting('stylesheets')); |
||||
|
||||
// setting some paths |
||||
$img_dir = api_get_path(REL_CODE_PATH).'img/'; |
||||
$default_course_dir = api_get_path(REL_CODE_PATH).'default_course_document/'; |
||||
|
||||
// start the templates node |
||||
echo '<Templates imagesBasePath="">'; |
||||
|
||||
// load empty template |
||||
load_empty_template(); |
||||
|
||||
// load the templates that were defined by the platform admin |
||||
load_platform_templates(); |
||||
|
||||
// load the personal templates |
||||
load_personal_templates(api_get_user_id()); |
||||
|
||||
// end the templates node |
||||
echo '</Templates>'; |
||||
exit; |
||||
|
||||
|
||||
/** |
||||
* load a given css style (default.css) |
||||
* |
||||
* @param string $css_name the folder name of the style |
||||
* @return html code for adding a css style <style ... |
||||
*/ |
||||
function loadCSS($css_name) |
||||
{ |
||||
$template_css = ' <style type="text/css">'.str_replace('../../img/',api_get_path(REL_CODE_PATH).'img/',file_get_contents(api_get_path(SYS_PATH).'main/css/'.$css_name.'/default.css')).'</style>'; |
||||
$template_css = str_replace('images/',api_get_path(REL_CODE_PATH).'css/'.$css_name.'/images/',$template_css); |
||||
return $template_css; |
||||
} |
||||
|
||||
/** |
||||
* Transforms a language variable into XML-usable code |
||||
* |
||||
* @param unknown_type $var |
||||
* @return unknown |
||||
*/ |
||||
function s($var) |
||||
{ |
||||
global $charset; |
||||
$search = array('&','<','>'); |
||||
$replace = array ('&','&lt;','&gt;'); |
||||
return str_replace($search,$replace,mb_convert_encoding(get_lang($var),'UTF-8',$charset)); |
||||
} |
||||
|
||||
/** |
||||
* Transforms a language variable into XML-usable code |
||||
* |
||||
* @param unknown_type $var |
||||
* @return unknown |
||||
*/ |
||||
function s2($var) |
||||
{ |
||||
global $charset; |
||||
$search = array('&','<','>'); |
||||
$replace = array ('&','&lt;','&gt;'); |
||||
return str_replace($search,$replace,mb_convert_encoding($var,'UTF-8',$charset)); |
||||
} |
||||
|
||||
/** |
||||
* Load the platform templates as defined by the platform administrator in "Platform administration > Dokeos configuration settings > templates" |
||||
* |
||||
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University, Belgium |
||||
* @version March 2009 |
||||
* @since Dokeos 1.8.6 |
||||
*/ |
||||
function load_platform_templates() { |
||||
// Database table definition |
||||
$table_template = Database::get_main_table('system_template'); |
||||
global $css, $img_dir, $default_course_dir; |
||||
$sql = "SELECT title, image, comment, content FROM $table_template"; |
||||
|
||||
$result = api_sql_query($sql, __FILE__, __LINE__); |
||||
while ($row = Database::fetch_array($result)) { |
||||
if (!empty($row['image'])) { |
||||
$image = api_get_path(WEB_PATH).'home/default_platform_document/'.$row['image']; |
||||
} else { |
||||
$image = api_get_path(WEB_PATH).'home/default_platform_document/empty.gif'; |
||||
} |
||||
$row['content'] = str_replace('{CSS}',$css, $row['content']); |
||||
$row['content'] = str_replace('{IMG_DIR}',$img_dir, $row['content']); |
||||
$row['content'] = str_replace('{REL_PATH}', api_get_path(REL_PATH), $row['content']); |
||||
$row['content'] = str_replace('{COURSE_DIR}',$default_course_dir, $row['content']); |
||||
|
||||
echo ' <Template title="'.s(get_lang($row['title'])).'" image="'.$image.'"> |
||||
<Description>'.s(get_lang($row['comment'])).'</Description> |
||||
<Html> |
||||
<![CDATA[ |
||||
'.$row['content'].' |
||||
]]> |
||||
</Html> |
||||
</Template>'; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Load all the personal templates of the user when |
||||
* |
||||
* @param integer $user_id the id of the user |
||||
* @return xml node |
||||
* |
||||
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University, Belgium |
||||
* @version March 2009 |
||||
* @since Dokeos 1.8.6 The code already existed but not in a function and a lot less performant. |
||||
*/ |
||||
function load_personal_templates($user_id=0) { |
||||
global $_course; |
||||
|
||||
// the templates that the user has defined are only available inside the course itself |
||||
if (empty($_course)) |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
// For which user are we getting the templates? |
||||
if ($user_id==0) |
||||
{ |
||||
$user_id = api_get_user_id(); |
||||
} |
||||
|
||||
// Database table definition |
||||
$table_template = Database::get_main_table(TABLE_MAIN_TEMPLATES); |
||||
$table_document = Database::get_course_table(TABLE_DOCUMENT, $_course['dbName']); |
||||
|
||||
|
||||
// The sql statement for getting all the user defined templates |
||||
$sql = "SELECT template.id, template.title, template.description, template.image, template.ref_doc, document.path |
||||
FROM ".$table_template." template, ".$table_document." document |
||||
WHERE user_id='".Database::escape_string($user_id)."' |
||||
AND course_code='".Database::escape_string(api_get_course_id())."' |
||||
AND document.id = template.ref_doc"; |
||||
$result_template = api_sql_query($sql,__FILE__,__LINE__); |
||||
while ($row = Database::fetch_array($result_template)) |
||||
{ |
||||
$row['content'] = file_get_contents(api_get_path('SYS_COURSE_PATH').$_course['path'].'/document'.$row['path']); |
||||
//$row['content'] = api_get_path('SYS_COURSE_PATH').$_course['path'].'/document'.$row['path']; |
||||
|
||||
if (!empty($row['image'])) |
||||
{ |
||||
$image = api_get_path(WEB_CODE_PATH).'upload/template_thumbnails/'.$row['image']; |
||||
} else { |
||||
$image = api_get_path(WEB_PATH).'home/default_platform_document/empty.gif'; |
||||
} |
||||
|
||||
|
||||
echo ' <Template title="'.s2($row['title']).'" image="'.$image.'"> |
||||
<Description>'.s2($row['Description']).'</Description> |
||||
<Html> |
||||
<![CDATA[ |
||||
'.$row['content'].' |
||||
]]> |
||||
</Html> |
||||
</Template>'; |
||||
} |
||||
} |
||||
|
||||
function load_empty_template() |
||||
{ |
||||
global $css; |
||||
?> |
||||
|
||||
<Template title="<?php echo s('Empty'); ?>" image="<?php echo api_get_path(WEB_PATH).'home/default_platform_document/empty.gif'; ?>">
|
||||
<Description></Description> |
||||
<Html> |
||||
<![CDATA[ |
||||
<head> |
||||
<?php echo $css ?> |
||||
</head> |
||||
]]> |
||||
</Html> |
||||
</Template> |
||||
<?php |
||||
} |
||||
<?php
|
||||
// setting the character set to UTF-8 |
||||
header('Content-Type: text/xml; charset=utf-8'); |
||||
|
||||
// name of the language file that needs to be included |
||||
$language_file = 'document'; |
||||
|
||||
// including the global dokeos file |
||||
require_once('../../global.inc.php'); |
||||
|
||||
// outputting the opening tag of the xml file |
||||
echo '<?xml version="1.0" encoding="utf-8" ?>';
|
||||
|
||||
// is this needed? |
||||
$IMConfig['base_url'] = $_configuration['root_web'].'main/img/gallery/'; |
||||
|
||||
// load a stylesheet |
||||
$css = loadCSS(api_get_setting('stylesheets')); |
||||
|
||||
// setting some paths |
||||
$img_dir = api_get_path(REL_CODE_PATH).'img/'; |
||||
$default_course_dir = api_get_path(REL_CODE_PATH).'default_course_document/'; |
||||
|
||||
// start the templates node |
||||
echo '<Templates imagesBasePath="">'; |
||||
|
||||
// load empty template |
||||
load_empty_template(); |
||||
|
||||
// load the templates that were defined by the platform admin |
||||
load_platform_templates(); |
||||
|
||||
// load the personal templates |
||||
load_personal_templates(api_get_user_id()); |
||||
|
||||
// end the templates node |
||||
echo '</Templates>'; |
||||
exit; |
||||
|
||||
|
||||
/** |
||||
* load a given css style (default.css) |
||||
* |
||||
* @param string $css_name the folder name of the style |
||||
* @return html code for adding a css style <style ... |
||||
*/ |
||||
function loadCSS($css_name) |
||||
{ |
||||
$template_css = ' <style type="text/css">'.str_replace('../../img/',api_get_path(REL_CODE_PATH).'img/',file_get_contents(api_get_path(SYS_PATH).'main/css/'.$css_name.'/default.css')).'</style>'; |
||||
$template_css = str_replace('images/',api_get_path(REL_CODE_PATH).'css/'.$css_name.'/images/',$template_css); |
||||
return $template_css; |
||||
} |
||||
|
||||
/** |
||||
* Transforms a language variable into XML-usable code |
||||
* |
||||
* @param unknown_type $var |
||||
* @return unknown |
||||
*/ |
||||
function s($var) |
||||
{ |
||||
global $charset; |
||||
$search = array('&','<','>'); |
||||
$replace = array ('&','&lt;','&gt;'); |
||||
return str_replace($search,$replace,mb_convert_encoding(get_lang($var),'UTF-8',$charset)); |
||||
} |
||||
|
||||
/** |
||||
* Transforms a language variable into XML-usable code |
||||
* |
||||
* @param unknown_type $var |
||||
* @return unknown |
||||
*/ |
||||
function s2($var) |
||||
{ |
||||
global $charset; |
||||
$search = array('&','<','>'); |
||||
$replace = array ('&','&lt;','&gt;'); |
||||
return str_replace($search,$replace,mb_convert_encoding($var,'UTF-8',$charset)); |
||||
} |
||||
|
||||
/** |
||||
* Load the platform templates as defined by the platform administrator in "Platform administration > Dokeos configuration settings > templates" |
||||
* |
||||
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University, Belgium |
||||
* @version March 2009 |
||||
* @since Dokeos 1.8.6 |
||||
*/ |
||||
function load_platform_templates() { |
||||
// Database table definition |
||||
$table_template = Database::get_main_table('system_template'); |
||||
global $css, $img_dir, $default_course_dir; |
||||
$sql = "SELECT title, image, comment, content FROM $table_template"; |
||||
|
||||
$result = api_sql_query($sql, __FILE__, __LINE__); |
||||
while ($row = Database::fetch_array($result)) { |
||||
if (!empty($row['image'])) { |
||||
$image = api_get_path(WEB_PATH).'home/default_platform_document/template_thumb/'.$row['image']; |
||||
} else { |
||||
$image = api_get_path(WEB_PATH).'home/default_platform_document/template_thumb/empty.gif'; |
||||
} |
||||
$row['content'] = str_replace('{CSS}',$css, $row['content']); |
||||
$row['content'] = str_replace('{IMG_DIR}',$img_dir, $row['content']); |
||||
$row['content'] = str_replace('{REL_PATH}', api_get_path(REL_PATH), $row['content']); |
||||
$row['content'] = str_replace('{COURSE_DIR}',$default_course_dir, $row['content']); |
||||
|
||||
echo ' <Template title="'.s(get_lang($row['title'])).'" image="'.$image.'"> |
||||
<Description>'.s(get_lang($row['comment'])).'</Description> |
||||
<Html> |
||||
<![CDATA[ |
||||
'.$row['content'].' |
||||
]]> |
||||
</Html> |
||||
</Template>'; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Load all the personal templates of the user when |
||||
* |
||||
* @param integer $user_id the id of the user |
||||
* @return xml node |
||||
* |
||||
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University, Belgium |
||||
* @version March 2009 |
||||
* @since Dokeos 1.8.6 The code already existed but not in a function and a lot less performant. |
||||
*/ |
||||
function load_personal_templates($user_id=0) { |
||||
global $_course; |
||||
|
||||
// the templates that the user has defined are only available inside the course itself |
||||
if (empty($_course)) |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
// For which user are we getting the templates? |
||||
if ($user_id==0) |
||||
{ |
||||
$user_id = api_get_user_id(); |
||||
} |
||||
|
||||
// Database table definition |
||||
$table_template = Database::get_main_table(TABLE_MAIN_TEMPLATES); |
||||
$table_document = Database::get_course_table(TABLE_DOCUMENT, $_course['dbName']); |
||||
|
||||
|
||||
// The sql statement for getting all the user defined templates |
||||
$sql = "SELECT template.id, template.title, template.description, template.image, template.ref_doc, document.path |
||||
FROM ".$table_template." template, ".$table_document." document |
||||
WHERE user_id='".Database::escape_string($user_id)."' |
||||
AND course_code='".Database::escape_string(api_get_course_id())."' |
||||
AND document.id = template.ref_doc"; |
||||
$result_template = api_sql_query($sql,__FILE__,__LINE__); |
||||
while ($row = Database::fetch_array($result_template)) |
||||
{ |
||||
$row['content'] = file_get_contents(api_get_path('SYS_COURSE_PATH').$_course['path'].'/document'.$row['path']); |
||||
//$row['content'] = api_get_path('SYS_COURSE_PATH').$_course['path'].'/document'.$row['path']; |
||||
|
||||
if (!empty($row['image'])) |
||||
{ |
||||
$image = api_get_path(WEB_CODE_PATH).'upload/template_thumbnails/'.$row['image']; |
||||
} else { |
||||
$image = api_get_path(WEB_PATH).'home/default_platform_document/template_thumb/noimage.gif'; |
||||
} |
||||
|
||||
|
||||
echo ' <Template title="'.s2($row['title']).'" image="'.$image.'"> |
||||
<Description>'.s2($row['Description']).'</Description> |
||||
<Html> |
||||
<![CDATA[ |
||||
'.$row['content'].' |
||||
]]> |
||||
</Html> |
||||
</Template>'; |
||||
} |
||||
} |
||||
|
||||
function load_empty_template() |
||||
{ |
||||
global $css; |
||||
?> |
||||
|
||||
<Template title="<?php echo s('Empty'); ?>" image="<?php echo api_get_path(WEB_PATH).'home/default_platform_document/template_thumb/empty.gif'; ?>">
|
||||
<Description></Description> |
||||
<Html> |
||||
<![CDATA[ |
||||
<head> |
||||
<?php echo $css ?> |
||||
</head> |
||||
]]> |
||||
</Html> |
||||
</Template> |
||||
<?php |
||||
} |
||||
?> |
Loading…
Reference in new issue