.
*/
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('Original | Changes |
');
//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(''.$sentence['title'].' | ');
if ($ps !=NULL){
$layout->echoln('');
}
$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('
');
$layout->page_footer();
?>