public function run($args) { foreach ($GLOBALS["TESTS"] as $test) { HtmlBBcodeUtils::initZeilenCounter(); $res = HtmlBBcodeUtils::bbcode2html_absaetze($test["src"], $test["presentation_hacks"], $test["line_length"]); $allesrichtig = true; if (count($res["html"]) != count($test["expected_html"])) { $allesrichtig = false; } if (count($res["html_plain"]) != count($test["expected_plain"])) { $allesrichtig = false; } if ($allesrichtig) { foreach ($res["html"] as $i => $line) { if ($test["expected_html"][$i] !== $line) { $allesrichtig = false; } } foreach ($res["html_plain"] as $i => $line) { if ($test["expected_plain"][$i] !== $line) { $allesrichtig = false; } } } if ($allesrichtig) { echo "Korrekt\n"; } else { echo "FEHLER!\n"; echo "Erwartet (HTML):\n"; var_dump($test["expected_html"]); echo "Bekommen (HTML):\n"; var_dump($res["html"]); echo "Erwartet (Plain): \n"; var_dump($test["expected_plain"]); echo "Bekommen (Plain):\n"; var_dump($res["html_plain"]); echo "\n"; } } }
$pdf->SetFont("helvetica", "B", 12); $pdf->MultiCell(100, 0, $aenderungsantrag->antrag->name, array('B' => array('width' => 0.3, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(150, 150, 150))), "L"); /* $pdf->Ln(); $pdf->SetFont("helvetica", "", 12); $pdf->writeHTML("<h3>Antrag</h3>"); */ $pdf->Ln(8); $text_size = $aenderungsantrag->antrag->veranstaltung->getEinstellungen()->zeilenlaenge > 70 ? 10 : 11; $pdf->SetFont("Courier", "", $text_size); if ($diff_ansicht) { $abs_alt = $aenderungsantrag->antrag->getParagraphs(); $abs_neu = json_decode($aenderungsantrag->text_neu); $html = ""; if (trim($aenderungsantrag->aenderung_metatext) != "") { $arr = HtmlBBcodeUtils::bbcode2html_absaetze(trim($aenderungsantrag->aenderung_metatext), false, $aenderungsantrag->antrag->veranstaltung->getEinstellungen()->zeilenlaenge); foreach ($arr["html_plain"] as $abs) { $html .= "<div class='row-fluid' style=\"line-height: 18px;\">"; $html .= $abs; $html .= "</div>"; } $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] : "???";
/** * @param bool $praesentations_hacks * @param bool $text2 * @return array */ public function getParagraphsText($praesentations_hacks = false, $text2 = false) { if (is_null($this->absaetze_nurtext)) { $erste_zeile = $this->getFirstLineNo(); HtmlBBcodeUtils::initZeilenCounter($erste_zeile); $text = trim($text2 ? $this->text2 : $this->text); $this->absaetze_nurtext = HtmlBBcodeUtils::bbcode2html_absaetze($text, $praesentations_hacks, $this->veranstaltung->getEinstellungen()->zeilenlaenge); } return $this->absaetze_nurtext; }
/** * @param string $veranstaltungsreihe_id * @param string $veranstaltung_id * @param int $antrag_id */ public function actionAes_Einpflegen($veranstaltungsreihe_id = "", $veranstaltung_id, $antrag_id) { $this->layout = '//layouts/column2'; $antrag_id = IntVal($antrag_id); /** @var Antrag $antrag */ $antrag = Antrag::model()->findByPk($antrag_id); if (is_null($antrag)) { Yii::app()->user->setFlash("error", "Der angegebene Antrag wurde nicht gefunden."); $this->redirect($this->createUrl("veranstaltung/index")); } $this->veranstaltung = $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id, $antrag); $this->testeWartungsmodus(); if (!$antrag->kannUeberarbeiten()) { Yii::app()->user->setFlash("error", "Kein Zugriff auf den Antrag"); $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag_id))); } if (AntiXSS::isTokenSet("ueberarbeiten")) { $neuer = new Antrag(); $neuer->veranstaltung_id = $antrag->veranstaltung_id; $neuer->abgeleitet_von = $antrag->id; $neuer->typ = $antrag->typ; $neuer->text_unveraenderlich = $this->veranstaltung->getEinstellungen()->admins_duerfen_aendern ? 0 : 1; switch ($_REQUEST["titel_typ"]) { case "original": $neuer->name = $antrag->name; break; case "neu": $neuer->name = $_REQUEST["titel_neu"]; break; default: $ae = $antrag->getAenderungsAntragById($_REQUEST["titel_typ"]); if (!$ae) { die("ÄA nicht gefunden: " . $_REQUEST["titel_typ"]); } $neuer->name = $ae->name_neu; } $absatz_mapping = array(); $neue_absaetze = array(); $absae = $antrag->getParagraphs(true, false); $neu_count = 0; for ($i = 0; $i < count($absae); $i++) { $absatz_mapping[$i] = $neu_count; switch ($_REQUEST["absatz_typ"][$i]) { case "original": $neuer_text = $absae[$i]->str_bbcode; break; case "neu": $neuer_text = HtmlBBcodeUtils::bbcode_normalize($_REQUEST["neu_text"][$i]); break; default: $aes = $absae[$i]->aenderungsantraege; foreach ($aes as $ae) { if ($ae->id == $_REQUEST["absatz_typ"][$i]) { $par = $ae->getDiffParagraphs(); $neuer_text = $par[$i]; } } if (!isset($neuer_text)) { die("ÄA nicht gefunden"); } } $neu = HtmlBBcodeUtils::bbcode2html_absaetze($neuer_text, false, $antrag->veranstaltung->getEinstellungen()->zeilenlaenge); foreach ($neu["bbcode"] as $line) { $neue_absaetze[] = $line; } $neu_count += count($neu["bbcode"]); } $neuer->text = implode("\n\n", $neue_absaetze); $neuer->revision_name = $_REQUEST["rev_neu"]; $neuer->datum_einreichung = new CDbExpression('NOW()'); switch ($_REQUEST["begruendung_typ"]) { case "original": $neuer->begruendung = $antrag->begruendung; break; case "neu": $neuer->begruendung = $_REQUEST["begruendung_neu"]; break; default: die("Ungültige Eingabe"); } $neuer->status = $antrag->status == IAntrag::$STATUS_EINGEREICHT_GEPRUEFT ? IAntrag::$STATUS_EINGEREICHT_GEPRUEFT : IAntrag::$STATUS_EINGEREICHT_UNGEPRUEFT; if ($neuer->save()) { foreach ($antrag->antragUnterstuetzerInnen as $init) { if ($init->rolle == IUnterstuetzerInnen::$ROLLE_INITIATORIN) { $in = new AntragUnterstuetzerInnen(); $in->rolle = IUnterstuetzerInnen::$ROLLE_INITIATORIN; $in->position = $init->position; $in->antrag_id = $neuer->id; $in->unterstuetzerIn_id = $init->unterstuetzerIn_id; $in->kommentar = ""; $in->save(); } } $antrag->status = IAntrag::$STATUS_MODIFIZIERT; $antrag->datum_beschluss = new CDbExpression('NOW()'); $antrag->save(); foreach ($antrag->aenderungsantraege as $ae) { if (!in_array($ae->status, IAntrag::$STATI_UNSICHTBAR)) { switch ($_REQUEST["ae"][$ae->id]) { case IAntrag::$STATUS_ANGENOMMEN: case IAntrag::$STATUS_MODIFIZIERT_ANGENOMMEN: case IAntrag::$STATUS_ABGELEHNT: $ae->status = $_REQUEST["ae"][$ae->id]; $ae->save(); break; case IAntrag::$STATUS_EINGEREICHT_GEPRUEFT: $ae->aufrechterhaltenBeiNeuemAntrag($neuer, $neu_count, $absatz_mapping); break; } } } $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $neuer->id))); } else { die("Ein Fehler ist aufgetreten"); } die; } $aenderungsantraege = array(); foreach ($antrag->aenderungsantraege as $antr) { if (!in_array($antr->status, IAntrag::$STATI_UNSICHTBAR)) { $aenderungsantraege[] = $antr; } } $this->render("aes_einpflegen", array("antrag" => $antrag, "aenderungsantraege" => $aenderungsantraege, "sprache" => $antrag->veranstaltung->getSprache())); }
/** * @return AenderungsantragAbsatz[] */ public function getAntragstextParagraphs_diff() { $abs_alt = $this->antrag->getParagraphs(); $abs_neu = json_decode($this->text_neu); $this->absaetze = array(); if (trim($this->aenderung_metatext) != "") { $a = HtmlBBcodeUtils::bbcode2html_absaetze($this->aenderung_metatext, true, $this->antrag->veranstaltung->getEinstellungen()->zeilenlaenge); foreach ($a["bbcode"] as $i => $b) { $kommentare = array(); foreach ($this->aenderungsantragKommentare as $komm) { if ($komm->absatz == count($this->absaetze)) { $kommentare[] = $komm; } } $this->absaetze[] = new AenderungsantragAbsatz($b, $b, $this->id, count($this->absaetze), null, null, $kommentare); } } for ($i = 0; $i < count($abs_alt); $i++) { $ae_absatz_nr = count($this->absaetze) + $i; if ($abs_neu[$i] == "") { $this->absaetze[] = null; } else { preg_match_all("/<span class='zeilennummer'>([0-9]+)<\\/span>/siu", $abs_alt[$i]->str_html, $matches); $zeile_von = isset($matches[1][0]) ? IntVal($matches[1][0]) : "????"; $zeile_bis = isset($matches[1]) ? $matches[1][count($matches[1]) - 1] : "???"; $kommentare = array(); foreach ($this->aenderungsantragKommentare as $komm) { if ($komm->absatz == $ae_absatz_nr) { $kommentare[] = $komm; } } $this->absaetze[] = new AenderungsantragAbsatz($abs_alt[$i]->str_bbcode, $abs_neu[$i], $this->id, $ae_absatz_nr, $zeile_von, $zeile_bis, $kommentare); } } return $this->absaetze; }