Ergebnis 1 bis 9 von 9

Thema: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

  1. #1
    Interessierte/r
    Registriert seit
    24.06.2010
    Beiträge
    129
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Hallo liebe Community,

    ich hab' mal wieder 'ne Frage..
    ich habe ein CMS, indem man News schreiben und bearbeiten kann. Das gleiche wollte ich jetzt auch mit einer Seite machen. Nur soll die Seite eben nicht nur so knapp wie 'ne News sein, sondern als ganze Seite ausgegeben werden!
    Theoretisch muss ich ja eigentlich "nur" die Klasse News "kopieren" und umschreiben. Wie sage ich aber dann in PHP, dass er es als ganze Seite ausgeben "soll?

    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  2. #2
    Pion
    Gast

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Wie wärs wenn du uns deine kopierte Klasse hier postest?

    mfg

  3. #3
    Interessierte/r
    Themenstarter

    Registriert seit
    24.06.2010
    Beiträge
    129
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Jawohl
    Als erstes die Klasse:

    PHP-Code:
        class site {
            private 
    $intID;
            private 
    $intDatum;
            private 
    $strTitel;
            private 
    $strInhalt;
            private 
    $strFile;
            private 
    $intAusrichtung// 1 = left, 2 = center, 3 = right
            
    private $intStatus// 1 für on, 0 für off
            
    private $strOrdner;
            private 
    $bild;
            private 
    $strTabelle;
            private 
    $db;
            private 
    $sprachID;

            function 
    site(){
                
    $this->db = new Connect();
                
    $this->db $this->db->gibConnect();
                
    $this->strTabelle 'site';
                
    $this->strOrdner "Bilder/Site/";
                
    $this->bild = new Bild($this->strOrdner$this->strTabelle);
            }

            function 
    siteAdd($titel$inhalt$_FILES$position){
                
    $this->intDatum time();
                
    $this->strTitel $titel;
                
    $this->strInhalt $inhalt;
                
    $this->strInhalt nl2br($this->strInhalt);
                
    $this->sprachID 1;
                
    $this->intStatus 0;
                
    $sql "INSERT INTO seite
                        (seiteDatum, seiteTitel, seiteInhalt, seiteStatus, sprachID)
                        VALUES
                        ('"
    .$this->intDatum."', '".$this->strTitel."', '".$this->strInhalt."', '".$this->sprachID."',
                    '"
    .$this->intStatus."')";
                
    $result $this->db->query($sql);

                if(!
    $result): $ausgabe "Die Seite konnte nicht gespeichert werden.";
                else: 
    $ausgabe "Die Seite wurde gespeichert.";
                endif;
                return 
    $ausgabe;
            }

            function 
    statusEdit($id){
                
    $this->intID $id;
                
    $result $this->db->query("SELECT seiteStatus FROM seite WHERE seiteID = '".$this->intID."'");
                
    $zeile $result->fetch_assoc();
                
    $this->intStatus $zeile['seiteStatus'];
                if(
    $this->intStatus == 1): $i 0;
                elseif(
    $this->intStatus == 0): $i 1;
                endif;
                
    $sql "UPDATE seite SET seiteStatus = '".$i."' WHERE seiteID = '".$this->intID."'";
                
    $result $this->db->query($sql);
            }

            function 
    siteLoeschen(){

            }

            function 
    siteEdit($id$titel$inhalt$_FILES$position){
                
    $this->intID $id;
                
    $this->strTitel $titel;
                
    $this->strInhalt $inhalt;
                
    $this->strInhalt nl2br($this->strInhalt);
                if(!empty(
    $_FILES['userfile']['name'])){
                    
    $this->strFile $this->bild->speicherBild($_FILES);
                    
    $bild "siteBild = '".$this->strFile."'";
                }else{
                    
    $bild "";
                }
                
    $this->intAusrichtung $position;
                
    $this->intStatus 0;
                
    $sql "UPDATE site SET
                        siteTitel = '"
    .$this->strTitel."',
                        siteInhalt = '"
    .$this->strInhalt."'
                        WHERE siteID = '"
    .$this->intID."'";

                
    $result $this->db->query($sql);

                if(!
    $result): $ausgabe "Die Seite konnte nicht gespeichert werden.";
                else: 
    $ausgabe "Die Seite wurde gespeichert.";
                endif;
                return 
    $ausgabe;
            }

            function 
    siteShow($id){
                
    $this->intID $id;
                
    $sql "SELECT * FROM seite WHERE seiteID = '".$this->intID."'";
                
    $result $this->db->query($sql);
                
    $zeile $result->fetch_assoc();
                
    $this->strTitel $zeile['seiteTitel'];
                
    $datum $zeile['seiteDatum'];
                
    $this->intDatum 'Vom '.date('d.m.Y'$datum);
                
    $this->strInhalt $zeile['seiteInhalt'];
                
    $suchmuster = array('~\[f\]~''~\[/f\]~''~\[k\]~''~\[/k\]~''~\[u\]~''~\[/u\]~');
                
    $ersetzen = array('<b>''</b>''<i>''</i>''<u>''</u>');
                
    $this->strInhalt preg_replace  $suchmuster $ersetzen$this->strInhalt );
                
    $this->strFile $zeile['seiteBild'];
                
    $this->intAusrichtung $zeile['seiteAusrichtung'];
                if(!empty(
    $this->strFile)):
                    switch(
    $this->intAusrichtung){
                        case 
    1$position 'left';
                                break;
                        case 
    2$position 'center';
                                
    $umbruch '<br />';
                                break;
                        case 
    3$position 'right';
                                break;
                        default: 
    $position 'left';
                        }
                    
    $bild '<a href="'.$_SERVER['PHP_SELF'].'?datei=bild&site='.$this->intID.'"><img alt="bild'.$this->intID.'" src="'.$this->strFile.'" align="'.$position.'" border="0" class="picture" /></a>';
                endif;
                
    $ausgabe'<div class="site_headline">'.$this->strTitel.'</div>
                           <div class="site_datum">'
    .$this->intDatum.'</div>
                           <div class="site_inhalt">'
    .$bild.$umbruch.$this->strInhalt.'<br /><br /></div>';
                return 
    $ausgabe;
            }

            function 
    siteStartseite($db){
                
    $sql "SELECT einstellungenWert FROM einstellungen WHERE einstellungenTyp = 'seite'";
                
    $result $this->db->query($sql);
                
    $zeile $result->fetch_assoc();
                
    $sql "SELECT seiteID FROM seite WHERE seiteStatus = 1 ORDER BY seiteID DESC LIMIT ".$zeile['einstellungenWert'];
                
    $result $this->db->query($sql);
                if(!
    $result):
                    return 
    '';
                else:
                    
    $ausgabe '';
                    while(
    $zeile $result->fetch_assoc()){
                        
    $ausgabe .= $this->siteShow($zeile['siteID']);
                    }
                    return 
    $ausgabe;
                endif;
            }

            function 
    siteGib($id){
                
    $this->intID $id;
                
    $sql "SELECT * FROM seite WHERE seiteID = '".$this->intID."'";
                
    $result $this->db->query($sql);
                
    $zeile $result->fetch_assoc();
                
    $suchen '<br />';
                
    $ersetzen '';
                
    $this->strInhalt str_replace($suchen$ersetzen,  $zeile['seiteInhalt']);
                
    $ausgabe = array($zeile['seiteID'], $zeile['seiteTitel'], $this->strInhalt$zeile['seiteBild'], $zeile['seiteAusrichtung']);
                return 
    $ausgabe;
            }

            function 
    siteBildShow($id){
                return 
    $this->bild->bildShow($id);
            }
        } 
    Und wenn man eine neue Seite erstellen will führt er folgendes aus:
    PHP-Code:
    <?php include('formular.php'); ?>
    <?php

        
    if(isset($_POST['abschicken'])):
            
    $site = new site();
            
    $ausgabe $site->siteAdd($_POST['titel'], $_POST['eingabe'], $_FILES$_POST['position']);
            echo 
    $ausgabe;
        endif;

    ?>
    In der formular.php wird nur der TinyMCE eingefügt und dann quasi gespeichert. Soll ich das auch noch posten?
    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  4. #4
    Pion
    Gast

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Welches CMS ist den das ?

    Ja aber wo ist das problem nun die Seite wird doch korrekt ausgegebn?

    PS XSS Gefahr bei PHP_SELF


    mfg
    Geändert von Pion (09.09.2010 um 21:09 Uhr)

  5. #5
    Interessierte/r
    Themenstarter

    Registriert seit
    24.06.2010
    Beiträge
    129
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Eigenes
    Geschrieben von 'nem Freund ich und verbesser jetzt 'n paar Sachen bzw. will's noch 'n bisschen erweitern
    Ja aber es wird eben als "kleine News" ausgegeben und nicht als ganze Seite
    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  6. #6
    Pion
    Gast

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Versteh nicht was du meinst bei siteShow wird ja aus der Spalte "seiteInhalt" der Inhalt geladen, da wird nix abgeschnitten sondern genau was da drin steht ausgegebn

    Aber was meinst du den


    mfg

  7. #7
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Nur mal so nebenbei:
    Das Datenbankobjekt im Konstruktor der Klasse zu erstellen ist ganz schlecht. Wenn die Datenbankverbindung ausschließlich in dieser Klasse und nirgends sonst benötigt wird, dann ist es noch halbwegs vertretbar, wenn auch immer noch schlecht in Sachen Wiederverwendbarkeit.
    Ich gehe aber mal davon aus, dass die DB-Verbindung auch von anderen Klassen benötigt wird. Generiert da jede Klasse ein eigenes DB-Objekt? Sehr unperformant.
    Sinnvoller ist es, das Datenbankobjekt im Hauptprogramm zu erzeugen und den Klassen die es benötigen als Parameter an den Konstruktor zu übergeben.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  8. #8
    Pion
    Gast

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Hm ohne die Größe der Connect Klasse zu kennen könnte in dieser Klasse durchaus ein Verfahren sein welches nur einmal eine DB Connect erstellt und beim 2ten Aufruf diesen zurück gibt

    Ich bin aber auch für DI oder Registry bei DB

  9. #9
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Seite anstatt "News" ausgeben lassen mit TinyMCE und PHP

    Zitat Zitat von Pion Beitrag anzeigen
    Hm ohne die Größe der Connect Klasse zu kennen könnte in dieser Klasse durchaus ein Verfahren sein welches nur einmal eine DB Connect erstellt und beim 2ten Aufruf diesen zurück gibt

    Ich bin aber auch für DI oder Registry bei DB
    Ah stimmt, da hast du Recht.
    Ich nutze aktuell eigentlich nur noch DI.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

Ähnliche Themen

  1. Hilfe - Umfrage: Anstatt "mailto=xy" Datei auf Server ablegen
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 05.11.2009, 10:48
  2. Bei neuen News einen "Neu"-Knopf anzeigen
    Von anagramm im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 04.11.2009, 22:34
  3. wieso kann ich zahlen in variablen nicht in "" ausgeben
    Von reeperbahner11 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 01.07.2009, 01:23
  4. News "Instanz-übergreifend"
    Von Mettbert im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 1
    Letzter Beitrag: 31.08.2007, 17:12
  5. jeden cookie der mir "frz_" beginnt ausgeben
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 13.10.2006, 00:27

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •