skala
Juan Carlos Raña 15 years ago
commit 73ec88119f
  1. 2
      main/admin/legal_add.php
  2. 2
      main/admin/settings.php
  3. 12
      main/document/document.inc.php
  4. 16
      main/document/document.php
  5. 2
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/inc/class.upload.php
  6. BIN
      main/inc/lib/fckeditor/editor/plugins/asciimath/asciimath.gif
  7. 30
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/es.js
  8. 48
      main/inc/lib/fckeditor/myconfig.php
  9. 46
      main/inc/lib/fckeditor/toolbars/default/terms_and_conditions.php
  10. 16
      main/inc/lib/fckeditor/toolbars/extended/admin_templates.php
  11. 14
      main/inc/lib/fckeditor/toolbars/extended/agenda.php
  12. 16
      main/inc/lib/fckeditor/toolbars/extended/agenda_student.php
  13. 14
      main/inc/lib/fckeditor/toolbars/extended/announcements.php
  14. 15
      main/inc/lib/fckeditor/toolbars/extended/announcements_student.php
  15. 16
      main/inc/lib/fckeditor/toolbars/extended/assessments_introduction.php
  16. 17
      main/inc/lib/fckeditor/toolbars/extended/documents.php
  17. 17
      main/inc/lib/fckeditor/toolbars/extended/documents_student.php
  18. 16
      main/inc/lib/fckeditor/toolbars/extended/faq.php
  19. 17
      main/inc/lib/fckeditor/toolbars/extended/forum.php
  20. 17
      main/inc/lib/fckeditor/toolbars/extended/forum_student.php
  21. 15
      main/inc/lib/fckeditor/toolbars/extended/global_agenda.php
  22. 17
      main/inc/lib/fckeditor/toolbars/extended/glossary.php
  23. 17
      main/inc/lib/fckeditor/toolbars/extended/introduction.php
  24. 6
      main/inc/lib/fckeditor/toolbars/extended/learning_path_author.php
  25. 17
      main/inc/lib/fckeditor/toolbars/extended/learning_path_documents.php
  26. 18
      main/inc/lib/fckeditor/toolbars/extended/messages.php
  27. 17
      main/inc/lib/fckeditor/toolbars/extended/notebook.php
  28. 17
      main/inc/lib/fckeditor/toolbars/extended/notebook_student.php
  29. 17
      main/inc/lib/fckeditor/toolbars/extended/portal_home_page.php
  30. 17
      main/inc/lib/fckeditor/toolbars/extended/portal_news.php
  31. 14
      main/inc/lib/fckeditor/toolbars/extended/profile.php
  32. 15
      main/inc/lib/fckeditor/toolbars/extended/project.php
  33. 14
      main/inc/lib/fckeditor/toolbars/extended/project_comment.php
  34. 14
      main/inc/lib/fckeditor/toolbars/extended/project_comment_student.php
  35. 15
      main/inc/lib/fckeditor/toolbars/extended/project_student.php
  36. 13
      main/inc/lib/fckeditor/toolbars/extended/survey.php
  37. 41
      main/inc/lib/fckeditor/toolbars/extended/terms_and_conditions.php
  38. 6
      main/inc/lib/fckeditor/toolbars/extended/test_answer_feedback.php
  39. 17
      main/inc/lib/fckeditor/toolbars/extended/test_description.php
  40. 6
      main/inc/lib/fckeditor/toolbars/extended/test_free_answer.php
  41. 5
      main/inc/lib/fckeditor/toolbars/extended/test_proposed_answer.php
  42. 15
      main/inc/lib/fckeditor/toolbars/extended/test_question_description.php
  43. 17
      main/inc/lib/fckeditor/toolbars/extended/training_description.php
  44. 16
      main/inc/lib/fckeditor/toolbars/extended/wiki.php
  45. 17
      main/inc/lib/fckeditor/toolbars/extended/wiki_student.php
  46. 8
      main/inc/lib/fileUpload.lib.php
  47. 10
      main/inc/lib/html2pdf/_fpdf/fpdf.php
  48. 1
      main/inc/lib/html2pdf/_mypdf/00_fpdf_codebar.class.php
  49. 1
      main/inc/lib/html2pdf/_mypdf/01_fpdf_bookmark.class.php
  50. 9
      main/inc/lib/html2pdf/_mypdf/02_fpdf_formulaire.class.php
  51. 326
      main/inc/lib/html2pdf/_mypdf/03_fpdf_alpha.class.php
  52. 27
      main/inc/lib/html2pdf/_mypdf/99_fpdf_protection.class.php
  53. 183
      main/inc/lib/html2pdf/_mypdf/mypdf.class.php
  54. 1473
      main/inc/lib/html2pdf/html2pdf.class.php
  55. 28
      main/inc/lib/html2pdf/langues/ca.txt
  56. 19
      main/inc/lib/html2pdf/langues/da.txt
  57. 18
      main/inc/lib/html2pdf/langues/de.txt
  58. 2
      main/inc/lib/html2pdf/langues/en.txt
  59. 24
      main/inc/lib/html2pdf/langues/es.txt
  60. 18
      main/inc/lib/html2pdf/langues/fr.txt
  61. 6
      main/inc/lib/html2pdf/langues/it.txt
  62. 30
      main/inc/lib/html2pdf/langues/pt.txt
  63. 28
      main/inc/lib/html2pdf/langues/tr.txt
  64. 131
      main/inc/lib/html2pdf/parsingHTML.class.php
  65. 47
      main/inc/lib/html2pdf/qrcode/qrcode.class.php
  66. 236
      main/inc/lib/html2pdf/styleHTML.class.php
  67. 29
      main/inc/lib/mimetex/README
  68. BIN
      main/inc/lib/mimetex/mimetex.cgi
  69. BIN
      main/inc/lib/mimetex/mimetex.exe
  70. 39
      main/install/dokeos_main.sql
  71. 5
      main/lang/asturian/admin.inc.php
  72. 1
      main/lang/asturian/course_home.inc.php
  73. 2
      main/lang/asturian/slideshow.inc.php
  74. 2
      main/lang/asturian/userInfo.inc.php
  75. 17
      main/lang/english/admin.inc.php
  76. 3
      main/lang/greek/accessibility.inc.php
  77. 4
      main/lang/italian/admin.inc.php
  78. 1
      main/lang/italian/course_home.inc.php
  79. 2
      main/lang/italian/slideshow.inc.php
  80. 2
      main/lang/italian/userInfo.inc.php
  81. 19
      main/lang/portuguese/admin.inc.php
  82. 1
      main/lang/portuguese/course_home.inc.php
  83. 2
      main/lang/portuguese/slideshow.inc.php
  84. 2
      main/lang/portuguese/userInfo.inc.php
  85. 17
      main/lang/spanish/admin.inc.php
  86. 2
      main/lang/spanish/trad4all.inc.php
  87. 2
      main/lang/spanish/wiki.inc.php
  88. 6
      main/work/work.php

@ -122,7 +122,7 @@ if (isset($_POST['language'])) {
//$form->addElement('html_editor', 'content', null, null, array('ToolbarSet' => 'Basic', 'Width' => '100%', 'Height' => '250'));
$form->addElement('static', $_POST['language']);
$form->addElement('hidden', 'language',$_POST['language']);
$form->add_html_editor('content', get_lang('Content'), true, false, array('ToolbarSet' => 'simple', 'Width' => '100%', 'Height' => '250'));
$form->add_html_editor('content', get_lang('Content'), true, false, array('ToolbarSet' => 'terms_and_conditions', 'Width' => '100%', 'Height' => '250'));
//$form->addElement('textarea', 'content', get_lang('Content'),array('cols'=>'120','rows'=>'10'));
$form->addElement('radio', 'type', '', get_lang('HTMLText') ,'0');
$form->addElement('radio', 'type', '', get_lang('PageLink') ,'1');

@ -374,7 +374,7 @@ $action_images['plugins'] = 'plugin.gif';
$action_images['stylesheets'] = 'theme.gif';
$action_images['templates'] = 'template.gif';
$action_images['search'] = 'search.gif';
$action_images['editor'] = 'html.png';
// grabbing the categories
//$selectcategories = "SELECT DISTINCT category FROM ".$table_settings_current." WHERE category NOT IN ('stylesheets','Plugins')";

@ -165,6 +165,7 @@ function create_document_link($www, $title, $path, $filetype, $size, $visibility
if (!$show_as_icon)
{
//build download link (icon)
$forcedownload_link=($filetype=='folder')?api_get_self().'?'.api_get_cidreq().'&action=downloadfolder&path='.$url_path.$req_gid:api_get_self().'?'.api_get_cidreq().'&action=download&id='.$url_path.$req_gid;
//folder download or file download?
$forcedownload_icon=($filetype=='folder')?'folder_zip.gif':'filesave.gif';
@ -219,8 +220,19 @@ function create_document_link($www, $title, $path, $filetype, $size, $visibility
}
if (!$show_as_icon)
{
if($filetype=="folder")
{
if(api_is_allowed_to_edit() || api_is_platform_admin() || api_get_setting('students_download_folders') == 'true')
{
$force_download_html = ($size==0)?'':'<a href="'.$forcedownload_link.'" style="float:right"'.$prevent_multiple_click.'>'.Display::return_icon($forcedownload_icon, get_lang('Download'),array('height'=>'16', 'width' => '16')).'</a>';
}
}
else
{
$force_download_html = ($size==0)?'':'<a href="'.$forcedownload_link.'" style="float:right"'.$prevent_multiple_click.'>'.Display::return_icon($forcedownload_icon, get_lang('Download'),array('height'=>'16', 'width' => '16')).'</a>';
}
return '<a href="'.$url.'" title="'.$tooltip_title_alt.'" target="'.$target.'"'.$visibility_class.' style="float:left">'.$title.'</a>'.$force_download_html;
}
else

@ -144,7 +144,7 @@ $group_member_with_upload_rights = false;
if(isset($_SESSION['_gid']) && $_SESSION['_gid']!='')
{
//needed for group related stuff
include_once(api_get_path(LIBRARY_PATH) . 'groupmanager.lib.php');
require_once(api_get_path(LIBRARY_PATH) . 'groupmanager.lib.php');
//get group info
$group_properties = GroupManager::get_group_properties($_SESSION['_gid']);
$noPHP_SELF=true;
@ -283,9 +283,9 @@ if (isset($_GET['action']) && $_GET['action']=="download")
//-------------------------------------------------------------------//
//download of an completed folder
if(isset($_GET['action']) && $_GET['action']=="downloadfolder")
if(isset($_GET['action']) && $_GET['action']=="downloadfolder" && (api_get_setting('students_download_folders') == 'true' || api_is_allowed_to_edit() || api_is_platform_admin()))
{
include('downloadfolder.inc.php');
require('downloadfolder.inc.php');
}
//-------------------------------------------------------------------//
@ -405,7 +405,7 @@ if($is_allowed_to_edit || $group_member_with_upload_rights) // TEACHER ONLY
}
}
include_once(api_get_path(LIBRARY_PATH) . 'fileManage.lib.php');
require_once(api_get_path(LIBRARY_PATH) . 'fileManage.lib.php');
//this is needed for the update_db_info function
//$dbTable = $_course['dbNameGlu']."document";
$dbTable = Database::get_course_table(TABLE_DOCUMENT);
@ -448,7 +448,7 @@ if($is_allowed_to_edit || $group_member_with_upload_rights) // TEACHER ONLY
}
}
include_once(api_get_path(LIBRARY_PATH) . 'fileManage.lib.php');
require_once(api_get_path(LIBRARY_PATH) . 'fileManage.lib.php');
if(DocumentManager::delete_document($_course,$_GET['delete'],$base_work_dir))
{
@ -504,7 +504,7 @@ if($is_allowed_to_edit || $group_member_with_upload_rights) // TEACHER ONLY
if(isset($_POST['create_dir']) && $_POST['dirname']!='')
{
//needed for directory creation
include_once(api_get_path(LIBRARY_PATH) . 'fileUpload.lib.php');
require_once(api_get_path(LIBRARY_PATH) . 'fileUpload.lib.php');
$post_dir_name=Security::remove_XSS($_POST['dirname']);
if ($post_dir_name=='../' || $post_dir_name=='.' || $post_dir_name=='..')
@ -843,7 +843,7 @@ $column_show=array();
}
if ($docs_and_folders!=null) {
global $total_size;
if ($total_size!=0){ ?>
if ($total_size!=0 && (api_get_setting('students_download_folders') == 'true' || api_is_allowed_to_edit() || api_is_platform_admin())){ ?>
<!-- download zipped folder -->
<a href="<?php echo api_get_self(); ?>?<?php echo api_get_cidreq();?>&action=downloadfolder"><img src="../img/zip_save.gif" border="0" title="<?php echo get_lang("Save"); ?> (ZIP)" alt="" /></a>
<a href="<?php echo api_get_self(); ?>?<?php echo api_get_cidreq();?>&action=downloadfolder"><?php echo get_lang("Save"); ?> (ZIP)</a>&nbsp;
@ -851,7 +851,7 @@ $column_show=array();
}
}
// Slideshow by Patrick Cool, May 2004
include("document_slideshow.inc.php");
require("document_slideshow.inc.php");
if ($image_present)
{
echo "<a href=\"slideshow.php?".api_get_cidreq()."&curdirpath=".$curdirpathurl."\"><img src=\"../img/images_gallery.gif\" border=\"0\" title=\"".get_lang('ViewSlideshow')."\"/>&nbsp;". get_lang('ViewSlideshow') . "</a>";

@ -204,7 +204,7 @@ class Upload
{
$this->fileBaseName = $fileBaseName;
}
$this->fileBaseName=disable_dangerous_file(replace_dangerous_char(str_replace(' ','_',$this->fileBaseName)));// Juan Carlos Raña replace space by _ because fix long names. See: ajaxfilemanager/inc/class.manager.php. And add cleaning from dokeos replace_dangerous_char() and disable_dangerous_file()
$this->fileBaseName=disable_dangerous_file(replace_dangerous_char(str_replace(' ','_',$this->fileBaseName),'strict'));// Juan Carlos Raña replace space by _ because fix long names. See: ajaxfilemanager/inc/class.manager.php. And add cleaning from dokeos replace_dangerous_char() and disable_dangerous_file()
$fileName = $this->fileBaseName . $this->fileExtension;
$filePath = $dest . $fileName;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 B

After

Width:  |  Height:  |  Size: 318 B

@ -3,20 +3,20 @@
* asciimath plugin Spanish language file.
* Encoding: UTF-8.
*
* Author:
* Author: Juan Carlos Raña Trabado
*/
FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
FCKLang["DlgAsciiMathInput"] = 'Input' ;
FCKLang["DlgAsciiMathClear"] = 'Clear' ;
FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;
FCKLang["DlgAsciiMath"] = 'Insertar una fórmula ASCIIMath' ;
FCKLang["DlgAsciiMathFormulaEditor"] = 'Editor de ecuaciones' ;
FCKLang["DlgAsciiMathInput"] = 'Insertar' ;
FCKLang["DlgAsciiMathClear"] = 'Limpiar' ;
FCKLang["DlgAsciiMathDelete"] = 'Eliminar' ;
FCKLang["DlgAsciiMathPreview"] = 'Previsualización' ;
FCKLang["DlgAsciiMathBasedOn"] = 'Basado en ASCIIMathML por ' ;
FCKLang["DlgAsciiMathForMoreInfo"] = 'Para más información sobre AsciiMathML visite esta página: ' ;
FCKLang["DlgAsciiMathShowMathML"] = 'Mostrar MathML' ;
FCKLang["DlgAsciiMathFormulaPreview"] = 'Previsualización de la ecuación' ;
FCKLang["DlgAsciiIncompatibleBrowser"] = 'Su navegador no puede mostrar fórmulas matemáticas. Use %s1 o Internet Explorer con el plugin %s2 ' ;
FCKLang["DlgAsciiMathOldIE"] = 'Su navegador no puede mostrar fórmulas matemáticas. Actualícese a Internet Explorer 6.0+. Tras esto, tendra que instalar el plugin MathPlayer 2 para Internet Explorer. Para más información vea %s' ;
FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Su navegador no puede mostrar fórmulas matemáticas. Necesita instalar el plugin MathPlayer 2 para Internet Explorer. Para más información vea %s' ;
FCKLang["DlgAsciiMathOldMathPlayer"] = 'Su navegador no puede mostrar fórmulas matemáticas. Necesita actualizar el plugin MathPlayer para Internet Explorer a la version 2. Para más información vea %s' ;

@ -66,9 +66,20 @@
// Then, you may modify the newly copied toolbar definitions at your will, just keep correct php-syntax.
// It is not mandatory you to create custom files for all the toolbars. In case of missing file in the directory with the
// custom toobar definitions the system would read the correspondent "factory" toolbar definition (form 'default' directory).
$config['ToolbarSets']['Directory'] = 'default';
// You may try this provided example of custom toolbars:
//$config['ToolbarSets']['Directory'] = 'extended';
// This is the visible toolbar set when the editor is maximized.
// If it has not been defined, then the toolbar set for the "normal" size is used.
// if do you prefer configure for each toolbar edit main/inc/lib/fckeditor/toolbars/
if ((api_get_setting('more_buttons_maximized_mode') == 'true'))
{
$config['ToolbarSets']['Directory'] = 'extended';
}
else
{
$config['ToolbarSets']['Directory'] = 'default';
}
/*
@ -119,8 +130,15 @@ $config['LoadPlugin'][] = 'fckEmbedMovies';
$config['LoadPlugin'][] = 'flvPlayer';
// youtube : Adds a dilog for inserting YouTube video-streams.
if (api_is_allowed_to_edit() || api_is_platform_admin()) { // (not for students)
if ((api_get_setting('youtube_for_students') == 'true')) {
$config['LoadPlugin'][] = 'youtube';
}
else{
if (api_is_allowed_to_edit() || api_is_platform_admin()) { // (not for students)
$config['LoadPlugin'][] = 'youtube';
}
}
// googlemaps : Adds a dilog for inserting Google maps.
@ -136,8 +154,11 @@ $config['LoadPlugin'][] = 'googlemaps';
// mimetex : Adds a dilog for inserting mathematical formulas. In order this plugin to work prpoperly, preliminary changes
// in your server configuration have to be done. The MimeTex executable file has to be installed, see the installation guide.
//
// Uncomment the line below (remove the double slash at the beginning) to enable the 'mimetex' plugin:
//$config['LoadPlugin'][] = 'mimetex';
if ((api_get_setting('math_mimetex') == 'true')) {
$config['LoadPlugin'][] = 'mimetex';
}
//
// Some additional settings become active only when the 'mimetex' plugin has been enabled:
//
@ -166,7 +187,11 @@ $config['MimetexExecutableDetectionTimeout'] = 0.05;
// After enabling it, this plugin is configured to work with full-page html documents out-of-the box.
// You may try it in the "Documents" and "Wiki" tools.
// Browser compatibility: Internet Explorer 6.0+ with MathPlayer plugin, Mozilla Firefox 2.0+, Opera 9.5+
//$config['LoadPlugin'][] = 'asciimath';
if ((api_get_setting('math_asciimathML') == 'true')) {
$config['LoadPlugin'][] = 'asciimath';
}
// wikilink : Adds a dialog for inserting wiki-formatted links.
$config['LoadPlugin'][] = 'wikilink';
@ -279,6 +304,15 @@ $config['FontFormats'] = 'p;h1;h2;h3;h4;h5'; // A reduced format list.
// for all browsers. You may disable or change it if you wish.
$config['EditorAreaStyles'] = 'body { background-color: #ffffff; }';
// A setting for blocking copy/paste functions of the editor.
// This setting activates on leaners only. For users with other statuses there is no blocking copy/paste.
// if do you prefer configure for each toolbar edit main/inc/lib/fckeditor/toolbars/
if ((api_get_setting('block_copy_paste_for_students') == 'true'))
{
$config['BlockCopyPaste'] = true;
}
/*
* Additional note:
* For debugging purposes the editor may run using original source versions of its javascripts, not the "compressed" versions.

@ -0,0 +1,46 @@
<?php
// Dokeos - elearning and course management software
// See license terms in dokeos/documentation/license.txt
// Training tools
// Survey
// For more information: http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('Style','FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.
// If it has not been defined, then the toolbar set for the "normal" size is used.
/*
$config['ToolbarSets']['Maximized'] = array(
array('FitWindow','-') // ...
);
*/
// Sets whether the toolbar can be collapsed/expanded or not.
// Possible values: true , false
//$config['ToolbarCanCollapse'] = true;
// Sets how the editor's toolbar should start - expanded or collapsed.
// Possible values: true , false
//$config['ToolbarStartExpanded'] = true;
//This option sets the location of the toolbar.
// Possible values: 'In' , 'None' , 'Out:[TargetId]' , 'Out:[TargetWindow]([TargetId])'
//$config['ToolbarLocation'] = 'In';
// A setting for blocking copy/paste functions of the editor.
// This setting activates on leaners only. For users with other statuses there is no blocking copy/paste.
// Possible values: true , false
//$config['BlockCopyPaste'] = false;
// Here new width and height of the editor may be set.
// Possible values, examples: 300 , '250' , '100%' , ...
//$config['Width'] = '100%';
//$config['Height'] = '120';
?>

@ -9,17 +9,13 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('NewPage','Templates','Save','Print','PageBreak','FitWindow','-','PasteWord','-','Undo','Redo','-','SelectAll','-','Find'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
array('Table','Smiley','SpecialChar','googlemaps'),
array('FontFormat','FontName','FontSize'),
array('JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
array('Source')
);

@ -9,15 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,16 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,17 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar'),
array('Bold','Italic','Underline'),
array('Subscript','Superscript','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'),
array('Source')
);

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink','Glossary'),
array('Image','Flash'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor','Glossary'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
array('Table','SpecialChar'),
array('Outdent','Indent','-','TextColor','BGColor','-','OrderedList','UnorderedList','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex','asciimath'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,17 +9,16 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink','Glossary'),
array('Image','Flash'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
array('Table','SpecialChar'),
array('Outdent','Indent','-','TextColor','BGColor','-','OrderedList','UnorderedList'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex','asciimath')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -7,7 +7,16 @@
// For more information: http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('Save','Preview','Source')
);
// This is the visible toolbar set when the editor is maximized.
// If it has not been defined, then the toolbar set for the "normal" size is used.
$config['ToolbarSets']['Maximized'] = array(
//array('FitWindow','Save'),
array('Save'),
array('Bold','Italic','Underline'),
@ -16,13 +25,6 @@ $config['ToolbarSets']['Normal'] = array(
array('Link','Unlink')
);
// This is the visible toolbar set when the editor is maximized.
// If it has not been defined, then the toolbar set for the "normal" size is used.
/*
$config['ToolbarSets']['Maximized'] = array(
array('FitWindow','-') // ...
);
*/
// Sets whether the toolbar can be collapsed/expanded or not.
// Possible values: true , false

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,17 +9,16 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,14 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar','googlemaps'),
array('FontName','FontSize'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','TextColor','BGColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('NewPage','FitWindow','-','PasteWord','-','Undo','Redo','-','SelectAll'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,11 +9,7 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow'),
array('Bold','Italic','Underline'),
array('Undo','Redo'),
array('TextColor','BGColor'),
array('Link','Unlink')
array('Link','Unlink','Bold','Italic','TextColor','BGColor','Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,19 +9,14 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink','Glossary'),
array('Image','Flash'),
array('PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor','Glossary'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath','Table','SpecialChar'),
array('Outdent','Indent','TextColor','BGColor','-','OrderedList','UnorderedList','JustifyLeft','JustifyCenter','JustifyRight'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex','asciimath'),
array('Source')
);
array('Bold','Italic','Underline','-','Source'),
);//save, FitWindow don't run well here
// This is the visible toolbar set when the editor is maximized.
// If it has not been defined, then the toolbar set for the "normal" size is used.

@ -9,17 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','Smiley'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex')
array('FontName','FontSize'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','-','OrderedList','UnorderedList','-','TextColor','BGColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,17 +9,16 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,17 +9,14 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('NewPage','Templates','Save','Print','PageBreak','FitWindow','-','PasteWord','-','Undo','Redo','-','SelectAll','-','Find'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','Smiley','SpecialChar','googlemaps'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar'),
array('FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
array('Source')
);

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,13 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','Smiley'),
'/',
array('FontName','FontSize'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('TextColor','BGColor'),
array('Link','Unlink','SpecialChar')
array('JustifyLeft','JustifyCenter','-','OrderedList','UnorderedList','-','TextColor','BGColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,14 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','googlemaps'),
array('FontName','FontSize'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('JustifyLeft','JustifyCenter','-','OrderedList','UnorderedList','-','TextColor','BGColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,13 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','googlemaps'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','-','OrderedList','UnorderedList','-','TextColor','BGColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,13 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','googlemaps'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','-','OrderedList','UnorderedList','-','TextColor','BGColor'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,15 +9,14 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','googlemaps'),
array('FontName','FontSize'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor')
array('JustifyLeft','JustifyCenter','-','OrderedList','UnorderedList','-','TextColor','BGColor'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -10,14 +10,13 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow'),
array('FontSize', 'Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','SelectAll','RemoveFormat'),
array('TextColor','BGColor'),
array('Link','Unlink'),
array('Table','SpecialChar'),
array('Image','Flash')
array('Image'),
array('Table'),
array('FontSize'),
array('Bold','Italic'),
array('OrderedList','UnorderedList','-','TextColor'),
array('Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -0,0 +1,41 @@
<?php
// Dokeos - elearning and course management software
// See license terms in dokeos/documentation/license.txt
// Training tools
// Survey
// For more information: http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('Style','FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.
// If it has not been defined, then the toolbar set for the "normal" size is used.
$config['ToolbarSets']['Maximized'] = array(
array('Style','FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// Sets how the editor's toolbar should start - expanded or collapsed.
// Possible values: true , false
//$config['ToolbarStartExpanded'] = true;
//This option sets the location of the toolbar.
// Possible values: 'In' , 'None' , 'Out:[TargetId]' , 'Out:[TargetWindow]([TargetId])'
//$config['ToolbarLocation'] = 'In';
// A setting for blocking copy/paste functions of the editor.
// This setting activates on leaners only. For users with other statuses there is no blocking copy/paste.
// Possible values: true , false
//$config['BlockCopyPaste'] = false;
// Here new width and height of the editor may be set.
// Possible values, examples: 300 , '250' , '100%' , ...
//$config['Width'] = '100%';
//$config['Height'] = '120';
?>

@ -9,11 +9,7 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow'),
array('Bold','Italic','Underline','-','Subscript','Superscript'),
array('Undo','Redo'),
array('TextColor','BGColor'),
array('SpecialChar','mimetex')
array('Link','Unlink','Bold','Italic','TextColor','BGColor','mimetex')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,11 +9,7 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow'),
array('Bold','Italic','Underline','-','Subscript','Superscript'),
array('Undo','Redo'),
array('TextColor','BGColor'),
array('SpecialChar','mimetex')
array('FitWindow','Bold','Image','Link','PasteWord','MP3','mimetex','Table','Subscript','Superscript','ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,10 +9,7 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow'),
array('Bold','Italic','Underline','-','Subscript','Superscript'),
array('Undo','Redo'),
array('SpecialChar','mimetex')
array('FitWindow','Bold','Image','Link','PasteWord','MP3','mimetex','Table','Subscript','Superscript','Source')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('FitWindow','-','PasteWord','-','Undo','Redo'),
array('Link','Unlink'),
array('Image','Flash'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','-','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,18 +9,15 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink'),
array('Image','Flash'),
array('NewPage','Save','FitWindow','PasteWord','-','Undo','Redo'),
array('Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
array('Table','SpecialChar'),
array('OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor','Source'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar'),
array('Source')
array('Bold','Italic','Underline'),
array('JustifyLeft','JustifyCenter','JustifyRight')
);
// This is the visible toolbar set when the editor is maximized.

@ -9,17 +9,13 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('NewPage','Templates','Save','PageBreak','Preview','FitWindow','-','PasteText','-','Undo','Redo','-','SelectAll','-','Find'),
array('Wikilink','Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
array('Table','Smiley','SpecialChar','googlemaps'),
array('FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink','Wikilink','Glossary'),
array('Image','Flash'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex','asciimath'),
array('Subscript','Superscript','-','JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
array('Source')
);

@ -9,17 +9,14 @@
// This is the visible toolbar set when the editor has "normal" size.
$config['ToolbarSets']['Normal'] = array(
array('FitWindow','Save','Preview'),
array('NewPage','Save','PageBreak','Preview','FitWindow','-','PasteText','-','Undo','Redo','-','SelectAll','-','Find'),
array('Wikilink','Link','Unlink','Anchor'),
array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
array('Table','Smiley','SpecialChar','googlemaps'),
array('FontFormat','FontName','FontSize'),
array('Bold','Italic','Underline'),
array('OrderedList','UnorderedList','-','Outdent','Indent'),
array('JustifyLeft','JustifyCenter','JustifyRight'),
array('Undo','Redo','-','Find','-','SelectAll','RemoveFormat'),
array('Link','Unlink','Wikilink','Glossary'),
array('Image','Flash'),
'/',
array('Style','FontFormat','FontName','FontSize'),
array('TextColor','BGColor'),
array('Rule','Table','SpecialChar','mimetex','asciimath')
array('Subscript','Superscript','-','JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),
array('ShowBlocks')
);
// This is the visible toolbar set when the editor is maximized.

@ -248,8 +248,8 @@ function handle_uploaded_document($_course,$uploaded_file,$base_work_dir,$upload
}
else
{
//clean up the name, only ASCII characters should stay.
$clean_name = replace_dangerous_char($uploaded_file['name']);
//clean up the name, only ASCII characters should stay. (and strict)
$clean_name = replace_dangerous_char($uploaded_file['name'], 'strict');
//no "dangerous" files
$clean_name = disable_dangerous_file($clean_name);
if(!filter_extension($clean_name))
@ -703,7 +703,7 @@ function treat_uploaded_file($uploadedFile, $baseWorkDir, $uploadPath, $maxFille
$fileName = trim($uploadedFile['name']);
// CHECK FOR NO DESIRED CHARACTERS
$fileName = replace_dangerous_char($fileName);
$fileName = replace_dangerous_char($fileName, 'strict');
// TRY TO ADD AN EXTENSION TO FILES WITOUT EXTENSION
$fileName = add_ext_on_mime($fileName,$uploadedFile['type']);
@ -1875,7 +1875,7 @@ $handle=opendir($path);
else
{
//rename
$safe_file=disable_dangerous_file(replace_dangerous_char($file));
$safe_file=disable_dangerous_file(replace_dangerous_char($file, 'strict'));
@rename($base_work_dir.$current_path.'/'.$file,$base_work_dir.$current_path.'/'.$safe_file);
if(!DocumentManager::get_document_id($_course, $current_path.'/'.$safe_file))

@ -896,7 +896,11 @@ function Ln($h=null)
else
$this->y+=$h;
}
/*
* en commentaire car erreur PHP :
* Strict Standards: Declaration of FPDF_Alpha::Image() should be compatible with that of FPDF::Image()
*/
/*
function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
{
//Put an image on the page
@ -952,7 +956,7 @@ function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
if($link)
$this->Link($x,$y,$w,$h,$link);
}
*/
function GetX()
{
//Get x position
@ -1730,5 +1734,3 @@ if(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']=='contype')
header('Content-Type: application/pdf');
exit;
}
?>

@ -235,4 +235,3 @@ if (!defined('__CLASS_FPDF_CODEBAR__'))
}
}
}
?>

@ -177,4 +177,3 @@ require_once(dirname(__FILE__).'/00_fpdf_codebar.class.php');
}
}
}
?>

@ -3,7 +3,7 @@
* Logiciel : HTML2PDF - classe FPDF_Formulaire
*
* permet la gestion de champs de formulaire dans un PDF
* Inspir<EFBFBD> des sources de http://fpdf.org/fr/script/script36.php et http://fpdf.org/fr/script/script40.php
* Inspiré des sources de http://fpdf.org/fr/script/script36.php et http://fpdf.org/fr/script/script40.php
*
* @author Laurent MINGUET <webmaster@spipu.net>
*/
@ -17,8 +17,8 @@ if (!defined('__CLASS_FPDF_FORMULAIRE__'))
class FPDF_Formulaire extends FPDF_BookMark
{
var $javascript = ''; //javascript code
var $n_js; //num<EFBFBD>ro de l'objet javascript
var $n_cata; //num<EFBFBD>ro de l'objet catalogue
var $n_js; //numéro de l'objet javascript
var $n_cata; //numéro de l'objet catalogue
var $ur; //
function FPDF_Formulaire($orientation='P',$unit='mm',$format='A4')
@ -71,7 +71,7 @@ if (!defined('__CLASS_FPDF_FORMULAIRE__'))
/*
* Create a javascript PDF string.
* @access protected
* @author Johannes G<EFBFBD>ntert, Nicola Asuni
* @author Johannes Güntert, Nicola Asuni
*/
function _putjavascript()
{
@ -225,4 +225,3 @@ if (!defined('__CLASS_FPDF_FORMULAIRE__'))
}
}
}
?>

@ -0,0 +1,326 @@
<?php
/*************************************************************************
* http://staff.dasdeck.de/valentin/fpdf/fpdf_alpha/
*
* @author Valentin Schmidt
*
* This script allows to use images (PNGs or JPGs) with alpha-channels.
* The alpha-channel can be either supplied as separate 8-bit PNG ("mask"),
* or, for PNGs, also an internal alpha-channel can be used.
* For the latter, the GD 2.x extension is required.
************************************************************************/
if (!defined('__CLASS_FPDF_ALPHA__'))
{
define('__CLASS_FPDF_ALPHA__', true);
require_once(dirname(__FILE__).'/02_fpdf_formulaire.class.php');
class FPDF_Alpha extends FPDF_Formulaire
{
var $tmpFiles = array();
function FPDF_Alpha($orientation='P',$unit='mm',$format='A4')
{
$this->FPDF_Formulaire($orientation,$unit,$format);
}
/* Public methods */
function Image($file,$x,$y,$w=0,$h=0,$type='',$link='', $isMask=false, $maskImg=0)
{
//Put an image on the page
if(!isset($this->images[$file]))
{
//First use of image, get info
if($type=='')
{
/* MODIFICATION HTML2PDF pour le support des images PHP */
$type = explode('?', $file);
$type = pathinfo($type[0]);
if (!isset($type['extension']) || !$type['extension'])
$this->Error('Image file has no extension and no type was specified: '.$file);
$type = $type['extension'];
/* FIN MODIFICATION */
/*
$pos=strrpos($file,'.');
if(!$pos)
$this->Error('Image file has no extension and no type was specified: '.$file);
$type=substr($file,$pos+1);
*/
}
$type=strtolower($type);
/* MODIFICATION HTML2PDF pour le support des images PHP et CGI*/
if ($type=='php' || $type=='cgi')
{
// identification des infos
$infos=@GetImageSize($file);
if (!$infos) $this->Error('Unsupported image : '.$file);
// identification du type
$type = explode('/', $infos['mime']);
if ($type[0]!='image') $this->Error('Unsupported image : '.$file);
$type = $type[1];
}
/* FIN MODIFICATION */
// $mqr=get_magic_quotes_runtime();
// set_magic_quotes_runtime(0);
if($type=='jpg' || $type=='jpeg')
$info=$this->_parsejpg($file);
elseif($type=='png')
{
$info=$this->_parsepng($file);
if ($info=='alpha')
return $this->ImagePngWithAlpha($file,$x,$y,$w,$h,$link);
}
else
{
//Allow for additional formats
$mtd='_parse'.$type;
if(!method_exists($this,$mtd))
$this->Error('Unsupported image type: '.$type);
$info=$this->$mtd($file);
}
// set_magic_quotes_runtime($mqr);
if ($isMask)
{
$info['cs']="DeviceGray"; // try to force grayscale (instead of indexed)
}
$info['i']=count($this->images)+1;
if ($maskImg>0) $info['masked'] = $maskImg;###
$this->images[$file]=$info;
}
else
$info=$this->images[$file];
//Automatic width and height calculation if needed
if($w==0 && $h==0)
{
//Put image at 72 dpi
$w=$info['w']/$this->k;
$h=$info['h']/$this->k;
}
if($w==0)
$w=$h*$info['w']/$info['h'];
if($h==0)
$h=$w*$info['h']/$info['w'];
if ($isMask) // embed hidden, ouside the canvas
{
$x = ($this->CurOrientation=='P'?$this->CurPageFormat[0]*2:$this->CurPageFormat[1]*2) + 10;
}
else // modification by spipu :) pas besoin de tracer l'image si c'est pour faire un mask !!!!
{
$this->_out(sprintf('q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
if($link) $this->Link($x,$y,$w,$h,$link);
}
return $info['i'];
}
// needs GD 2.x extension
// pixel-wise operation, not very fast
function ImagePngWithAlpha($file,$x,$y,$w=0,$h=0,$link='')
{
$tmp_alpha = tempnam('.', 'mska');
$this->tmpFiles[] = $tmp_alpha;
$tmp_plain = tempnam('.', 'mskp');
$this->tmpFiles[] = $tmp_plain;
list($wpx, $hpx) = @getimagesize($file);
$img = imagecreatefrompng($file);
$alpha_img = imagecreate( $wpx, $hpx );
// generate gray scale pallete
for($c=0;$c<256;$c++) ImageColorAllocate($alpha_img, $c, $c, $c);
// extract alpha channel
$xpx=0;
while ($xpx<$wpx)
{
$ypx = 0;
while ($ypx<$hpx)
{
$color_index = imagecolorat($img, $xpx, $ypx);
$col = imagecolorsforindex($img, $color_index);
imagesetpixel($alpha_img, $xpx, $ypx, $this->_gamma( (127-$col['alpha'])*255/127) );
++$ypx;
}
++$xpx;
}
imagepng($alpha_img, $tmp_alpha);
imagedestroy($alpha_img);
// extract image without alpha channel
$plain_img = imagecreatetruecolor ( $wpx, $hpx );
imagecopy ($plain_img, $img, 0, 0, 0, 0, $wpx, $hpx );
imagepng($plain_img, $tmp_plain);
imagedestroy($plain_img);
//first embed mask image (w, h, x, will be ignored)
$maskImg = $this->Image($tmp_alpha, 0,0,0,0, 'PNG', '', true);
//embed image, masked with previously embedded mask
$this->Image($tmp_plain,$x,$y,$w,$h,'PNG',$link, false, $maskImg);
}
function Close()
{
parent::Close();
// clean up tmp files
foreach($this->tmpFiles as $tmp) @unlink($tmp);
}
/* Private methods */
function _putimages()
{
$filter=($this->compress) ? '/Filter /FlateDecode ' : '';
reset($this->images);
while(list($file,$info)=each($this->images))
{
$this->_newobj();
$this->images[$file]['n']=$this->n;
$this->_out('<</Type /XObject');
$this->_out('/Subtype /Image');
$this->_out('/Width '.$info['w']);
$this->_out('/Height '.$info['h']);
if (isset($info["masked"])) $this->_out('/SMask '.($this->n-1).' 0 R'); ###
if($info['cs']=='Indexed')
$this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
else
{
$this->_out('/ColorSpace /'.$info['cs']);
if($info['cs']=='DeviceCMYK')
$this->_out('/Decode [1 0 1 0 1 0 1 0]');
}
$this->_out('/BitsPerComponent '.$info['bpc']);
if(isset($info['f']))
$this->_out('/Filter /'.$info['f']);
if(isset($info['parms']))
$this->_out($info['parms']);
if(isset($info['trns']) && is_array($info['trns']))
{
$trns='';
for($i=0;$i<count($info['trns']);$i++)
$trns.=$info['trns'][$i].' '.$info['trns'][$i].' ';
$this->_out('/Mask ['.$trns.']');
}
$this->_out('/Length '.strlen($info['data']).'>>');
$this->_putstream($info['data']);
unset($this->images[$file]['data']);
$this->_out('endobj');
//Palette
if($info['cs']=='Indexed')
{
$this->_newobj();
$pal=($this->compress) ? gzcompress($info['pal']) : $info['pal'];
$this->_out('<<'.$filter.'/Length '.strlen($pal).'>>');
$this->_putstream($pal);
$this->_out('endobj');
}
}
}
// GD seems to use a different gamma, this method is used to correct it again
function _gamma($v)
{
return pow ($v/255, 2.2) * 255;
}
// this method overwriing the original version is only needed to make the Image method support PNGs with alpha channels.
// if you only use the ImagePngWithAlpha method for such PNGs, you can remove it from this script.
function _parsepng($file)
{
//Extract info from a PNG file
$f=fopen($file,'rb');
if(!$f)
$this->Error('Can\'t open image file: '.$file);
//Check signature
if(fread($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))
$this->Error('Not a PNG file: '.$file);
//Read header chunk
fread($f,4);
if(fread($f,4)!='IHDR')
$this->Error('Incorrect PNG file: '.$file);
$w=$this->_readint($f);
$h=$this->_readint($f);
$bpc=ord(fread($f,1));
if($bpc>8)
$this->Error('16-bit depth not supported: '.$file);
$ct=ord(fread($f,1));
if($ct==0)
$colspace='DeviceGray';
elseif($ct==2)
$colspace='DeviceRGB';
elseif($ct==3)
$colspace='Indexed';
else
{
fclose($f); // the only changes are
return 'alpha'; // made in those 2 lines
}
if(ord(fread($f,1))!=0)
$this->Error('Unknown compression method: '.$file);
if(ord(fread($f,1))!=0)
$this->Error('Unknown filter method: '.$file);
if(ord(fread($f,1))!=0)
$this->Error('Interlacing not supported: '.$file);
fread($f,4);
$parms='/DecodeParms <</Predictor 15 /Colors '.($ct==2 ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w.'>>';
//Scan chunks looking for palette, transparency and image data
$pal='';
$trns='';
$data='';
do
{
$n=$this->_readint($f);
$type=fread($f,4);
if($type=='PLTE')
{
//Read palette
$pal=fread($f,$n);
fread($f,4);
}
elseif($type=='tRNS')
{
//Read transparency info
$t=fread($f,$n);
if($ct==0)
$trns=array(ord(substr($t,1,1)));
elseif($ct==2)
$trns=array(ord(substr($t,1,1)),ord(substr($t,3,1)),ord(substr($t,5,1)));
else
{
$pos=strpos($t,chr(0));
if($pos!==false)
$trns=array($pos);
}
fread($f,4);
}
elseif($type=='IDAT')
{
//Read image data block
$data.=fread($f,$n);
fread($f,4);
}
elseif($type=='IEND')
break;
else
fread($f,$n+4);
}
while($n);
if($colspace=='Indexed' && empty($pal))
$this->Error('Missing palette in '.$file);
fclose($f);
return array('w'=>$w,'h'=>$h,'cs'=>$colspace,'bpc'=>$bpc,'f'=>'FlateDecode','parms'=>$parms,'pal'=>$pal,'trns'=>$trns,'data'=>$data);
}
}
}

@ -4,28 +4,28 @@
*
* @author Klemen Vodopivec
*
* Ce script permet de prot<EFBFBD>ger le PDF, c'est-<EFBFBD>-dire emp<EFBFBD>cher l'utilisateur de copier son contenu, de l'imprimer ou de le modifier.
* Ce script permet de protéger le PDF, c'est-à-dire empêcher l'utilisateur de copier son contenu, de l'imprimer ou de le modifier.
*
* SetProtection([array permissions [, string user_pass [, string owner_pass]]])
*
* permissions : l'ensemble des permissions. Vide par d<EFBFBD>faut (seule la lecture est autoris<EFBFBD>e).
* user_pass : mot de passe utilisateur. Vide par d<EFBFBD>faut.
* owner_pass : mot de passe propri<EFBFBD>taire. Par d<EFBFBD>faut, une valeur al<EFBFBD>atoire est choisie.
* permissions : l'ensemble des permissions. Vide par défaut (seule la lecture est autorisée).
* user_pass : mot de passe utilisateur. Vide par défaut.
* owner_pass : mot de passe propriétaire. Par défaut, une valeur aléatoire est choisie.
*
* Le tableau des permissions est compos<EFBFBD> de valeurs prises parmi les suivantes :
* Le tableau des permissions est composé de valeurs prises parmi les suivantes :
* * copy : copie du texte et des images dans le presse-papier
* * print : impression du document
* * modify : modification (autre ques les annotations et les formulaires)
* * annot-forms : ajout d'annotations ou de formulaires
*
* Remarque : la protection contre la modification concerne les personnes poss<EFBFBD>dant la version compl<EFBFBD>te d'Acrobat.
* Remarque : la protection contre la modification concerne les personnes possédant la version complète d'Acrobat.
*
* Si vous ne sp<EFBFBD>cifiez pas de mot de passe, le document s'ouvrira normalement. Si vous indiquez un mot de passe utilisateur,
* le lecteur de PDF le demandera avant d'afficher le document. Le mot de passe propri<EFBFBD>taire, s'il est diff<EFBFBD>rent de celui utilisateur,
* permet d'obtenir l'acc<EFBFBD>s complet.
* Si vous ne spécifiez pas de mot de passe, le document s'ouvrira normalement. Si vous indiquez un mot de passe utilisateur,
* le lecteur de PDF le demandera avant d'afficher le document. Le mot de passe propriétaire, s'il est différent de celui utilisateur,
* permet d'obtenir l'accès complet.
*
* Note : prot<EFBFBD>ger un document n<EFBFBD>cessite de le crypter, ce qui augmente le temps de traitement de mani<EFBFBD>re importante.
* Cela peut dans certains cas entra<EFBFBD>ner un time-out au niveau de PHP, en particulier si le document contient des
* Note : protéger un document nécessite de le crypter, ce qui augmente le temps de traitement de manière importante.
* Cela peut dans certains cas entraîner un time-out au niveau de PHP, en particulier si le document contient des
* images ou des polices.
************************************************************************/
@ -33,9 +33,9 @@ if (!defined('__CLASS_FPDF_PROTECTION__'))
{
define('__CLASS_FPDF_PROTECTION__', true);
require_once(dirname(__FILE__).'/02_fpdf_formulaire.class.php');
require_once(dirname(__FILE__).'/03_fpdf_alpha.class.php');
class FPDF_Protection extends FPDF_Formulaire
class FPDF_Protection extends FPDF_Alpha
{
var $encrypted; //whether document is protected
var $Uvalue; //U entry in pdf document
@ -226,4 +226,3 @@ if (!defined('__CLASS_FPDF_PROTECTION__'))
}
}
}
?>

@ -3,10 +3,10 @@
* Logiciel : HTML2PDF - classe MyPDF
*
* Convertisseur HTML => PDF, utilise fpdf de Olivier PLATHEY
* Distribu<EFBFBD> sous la licence LGPL.
* Distribué sous la licence LGPL.
*
* @author Laurent MINGUET <webmaster@spipu.net>
* @version 3.24 - 05/08/2009
* @version 3.26 - 16/11/2009
*/
if (!defined('__CLASS_MYPDF__'))
@ -72,84 +72,6 @@ if (!defined('__CLASS_MYPDF__'))
}
}
// red<EFBFBD>finition de la fonction Image de FPDF afin de rajouter la gestion des fichiers PHP
function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
{
//Put an image on the page
if(!isset($this->images[$file]))
{
//First use of this image, get info
if($type=='')
{
/* MODIFICATION HTML2PDF pour le support des images PHP */
$type = explode('?', $file);
$type = pathinfo($type[0]);
if (!isset($type['extension']) || !$type['extension'])
$this->Error('Image file has no extension and no type was specified: '.$file);
$type = $type['extension'];
/* FIN MODIFICATION */
}
$type=strtolower($type);
/* MODIFICATION HTML2PDF pour le support des images PHP */
if ($type=='php')
{
// identification des infos
$infos=@GetImageSize($file);
if (!$infos) $this->Error('Unsupported image : '.$file);
// identification du type
$type = explode('/', $infos['mime']);
if ($type[0]!='image') $this->Error('Unsupported image : '.$file);
$type = $type[1];
}
/* FIN MODIFICATION */
if($type=='jpeg')
$type='jpg';
$mtd='_parse'.$type;
if(!method_exists($this,$mtd))
$this->Error('Unsupported image type: '.$type);
$info=$this->$mtd($file);
$info['i']=count($this->images)+1;
$this->images[$file]=$info;
}
else
$info=$this->images[$file];
//Automatic width and height calculation if needed
if($w==0 && $h==0)
{
//Put image at 72 dpi
$w=$info['w']/$this->k;
$h=$info['h']/$this->k;
}
elseif($w==0)
$w=$h*$info['w']/$info['h'];
elseif($h==0)
$h=$w*$info['h']/$info['w'];
//Flowing mode
if($y===null)
{
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
{
//Automatic page break
$x2=$this->x;
$this->AddPage($this->CurOrientation,$this->CurPageFormat);
$this->x=$x2;
}
$y=$this->y;
$this->y+=$h;
}
if($x===null)
$x=$this->x;
$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
if($link)
$this->Link($x,$y,$w,$h,$link);
}
// Draw a polygon
// Auteur : Andrew Meier
// Licence : Freeware
@ -182,7 +104,7 @@ if (!defined('__CLASS_MYPDF__'))
$this->linethrough = $value;
}
// red<EFBFBD>finition de la methode Text de FPDF afin de rajouter la gestion des overline et linethrough
// redéfinition de la methode Text de FPDF afin de rajouter la gestion des overline et linethrough
function Text($x, $y, $txt)
{
//Output a string
@ -202,7 +124,7 @@ if (!defined('__CLASS_MYPDF__'))
$this->_out($s);
}
// red<EFBFBD>finition de la methode Cell de FPDF afin de rajouter la gestion des overline et linethrough
// redéfinition de la methode Cell de FPDF afin de rajouter la gestion des overline et linethrough
function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
{
//Output a cell
@ -480,6 +402,101 @@ if (!defined('__CLASS_MYPDF__'))
$this->_out($path . 'f');
}
function startTransform()
{
$this->_out('q');
}
function stopTransform()
{
$this->_out('Q');
}
function setTranslate($t_x, $t_y)
{
// matrice de transformation
$tm[0]=1;
$tm[1]=0;
$tm[2]=0;
$tm[3]=1;
$tm[4]=$t_x*$this->k;
$tm[5]=-$t_y*$this->k;
$this->_out(sprintf('%.3F %.3F %.3F %.3F %.3F %.3F cm', $tm[0],$tm[1],$tm[2],$tm[3],$tm[4],$tm[5]));
}
function setRotation($angle, $x='', $y='')
{
if($x === '') $x=$this->x;
if($y === '') $y=$this->y;
$y=($this->h-$y)*$this->k;
$x*=$this->k;
// matrice de transformation
$tm[0]=cos(deg2rad($angle));
$tm[1]=sin(deg2rad($angle));
$tm[2]=-$tm[1];
$tm[3]=$tm[0];
$tm[4]=$x+$tm[1]*$y-$tm[0]*$x;
$tm[5]=$y-$tm[0]*$y-$tm[1]*$x;
$this->_out(sprintf('%.3F %.3F %.3F %.3F %.3F %.3F cm', $tm[0],$tm[1],$tm[2],$tm[3],$tm[4],$tm[5]));
}
function setMyDrawColor($c)
{
$c = $this->setMyColor($c, true);
if (!$c) return false;
$this->DrawColor=$c;
if($this->page>0) $this->_out($this->DrawColor);
}
function setMyFillColor($c)
{
$c = $this->setMyColor($c);
if (!$c) return false;
$this->FillColor=$c;
$this->ColorFlag=($this->FillColor!=$this->TextColor);
if($this->page>0) $this->_out($this->FillColor);
}
function setMyTextColor($c)
{
$c = $this->setMyColor($c);
if (!$c) return false;
$this->TextColor=$c;
$this->ColorFlag=($this->FillColor!=$this->TextColor);
}
function setMyColor($c, $mode = false)
{
if (!is_array($c)) return sprintf('%.3F ',$c).($mode ? 'G' : 'g');
elseif (count($c)==3) return sprintf('%.3F %.3F %.3F ',$c[0],$c[1],$c[2]).($mode ? 'RG' : 'rg');
elseif (count($c)==4) return sprintf('%.3F %.3F %.3F %.3F ',$c[0],$c[1],$c[2],$c[3]).($mode ? 'K' : 'k');
return null;
}
function SetX($x)
{
$this->x=$x;
}
function SetY($y)
{
$this->x=$this->lMargin;
$this->y=$y;
}
function SetXY($x, $y)
{
$this->x=$x;
$this->y=$y;
}
}
}
?>

File diff suppressed because it is too large Load Diff

@ -1,19 +1,19 @@
err01 L'etiqueta <b>&lt;[[OTHER]]&gt;</b> encara no existeix.<br><br>Si voleu afegir-la, heu de crear els m<EFBFBD>todes <b>o_[[OTHER]]</b> (per l'obertura) i <b>c_[[OTHER]]</b> (pel tancament) seguint el model de les etiquetes existents.<br><br>A m<EFBFBD>s, si creeu nous m<EFBFBD>todes, envieu-ho a webmaster@spipu.net per tal d'afegir-los a les seg<EFBFBD>ents versions d'HTML2PDF, i que tothom en pugui gaudir.
err02 Frase de 1000 l<EFBFBD>nies => massa llarga<br><b>Frase :</b> [[OTHER_0]]<br><b>Mida casella :</b> [[OTHER_1]]<br><b>Mida text :</b> [[OTHER_2]]<br>
err03 Codi HTML no v<EFBFBD>lid, una etiqueta t<EFBFBD> un tancament de m<EFBFBD>s : <b>&lt;[[OTHER]]&gt;</b>
err04 Codi HTML no v<EFBFBD>lid, les etiquetes no estan tancades en l'ordre correcte.<br>Estat : <pre>[[OTHER]]</pre>
err05 Codi HTML no v<EFBFBD>lid, totes les etiquetes han de tenir el seu tancament.<br>Estat : <pre>[[OTHER]]</pre>
err01 L'etiqueta <b>&lt;[[OTHER]]&gt;</b> encara no existeix.<br><br>Si voleu afegir-la, heu de crear els mètodes <b>o_[[OTHER]]</b> (per l'obertura) i <b>c_[[OTHER]]</b> (pel tancament) seguint el model de les etiquetes existents.<br><br>A més, si creeu nous mètodes, envieu-ho a webmaster@spipu.net per tal d'afegir-los a les següents versions d'HTML2PDF, i que tothom en pugui gaudir.
err02 Frase de 1000 línies => massa llarga<br><b>Frase :</b> [[OTHER_0]]<br><b>Mida casella :</b> [[OTHER_1]]<br><b>Mida text :</b> [[OTHER_2]]<br>
err03 Codi HTML no vàlid, una etiqueta té un tancament de més : <b>&lt;[[OTHER]]&gt;</b>
err04 Codi HTML no vàlid, les etiquetes no estan tancades en l'ordre correcte.<br>Estat : <pre>[[OTHER]]</pre>
err05 Codi HTML no vàlid, totes les etiquetes han de tenir el seu tancament.<br>Estat : <pre>[[OTHER]]</pre>
err06 Impossible carregar la imatge <b>[[OTHER]]</b>
err07 El contenido de una etiqueta TD no encaja en una sola p<EFBFBD>gina
txt01 ERROR n<EFBFBD>
err07 El contingut d'una etiqueta TD no quep en una sola pàgina
txt01 ERROR n°
txt02 Fitxer :
txt03 L<EFBFBD>nia :
txt03 Línia :
pdf01 Document generat el [[date_d]]/[[date_m]]/[[date_y]]
pdf02 Document generat a les [[date_h]]:[[date_i]]
pdf03 Document generat el [[date_d]]/[[date_m]]/[[date_y]] a les [[date_h]]:[[date_i]]
pdf04 P<EFBFBD>gina [[current]]/[[nb]]
pdf05 Els formularis requereixen l'<EFBFBD>s de l'Adobe Reader 9
vue01 ENCABEZAR
vue02 PEU DE P<EFBFBD>GINA
vue03 P<EFBFBD>GINA
vue04 Visualitzaci<EFBFBD>
pdf04 Pàgina [[current]]/[[nb]]
pdf05 Els formularis requereixen l'ús de l'Adobe Reader 9
vue01 CAPÇALERA
vue02 PEU DE PÀGINA
vue03 PÀGINA
vue04 Visualització

@ -0,0 +1,19 @@
err01 Tag <b>&lt;[[OTHER]]&gt;</b> endnu ikke eksisterer.<br><br>Hvis du ønsker at tilføje det, skal du oprette de metoder <b>o_[[OTHER]]</b> (for åbning) og <b>c_[[OTHER]]</b> (for lukning) ved at følge den model af eksisterende tags.<br><br>Hvis du opretter disse metoder, så tøv ikke med at send mig en e-mail til webmaster@spipu.net til indsat dem i den næste version af HTML2PDF.
err02 Sætning af 1000 lines => er for lang<br><b>sætning :</b> [[OTHER_0]]<br><b>Bredde boksen :</b> [[OTHER_1]]<br><b>Længde tekst :</b> [[OTHER_2]]<br>
err03 HTML-kode er ugyldig, et tag er lukket for mange gange: <b>&lt;[[OTHER]]&gt;</b>
err04 HTML-kode er ugyldig, tags er ikke afsluttet på en ordentlig måde.<br>Status : <pre>[[OTHER]]</pre>
err05 HTML-kode er ugyldig, alle tags skal lukkes. <br>Status : <pre>[[OTHER]]</pre>
err06 Umuligt at indlæse billedet <b>[[OTHER]]</b>
err07 Indholdet af en TD tag ikke passer på én side
txt01 FEJL n°
txt02 File :
txt03 Linje :
pdf01 Siden oprettet d. [[date_y]]-[[date_m]]-[[date_d]]
pdf02 Siden oprettet d. [[date_h]]:[[date_i]]
pdf03 Siden oprettet d. [[date_y]]-[[date_m]]-[[date_d]] at [[date_h]]:[[date_i]]
pdf04 Side [[current]]/[[nb]]
pdf05 De formularer kræver brug af Adobe Reader 9
vue01 HEADER
vue02 FOOTER
vue03 PAGE
vue04 View

@ -1,19 +1,19 @@
err01 Das Tag <b>&lt;[[OTHER]]&gt;</b> existiert noch nicht.<br><br>Wenn Sie es hinzuf<EFBFBD>gen m<EFBFBD>chten, sollen Sie die Methoden<b>o_[[OTHER]]</b> (zu <EFBFBD>ffnen) und <b>c_[[OTHER]]</b> (zu schlie<EFBFBD>en) nach dem Modell den existierenden Tags.<br><br>Wenn Sie diese Methoden au<EFBFBD>erdem aufbauen, bitte teilen Sie sie duch eine E-Mail an meine Adresse : webmaster@spipu.net, so da<EFBFBD> sie k<EFBFBD>nftig in die n<EFBFBD>chste Version von HTML2PDF erscheinen.
err02 1000-Linien Satz => zu lang<br><b>Satz :</b> [[OTHER_0]]<br><b>Breite des Eingabefelds :</b> [[OTHER_1]]<br><b>L<EFBFBD>nge des Texts :</b> [[OTHER_2]]<br>
err03 Falsches HTML Code, <EFBFBD>berz<EFBFBD>hliges geschlo<EFBFBD>ene Tag : <b>&lt;[[OTHER]]&gt;</b>
err04 Falsches HTML Code, die Tags sind nicht in richtiger Ordnung geschlo<EFBFBD>en.<br>Status : <pre>[[OTHER]]</pre>
err05 Falsches HTML Code, alle Tags sollen geschlo<EFBFBD>en sein.<br>Status : <pre>[[OTHER]]</pre>
err06 Ladung des Bilds unm<EFBFBD>glich <b>[[OTHER]]</b>
err01 Das Tag <b>&lt;[[OTHER]]&gt;</b> existiert noch nicht.<br><br>Wenn Sie es hinzufügen möchten, sollen Sie die Methoden<b>o_[[OTHER]]</b> (zu öffnen) und <b>c_[[OTHER]]</b> (zu schließen) nach dem Modell den existierenden Tags.<br><br>Wenn Sie diese Methoden außerdem aufbauen, bitte teilen Sie sie duch eine E-Mail an meine Adresse : webmaster@spipu.net, so daß sie künftig in die nächste Version von HTML2PDF erscheinen.
err02 1000-Linien Satz => zu lang<br><b>Satz :</b> [[OTHER_0]]<br><b>Breite des Eingabefelds :</b> [[OTHER_1]]<br><b>Länge des Texts :</b> [[OTHER_2]]<br>
err03 Falsches HTML Code, überzähliges geschloßene Tag : <b>&lt;[[OTHER]]&gt;</b>
err04 Falsches HTML Code, die Tags sind nicht in richtiger Ordnung geschloßen.<br>Status : <pre>[[OTHER]]</pre>
err05 Falsches HTML Code, alle Tags sollen geschloßen sein.<br>Status : <pre>[[OTHER]]</pre>
err06 Ladung des Bilds unmöglich <b>[[OTHER]]</b>
err07 Er Inhalt eines TD-Tag passt nicht nur auf einer Seite
txt01 Fehler n<EFBFBD>
txt01 Fehler n°
txt02 Datei :
txt03 Linie :
pdf01 Datei aufgebaut am [[date_d]]/[[date_m]]/[[date_y]]
pdf02 Datei aufgebaut um [[date_h]]:[[date_m]]
pdf03 Datei aufgebaut am [[date_d]]/[[date_m]]/[[date_y]] um [[date_h]]:[[date_i]]
pdf04 Seite [[current]]/[[nb]]
pdf05 Die Formulare ben<EFBFBD>tigen Sie den Adobe Reader 9
pdf05 Die Formulare benötigen Sie den Adobe Reader 9
vue01 Seite-Header
vue02 Fu<EFBFBD>zeile
vue02 Fußzeile
vue03 Seite
vue04 Visualisierung

@ -5,7 +5,7 @@ err04 HTML code invalid, the tags are not closed in an orderly fashion.<br>Statu
err05 HTML code invalid, all tags must be closed.<br>Status : <pre>[[OTHER]]</pre>
err06 Impossible to load the image <b>[[OTHER]]</b>
err07 The content of a TD tag does not fit on only one page
txt01 ERROR n<EFBFBD>
txt01 ERROR n°
txt02 File :
txt03 Line :
pdf01 Document generated on [[date_y]]-[[date_m]]-[[date_d]]

@ -1,19 +1,19 @@
err01 La etiqueta <b>&lt;[[OTHER]]&gt;</b> todav<EFBFBD>a no existe.<br><br>Si quiere a<EFBFBD>adirla, debe crear los m<EFBFBD>todos <b>o_[[OTHER]]</b> (para la apertura) y <b>c_[[OTHER]]</b> (para el cierre) siguiendo el modelo de las etiquetas existentes.<br><br>Si crea nuevos m<EFBFBD>todos, env<EFBFBD>elos a webmaster@spipu.net para a<EFBFBD>adirlos a las siguientes versiones de HTML2PDF, y que todo el mundo se pueda beneficiar.
err02 Frase de 1000 l<EFBFBD>neas => demasiado larga<br><b>Frase :</b> [[OTHER_0]]<br><b>Tama<EFBFBD>o casilla :</b> [[OTHER_1]]<br><b>Tama<EFBFBD>o texto :</b> [[OTHER_2]]<br>
err03 C<EFBFBD>digo HTML no v<EFBFBD>lido, una etiqueta tiene un cierre de m<EFBFBD>s : <b>&lt;[[OTHER]]&gt;</b>
err04 C<EFBFBD>digo HTML no v<EFBFBD>lido, las etiquetas no estan cerradas en el orden correcto.<br>Estado : <pre>[[OTHER]]</pre>
err05 C<EFBFBD>digo HTML no v<EFBFBD>lido, todas las etiquetas deben tener su cierre.<br>Estado : <pre>[[OTHER]]</pre>
err01 La etiqueta <b>&lt;[[OTHER]]&gt;</b> todavía no existe.<br><br>Si quiere añadirla, debe crear los métodos <b>o_[[OTHER]]</b> (para la apertura) y <b>c_[[OTHER]]</b> (para el cierre) siguiendo el modelo de las etiquetas existentes.<br><br>Si crea nuevos métodos, envíelos a webmaster@spipu.net para añadirlos a las siguientes versiones de HTML2PDF, y que todo el mundo se pueda beneficiar.
err02 Frase de 1000 líneas => demasiado larga<br><b>Frase :</b> [[OTHER_0]]<br><b>Tamaño casilla :</b> [[OTHER_1]]<br><b>Tamaño texto :</b> [[OTHER_2]]<br>
err03 Código HTML no válido, una etiqueta tiene un cierre de más : <b>&lt;[[OTHER]]&gt;</b>
err04 Código HTML no válido, las etiquetas no estan cerradas en el orden correcto.<br>Estado : <pre>[[OTHER]]</pre>
err05 Código HTML no válido, todas las etiquetas deben tener su cierre.<br>Estado : <pre>[[OTHER]]</pre>
err06 Imposible cargar la imagen <b>[[OTHER]]</b>
err07 El contenido de una etiqueta TD no encaja en una sola p<EFBFBD>gina
txt01 ERROR n<EFBFBD>
err07 El contenido de una etiqueta TD no encaja en una sola página
txt01 ERROR n°
txt02 Fichero :
txt03 L<EFBFBD>nea :
txt03 Línea :
pdf01 Documento generado el [[date_d]]/[[date_m]]/[[date_y]]
pdf02 Documento generado a las [[date_h]]:[[date_i]]
pdf03 Documento generado el [[date_d]]/[[date_m]]/[[date_y]] a las [[date_h]]:[[date_i]]
pdf04 P<EFBFBD>gina [[current]]/[[nb]]
pdf04 Página [[current]]/[[nb]]
pdf05 Los formularios requieren el uso de Adobe Reader 9
vue01 ENCABEZADO
vue02 PIE DE P<EFBFBD>GINA
vue03 P<EFBFBD>GINA
vue04 Visualizaci<EFBFBD>n
vue02 PIE DE PÁGINA
vue03 PÁGINA
vue04 Visualización

@ -1,18 +1,18 @@
err01 La balise <b>&lt;[[OTHER]]&gt;</b> n'existe pas encore.<br><br>Si vous voulez la rajouter, vous devez cr<EFBFBD>er les m<EFBFBD>thodes <b>o_[[OTHER]]</b> (pour l'ouverture) et <b>c_[[OTHER]]</b> (pour la fermeture) en suivant le mod<EFBFBD>le des balises existantes.<br><br>De plus, si vous cr<EFBFBD>ez ces m<EFBFBD>thodes, n'h<EFBFBD>sitez pas <EFBFBD> en faire profiter tout le monde en m'<EFBFBD>crivant sur webmaster@spipu.net afin qu'elles se retrouvent dans la prochaine version d'HTML2PDF.
err01 La balise <b>&lt;[[OTHER]]&gt;</b> n'existe pas encore.<br><br>Si vous voulez la rajouter, vous devez créer les méthodes <b>o_[[OTHER]]</b> (pour l'ouverture) et <b>c_[[OTHER]]</b> (pour la fermeture) en suivant le modèle des balises existantes.<br><br>De plus, si vous créez ces méthodes, n'hésitez pas à en faire profiter tout le monde en m'écrivant sur webmaster@spipu.net afin qu'elles se retrouvent dans la prochaine version d'HTML2PDF.
err02 Phrase de 1000 lignes => trop long<br><b>Phrase :</b> [[OTHER_0]]<br><b>Largeur case :</b> [[OTHER_1]]<br><b>Longueur text :</b> [[OTHER_2]]<br>
err03 Code HTML non valide, une balise est ferm<EFBFBD>e en trop : <b>&lt;[[OTHER]]&gt;</b>
err04 Code HTML non valide, les balises ne sont pas ferm<EFBFBD>es dans le bon ordre.<br>Etat : <pre>[[OTHER]]</pre>
err05 Code HTML non valide, toutes les balises doivent <EFBFBD>tre ferm<EFBFBD>es.<br>Etat : <pre>[[OTHER]]</pre>
err03 Code HTML non valide, une balise est fermée en trop : <b>&lt;[[OTHER]]&gt;</b>
err04 Code HTML non valide, les balises ne sont pas fermées dans le bon ordre.<br>Etat : <pre>[[OTHER]]</pre>
err05 Code HTML non valide, toutes les balises doivent être fermées.<br>Etat : <pre>[[OTHER]]</pre>
err06 Impossible de charger l'image <b>[[OTHER]]</b>
err07 le contenu d'une balise TD ne rentre pas sur une seule page
txt01 ERREUR n<EFBFBD>
txt01 ERREUR n°
txt02 Fichier :
txt03 Ligne :
pdf01 Document g<EFBFBD>n<EFBFBD>r<EFBFBD> le [[date_d]]/[[date_m]]/[[date_y]]
pdf02 Document g<EFBFBD>n<EFBFBD>r<EFBFBD> <EFBFBD> [[date_h]]:[[date_i]]
pdf03 Document g<EFBFBD>n<EFBFBD>r<EFBFBD> le [[date_d]]/[[date_m]]/[[date_y]] <EFBFBD> [[date_h]]:[[date_i]]
pdf01 Document généré le [[date_d]]/[[date_m]]/[[date_y]]
pdf02 Document généré à [[date_h]]:[[date_i]]
pdf03 Document généré le [[date_d]]/[[date_m]]/[[date_y]] à [[date_h]]:[[date_i]]
pdf04 Page [[current]]/[[nb]]
pdf05 Les formulaires n<EFBFBD>cessitent l'utilisation de Adobe Reader 9
pdf05 Les formulaires nécessitent l'utilisation de Adobe Reader 9
vue01 HEADER
vue02 FOOTER
vue03 PAGE

@ -1,11 +1,11 @@
err01 Il tag <b>&lt;[[OTHER]]&gt;</b> non esiste ancora.<br><br>Se si desidera aggiungere, <EFBFBD> necessario creare metodi <b>o_[[OTHER]]</b> (di apertura) e <b>C_[[OTHER]]</b> (per la chiusura) secondo il modello esistente di tag.<br><br>Inoltre, se si creare questi metodi, non esitate a portare il mondo intero ha scritto su webmaster@spipu.net in modo che alla fine nella prossima versione di HTML2PDF.
err01 Il tag <b>&lt;[[OTHER]]&gt;</b> non esiste ancora.<br><br>Se si desidera aggiungere, è necessario creare metodi <b>o_[[OTHER]]</b> (di apertura) e <b>C_[[OTHER]]</b> (per la chiusura) secondo il modello esistente di tag.<br><br>Inoltre, se si creare questi metodi, non esitate a portare il mondo intero ha scritto su webmaster@spipu.net in modo che alla fine nella prossima versione di HTML2PDF.
err02 Citazione di 1000 linee => troppo lungo<br><b>frase :</b> [[OTHER_0]]<br><b>casella Larghezza :</b> [[OTHER_1]]<br><b>Lunghezza testo :</b> [[OTHER_2]]<br>
err03 HTML non valido, un tag <EFBFBD> chiusa troppo <b>&lt;[[OTHER]]&gt;</ b>
err03 HTML non valido, un tag è chiusa troppo <b>&lt;[[OTHER]]&gt;</ b>
err04 HTML non validi, i tag non sono chiusi nel corretto ordine.<br>Stato :<pre>[[OTHER]]</pre>
err05 HTML non valido, tutte le tag deve essere chiuso.<br>Stato :<pre>[[OTHER]]</pre>
err06 Impossibile caricare l'immagine <b>[[OTHER]]</b>
err07 il contenuto di un tag TD non rientra in una sola pagina
txt01 ERRORE n<EFBFBD>
txt01 ERRORE n°
txt02 File :
txt03 Linea :
pdf01 Documento generato il [[date_d]]/[[date_m]]/[[date_y]]

@ -1,19 +1,19 @@
err01 A tag <b>&lt;[[OTHER]]&gt;</b> ainda n<EFBFBD>o existe.<br><br>Se voc<EFBFBD> quer inser<EFBFBD>-la, deve criar os m<EFBFBD>todos <b>o_[[OTHER]]</b> (para abr<EFBFBD>-la) e <b>c_[[OTHER]]</b> (para fech<EFBFBD>-la) seguindo o modelo das tags existentes.<br><br>Se voc<EFBFBD> criar novos m<EFBFBD>todos, os envie para webmaster@spipu.net para que as pr<EFBFBD>ximas vers<EFBFBD>es de HTML2PDF, e o restante do mundo se beneficie com isso.
err01 A tag <b>&lt;[[OTHER]]&gt;</b> ainda não existe.<br><br>Se você quer inserí-la, deve criar os métodos <b>o_[[OTHER]]</b> (para abrí-la) e <b>c_[[OTHER]]</b> (para fechá-la) seguindo o modelo das tags existentes.<br><br>Se você criar novos métodos, os envie para webmaster@spipu.net para que as próximas versões de HTML2PDF, e o restante do mundo se beneficie com isso.
err02 Frase de 1000 linhas => muito grande<br><b>Frase :</b> [[OTHER_0]]<br><b>Tamanho do quadro :</b> [[OTHER_1]]<br><b>Tamanho do texto :</b> [[OTHER_2]]<br>
err03 C<EFBFBD>digo HTML n<EFBFBD>o v<EFBFBD>lido, uma tag est<EFBFBD> com fechamento sobrando : <b>&lt;[[OTHER]]&gt;</b>
err04 C<EFBFBD>digo HTML n<EFBFBD>o v<EFBFBD>lido, as tags n<EFBFBD>o est<EFBFBD>o fechadas na ordem correta.<br>Estado : <pre>[[OTHER]]</pre>
err05 C<EFBFBD>digo HTML n<EFBFBD>o v<EFBFBD>lido, todas as tags devem ser fechadas.<br>Estado : <pre>[[OTHER]]</pre>
err06 Imposs<EFBFBD>vel carregar imagem <b>[[OTHER]]</b>
err07 O conte<EFBFBD>do de uma tag TD n<EFBFBD>o se encaixa em apenas uma p<EFBFBD>gina
txt01 ERRO n<EFBFBD>
err03 Código HTML não válido, uma tag está com fechamento sobrando : <b>&lt;[[OTHER]]&gt;</b>
err04 Código HTML não válido, as tags não estão fechadas na ordem correta.<br>Estado : <pre>[[OTHER]]</pre>
err05 Código HTML não válido, todas as tags devem ser fechadas.<br>Estado : <pre>[[OTHER]]</pre>
err06 Impossível carregar imagem <b>[[OTHER]]</b>
err07 O conteúdo de uma tag TD não se encaixa em apenas uma página
txt01 ERRO n°
txt02 Arquivo :
txt03 Linha :
pdf01 Documento generado em [[date_d]]/[[date_m]]/[[date_y]]
pdf02 Documento generado <EFBFBD>s [[date_h]]:[[date_i]]
pdf03 Documento generado em [[date_d]]/[[date_m]]/[[date_y]] <EFBFBD>s [[date_h]]:[[date_i]]
pdf04 P<EFBFBD>gina [[current]]/[[nb]]
pdf05 Os formul<EFBFBD>rios exigem a utiliza<EFBFBD><EFBFBD>o do Adobe Reader 9
vue01 CABE<EFBFBD>ALHO
vue02 RODAP<EFBFBD>
vue03 P<EFBFBD>GINA
vue04 Visualiza<EFBFBD><EFBFBD>o
pdf02 Documento generado às [[date_h]]:[[date_i]]
pdf03 Documento generado em [[date_d]]/[[date_m]]/[[date_y]] às [[date_h]]:[[date_i]]
pdf04 Página [[current]]/[[nb]]
pdf05 Os formulários exigem a utilização do Adobe Reader 9
vue01 CABEÇALHO
vue02 RODAPÉ
vue03 PÁGINA
vue04 Visualização

@ -1,19 +1,19 @@
err01 <b>&lt;[[OTHER]]&gt;</b> etiketi bulunamad<EFBFBD>.<br><br>Eklemek isterseniz, <b>o_[[OTHER]]</b> <EFBFBD>eklinde a<EFBFBD><EFBFBD>p, <b>c_[[OTHER]]</b> <EFBFBD>eklinde kapatabilirsiniz.<br><br> Bu <EFBFBD>ekilde etiketler <EFBFBD>retirseniz l<EFBFBD>tfen daha sonraki HTML2PDF versiyonuna eklenmek <EFBFBD>zere bana g<EFBFBD>nderin. ( webmaster@spipu.net ).
err02 <EFBFBD><EFBFBD>erik 1000 sat<EFBFBD>rdan fazla ve gerekenden uzun <br><b>Konu :</b> [[OTHER_0]]<br><b>Geni<EFBFBD>lik :</b> [[OTHER_1]]<br><b>Yaz<EFBFBD> boyutu :</b> [[OTHER_2]]<br>
err03 HTML kodu hatal<EFBFBD>, etiket birden fazla defa kapat<EFBFBD>lm<EFBFBD><EFBFBD>: <b>&lt;[[OTHER]]&gt;</b>
err04 HTML kodu hatal<EFBFBD>, etiketler gereken d<EFBFBD>zen i<EFBFBD>inde kapat<EFBFBD>lmam<EFBFBD><EFBFBD>.<br>Durum : <pre>[[OTHER]]</pre>
err05 HTML kodu hatal<EFBFBD>, b<EFBFBD>t<EFBFBD>n etiketler kapat<EFBFBD>lmal<EFBFBD>.<br>Durum : <pre>[[OTHER]]</pre>
err06 Resim dosyas<EFBFBD> okunam<EFBFBD>yor <b>[[OTHER]]</b>
err07 TD i<EFBFBD>eri<EFBFBD>i bir sayfaya s<EFBFBD><EFBFBD>m<EFBFBD>yor
txt01 HATA n<EFBFBD>
err01 <b>&lt;[[OTHER]]&gt;</b> etiketi bulunamadı.<br><br>Eklemek isterseniz, <b>o_[[OTHER]]</b> şeklinde açıp, <b>c_[[OTHER]]</b> şeklinde kapatabilirsiniz.<br><br> Bu şekilde etiketler üretirseniz lütfen daha sonraki HTML2PDF versiyonuna eklenmek üzere bana gönderin. ( webmaster@spipu.net ).
err02 İçerik 1000 satırdan fazla ve gerekenden uzun <br><b>Konu :</b> [[OTHER_0]]<br><b>Genişlik :</b> [[OTHER_1]]<br><b>Yazı boyutu :</b> [[OTHER_2]]<br>
err03 HTML kodu hatalı, etiket birden fazla defa kapatılmış: <b>&lt;[[OTHER]]&gt;</b>
err04 HTML kodu hatalı, etiketler gereken düzen içinde kapatılmamış.<br>Durum : <pre>[[OTHER]]</pre>
err05 HTML kodu hatalı, bütün etiketler kapatılmalı.<br>Durum : <pre>[[OTHER]]</pre>
err06 Resim dosyası okunamıyor <b>[[OTHER]]</b>
err07 TD içeriği bir sayfaya sığmıyor
txt01 HATA n°
txt02 Dosya :
txt03 Sat<EFBFBD>r :
pdf01 Dok<EFBFBD>man <EFBFBD>retilme tarihi [[date_y]]-[[date_m]]-[[date_d]]
pdf02 Dok<EFBFBD>man <EFBFBD>retilme tarihi [[date_h]]:[[date_i]]
pdf03 Dok<EFBFBD>man <EFBFBD>retilme tarihi [[date_y]]-[[date_m]]-[[date_d]] saati [[date_h]]:[[date_i]]
txt03 Satır :
pdf01 Doküman üretilme tarihi [[date_y]]-[[date_m]]-[[date_d]]
pdf02 Doküman üretilme tarihi [[date_h]]:[[date_i]]
pdf03 Doküman üretilme tarihi [[date_y]]-[[date_m]]-[[date_d]] saati [[date_h]]:[[date_i]]
pdf04 Sayfa [[current]]/[[nb]]
pdf05 Adobe Reader 9 gerektirir
vue01 DOSYA <EFBFBD>ST<EFBFBD>
vue01 DOSYA ÜSTÜ
vue02 DOSYA ALTI
vue03 SAYFA
vue04 G<EFBFBD>r<EFBFBD>n<EFBFBD>
vue04 Görünüm

@ -3,10 +3,10 @@
* Logiciel : HTML2PDF - classe ParsingHTML
*
* Convertisseur HTML => PDF, utilise fpdf de Olivier PLATHEY
* Distribu<EFBFBD> sous la licence LGPL.
* Distribué sous la licence LGPL.
*
* @author Laurent MINGUET <webmaster@spipu.net>
* @version 3.24 - 05/08/2009
* @version 3.26 - 16/11/2009
*/
if (!defined('__CLASS_PARSINGHTML__'))
@ -15,9 +15,9 @@ if (!defined('__CLASS_PARSINGHTML__'))
class parsingHTML
{
var $html = ''; // code HTML <EFBFBD> parser
var $code = array(); // code HTML pars<EFBFBD>
var $num = 0; // num<EFBFBD>ro de table
var $html = ''; // code HTML à parser
var $code = array(); // code HTML parsé
var $num = 0; // numéro de table
var $level = 0; // niveaux de table
/**
@ -34,7 +34,7 @@ if (!defined('__CLASS_PARSINGHTML__'))
}
/**
* D<EFBFBD>finir le code HTML <EFBFBD> parser
* Définir le code HTML à parser
*
* @param string code html
* @return null
@ -53,14 +53,12 @@ if (!defined('__CLASS_PARSINGHTML__'))
function parse()
{
$parents = array();
// r<EFBFBD>cup<EFBFBD>rer le code <EFBFBD> parser
$content = $this->html;
// chercher les balises HTML du code
$tmp = array();
$this->searchCode($content, $tmp);
$this->searchCode($tmp);
// identifier les balises une <EFBFBD> une
// identifier les balises une à une
$pre_in = false;
$pre_br = array(
'name' => 'br',
@ -71,6 +69,7 @@ if (!defined('__CLASS_PARSINGHTML__'))
)
);
$balises_no_closed = array('br', 'hr', 'img', 'input', 'link', 'option', 'col');
$todos = array();
foreach($tmp as $part)
{
@ -80,8 +79,8 @@ if (!defined('__CLASS_PARSINGHTML__'))
// enregistrer l'action correspondante
if (!$pre_in)
{
if (trim($part[1])!=='')
{
// if (trim($part[1])!=='')
// {
// remplacer tous les espaces, tabulations, saufs de ligne multiples par de simples espaces
$part[1] = preg_replace('/([\s]+)/is', ' ', $part[1]);
@ -90,7 +89,7 @@ if (!defined('__CLASS_PARSINGHTML__'))
'close' => false,
'param' => array('txt' => $part[1]),
);
}
// }
}
else
{
@ -117,94 +116,109 @@ if (!defined('__CLASS_PARSINGHTML__'))
$res = $this->analiseCode($part[1]);
if ($res)
{
if (!in_array($res['name'], array('br', 'hr', 'img', 'input', 'link', 'option')))
$res['html_pos'] = $part[2];
if (!in_array($res['name'], $balises_no_closed))
{
if ($res['close'])
{
if (count($parents)<1)
@HTML2PDF::makeError(3, __FILE__, __LINE__, $res['name']);
@HTML2PDF::makeError(3, __FILE__, __LINE__, $res['name'], $this->getHtmlErrorCode($res['html_pos']));
else if ($parents[count($parents)-1]!=$res['name'])
@HTML2PDF::makeError(4, __FILE__, __LINE__, $parents);
@HTML2PDF::makeError(4, __FILE__, __LINE__, $parents, $this->getHtmlErrorCode($res['html_pos']));
else
unset($parents[count($parents)-1]);
}
else
{
$parents[count($parents)] = $res['name'];
if ($res['autoclose'])
{
$todos[] = $res;
$res['params'] = array();
$res['close'] = true;
}
else
$parents[count($parents)] = $res['name'];
}
if ($res['name']=='pre' || $res['name']=='code')
{
if (($res['name']=='pre' || $res['name']=='code') && !$res['autoclose'])
$pre_in = !$res['close'];
}
$todos[] = $res;
}
}
}
// pour chaque action identifi<EFBFBD>e, il faut nettoyer le d<EFBFBD>but et la fin des textes
// pour chaque action identifiée, il faut nettoyer le début et la fin des textes
// en fonction des balises qui l'entourent.
$balises_clean = array('page', 'page_header', 'page_footer', 'form',
'table', 'thead', 'tfoot', 'tr', 'td', 'th', 'br',
'div', 'hr', 'p', 'ul', 'ol', 'li',
'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
'bookmark');
$nb = count($todos);
for($k=0; $k<$nb; $k++)
{
//si c'est un texte
if ($todos[$k]['name']=='write')
{
// et qu'une balise sp<EFBFBD>cifique le pr<EFBFBD>c<EFBFBD>de => on nettoye les espaces du d<EFBFBD>but du texte
if ($k>0 && in_array($todos[$k-1]['name'], array('table', 'tr', 'td', 'th', 'br', 'div', 'hr', 'p', 'ul', 'ol', 'li')))
$todos[$k]['param']['txt'] = preg_replace('/^([\s]*)([^\s])/isU', '$2', $todos[$k]['param']['txt']);
// et qu'une balise spécifique le précède => on nettoye les espaces du début du texte
if ($k>0 && in_array($todos[$k-1]['name'], $balises_clean))
$todos[$k]['param']['txt'] = ltrim($todos[$k]['param']['txt']);
// et qu'une balise spécifique le suit => on nettoye les espaces de la fin du texte
if ($k<count($todos)-1 && in_array($todos[$k+1]['name'], $balises_clean))
$todos[$k]['param']['txt'] = rtrim($todos[$k]['param']['txt']);
// et qu'une balise sp<EFBFBD>cifique le suit => on nettoye les espaces de la fin du texte
if ($k<count($todos)-1 && in_array($todos[$k+1]['name'], array('table', 'tr', 'td', 'th', 'br', 'div', 'hr', 'p', 'ol', 'ul', 'li')))
$todos[$k]['param']['txt'] = preg_replace('/([^\s])([\s]*)$/isU', '$1', $todos[$k]['param']['txt']);
if (!strlen($todos[$k]['param']['txt']))
unset($todos[$k]);
}
}
if (count($parents)) @HTML2PDF::makeError(5, __FILE__, __LINE__, $parents);
// liste des actions sauv<EFBFBD>e
$this->code = $todos;
// liste des actions sauvée
$this->code = array_values($todos);;
}
/**
* parser le code HTML
*
* @param string contenu <EFBFBD> parser.
* @param &array tableau de retour des donn<EFBFBD>es
* @param &array tableau de retour des données
* @return null
*/
function searchCode($content, &$tmp)
function searchCode(&$tmp)
{
// s<EFBFBD>parer les balises du texte
// séparer les balises du texte
$tmp = array();
$reg = '/(<[^>]+>)|([^<]+)+/isU';
// pour chaque <EFBFBD>l<EFBFBD>ment trouv<EFBFBD> :
// pour chaque élément trouvé :
$str = '';
$offset = 0;
while(preg_match($reg, $content, $parse, PREG_OFFSET_CAPTURE, $offset))
while(preg_match($reg, $this->html, $parse, PREG_OFFSET_CAPTURE, $offset))
{
// si une balise a <EFBFBD>t<EFBFBD> d<EFBFBD>tect<EFBFBD>e
// si une balise a été détectée
if ($parse[1][0])
{
// sauvegarde du texte pr<EFBFBD>c<EFBFBD>dent si il existe
// sauvegarde du texte précédent si il existe
if ($str!=='') $tmp[] = array('txt',$str);
// sauvegarde de la balise
$tmp[] = array('code',trim($parse[1][0]));
$tmp[] = array('code',trim($parse[1][0]), $offset);
// initialisation du texte suivant
$str = '';
}
else
{
// ajout du texte <EFBFBD> la fin de celui qui est d<EFBFBD>j<EFBFBD> d<EFBFBD>tect<EFBFBD>
// ajout du texte à la fin de celui qui est déjà détecté
$str.= $parse[2][0];
}
// Update offset to the end of the match
$offset = $parse[0][1] + strlen($parse[0][0]);
unset($parse);
}
// si un texte est pr<EFBFBD>sent <EFBFBD> la fin, on l'enregistre
// si un texte est présent à la fin, on l'enregistre
if ($str!='') $tmp[] = array('txt',$str);
unset($str);
}
@ -212,7 +226,7 @@ if (!defined('__CLASS_PARSINGHTML__'))
/**
* analyse une balise HTML
*
* @param string code HTML <EFBFBD> identifier
* @param string code HTML à identifier
* @return array action correspondante
*/
function analiseCode($code)
@ -221,33 +235,34 @@ if (!defined('__CLASS_PARSINGHTML__'))
$balise = '<([\/]{0,1})([_a-z0-9]+)([\/>\s]+)';
preg_match('/'.$balise.'/isU', $code, $match);
$close = ($match[1]=='/' ? true : false);
$autoclose = preg_match('/\/>$/isU', $code);
$name = strtolower($match[2]);
// param<EFBFBD>tres obligatoires en fonction du nom de la balise
// paramètres obligatoires en fonction du nom de la balise
$param = array();
$param['style'] = '';
if ($name=='img') { $param['alt'] = ''; $param['src'] = ''; }
if ($name=='a') { $param['href'] = ''; }
// lecture des param<EFBFBD>tres du type nom=valeur
// lecture des paramétres du type nom=valeur
$prop = '([a-zA-Z0-9_]+)=([^"\'\s>]+)';
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$param[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// lecture des param<EFBFBD>tres du type nom="valeur"
// lecture des paramétres du type nom="valeur"
$prop = '([a-zA-Z0-9_]+)=["]([^"]*)["]';
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$param[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// lecture des param<EFBFBD>tres du type nom='valeur'
// lecture des paramétres du type nom='valeur'
$prop = "([a-zA-Z0-9_]+)=[']([^']*)[']";
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$param[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// mise en conformit<EFBFBD> en style de chaque param<EFBFBD>tre
// mise en conformité en style de chaque paramètre
$color = "#000000";
$border = null;
foreach($param as $key => $val)
@ -310,10 +325,10 @@ if (!defined('__CLASS_PARSINGHTML__'))
if ($border!==null)
{
if ($border) $param['style'] = 'border: solid '.$border.' '.$color.'; '.$param['style'];
else $param['style'] = 'border: none';
else $param['style'] = 'border: none'.$param['style'];
}
// lecture des styles - d<EFBFBD>composition
// lecture des styles - décomposition
$styles = explode(';', $param['style']);
$param['style'] = array();
foreach($styles as $style)
@ -326,14 +341,14 @@ if (!defined('__CLASS_PARSINGHTML__'))
}
}
// d<EFBFBD>termination du niveau de table pour les ouverture, avec ajout d'un level
// détermination du niveau de table pour les ouverture, avec ajout d'un level
if (in_array($name, array('ul', 'ol', 'table')) && !$close)
{
$this->num++;
$this->level[count($this->level)] = $this->num;
}
// attribution du niveau de table o<EFBFBD> se trouve l'<EFBFBD>l<EFBFBD>ment
// attribution du niveau de table où se trouve l'élément
if (!isset($param['num'])) $param['num'] = $this->level[count($this->level)-1];
// pour les fins de table : suppression d'un level
@ -342,17 +357,17 @@ if (!defined('__CLASS_PARSINGHTML__'))
unset($this->level[count($this->level)-1]);
}
// retour de l'action identifi<EFBFBD>e
return array('name' => $name, 'close' => $close ? 1 : 0, 'param' => $param);
// retour de l'action identifiée
return array('name' => $name, 'close' => $close ? 1 : 0, 'autoclose' => $autoclose, 'param' => $param);
}
// r<EFBFBD>cup<EFBFBD>rer un niveau complet d'HTML entre une ouverture de balise et la fermeture correspondante
// récupérer un niveau complet d'HTML entre une ouverture de balise et la fermeture correspondante
function getLevel($k)
{
// si le code n'existe pas : fin
if (!isset($this->code[$k])) return '';
// quelle balise faudra-t-il d<EFBFBD>tecter
// quelle balise faudra-t-il détecter
$detect = $this->code[$k]['name'];
$level = 0; // niveau de profondeur
@ -378,7 +393,7 @@ if (!defined('__CLASS_PARSINGHTML__'))
// si c'est la balise que l'on cherche
if ($row['name']==$detect)
{
if ($level==0) { $not = true; } // si on est <EFBFBD> la premiere balise : on l'ignore
if ($level==0) { $not = true; } // si on est à la premiere balise : on l'ignore
$level+= ($row['close'] ? -1 : 1); // modification du niveau en cours en fonction de l'ouvertre / fermeture
if ($level==0) { $not = true; $end = true; } // si on est au niveau 0 : on a fini
}
@ -406,7 +421,7 @@ if (!defined('__CLASS_PARSINGHTML__'))
}
}
// on continue tant qu'il y a du code <EFBFBD> analyser...
// on continue tant qu'il y a du code à analyser...
if (isset($this->code[$k+1]))
$k++;
else
@ -416,6 +431,10 @@ if (!defined('__CLASS_PARSINGHTML__'))
// retourne la position finale et le code HTML extrait
return array($k, $code);
}
function getHtmlErrorCode($pos)
{
return substr($this->html, $pos-30, 70);
}
}
}
?>

@ -0,0 +1,47 @@
<?php
/*
* ATTENTION :
* Vous devez télécharger la librairie "QR-code generator >=0.97" (sous licence LGPL)
* a cette adresse : http://prgm.spipu.net/php_qrcode
* et mettre tout son contenu dans ce repertoire (qrcode)
* en remplacant également ce fichier (qrcode.class.php)
*
* WARNING:
* You have to download the librairy "QR-code generator >=0.97" (under LGPL licence)
* at this url : http://prgm.spipu.net/php_qrcode
* and to put all his content in this folder (qrcode)
* and to replace also this file (qrcode.class.php)
*/
if (!defined('__CLASS_QRCODE__'))
{
define('__CLASS_QRCODE__', true);
class QRcode
{
public function __construct($value, $level='L')
{
echo '
<pre>
<b>ATTENTION :</b>
Vous devez télécharger la librairie "QR-code generator >=0.97" (sous licence LGPL)
a cette adresse : <a href="http://prgm.spipu.net/php_qrcode" target="_blank">http://prgm.spipu.net/php_qrcode</a>
et mettre tout son contenu dans ce repertoire : '.dirname(__FILE__).'
en remplacant également ce fichier : '.basename(__FILE__).'
<b>WARNING:</b>
You have to download the librairy "QR-code generator >=0.97" (under LGPL licence)
at this url : <a href="http://prgm.spipu.net/php_qrcode" target="_blank">http://prgm.spipu.net/php_qrcode</a>
and to put all his contents in this folder '.dirname(__FILE__).'
and to replace also this file : '.basename(__FILE__).'
</pre>';
exit;
}
public function getQrSize() { return 0; }
public function disableBorder() { }
public function displayFPDF(&$fpdf, $x, $y, $s, $background=array(255,255,255), $color=array(0,0,0)) { return true; }
public function displayHTML() { return true; }
public function displayPNG($s=4, $background=array(255,255,255), $color=array(0,0,0), $filename = null, $quality = 0) { return true; }
}
}

@ -3,10 +3,10 @@
* Logiciel : HTML2PDF - classe styleHTML
*
* Convertisseur HTML => PDF, utilise fpdf de Olivier PLATHEY
* Distribu<EFBFBD> sous la licence LGPL.
* Distribué sous la licence LGPL.
*
* @author Laurent MINGUET <webmaster@spipu.net>
* @version 3.24 - 05/08/2009
* @version 3.26 - 16/11/2009
*/
if (!defined('__CLASS_STYLEHTML__'))
@ -19,14 +19,15 @@ if (!defined('__CLASS_STYLEHTML__'))
var $css_keys = array(); // tableau des clefs CSS, pour l'ordre d'execution
var $value = array(); // valeurs actuelles
var $table = array(); // tableau d'empilement pour historisation des niveaux
var $pdf = null; // r<EFBFBD>f<EFBFBD>rence au PDF parent
var $pdf = null; // référence au PDF parent
var $htmlColor = array(); // liste des couleurs HTML
var $onlyLeft = false; // indique si on est dans un sous HTML et qu'on bloque <EFBFBD> gauche
var $onlyLeft = false; // indique si on est dans un sous HTML et qu'on bloque à gauche
var $defaultFont = null; // fonte par défaut si la fonte demandée n'existe pas
/**
* Constructeur
*
* @param &pdf r<EFBFBD>f<EFBFBD>rence <EFBFBD> l'objet HTML2PDF parent
* @param &pdf référence à l'objet HTML2PDF parent
* @return null
*/
function styleHTML(&$pdf)
@ -35,6 +36,20 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->pdf = &$pdf;
}
/**
* définit la fonte par défaut si aucun fonte n'est spécifiée, ou si la fonte demandée n'existe pas
*
* @param string nom de la fonte par defaut. si null : Arial pour fonte non spécifiée, et erreur pour fonte non existante
* @return string nom de l'ancienne fonte par defaut
*/
function setDefaultFont($default = null)
{
$old = $this->defaultFont;
$this->defaultFont = $default;
if ($default) $this->value['font-family'] = $default;
return $old;
}
/**
* Initialisation du style
*
@ -200,7 +215,7 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->value = array();
$this->initStyle();
// initialisation des styles sans h<EFBFBD>ritages
// initialisation des styles sans héritages
$this->resetStyle();
}
@ -211,14 +226,15 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->value['id_id'] = null; // id
$this->value['id_class'] = null; // class
$this->value['id_lst'] = array('*'); // lst de dependance
$this->value['mini-size'] = 1.; // rapport de taille sp<EFBFBD>cifique aux sup, sub
$this->value['mini-decal'] = 0; // rapport de position sp<EFBFBD>cifique aux sup, sub
$this->value['mini-size'] = 1.; // rapport de taille spécifique aux sup, sub
$this->value['mini-decal'] = 0; // rapport de position spécifique aux sup, sub
$this->value['font-family'] = 'Arial';
$this->value['font-bold'] = false;
$this->value['font-italic'] = false;
$this->value['font-underline'] = false;
$this->value['font-overline'] = false;
$this->value['font-linethrough'] = false;
$this->value['text-transform'] = 'none';
$this->value['font-size'] = $this->ConvertToMM('10pt');
$this->value['text-indent'] = 0;
$this->value['text-align'] = 'left';
@ -236,6 +252,8 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->value['left'] = null;
$this->value['float'] = null;
$this->value['display'] = null;
$this->value['rotate'] = null;
$this->value['overflow'] = 'visible';
$this->value['color'] = array(0, 0, 0);
$this->value['background'] = array('color' => null, 'image' => null, 'position' => null, 'repeat' => null);
@ -252,7 +270,7 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* Initialisation des styles sans h<EFBFBD>ritages
* Initialisation des styles sans héritages
*
* @param string balise HTML
* @return null
@ -273,6 +291,8 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->value['left'] = null;
$this->value['float'] = null;
$this->value['display'] = null;
$this->value['rotate'] = null;
$this->value['overflow'] = 'visible';
$this->value['background'] = array('color' => null, 'image' => null, 'position' => null, 'repeat' => null);
$this->value['border'] = array(
't' => $this->readBorder('none'),
@ -283,6 +303,7 @@ if (!defined('__CLASS_STYLEHTML__'))
'collapse' => $collapse,
);
if (!in_array($balise, array('h1', 'h2', 'h3', 'h4', 'h5', 'h6')))
$this->value['margin'] = array(
't' => 0,
'r' => 0,
@ -343,11 +364,26 @@ if (!defined('__CLASS_STYLEHTML__'))
*/
function FontSet()
{
$family = strtolower($this->value['font-family']);
$b = ($this->value['font-bold'] ? 'B' : '');
$i = ($this->value['font-italic'] ? 'I' : '');
$u = ($this->value['font-underline'] ? 'U' : '');
// taille en mm, <EFBFBD> ramener en pt
if ($this->defaultFont)
{
$style = $b.$i;
if($family=='arial')
$family='helvetica';
elseif($family=='symbol' || $family=='zapfdingbats')
$style='';
$fontkey = $family.$style;
if (!isset($this->pdf->fonts[$fontkey]))
if (!isset($this->pdf->CoreFonts[$fontkey]))
$family = $this->defaultFont;
}
// taille en mm, à ramener en pt
$size = $this->value['font-size'];
$size = 72 * $size / 25.4;
@ -355,12 +391,12 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->pdf->setLinethrough($this->value['font-linethrough']);
// application de la fonte
$this->pdf->SetFont($this->value['font-family'], $b.$i.$u, $this->value['mini-size']*$size);
$this->pdf->SetTextColor($this->value['color'][0],$this->value['color'][1], $this->value['color'][2]);
$this->pdf->SetFont($family, $b.$i.$u, $this->value['mini-size']*$size);
$this->pdf->setMyTextColor($this->value['color']);
if ($this->value['background']['color'])
$this->pdf->SetFillColor($this->value['background']['color'][0],$this->value['background']['color'][1], $this->value['background']['color'][2]);
$this->pdf->setMyFillColor($this->value['background']['color']);
else
$this->pdf->SetFillColor(255);
$this->pdf->setMyFillColor(1.);
}
/**
@ -468,7 +504,7 @@ if (!defined('__CLASS_STYLEHTML__'))
if ($v) $class[] = $v;
}
// identification de la balise et des styles direct qui pourraient lui <EFBFBD>tre appliqu<EFBFBD>s
// identification de la balise et des styles direct qui pourraient lui être appliqués
$this->value['id_balise'] = $balise;
$this->value['id_name'] = $name;
$this->value['id_id'] = $id;
@ -489,17 +525,17 @@ if (!defined('__CLASS_STYLEHTML__'))
{
$this->value['id_lst'][] = '*#'.$id;
$this->value['id_lst'][] = '#'.$id;
$this->value['id_lst'][] = $id.'#'.$id;
$this->value['id_lst'][] = $balise.'#'.$id;
}
// style CSS
$styles = $this->getFromCSS();
// on ajoute le style propre <EFBFBD> la balise
// on ajoute le style propre à la balise
$styles = array_merge($styles, $param['style']);
if (isset($param['allwidth']) && !isset($styles['width'])) $styles['width'] = '100%';
// mise <EFBFBD> zero des styles non h<EFBFBD>rit<EFBFBD>s
// mise à zero des styles non hérités
$this->resetStyle($balise);
// interpreration des nouvelles valeurs
@ -536,6 +572,11 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->value['text-indent'] = $this->ConvertToMM($val);
break;
case 'text-transform':
if (!in_array($val, array('none', 'capitalize', 'uppercase', 'lowercase'))) $val = 'none';
$this->value['text-transform'] = $val;
break;
case 'font-size':
$val = $this->ConvertToMM($val, $this->value['font-size']);
if ($val) $this->value['font-size'] = $val;
@ -543,7 +584,7 @@ if (!defined('__CLASS_STYLEHTML__'))
case 'color':
$res = null;
$this->value['color'] = $this->ConvertToRVB($val, $res);
$this->value['color'] = $this->ConvertToColor($val, $res);
if ($balise=='hr')
{
@ -577,6 +618,17 @@ if (!defined('__CLASS_STYLEHTML__'))
$this->value['line-height'] = $val;
break;
case 'rotate':
if (!in_array($val, array(0, -90, 90, 180, 270, -180, -270))) $val = null;
if ($val<0) $val+= 360;
$this->value['rotate'] = $val;
break;
case 'overflow':
if (!in_array($val, array('visible', 'hidden'))) $val = 'visible';
$this->value['overflow'] = $val;
break;
case 'padding':
$val = explode(' ', $val);
foreach($val as $k => $v)
@ -714,7 +766,7 @@ if (!defined('__CLASS_STYLEHTML__'))
foreach($val as $val_k => $val_v)
{
$val[$val_k] = $this->ConvertToRVB($val_v, $res);
$val[$val_k] = $this->ConvertToColor($val_v, $res);
if (!$res) $val[$val_k] = null;
}
$this->duplicateBorder($val);
@ -728,25 +780,25 @@ if (!defined('__CLASS_STYLEHTML__'))
case 'border-top-color':
$res = false;
$val = $this->ConvertToRVB($val, $res);
$val = $this->ConvertToColor($val, $res);
if ($res) $this->value['border']['t']['color'] = $val;
break;
case 'border-right-color':
$res = false;
$val = $this->ConvertToRVB($val, $res);
$val = $this->ConvertToColor($val, $res);
if ($res) $this->value['border']['r']['color'] = $val;
break;
case 'border-bottom-color':
$res = false;
$val = $this->ConvertToRVB($val, $res);
$val = $this->ConvertToColor($val, $res);
if ($res) $this->value['border']['b']['color'] = $val;
break;
case 'border-left-color':
$res = false;
$val = $this->ConvertToRVB($val, $res);
$val = $this->ConvertToColor($val, $res);
if ($res) $this->value['border']['l']['color'] = $val;
break;
@ -887,7 +939,7 @@ if (!defined('__CLASS_STYLEHTML__'))
if ($this->onlyLeft) $this->value['text-align'] = 'left';
// correction de la largeur pour correspondre au mod<EFBFBD>le de boite quick
// correction de la largeur pour correspondre au modèle de boite quick
if ($no_width && in_array($balise, array('div')) && $this->value['position']!='absolute')
{
$this->value['width'] = $this->getLastWidth();
@ -937,7 +989,7 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* R<EFBFBD>cup<EFBFBD>ration de la hauteur de ligne courante
* Récupération de la hauteur de ligne courante
*
* @return float hauteur en mm
*/
@ -949,7 +1001,7 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* R<EFBFBD>cup<EFBFBD>ration de la largeur de l'objet parent
* Récupération de la largeur de l'objet parent
*
* @return float largeur
*/
@ -972,7 +1024,7 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* R<EFBFBD>cup<EFBFBD>ration de la hauteur de l'objet parent
* Récupération de la hauteur de l'objet parent
*
* @return float hauteur
*/
@ -1001,6 +1053,14 @@ if (!defined('__CLASS_STYLEHTML__'))
return null;
}
function getParentBalise()
{
$nb = count($this->table);
if ($nb>0)
return $this->table[$nb-1]['id_balise'];
return null;
}
function getLastAbsoluteX()
{
for($k=count($this->table); $k>0; $k--)
@ -1020,29 +1080,29 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* R<EFBFBD>cup<EFBFBD>ration des propri<EFBFBD>t<EFBFBD>s CSS de la balise en cours
* Récupération des propriétés CSS de la balise en cours
*
* @return array() tableau des propri<EFBFBD>t<EFBFBD>s CSS
* @return array() tableau des propriétés CSS
*/
function getFromCSS()
{
$styles = array(); // style <EFBFBD> appliquer
$getit = array(); // styles <EFBFBD> r<EFBFBD>cuperer
$styles = array(); // style à appliquer
$getit = array(); // styles à récuperer
// identification des styles direct, et ceux des parents
$lst = array();
$lst[] = $this->value['id_lst'];
for($i=count($this->table)-1; $i>=0; $i--) $lst[] = $this->table[$i]['id_lst'];
// identification des styles <EFBFBD> r<EFBFBD>cuperer
// identification des styles à récuperer
foreach($this->css_keys as $key => $num)
if ($this->getReccursiveStyle($key, $lst))
$getit[$key] = $num;
// si des styles sont <EFBFBD> recuperer
// si des styles sont à recuperer
if (count($getit))
{
// on les r<EFBFBD>cup<EFBFBD>re, mais dans l'odre de d<EFBFBD>finition, afin de garder les priorit<EFBFBD>s
// on les récupère, mais dans l'odre de définition, afin de garder les priorités
asort($getit);
foreach($getit as $key => $val) $styles = array_merge($styles, $this->css[$key]);
}
@ -1051,19 +1111,19 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* Identification des styles <EFBFBD> r<EFBFBD>cuperer, en fonction de la balise et de ses parents
* Identification des styles à récuperer, en fonction de la balise et de ses parents
*
* @param string clef CSS <EFBFBD> analyser
* @param string clef CSS à analyser
* @param array() tableau des styles direct, et ceux des parents
* @param string prochaine etape
* @return boolean clef autoris<EFBFBD>e ou non
* @return boolean clef autorisée ou non
*/
function getReccursiveStyle($key, $lst, $next = null)
{
// si propchaine etape, on construit les valeurs
if ($next!==null)
{
if ($next) $key = trim(substr($key, 0, -strlen($next))); // on el<EFBFBD>ve cette etape
if ($next) $key = trim(substr($key, 0, -strlen($next))); // on elève cette etape
unset($lst[0]);
if (!count($lst)) return false; // pas d'etape possible
$lst = array_values($lst);
@ -1073,27 +1133,27 @@ if (!defined('__CLASS_STYLEHTML__'))
foreach($lst[0] as $nom)
{
if ($key==$nom) return true; // si la clef conrrespond => ok
if (substr($key, -strlen(' '.$nom))==' '.$nom && $this->getReccursiveStyle($key, $lst, $nom)) return true; // si la clef est la fin, on analyse ce qui pr<EFBFBD>c<EFBFBD>de
if (substr($key, -strlen(' '.$nom))==' '.$nom && $this->getReccursiveStyle($key, $lst, $nom)) return true; // si la clef est la fin, on analyse ce qui précède
}
// si on est pas <EFBFBD> la premiere etape, on doit analyse toutes les sous etapes
// si on est pas à la premiere etape, on doit analyse toutes les sous etapes
if ($next!==null && $this->getReccursiveStyle($key, $lst, '')) return true;
// aucun style trouv<EFBFBD>
// aucun style trouvé
return false;
}
/**
* Analyse d'une propri<EFBFBD>t<EFBFBD> Border
* Analyse d'une propriété Border
*
* @param string propri<EFBFBD>t<EFBFBD> border
* @return array() propri<EFBFBD>t<EFBFBD> d<EFBFBD>cod<EFBFBD>e
* @param string propriété border
* @return array() propriété décodée
*/
function readBorder($val)
{
$none = array('type' => 'none', 'width' => 0, 'color' => array(0, 0, 0));
// valeurs par d<EFBFBD>fault
// valeurs par défault
$type = 'solid';
$width = $this->ConvertToMM('1pt');
$color = array(0, 0, 0);
@ -1117,7 +1177,7 @@ if (!defined('__CLASS_STYLEHTML__'))
else if (in_array($key, array('solid', 'dotted', 'dashed'))) $type = $key;
else
{
$tmp = $this->ConvertToRVB($key, $res);
$tmp = $this->ConvertToColor($key, $res);
if ($res) $color = $tmp;
}
}
@ -1163,7 +1223,7 @@ if (!defined('__CLASS_STYLEHTML__'))
foreach($lst as $val)
{
$ok = false;
$color = $this->ConvertToRVB($val, $ok);
$color = $this->ConvertToColor($val, $ok);
if ($ok)
{
@ -1197,7 +1257,7 @@ if (!defined('__CLASS_STYLEHTML__'))
{
$res = null;
if ($val=='transparent') return null;
else return $this->ConvertToRVB($val, $res);
else return $this->ConvertToColor($val, $res);
}
function ConvertBackgroundImage($val)
@ -1266,9 +1326,9 @@ if (!defined('__CLASS_STYLEHTML__'))
/**
* Convertir une longueur en mm
*
* @param string longueur, avec unit<EFBFBD>, <EFBFBD> convertir
* @param string longueur, avec unité, à convertir
* @param float longueur du parent
* @return float longueur exprim<EFBFBD>e en mm
* @return float longueur exprimée en mm
*/
function ConvertToMM($val, $old=0.)
{
@ -1285,12 +1345,12 @@ if (!defined('__CLASS_STYLEHTML__'))
}
/**
* D<EFBFBD>composition d'un code couleur HTML
* Décomposition d'un code couleur HTML
*
* @param string couleur au format CSS
* @return array(r, v, b) couleur exprim<EFBFBD> par ses comporantes R, V, B, de 0 <EFBFBD> 255.
* @return array(r, v, b) couleur exprimé par ses comporantes R, V, B, de 0 à 255.
*/
function ConvertToRVB($val, &$res)
function ConvertToColor($val, &$res)
{
$val = trim($val);
$res = true;
@ -1298,32 +1358,53 @@ if (!defined('__CLASS_STYLEHTML__'))
if (strtolower($val)=='transparent') return array(null, null, null);
if (isset($this->htmlColor[strtolower($val)])) $val = $this->htmlColor[strtolower($val)];
if (preg_match('/rgb\([\s]*([0-9%]+)[\s]*,[\s]*([0-9%]+)[\s]*,[\s]*([0-9%]+)[\s]*\)/isU', $val, $match))
if (preg_match('/^#[0-9A-Fa-f]{6}$/isU', $val))
{
$r = floatVal(hexdec(substr($val, 1, 2)))/255.;
$v = floatVal(hexdec(substr($val, 3, 2)))/255.;
$b = floatVal(hexdec(substr($val, 5, 2)))/255.;
$col = array($r, $v, $b);
}
elseif (preg_match('/^#[0-9A-F]{3}$/isU', $val))
{
$r =$match[1]; if (substr($r, -1)=='%') $r = floor(255*substr($r, 0, -1)/100);
$v =$match[2]; if (substr($v, -1)=='%') $v = floor(255*substr($v, 0, -1)/100);
$b =$match[3]; if (substr($b, -1)=='%') $b = floor(255*substr($b, 0, -1)/100);
$r = floatVal(hexdec(substr($val, 1, 1).substr($val, 1, 1)))/255.;
$v = floatVal(hexdec(substr($val, 2, 1).substr($val, 2, 1)))/255.;
$b = floatVal(hexdec(substr($val, 3, 1).substr($val, 3, 1)))/255.;
$col = array($r, $v, $b);
}
else if (strlen($val)==7 && substr($val, 0, 1)=='#')
elseif (preg_match('/rgb\([\s]*([0-9%\.]+)[\s]*,[\s]*([0-9%\.]+)[\s]*,[\s]*([0-9%\.]+)[\s]*\)/isU', $val, $match))
{
$r = hexdec(substr($val, 1, 2));
$v = hexdec(substr($val, 3, 2));
$b = hexdec(substr($val, 5, 2));
$r = $this->ConvertSubColor($match[1]);
$v = $this->ConvertSubColor($match[2]);
$b = $this->ConvertSubColor($match[3]);
$col = array($r, $v, $b);
}
else if (strlen($val)==4 && substr($val, 0, 1)=='#')
elseif (preg_match('/cmyk\([\s]*([0-9%\.]+)[\s]*,[\s]*([0-9%\.]+)[\s]*,[\s]*([0-9%\.]+)[\s]*,[\s]*([0-9%\.]+)[\s]*\)/isU', $val, $match))
{
$r = hexdec(substr($val, 1, 1).substr($val, 1, 1));
$v = hexdec(substr($val, 2, 1).substr($val, 2, 1));
$b = hexdec(substr($val, 3, 1).substr($val, 3, 1));
$c = $this->ConvertSubColor($match[1]);
$m = $this->ConvertSubColor($match[2]);
$y = $this->ConvertSubColor($match[3]);
$k = $this->ConvertSubColor($match[4]);
$col = array($c, $m, $y, $k);
}
else
{
$r=0;
$v=0;
$b=0;
$col = array(0., 0., 0.);
$res = false;
}
return array(floor($r), floor($v), floor($b));
return $col;
}
function ConvertSubColor($c)
{
if (substr($c, -1)=='%') $c = floatVal(substr($c, 0, -1))/100.;
else
{
$c = floatVal($c);
if ($c>1) $c = $c/255.;
}
return $c;
}
/**
@ -1337,7 +1418,7 @@ if (!defined('__CLASS_STYLEHTML__'))
// on remplace tous les espaces, tab, \r, \n, par des espaces uniques
$code = preg_replace('/[\s]+/', ' ', $code);
// on enl<EFBFBD>ve les commentaires
// on enlève les commentaires
$code = preg_replace('/\/\*.*?\*\//s', '', $code);
// on analyse chaque style
@ -1347,7 +1428,7 @@ if (!defined('__CLASS_STYLEHTML__'))
// noms
$noms = strtolower(trim($match[1][$k]));
// style, s<EFBFBD>par<EFBFBD> par des; => on remplie le tableau correspondant
// style, séparé par des; => on remplie le tableau correspondant
$styles = trim($match[2][$k]);
$styles = explode(';', $styles);
$stl = array();
@ -1361,12 +1442,12 @@ if (!defined('__CLASS_STYLEHTML__'))
}
}
// d<EFBFBD>composition des noms par les ,
// décomposition des noms par les ,
$noms = explode(',', $noms);
foreach($noms as $nom)
{
$nom = trim($nom);
// Si il a une fonction sp<EFBFBD>cifique, comme :hover => on zap
// Si il a une fonction spécifique, comme :hover => on zap
if (strpos($nom, ':')!==false) continue;
if (!isset($this->css[$nom]))
$this->css[$nom] = $stl;
@ -1398,19 +1479,19 @@ if (!defined('__CLASS_STYLEHTML__'))
foreach($match[1] as $code)
{
$tmp = array();
// lecture des param<EFBFBD>tres du type nom=valeur
// lecture des paramétres du type nom=valeur
$prop = '([a-zA-Z0-9_]+)=([^"\'\s>]+)';
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$tmp[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// lecture des param<EFBFBD>tres du type nom="valeur"
// lecture des paramétres du type nom="valeur"
$prop = '([a-zA-Z0-9_]+)=["]([^"]*)["]';
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
$tmp[trim(strtolower($match[1][$k]))] = trim($match[2][$k]);
// lecture des param<EFBFBD>tres du type nom='valeur'
// lecture des paramétres du type nom='valeur'
$prop = "([a-zA-Z0-9_]+)=[']([^']*)[']";
preg_match_all('/'.$prop.'/is', $code, $match);
for($k=0; $k<count($match[0]); $k++)
@ -1453,4 +1534,3 @@ if (!defined('__CLASS_STYLEHTML__'))
}
}
}
?>

@ -1,10 +1,11 @@
--------------------------------------------------------------------------
September 6, 2008 Version 1.70
March 24, 2009 Version 1.71
m i m e T e X R e a d m e F i l e
(including pre-compiled Linux binary mimetex.cgi -- see NOTE below)
Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved.
Copyright(c) 2002-2009, John Forkosh Associates, Inc. All rights reserved.
--------------------------------------------------------------------------
by: John Forkosh
@ -12,10 +13,20 @@
This file is part of mimeTeX, which is free software.
You may redistribute and/or modify it under the terms
of the GNU General Public License, version 3 or later,
of the GNU General Public License, version 2 or later,
as published by the Free Software Foundation. See
http://www.gnu.org/licenses/gpl.html
-------------------------------------------------------------
NOTE for Linux users...
-------------------------------------------------------------
This zip file contains pre-compiled binary image mimetex.cgi,
compiled under Debian GNU/Linux running kernel 2.4.32, with gcc
3.3.5. It also contains all mimetex source files. The compile
command was
gcc -static -DAA mimetex.c gifsave.c -lm -o mimetex.cgi
-------------------------------------------------------------
MimeTeX is discussed and illustrated online at
its homepage
http://www.forkosh.com/mimetex.html
@ -91,7 +102,7 @@ III. COMPILATION AND INSTALLATION
Your working directory should now contain
mimetex.zip your gnu zipped mimeTeX distribution containing...
README this file (see mimetex.html for demo/tutorial)
COPYING GPL license, under which you may use mimeTeX
LICENSE GPL license, under which you may use mimeTeX
mimetex.c mimeTeX source program and all required functions
mimetex.h header file for mimetex.c (and for gfuntype.c)
gfuntype.c parses output from gftype -i and writes bitmap data
@ -176,11 +187,7 @@ III. COMPILATION AND INSTALLATION
IV. REVISION HISTORY
------------------------------------------------------------------------
A more detailed account of mimeTeX's revision history
is maintained at http://www.forkosh.com/mimetexchangelog.html
---
09/06/08 J.Forkosh version 1.70 released.
11/30/04 J.Forkosh version 1.60 released
11/30/04 J.Forkosh version 1.60 (beta) released
10/02/04 J.Forkosh version 1.50 released on CTAN with various new
features and fixes, and updated documentation.
07/18/04 J.Forkosh version 1.40 re-released on CTAN with minor
@ -212,5 +219,9 @@ V. CONCLUDING REMARKS
I hope you find mimeTeX useful. If so, a contribution to your
country's TeX Users Group, or to the GNU project, is suggested,
especially if you're a company that's currently profitable.
If you also like mimeTeX's source, I'm an independent contractor
incorporated in the US as John Forkosh Associates, Inc. A resume
is at www.forkosh.com or email john@forkosh.com
========================= END-OF-FILE README ===========================

Binary file not shown.

Binary file not shown.

@ -219,9 +219,6 @@ CREATE TABLE course_field (
PRIMARY KEY(id)
);
INSERT INTO course_field (field_type, field_variable, field_display_text, field_default_value, field_visible, field_changeable) values (10, 'special_course','SpecialCourse', 'Yes', 1 , 1);
--
-- Table structure for table course_field_values
--
@ -647,7 +644,7 @@ VALUES
('service_ppt2lp', 'ftp_password', 'textfield', NULL, NULL, 'FtpPassword', NULL, NULL, NULL, 0),
('service_ppt2lp', 'path_to_lzx', 'textfield', NULL, NULL, '', NULL, NULL, NULL, 0),
('service_ppt2lp', 'size', 'radio', NULL, '720x540', '', NULL, NULL, NULL, 0),
('wcag_anysurfer_public_pages', NULL, 'radio','Platform','false','PublicPagesComplyToWAITitle','PublicPagesComplyToWAIComment', NULL, NULL, 0),
('wcag_anysurfer_public_pages', NULL, 'radio','Editor','false','PublicPagesComplyToWAITitle','PublicPagesComplyToWAIComment', NULL, NULL, 0),
('stylesheets', NULL, 'textfield','stylesheets','dokeos_blue','',NULL, NULL, NULL, 1),
('upload_extensions_list_type', NULL, 'radio', 'Security', 'blacklist', 'UploadExtensionsListType', 'UploadExtensionsListTypeComment', NULL, NULL, 0),
('upload_extensions_blacklist', NULL, 'textfield', 'Security', '', 'UploadExtensionsBlacklist', 'UploadExtensionsBlacklistComment', NULL, NULL, 0),
@ -669,7 +666,6 @@ VALUES
('show_tabs', 'platform_administration', 'checkbox', 'Platform', 'true', 'ShowTabsTitle','ShowTabsComment',NULL,'TabsPlatformAdministration', 1),
('show_tabs', 'my_agenda', 'checkbox', 'Platform', 'true', 'ShowTabsTitle','ShowTabsComment',NULL,'TabsMyAgenda', 1),
('show_tabs', 'my_profile', 'checkbox', 'Platform', 'true', 'ShowTabsTitle','ShowTabsComment',NULL,'TabsMyProfile', 1),
('show_tabs', 'social', 'checkbox', 'Platform', 'true', 'ShowTabsTitle','ShowTabsComment',NULL,'TabsSocial', 0),
('default_forum_view', NULL, 'radio', 'Course', 'flat', 'DefaultForumViewTitle','DefaultForumViewComment',NULL,NULL, 0),
('platform_charset',NULL,'textfield','Platform','iso-8859-15','PlatformCharsetTitle','PlatformCharsetComment','platform',NULL, 0),
('noreply_email_address', '', 'textfield', 'Platform', '', 'NoReplyEmailAddress', 'NoReplyEmailAddressComment', NULL, NULL, 0),
@ -720,7 +716,7 @@ VALUES
('course_create_active_tools','survey','checkbox','Tools','true','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'Survey', 0),
('course_create_active_tools','glossary','checkbox','Tools','true','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'Glossary', 0),
('course_create_active_tools','notebook','checkbox','Tools','true','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'Notebook', 0),
('advanced_filemanager',NULL,'radio','Platform','false','AdvancedFileManagerTitle','AdvancedFileManagerComment',NULL,NULL, 0),
('advanced_filemanager',NULL,'radio','Editor','false','AdvancedFileManagerTitle','AdvancedFileManagerComment',NULL,NULL, 0),
('allow_reservation', NULL, 'radio', 'Tools', 'false', 'AllowReservationTitle', 'AllowReservationComment', NULL, NULL, 0),
('profile','apikeys','checkbox','User','false','ProfileChangesTitle','ProfileChangesComment',NULL,'ApiKeys', 0),
('allow_message_tool', NULL, 'radio', 'Tools', 'false', 'AllowMessageToolTitle', 'AllowMessageToolComment', NULL, NULL,0),
@ -739,7 +735,14 @@ VALUES
('show_glossary_in_extra_tools', NULL, 'radio', 'Course', 'false', 'ShowGlossaryInExtraToolsTitle', 'ShowGlossaryInExtraToolsComment', NULL, NULL,1),
('dokeos_database_version', NULL, 'textfield', NULL,'1.8.6.2.9070','DokeosDatabaseVersion','',NULL,NULL,0),
('send_email_to_admin_when_create_course',NULL,'radio','Platform','false','SendEmailToAdminTitle','SendEmailToAdminComment',NULL,NULL, 1),
('go_to_course_after_login',NULL,'radio','Course','false','GoToCourseAfterLoginTitle','GoToCourseAfterLoginComment',NULL,NULL, 0);
('go_to_course_after_login',NULL,'radio','Course','false','GoToCourseAfterLoginTitle','GoToCourseAfterLoginComment',NULL,NULL, 0),
('math_mimetex',NULL,'radio','Editor','false','MathMimetexTitle','MathMimetexComment',NULL,NULL, 0),
('math_asciimathML',NULL,'radio','Editor','false','MathASCIImathMLTitle','MathASCIImathMLComment',NULL,NULL, 0),
('youtube_for_students',NULL,'radio','Editor','true','YoutubeForStudentsTitle','YoutubeForStudentsComment',NULL,NULL, 0),
('block_copy_paste_for_students',NULL,'radio','Editor','false','BlockCopyPasteForStudentsTitle','BlockCopyPasteForStudentsComment',NULL,NULL, 0),
('more_buttons_maximized_mode',NULL,'radio','Editor','false','MoreButtonsForMaximizedModeTitle','MoreButtonsForMaximizedModeComment',NULL,NULL, 0),
('students_download_folders',NULL,'radio','Tools','true','AllowStudentsDownloadFoldersTitle','AllowStudentsDownloadFoldersComment',NULL,NULL, 0);
UNLOCK TABLES;
/*!40000 ALTER TABLE settings_current ENABLE KEYS */;
@ -928,7 +931,19 @@ VALUES
('send_email_to_admin_when_create_course','true','Yes'),
('send_email_to_admin_when_create_course','false','No'),
('go_to_course_after_login','true','Yes'),
('go_to_course_after_login','false','No');
('go_to_course_after_login','false','No'),
('math_mimetex','true','Yes'),
('math_mimetex','false','No'),
('math_asciimathML','true','Yes'),
('math_asciimathML','false','No'),
('youtube_for_students','true','Yes'),
('youtube_for_students','false','No'),
('block_copy_paste_for_students','true','Yes'),
('block_copy_paste_for_students','false','No'),
('more_buttons_maximized_mode','true','Yes'),
('more_buttons_maximized_mode','false','No'),
('students_download_folders','true','Yes'),
('students_download_folders','false','No');
UNLOCK TABLES;
@ -2277,6 +2292,7 @@ CREATE TABLE session_category (
-- Table structure for table user tag
--
CREATE TABLE tag (
id int NOT NULL auto_increment,
tag varchar(255) NOT NULL,
@ -2336,8 +2352,9 @@ CREATE TABLE IF NOT EXISTS message_attachment (
message_id int NOT NULL,
filename varchar(255) NOT NULL,
PRIMARY KEY (id)
);
)
INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (1, 'rssfeeds','RSS',0,0);
INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (10,'tags','tags',0,0);
INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (10, 'tags','tags',0,0);
INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (9, 'rssfeeds','RSS',0,0);

@ -979,6 +979,7 @@ $SoberBrown = "Marr
$SteelGrey = "Gris aceru";
$TastyOlive = "Sabor oliva";
$AddNews = "Criar anunciu";
$ExportCourses = "Esportar cursos";
$SearchDatabaseOpeningError = "Nun pudo abrise la base de datos del motor d\'indexáu, preba a amestar un recursu nuevu (exerciciu, enllaz, lleición, etc) el cual será indexáu al guetador";
$SearchDatabaseVersionError = "La base de datos ta nun formatu nun sofitáu";
$SearchDatabaseModifiedError = "La base de datos foi camudada";
@ -1096,4 +1097,8 @@ $ShowGlossaryInExtraToolsComment = "Dende equ
$FieldTypeTag = "Etiqueta d\'usuariu";
$SendEmailToAdminTitle = "Avisu por corréu electrónicu, de la criación d\'un cursu nuevu";
$SendEmailToAdminComment = "Unviar un corréu electrónicu al alministrador de la plataforma, cada vegada qu\'un mayestru crie un cursu nuevu";
$UserTag = "Etiqueta d\'usuariu";
$SelectSession = "Seleicionar sesión";
$GroupPermissions = "Permisos del grupu";
$SpecialCourse = "Cursu especial";
?>

@ -27,4 +27,5 @@ $IntroductionTextDeleted = "Testu d\'entamu esborr
$SessionIdentifier = "Identificador de la sesión";
$SessionName = "Nome de la sesión";
$SessionCategory = "Categoría de la sesión";
$SessionData = "Datos de la sesión";
?>

@ -18,4 +18,6 @@ $lang_next_slide = "Diapositiva siguiente";
$lang_image = "Imaxe";
$lang_of = "de";
$lang_view_slideshow = "Ver presentación";
$FirstSlide = "Primer diapositiva";
$LastSlide = "Cabera diapositiva";
?>

@ -92,4 +92,6 @@ $SendInvitation = "Unviar invitaci
$SocialInvitationToFriends = "Invitar a xunise a la mio rede de collacios";
$MyCertificates = "Los mios certificaos";
$ToChangeYourEmailMustTypeYourPassword = "Pa camudar el to corréu electrónicu tienes qu\'escribir la to contraseña";
$Invitations = "Invitaciones";
$MyGroups = "Los mios grupos";
?>

@ -1103,4 +1103,21 @@ $GroupPermissions = "Group Permissions";
$MessagesSent = "Messages sent";
$MessagesReceived = "Messages received";
$CountFriends = "Number of friends";
$SpecialCourse = "Special course";
$MathMimetexTitle = "mimeTEX mathematical editor";
$MathMimetexComment = "Enable mimeTeX mathematical editor";
$MathASCIImathMLTitle = "SCIImathML mathematical editor";
$MathASCIImathMLComment = "Enable SCIImathML mathematical editor";
$YoutubeForStudentsTitle = "Allow students to insert videos from YouTube";
$YoutubeForStudentsComment = "Enable the possibility that students can insert Youtube videos";
$BlockCopyPasteForStudentsTitle = "Block students copy and paste";
$BlockCopyPasteForStudentsComment = "Block students the ability to copy and paste into the WYSIWYG editor";
$MoreButtonsForMaximizedModeTitle = "Buttons bar extended";
$MoreButtonsForMaximizedModeComment = "Enable button bars extended when the WYSIWYG editor is maximized";
$Editor = "WYSIWYG Editor";
$GoToCourseAfterLoginTitle = "Go directly to the course after login";
$GoToCourseAfterLoginComment = "When a user is registered in one course, go directly to the course after login";
$GroupList = "Group List";
$AllowStudentsDownloadFoldersTitle = "Allow students to download directories";
$AllowStudentsDownloadFoldersComment = "Allow to students pack and download a complete directory in the document tool";
?>

@ -2,12 +2,13 @@
for more information: see languages.txt in the lang folder.
*/
$langClarContent = "Εδώ, καθηγητές και βοηθοί δημιουργούν και διαχειρίζονται τους δικτυακούς τόπους των μαθημάτων τους. Οι φοιτητές μπορούν να διαβάσουν τα έγγραφα, τα προγράμματα, την ατζέντα, κλπ., να κάνουν ασκήσεις, να δημοσιεύσουν εργασίες, να συμμετάσχουν σε συζητήσεις, κ.α.</p> <p><b>Εγγραφή</b></p><p>Αν είστε φοιτητής, θα πρέπει να εγγραφείτε επιλέγοντας «Παρακολούθηση μαθημάτων», και μετά να επιλέξετε τα μαθήματα που επιθυμείτε να παρακολουθήσετε.</p><p>Αν είστε καθηγητής ή βοηθός, θα πρέπει και πάλι να εγγραφείτε, επιλέγοντας όμως «Δημιουργία μαθημάτων». Στη συνέχεια, θα συμπληρώσετε μια φόρμα με τα στοιχεία του μαθήματός σας: τίτλο και κωδικό μαθήματος και σχολή/τμήμα που ανήκει. Μόλις επικυρώσετε τα στοιχεία αυτά, θα μεταφερθείτε στη σελίδα που μόλις θα έχει δημιουργηθεί για το μάθημα, και θα μπορείτε να αλλάξετε τα περιεχόμενά και την οργάνωσή της ανάλογα με τις ανάγκες σας.</p><p>Αν η σελίδα αυτή δεν ανταποκρίνεται στις ανάγκες σας, παρακαλούμε ενημερώστε μας μέσω της λίστας «Να γίνουν», που εμφανίζεται στην αρχική σελίδα της τάξης ";
$test = "test";
$test = "&#964;&#949;&#963;&#964;";
$WCAGImage = "&#917;&#953;&#954;&#972;&#957;&#945;";
$WCAGLabel = "&#932;&#943;&#964;&#955;&#959;&#962; &#949;&#953;&#954;&#972;&#957;&#945;&#962;";
$WCAGLink = "&#931;&#973;&#957;&#948;&#949;&#963;&#956;&#959;&#962;";
$WCAGLinkLabel = "&#932;&#943;&#964;&#955;&#959;&#962; &#931;&#965;&#957;&#948;&#941;&#963;&#956;&#959;&#965;";
$errorNoLabel = "&#922;&#945;&#957;&#941;&#957;&#945;&#962; &#964;&#943;&#964;&#955;&#959;&#962; &#947;&#953;&#945; &#945;&#965;&#964;&#942; &#964;&#951;&#957; &#949;&#953;&#954;&#972;&#957;&#945;.";
$AllLanguages = "&#972;&#955;&#949;&#962; &#959;&#953; &#947;&#955;&#974;&#963;&#963;&#949;&#962;";
$WCAGEditor = "WCAG Editor";
$WCAGGoMenu = "&#924;&#949;&#957;&#959;&#973; &#956;&#949;&#964;&#940;&#946;&#945;&#963;&#951;&#962;";
$WCAGGoContent = "&#928;&#949;&#961;&#953;&#949;&#967;&#972;&#956;&#949;&#957;&#959; &#956;&#949;&#964;&#940;&#946;&#945;&#963;&#951;&#962;";

@ -979,6 +979,7 @@ $SoberBrown = "Sober brown";
$SteelGrey = "Steel grey";
$TastyOlive = "Tasty olive";
$AddNews = "Aggiungi avvisi";
$ExportCourses = "Esporta corsi";
$SearchDatabaseOpeningError = "Non è possibile accedere al database di indicizzazione dei contenuti";
$SearchDatabaseVersionError = "Il formato del database non è supportato";
$SearchDatabaseModifiedError = "Database di indicizzazione modificato";
@ -1097,4 +1098,7 @@ $FieldTypeTag = "Tag utente";
$SendEmailToAdminTitle = "Avviso della creazione di un nuovo corso tramite e-mail";
$SendEmailToAdminComment = "Ogni volta che un docente crea un nuovo corso, verrà inviata un\'e-mail all\'amministratore";
$UserTag = "Etichetta utente";
$SelectSession = "Seleziona la sessione";
$GroupPermissions = "Permessi del gruppo";
$SpecialCourse = "Corso speciale";
?>

@ -27,4 +27,5 @@ $IntroductionTextDeleted = "Testo introduttivo eliminato";
$SessionIdentifier = "Identificatore della sessione";
$SessionName = "Nome della sessione";
$SessionCategory = "Categoria della sessione";
$SessionData = "Dati della sessione";
?>

@ -18,4 +18,6 @@ $lang_next_slide = "Prossima Diapositiva";
$lang_image = "Immagine";
$lang_of = "di";
$lang_view_slideshow = "Mostra presentazione";
$FirstSlide = "Prima diapositiva";
$LastSlide = "Ultima diapositiva";
?>

@ -92,4 +92,6 @@ $SendInvitation = "Manda un invito";
$SocialInvitationToFriends = "Invita ad unirsi al mio gruppo di amici";
$MyCertificates = "Il mio certificato";
$ToChangeYourEmailMustTypeYourPassword = "Per cambiare l\'indirizzo e-mail devi riscrivere la password";
$Invitations = "Inviti";
$MyGroups = "I miei gruppi";
?>

@ -979,6 +979,7 @@ $SoberBrown = "Sober brown";
$SteelGrey = "Steel grey";
$TastyOlive = "Tasty olive";
$AddNews = "Adicionar notícias/novidades";
$ExportCourses = "Exportar cursos";
$SearchDatabaseOpeningError = "Erro ao tentar abrir a base-de-dados";
$SearchDatabaseVersionError = "A base-de-dados encontra-se num formato não suportado";
$SearchDatabaseModifiedError = "A base-de-dados foi modificada";
@ -1096,4 +1097,22 @@ $ShowGlossaryInExtraToolsComment = "Neste local pode configurar como adicionar o
$FieldTypeTag = "Etiqueta/comando do utilizador";
$SendEmailToAdminTitle = "E-mail de alerta, de criação de um novo curso";
$SendEmailToAdminComment = "Enviar um e-mail para o administardor da plataforma, de cada vez que um instrutor registrar um novo curso";
$UserTag = "Etiqueta/comando do utilizador";
$SelectSession = "Seleccionar sessão";
$GroupPermissions = "Permissões do Grupo";
$SpecialCourse = "Curso especial";
$MathMimetexTitle = "Editor matemático mimeTEX";
$MathMimetexComment = "Activar editor matemático mimeTEX";
$MathASCIImathMLTitle = "Editor matemático SCIImathML";
$MathASCIImathMLComment = "Activar editor matemático SCIImathML";
$YoutubeForStudentsTitle = "Permitir aos alunos inserir videos do YouTube";
$YoutubeForStudentsComment = "Activar a possibilidade dos alunos poderem inserir videos do YouTube";
$BlockCopyPasteForStudentsTitle = "Bloquear aos alunos a opção de copiar e colar ";
$BlockCopyPasteForStudentsComment = "Bloquear aos alunos a opção de copiar e colar para dentro do editor WYSIWYG ";
$MoreButtonsForMaximizedModeTitle = "Barra de botões extendida";
$MoreButtonsForMaximizedModeComment = "Activar a barra de botões extendida quando o editor WYSIWYG se encontrar maximizado";
$Editor = "Editor WYSIWYG";
$GoToCourseAfterLoginTitle = "Ir directamente para o curso após efectuar o login/acesso";
$GoToCourseAfterLoginComment = "Quando um utilizador se encontra registado num curso, ir directamente para o curso após o login/acesso";
$GroupList = "Lista do Grupo";
?>

@ -27,4 +27,5 @@ $IntroductionTextDeleted = "A introdu
$SessionIdentifier = "Identificador da sessão";
$SessionName = "Nome da sessão";
$SessionCategory = "Categoria da sessão";
$SessionData = "Dados da sessão";
?>

@ -18,4 +18,6 @@ $lang_next_slide = "Imagem seguinte";
$lang_image = "Imagem";
$lang_of = "de";
$lang_view_slideshow = "Ver Apresentação de slides";
$FirstSlide = "Primeiro slide/diapositivo";
$LastSlide = "Último slide/diapositivo";
?>

@ -92,4 +92,6 @@ $SendInvitation = "Enviar convite";
$SocialInvitationToFriends = "Convidar para fazer parte do meu grupo de amigos";
$MyCertificates = "Meus certificados";
$ToChangeYourEmailMustTypeYourPassword = "Para modificar o seu e-mail deverá introduzir a sua senha/password";
$Invitations = "Convites";
$MyGroups = "Meus grupos";
?>

@ -1103,4 +1103,21 @@ $GroupPermissions = "Permisos del grupo";
$MessagesSent = "Mensajes enviados";
$MessagesReceived = "Mensajes recibidos";
$CountFriends = "Número de amigos";
$SpecialCourse = "Curso especial";
$MathMimetexTitle = "Editor matemático mimeTEX";
$MathMimetexComment = "Habilitar el editor matemático mimeTEX";
$MathASCIImathMLTitle = "Editor matemático SCIImathML";
$MathASCIImathMLComment = "Habilitar el editor matemático SCIImathML";
$YoutubeForStudentsTitle = "Permitir a los estudiantes insertar videos de YouTube";
$YoutubeForStudentsComment = "Habilitar la posibilidad de que los estudiantes puedan insertar videos de Youtube";
$BlockCopyPasteForStudentsTitle = "Bloquear a los estudiantes copiar y pegar";
$BlockCopyPasteForStudentsComment = "Bloquear a los estudiantes la posibilidad de copiar y pegar en el editor WYSIWYG";
$MoreButtonsForMaximizedModeTitle = "Barras de botones extendidas";
$MoreButtonsForMaximizedModeComment = "Habilitar las barras de botones extendidas cuando el editor WYSIWYG está maximizado";
$Editor = "Editor WYSIWYG";
$GoToCourseAfterLoginTitle = "Ir directamente al curso tras identificarse";
$GoToCourseAfterLoginComment = "Cuando un usuario está inscrito sólamente en un curso, ir directamente al curso despúes de identificarse";
$GroupList = "Lista de grupos";
$AllowStudentsDownloadFoldersTitle = "Permitir a los estudiantes descargar directorios";
$AllowStudentsDownloadFoldersComment = "Permitir a los estudiantes empaquetar y descargar un directorio completo en la herramienta documentos";
?>

@ -291,7 +291,7 @@ $Documents = "Documentos";
$DocumentAdded = "Documento añadido";
$DocumentUpdated = "Documento actualizado";
$DocumentInFolderUpdated = "Documento actualizado en la carpeta";
$Course_description = "Descripción";
$Course_description = "Descripción del curso";
$Calendar_event = "Agenda";
$Document = "Documentos";
$Learnpath = "Lecciones";

@ -122,7 +122,7 @@ $AssignmentDescExtra = "Esta p
$AssignmentWorkExtra = "Esta página es el trabajo de un alumno";
$NoAreSeeingTheLastVersion = "Atención no esta viendo la última versión de la página";
$AssignmentFirstComToStudent = "Modifica esta página para realizar tu tarea sobre la tarea propuesta";
$AssignmentLinkstoStudentsPage = "Acceso a las tareas realizadas por los alumnos sobre la tarea propuesta en esta página";
$AssignmentLinkstoStudentsPage = "Acceso a las páginas de los alumnos";
$AllowLaterSends = "Permitir envíos retrasados";
$WikiStandBy = "El Wiki está a la espera de que un profesor lo inicialice";
$NotifyDiscussByEmail = "La notificacion por correo electrónico de nuevos comentarios sobre la página está habilitada";

@ -1486,11 +1486,13 @@ if (!$display_upload_form && !$display_tool_options) {
echo $form_filter;
}
}
if(!empty($publication['description'])){
echo '<br /><b>'.get_lang('Description').'</b>&nbsp;&nbsp;'.$publication['description'].'<br /><br />';
echo '<div class="actions">';
echo '<br /><b>'.get_lang('Description').':</b>&nbsp;&nbsp;'.$publication['description'].'<br /><br />';
echo '</div>';
}
}
display_student_publications_list($base_work_dir . '/' . $my_cur_dir_path, 'work/' . $my_cur_dir_path, $currentCourseRepositoryWeb, $link_target_parameter, $dateFormatLong, $origin,$add_query);

Loading…
Cancel
Save