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] : "???";
示例#3
0
 /**
  * @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;
 }
示例#4
0
 /**
  * @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()));
 }
示例#5
0
 /**
  * @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;
 }