/** * @return string */ public function getDiffHTMLForODS() { if ($this->zeile_von !== null && $this->zeile_bis !== null) { $str_pre = "<div class='ae_absatz_header'>Im Absatz von Zeile " . $this->zeile_von . " bis " . $this->zeile_bis . "</div>"; } else { $str_pre = ""; } $str = DiffUtils::renderBBCodeDiff2HTML($this->str_bbcode_vorher, $this->str_bbcode_nachher, false, 0, "", false); return $str_pre . "<div>" . $str . "</div>"; }
public function run($args) { foreach ($GLOBALS["TESTS"] as $test) { /** @var Antrag $antrag */ $antrag = Antrag::model()->findByPk($test["antrag_id"]); $diffs = array(); /** @var array|AntragAbsatz[] $pars */ $pars = $antrag->getParagraphs(); $diffs[$test["absatz_nr"]] = DiffUtils::renderBBCodeDiff2HTML($pars[$test["absatz_nr"]]->str_bbcode, $test["text_neu"], false, 0, "", true, true); var_dump($diffs); } }
if (!isset($aes2absaetze[IntVal($ant->id)])) { $aes2absaetze[IntVal($ant->id)] = array(); $aes[IntVal($ant->id)] = $ant; } $aes2absaetze[IntVal($ant->id)][] = IntVal($i); $par = $ant->getDiffParagraphs(); if ($par[$i] != "") { $ae_link = "<a href=\"" . CHtml::encode($this->createUrl("aenderungsantrag/anzeige", array("antrag_id" => $antrag->id, "aenderungsantrag_id" => $ant->id))) . "\" target=\"_blank\">" . CHtml::encode($ant->revision_name) . "</a>"; $antragstellerInnen = $ant->getAntragstellerInnen(); $x = array(); foreach ($antragstellerInnen as $a) { $x[] = $a->name; } $von = implode(", ", $x); echo "<label><input type='radio' name='absatz_typ[{$i}]' value='" . $ant->id . "'> " . $ae_link . " (von " . CHtml::encode($von) . ")</label>"; $full_texts .= "<blockquote class='aenderung ae_" . $ant->id . "'>" . DiffUtils::renderBBCodeDiff2HTML($abs->str_bbcode, $par[$i]) . "</blockquote>"; } } echo "<label><input type='radio' name='absatz_typ[{$i}]' value='neu'> Neuer Text</label><br>"; echo "<blockquote class='original'>" . $abs->str_html_plain . "</blockquote>" . $full_texts; echo "<div><textarea class='neu_text' name='neu_text[{$i}]' id='neu_text_{$i}' style='width: 550px; height: 200px;'>" . CHtml::encode($abs->str_bbcode) . "</textarea></div>"; echo "</div>"; } echo "<h3>Begründung</h3><div class='absatz_selector_holder content absatz_begruendung'>"; /** @var AntragAbsatz $abs */ $full_texts = ""; echo "<label><input type='radio' name='begruendung_typ' value='original' checked> Original beibehalten</label>"; echo "<label><input type='radio' name='begruendung_typ' value='neu'> Neuer Text</label><br>"; echo "<blockquote class='original'>" . HtmlBBcodeUtils::bbcode2html($antrag->begruendung) . "</blockquote>" . $full_texts; echo "<div><textarea class='neu_text' name='neu_begruendung' id='neu_begruendung' style='width: 550px; height: 200px;'>" . CHtml::encode($antrag->begruendung) . "</textarea></div>"; echo "</div>";
<div style="text-align: center; display: none;" id="antrags_diff_closer"> <a href="#" onClick="$('#antrags_diff_holder').hide(); $('#antrags_diff_opener').show(); $('#antrags_diff_closer').hide(); return false;"><i class="icon-up-open"></i> Antragstext mit Änderungen anzeigen</a> </div> <div id="antrags_diff_holder" class="content" style="display: none;"> <?php $abs_alt = $aenderungsantrag->antrag->getParagraphs(); $abs_neu = json_decode($aenderungsantrag->text_neu); $letztes_leer = false; foreach ($abs_alt as $i => $abs) { if (isset($abs_neu[$i]) && $abs_neu[$i] != "") { $letztes_leer = false; echo "<div class='row-fluid'>"; /** @var AntragAbsatz $abs */ echo DiffUtils::renderBBCodeDiff2HTML($abs->str_bbcode, $abs_neu[$i]); echo "</div>\n"; } else { if (!$letztes_leer) { $letztes_leer = true; echo "<div class='absatz_ueberspringen'>.<br>.<br>.</div>"; } } } ?> </div> </div> <div class="begruendungs_text_holder"> <h3>Begründung</h3>
echo "checked"; } echo "> Ändern<br></label>\n\t\t\t<h4>Neue Fassung</h4>\n\t\t\t<textarea id='neu_text_{$i}' name='neu_text[{$i}]' style='width: 550px; height: 200px;'>"; $str_neu = $text_pre && $text_pre[$i] != "" ? $text_pre[$i] : $abs->str_bbcode; echo CHtml::encode($str_neu) . "</textarea>"; echo "<a href='#' class='ae_verwerfen' style='float: right;'>Unverändert lassen</a>"; echo "<div style='text-align: center;'>"; $this->widget('bootstrap.widgets.TbButton', array('type' => 'success', 'icon' => 'chevron-right white', 'label' => 'Weiter', 'url' => '#begruendungs_holder')); echo "</div></div>\n"; echo "<div class='antragstext_diff antrags_text_holder_keinenummern absatz_text' "; if (!$text_pre || $text_pre[$i] == "") { echo "style='display: none;'"; } echo ">"; if ($text_pre && $text_pre[$i] != "") { echo DiffUtils::renderBBCodeDiff2HTML($abs->str_bbcode, $text_pre[$i]); } else { echo $abs->str_html_plain; } echo "</div>"; echo "</div>"; } ?> </div> <div id="ae_metatext_holder" style="display: none;"> <h3><label for="ae_metatext"><?php echo $sprache->get("Redaktioneller Antrag"); ?> </label></h3>
} $html .= "<br><br>"; } $letztes_leer = true; foreach ($abs_alt as $i => $abs) { if (isset($abs_neu[$i]) && $abs_neu[$i] != "") { if ($letztes_leer) { $letztes_leer = false; preg_match_all("/<span class='zeilennummer'>([0-9]+)<\\/span>/siu", $abs->str_html, $matches); $zeile_von = isset($matches[1][0]) ? IntVal($matches[1][0]) : "????"; $zeile_bis = isset($matches[1]) ? $matches[1][count($matches[1]) - 1] : "???"; $html .= "Im Absatz von Zeile {$zeile_von} - {$zeile_bis}:"; } $html .= "<div class='row-fluid' style=\"line-height: 18px;\">"; /** @var AntragAbsatz $abs */ $str = DiffUtils::renderBBCodeDiff2HTML($abs->str_bbcode, $abs_neu[$i], true); if (function_exists("normalizer_normalize")) { $str = normalizer_normalize($str); } $replaces = array("<ins> " => " <span style=\"color: green; text-decoration: underline; font-weight: bold;\">", "<ins>" => "<span style=\"color: green; text-decoration: underline; font-weight: bold;\">", "</ins>" => "</span>", " </ins>" => "</span> ", "<del>" => "<span style=\"color: red; text-decoration: line-through;\">", "</del>" => "</span>"); $html .= str_replace(array_keys($replaces), array_values($replaces), $str); $html .= "</div>\n"; } } $pdf->writeHTML($html); } else { $linenr = 1; $absae = $aenderungsantrag->getAntragstextParagraphs_flat(); foreach ($absae as $i => $abs) { /** @var AntragAbsatz $abs */ $text = $abs->str_html;
/** * */ public function actionAjaxCalcDiff() { if (!isset($_REQUEST["absaetze"])) { return; } $this->testeWartungsmodus(); $antrag_id = IntVal($_REQUEST["antrag_id"]); /** @var Antrag $antrag */ $antrag = Antrag::model()->findByPk($antrag_id); $diffs = array(); /** @var array|AntragAbsatz[] $pars */ $pars = $antrag->getParagraphs(); foreach ($_REQUEST["absaetze"] as $absatznr => $text_neu) { $diffs[$absatznr] = DiffUtils::renderBBCodeDiff2HTML($pars[$absatznr]->str_bbcode, $text_neu); } $this->renderPartial('ajax_diff', array("diffs" => $diffs)); }
?> </div> <?php foreach ($abs->aenderungsantraege as $ant) { $par = $ant->getDiffParagraphs(); if ($par[$i] != "") { ?> <div class="absatz_text diff ae_<?php echo $ant->id; ?> " style="display: none; position: relative; border-right: solid 1px lightgray; margin-left: 0;"> <?php echo DiffUtils::renderBBCodeDiff2HTML($abs->str_bbcode, $par[$i], false, $this->veranstaltung->getEinstellungen()->zeilenlaenge); ?> </div> <?php } } $this->renderPartial("anzeige_kommentare", array("antrag" => $antrag, "absatz_nr" => $abs->absatz_nr, "komm_del_link" => $komm_del_link, "js_protection" => $js_protection, "hiddens" => $hiddens, "kommentar_person" => $kommentar_person, "kommentare" => $abs->kommentare)); ?> </div> <?php } ?> </div> <?php