ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Artikelmodul

Geschlossen
  1. #1
    User Pic
    Flomavali gelöschter User
    Hallo,

    ich habe mal zwei Fragen und zwar möchte ich die Seitenanzahl eines Artikels zusammenzählen, wie mache ich das?

    Meine zweite Frage: Wie kann ich einen Artikel in *.txt ausgeben lassen?

    Ich möchte ein PDF erstellen lassen, wie hier:

    <?php 
    # ilchClan Script (c) by Manuel Staechele
    # Modul (c) Florian Körner
    # Support: http://www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    require('fpdf.php');
    
    class PDF extends FPDF
    {
    function Header()
    {
        global $title;
    
        //Arial bold 15
        $this->SetFont('Arial','B',15);
        //Calculate width of title and position
        $w=$this->GetStringWidth($title)+6;
        $this->SetX((210-$w)/2);
        //Colors of frame, background and text
        $this->SetDrawColor(0,80,180);
        $this->SetFillColor(230,230,0);
        $this->SetTextColor(220,50,50);
        //Thickness of frame (1 mm)
        $this->SetLineWidth(1);
        //Title
        $this->Cell($w,9,$title,1,1,'C',true);
        //Line break
        $this->Ln(10);
    }
    
    function Footer()
    {
        //Position at 1.5 cm from bottom
        $this->SetY(-15);
        //Arial italic 8
        $this->SetFont('Arial','I',8);
        //Text color in gray
        $this->SetTextColor(128);
        //Page number
        $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
    }
    
    function ChapterTitle($num,$label)
    {
        //Arial 12
        $this->SetFont('Arial','',12);
        //Background color
        $this->SetFillColor(200,220,255);
        //Title
        $this->Cell(0,6,"Chapter $num : $label",0,1,'L',true);
        //Line break
        $this->Ln(4);
    }
    
    function ChapterBody($file)
    {
        //Read text file
        $f=fopen($file,'r');
        $txt=fread($f,filesize($file));
        fclose($f);
        //Times 12
        $this->SetFont('Times','',12);
        //Output justified text
        $this->MultiCell(0,5,$txt);
        //Line break
        $this->Ln();
        //Mention in italics
        $this->SetFont('','I');
        $this->Cell(0,5,'(end of excerpt)');
    }
    
    function PrintChapter($num,$title,$file)
    {
        $this->AddPage();
        $this->ChapterTitle($num,$title);
        $this->ChapterBody($file);
    }
    }
    $pdf=new PDF();
    $title= $row['art_title'];
    $pdf->SetTitle($title);
    $pdf->SetAuthor('Jules Verne');
    $pdf->PrintChapter(1,'A RUNAWAY REEF','tutorial/20k_c1.txt');
    $pdf->PrintChapter(2,'THE PROS AND CONS','tutorial/20k_c2.txt');
    $pdf->Output();
    ?>



    Danke im Voraus


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    assault Hall Of Fame
    Registriert seit
    03.11.2006
    Beiträge
    2.925
    Beitragswertungen
    1 Beitragspunkte
    du fragst "art_content" aus der DB ab (hier als $art_content) und dann teilst du es auf, z.b. so:
    <?php
    $count = count(explode('[NEWARTPAGE]', $art_content));
    $count--; # weil das bei der Vorschau entstandene [NEWARTPAGE] will man ja nicht.
    ?>


    damit hast du die anzahl der seiten.
    und wenn du eine txt-datei damit schreiben willst (ab php 5, sonst fopen, fwrite, fclose) :
    file_put_contents('ordner/ordner/artikel.txt', $artcontent);

    musst nur bedenken, dass bbcodeformatierung und [artTitle] natürlich dann auch dadrin bleiben
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Flomavali gelöschter User
    Vielen Dank.
    Das hat mir eine Menge geholfen.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Flomavali gelöschter User
    Weiteres Problem:

    Wie kann ich die einzellnen Seiten in einem Array speichern?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    assault Hall Of Fame
    Registriert seit
    03.11.2006
    Beiträge
    2.925
    Beitragswertungen
    1 Beitragspunkte
    count-code von oben:
    <?php
    $artsites = explode('[NEWARTPAGE]', $art_content)
    $count = count($artsites);
    $count--; # weil das bei der Vorschau entstandene [NEWARTPAGE] will man ja nicht.
    ?>


    dann ist in $artsites der array mit den einzelnen seiten


    edit: der hat irgendwie den ersten param von explode geslasht


    Zuletzt modifiziert von assault am 21.10.2008 - 16:02:18
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Flomavali gelöschter User
    Einfacher, als ich dachte!;)
    Danke.
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Flomavali gelöschter User
    Ach noch etwas.
    Kann ich auch bei der Abfrage BB-Code verstecken?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Flomavali gelöschter User
    Ok. Meine letzte Frage hat sich erledigt. Bin wohl heute nicht ganz klar in der Birne.

    Jetzt versuche ich nur noch den Titel rauszufischen. Wie gehe ich vor?
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Flomavali gelöschter User
    Keine Antwort mehr...
    Nicht verstanden oder habt ihr keine Zeit?

    Wollte nur sagen, dass ich immer noch nicht weiter weiß.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    assault Hall Of Fame
    Registriert seit
    03.11.2006
    Beiträge
    2.925
    Beitragswertungen
    1 Beitragspunkte
    wart doch erstmal^^

    versuchs mal mit preg_replace() bin mir aber nicht sicher, sonst guck, wie es nero im artikelscript gemacht hat
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Flomavali gelöschter User
    Ich weiß, ich bin sehr ungeduldig. Entschuldige.

    Habe ich schon nachgesehen, doch werde ich daraus nicht schlau.

    EDIT:
    Aber am Abend wird mein Kopf klarer und ich bekomme es doch hin. Alles geloest. Aber danke!


    Zuletzt modifiziert von Flomavali am 21.10.2008 - 23:39:04
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten