diff --git a/main/newscorm/lp_upload.php b/main/newscorm/lp_upload.php index c44daa52f2..86e7b021d3 100644 --- a/main/newscorm/lp_upload.php +++ b/main/newscorm/lp_upload.php @@ -89,7 +89,8 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST' break; case 'woogie': require_once('openoffice_text_document.class.php'); - $o_doc = new OpenofficeTextDocument(); + $split_steps = $_POST['split_steps']; + $o_doc = new OpenofficeTextDocument($split_steps); $first_item_id = $o_doc -> convert_document($_FILES['user_file']); break; case '': diff --git a/main/newscorm/openoffice_text_document.class.php b/main/newscorm/openoffice_text_document.class.php index c92520a014..dab41d5e76 100644 --- a/main/newscorm/openoffice_text_document.class.php +++ b/main/newscorm/openoffice_text_document.class.php @@ -14,6 +14,14 @@ require_once('openoffice_document.class.php'); class OpenOfficeTextDocument extends OpenofficeDocument { + public $split_steps; + + function OpenofficeTextDocument($split_steps=false, $course_code=null, $resource_id=null,$user_id=null) { + + $this -> split_steps = $split_steps; + parent::OpenofficeDocument($course_code, $resource_id, $user_id); + + } function make_lp($files=array()){ @@ -35,10 +43,7 @@ class OpenOfficeTextDocument extends OpenofficeDocument { list($header, $body) = explode('split_steps) + { + case 'per_page' : $this -> dealPerPage($header,$body); break; + case 'per_chapter' : $this -> dealPerChapter($header,$body); break; + } + + } + + + + function dealPerChapter($header, $content){ + + global $_course; + + $content = str_replace('||page_break||','',$content); + + // get all the h1 + preg_match_all("|]*>([^(h1)+]*)|is",$content,$matches_temp); + + + //empty the fake chapters + $new_index = 0; + for ($i=0 ; $i$item_content) + { + $i++; + $page_content = $this->format_page_content($header, $item_content); + + $html_file = $this->created_dir.'-'.$i.'.html'; + $handle = fopen($this->base_work_dir.$this->created_dir.'/'.$html_file,'w+'); + fwrite($handle, $page_content); + fclose($handle); + + $document_id = add_document($_course,$this->created_dir.'/'.$html_file,'file',filesize($this->base_work_dir.$this->created_dir.'/'.$html_file),$html_file); + + if ($document_id){ + + //put the document in item_property update + api_item_property_update($_course,TOOL_DOCUMENT,$document_id,'DocumentAdded',$_SESSION['_uid'],0,0); + $infos = pathinfo($this->filepath); + $slide_name = strip_tags(nl2br($item_title)); + $slide_name = str_replace(array("\r\n", "\r", "\n"), "", $slide_name); + $slide_name = html_entity_decode($slide_name); + $previous = learnpath::add_item(0, $previous, 'document', $document_id, $slide_name, ''); + if($this->first_item == 0){ + $this->first_item = $previous; + } + } + } + + } + + function dealPerPage($header,$body) + { + + // split document to pages + $pages = explode('||page_break||',$body); $first_item = 0; @@ -94,7 +191,7 @@ class OpenOfficeTextDocument extends OpenofficeDocument { } - function format_page_content($header, $content, $path_to_folder) + function format_page_content($header, $content) { @@ -128,7 +225,7 @@ class OpenOfficeTextDocument extends OpenofficeDocument { if(!$defined_width) { - list($img_width, $img_height, $type) = getimagesize($path_to_folder.'/'.$image); + list($img_width, $img_height, $type) = getimagesize($this->base_work_dir.$this->created_dir.'/'.$image); $new_width = $max_width-10; if($img_width > $new_width) diff --git a/main/upload/upload_ppt.php b/main/upload/upload_ppt.php index 415b99d236..492c244d77 100644 --- a/main/upload/upload_ppt.php +++ b/main/upload/upload_ppt.php @@ -112,7 +112,7 @@ if(!empty($errorMessage)){ } -$form = new FormValidator('update_course', 'POST', '', '', 'style="margin: 0;"'); +$form = new FormValidator('upload_ppt', 'POST', '', '', 'style="margin: 0;"'); // build the form @@ -130,7 +130,7 @@ $form -> addElement('html','
addElement ('hidden', 'ppt2lp', 'true'); -$form -> add_real_progress_bar('ppt2lp', 'qf_group_1', 1, true); +$form -> add_real_progress_bar(md5(rand(0,10000)), 'qf_group_1', 1, true); // display the form diff --git a/main/upload/upload_word.php b/main/upload/upload_word.php index c067912869..4e1da40353 100644 --- a/main/upload/upload_word.php +++ b/main/upload/upload_word.php @@ -104,42 +104,30 @@ echo '
'.$alt_text.'
'.$errorMessage.'
'; } -echo ' -'; $form = new FormValidator('update_course', 'POST', '', '', 'style="margin: 0;"'); // build the form $form -> addElement ('html','
'); -$group = array(); -$group[] = FormValidator::createElement ('image','word_img','../img/word_big.gif','align="absbottom"'); -$group[] = FormValidator::createElement ('file', 'user_file',null); -$group[] = FormValidator::createElement ('submit', 'convert', get_lang('ConvertToLP'), 'class="convert_button"'); -$form -> addGroup($group); +$renderer = & $form->defaultRenderer(); +$user_file_template = str_replace('
', '
', $renderer->_elementTemplate); +$renderer->setElementTemplate($user_file_template, 'user_file'); + +$form -> addElement ('file', 'user_file',''); +$form -> addElement ('radio', 'split_steps',null, get_lang('SplitStepsPerPage'),'per_page'); +$form -> addElement ('radio', 'split_steps',null, get_lang('SplitStepsPerChapter'),'per_chapter'); +$form -> addElement ('submit', 'convert', get_lang('ConvertToLP'), 'class="convert_button"'); -$form -> addElement('html','
'.get_lang('UploadMaxSize').' : '.ini_get('post_max_size').'
'); +$form -> addElement('html','
'.get_lang('UploadMaxSize').' : '.ini_get('post_max_size').'
'); $form -> addElement ('hidden', 'woogie', 'true'); $form -> add_real_progress_bar(md5(rand(0,10000)), 'qf_group_1', 1, true); +$defaults['split_steps'] = 'per_page'; +$form -> setDefaults($defaults); // display the form $form -> display();