. */ include("./include/include.php"); require_once(FILESYSTEMROOTPATH."jc/include/classes/DefaultLayout.php"); require_once(FILESYSTEMROOTPATH."include/form/AbstractForm.php"); /** * Helper classes */ class Proposals_sentencesForm extends AbstractForm { private $proposals_sentencesService; private $lines; public function __construct(Layout $layout, IModel $model, Proposals_sentencesService $proposals_sentencesService, $lines) { parent::__construct($layout, $model); $this->proposals_sentencesService = $proposals_sentencesService; $this->lines = $lines; } public function save(IModel $model) { if($_POST['form'] != $this->lines){ return; } if( $this->proposals_sentencesService->saveOrUpdate($model) ) { //redirect here! $url='review_proposal3.php?proposal_id='.$model->getProposal_id().'&order='.$model->getOrder(); $this->layout->redirect($url); }else { $this->layout->echoln('DB Error!!!'); } } } /** * End of helper classes */ function headers($current, $previous, $lines, $layout, $original){ $diff = false; if($current->getId() != ''){ $diff = true; } if ( $current->getOrder2() != $previous->getOrder2() || $current->getTitle2_status()!= $previous->getTitle2_status()) { //we have moved to next 'title2' section $layout->echoln('

'.$original['title2'].'

'); if ($diff) { $layout->echoln('

'); } $layout->echoln(''); $lines++; $layout->echoln('
Article '.$original['article'].': '.$original['article_title'].''); if ($diff) { $layout->echoln('Article : '); $layout->echoln(''); } $layout->echoln(''); $lines++; $layout->echoln('
('.$original['paragraph'].')'); if ($diff) { $layout->echoln('()'); } $layout->echoln(''); $lines++; } elseif ( $current->getArticle() != $previous->getArticle() || $current->getArticle_Title_status()!= $previous->getArticle_Title_status()) { //we have moved to next article $layout->echoln('
Article '.$original['article'].': '.$original['article_title'].''); if ($diff) { $layout->echoln('Article : '); $layout->echoln(''); } $layout->echoln(''); $lines++; $layout->echoln('
('.$original['paragraph'].')'); if ($diff) { $layout->echoln('()'); } $layout->echoln(''); $lines++; } elseif ($current->getParagraph() != $previous->getParagraph() || $current->getParagraph_status()!= $previous->getParagraph_status()) { //we have moved to next paragraph $layout->echoln('
('.$original['paragraph'].')'); if ($diff) { $layout->echoln('()'); } $layout->echoln(''); $lines++; } return $lines; } function Area($layout, $model, $service, $lines, $original, $previous){ $lines = headers($model, $previous, $lines, $layout, $original); $layout->echoln(''.$original['sentence'].''.nl2br($original['sentence_text']).''); if ($model->getId() != ''){ $layout->echoln(' '); $layout->echoln(''); if($model->getJc_comment() != ''){ $style = 'block'; }else{ $style = 'none'; } $layout->echoln('Comment'); $form = new Proposals_sentencesForm($layout,$model,$service,$lines); $comment = new TextAreaField('jc_comment','' ,2,50); $form->addField($comment); $form->addHiddenField(new HiddenField('form',$lines)); $form->display(); $lines++; } $layout->echoln(''); $lines++; return $lines; } /** * End functions */ $layout = new DefaultLayout("JC_MANAGE", "./jc/"); $layout->init(); $layout->addJavascript('js/visibility.js'); $layout->addJavascript('js/text_diff.js'); $proposals_sentencesService = $GLOBALS['ClassFactory']->getProposals_sentencesService(); $ciaService = $GLOBALS['ClassFactory']->getCIAService(); $proposalsService = $GLOBALS['ClassFactory']->getProposalsService(); $proposal_id = $_GET['proposal_id']; $order = $_GET['order']; $proposal = $proposalsService->load($proposal_id); if($proposal->getStatus()=='Saved'){ $layout->redirect('review_proposal1.php?agora_id='.$proposal->getAgora_id()); } $layout->echoln('If you want to make a comment, press "comment" and after writing it press "Save". When finished, go '); $layout->echoln('Back
'); //load original senteces of this title $sentences = $ciaService->loadByTitleOrder($order); //if a new title is created if ($sentences==NULL) { $layout->echoln('
New Section
'); $sentence = new CIA('') ; foreach($proposals_sentences as $ps){ $cat= $ps['category']; break; } $sentence=array( 'id'=>'-1', 'category'=>$cat, 'title'=>' ', 'order'=>$order, 'last_change'=>' ', 'title2'=>'', 'order2'=>'', 'article'=>'1', 'article_title'=>' ', 'paragraph'=>'1', 'sentence'=>'1', 'sentence_text'=>' ', 'agora_id_start'=>'0', 'agora_id_end'=>'0', ); $sentences[] = $sentence; } //load changes for this title $proposals_sentences = $proposals_sentencesService->loadByProposalId_Order($proposal_id, $order); //display cia+changes like editor, but: original-difference only text. //forms: jc_comment after each change $layout->echoln(''); //display title foreach ($sentences as $sentence) { //check if modified version exists $ps = NULL; foreach ($proposals_sentences as $prs){ if($prs['sentence_id'] == $sentence['id']){ $ps = $prs; break; } } $layout->echoln(''); break; } $empty= new Proposals_sentences(''); $previous = $empty; $lines = 2; foreach ($sentences as $sentence) { //check if edited text exists $later = array(); $modified = NULL; foreach($proposals_sentences as $prop_s){ if ($prop_s['sentence_id'] == $sentence['id']){ //an edited version of this sentence exists //simple edited text if($prop_s['change_type']=='Edit'){ $modified = new Proposals_sentences($prop_s); } elseif($prop_s['change_type']=='Delete'){ $modified = new Proposals_sentences($prop_s); } elseif($prop_s['change_type']=='New_^'){ //display the inserted sentence $ps = new Proposals_sentences($prop_s); $empty_array = $sentence; $empty_array['sentence']=''; $empty_array['sentence_text']=''; $lines = Area($layout, $ps, $proposals_sentencesService, $lines, $empty_array, $previous); $previous = $ps; } elseif($prop_s['change_type']=='New_v'){ //display later $later []=$prop_s; } } } if ($modified!=NULL){ //$i++; $lines = Area($layout, $modified, $proposals_sentencesService, $lines, $sentence, $previous); $previous = $modified; } else{ //display original cia sentence $ps = new Proposals_sentences(''); $ps->copy_from_cia_array($sentence); $ps->setProposal_id($proposal_id); $ps->setChange_type('Edit'); $lines = Area($layout, $ps, $proposals_sentencesService, $lines, $sentence, $previous); $previous = $ps; } foreach($later as $later_s){ //display the inserted sentence // $ps = new Proposals_sentences($later_s); $empty_array = $sentence; $empty_array['sentence']=''; $empty_array['sentence_text']=''; $lines = Area($layout, $ps, $proposals_sentencesService, $lines, $empty_array, $previous); $previous = $ps; } } $layout->echoln('
OriginalChanges

'.$sentence['title'].'

'); if ($ps !=NULL){ $layout->echoln(''); } $layout->echoln('

'); $layout->page_footer(); ?>