Beiträge von pufaxx

    Ach ja:

    Also man kann damit natürlich nicht verhindern, dass man selbst Spam bekommt. Aber dass aus dem Kontaktformular heraus Spam verschickt wird, sollte damit hoffentlich unmöglich sein.

    Mir ist das im September leider passiert (wp-contactform Version 1.0) - Und die Anzahl verschickter Mails muss in weniger als einer Stunde auf mehrer tausend angewachsen sein ... Also WENN's einen trifft, dann trifft's einen HART.

    Sorry, war vorhin in Eile - normal hätte ich das auch genauer und nicht bloß aus der Erinnerung heraus hingeschrieben.

    Jetzt noch mal ausführlich:

    Alle Änderungen müssen in der Datei "wp-contactform.php" vorgenommen werden. Die "options-contactform.php" kann so bleiben, wie sie ist.

    Zur den Änderungen in "wp-contactform.php"

    Die Funktion wpcf_check_input() untersucht, ob alles korrekt ist - und bedient sich dabei der Funktion wpcf_is_malicious($input) - Im Original werden dort nur die Eingaben der Felder Name und E-Mail-Adresse überprüft. Das geschieht in den Zeilen 110 bis 113:

    Original:

    Code
    if(wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email'])) {
    		$ok = false; $reason = 'malicious';
    	}

    Da ich trotzdem zwei Mails bekommen habe, in der mein voreingestellter Betreff verändert wurde, habe ich noch mehr Zeichenketten "verboten" - und das Verbot auf alle Eingabefelder ausgedehnt.

    Meine Bearbeitung von wpcf_check_input()

    Code
    if(wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email']) || wpcf_is_malicious($_POST['wpcf_msg']) || wpcf_is_malicious($_POST['wpcf_website'])) {
    		$ok = false; $reason = 'malicious';
    	}

    Meine Bearbeitung von wpcf_is_malicious

    johannes - "mein" wp-contactform kann ich Dir gerne schicken - aber wie gesagt - ich hab dann doch recht viel dran rumgebastelt, weil ich in letzter Zeit einige Seiten, oftmals auch mit Formularen zu betreuen hatte - und ich hab da so eine Art "Strickmuster", nach dem ich jedes Formular aufbaue. Wahrscheinlich kann man sich je nach Layout auch das ein oder andere Tag sparen, aber bei dem Quelltext ist man dann in der Gestaltung flexibel. Und eben ein bisschen schneller, wenn's überall gleich "heißt"...

    wp-contactform gibt bei mir jetzt Folgendes aus: <ul>-Liste, für jede Formular-Zeile ein <li> - und für links, rechts, mitte dann ein entsprechend benanntes <span> ... Bzw. ist es bei gunnart.de noch ein <div> ...

    Ich glaub, es ist einfacher, wenn Du nur die oben beschriebenen Funktions-Änderungen in dein Original einbaust, als dass Du die ganzen geänderten HTML-Ausgabe-Geschichten wieder zurückbastelst.

    Hast du schon mal die "Lazyest Gallery" ausprobiert? Ich hab die neulich mal installiert - und bin sehr angetan. Erzeugt zwar Fehlermeldungen beim XHTML-Validator, aber nach ein paar Anpassungen im Skript (irgendwo ist ein a-Tag groß geschrieben, dann sind noch ein paar "&" statt "&amp;"s drin) und übersetzungen läuft die prima.

    Weitere Pluspunkte:
    - Man kann auf Wunsch jedem Bild einen Beschreibungstext geben
    - Jeder Galerie-Ordner kann ein Vorschau-Bild bekommen (entweder ein festgelegtes, oder per Zufall)
    - Man kann einstellen, ob die Ordner nach Name oder Datum sortiert aufgelistet werrden sollen ...
    - Die Thumbnails werden nach Erzeugung in einem "thumbs"-Unterordner abgespeichert, daher läuft das Teil einfach schneller als die Lazy Gallery
    - Man hat Einstellmöglichkeiten, in wie vielen Spalten die Galerie angezeigt werden soll
    - Man kann in den Optionen bequem eingeben, wie groß die Thumbnails werden dürfen, wieviele Thumbnails je Seite angezeigt werden
    .
    .
    .
    uvm.

    Download hier: http://www.keytwo.net

    Für meinen Geschmack gibt die Galerie noch viel zu viel HTML (und das auch noch in Tabellen) aus - aber das kann man ja anpassen.

    :)

    Interessant dazu vielleicht dieser Artikel:

    http://www.computer-security.de/content/view/77/32/

    Bei mir wird's seit Kurzem auch immer wieder versucht. Vermutlich ohne Erfolg, aber dann habe ich eine Mail bekommen, in der ein anderer Betreff als der einzig Mögliche (der, den man in den Optionen einstellen kann) angegeben war.

    Daraufhin hab ich das PlugIn noch ein bisschen weiter verändert. Bei mir sind jetzt in allen Eingabefeldern folgende Zeichenketten "verboten": \", "\r", "\n", "mime-version", "content-type", "cc:", "bcc:", "to:", "subject:", "content-transfer-encoding:", "charset"

    Such mal im PlugIn nach der Funktion is_malicous. Die kann man noch um ein paar weitere Zeichenketten erweitern. Außerdem prüft die Funktion bei mir jetzt SÄMTLICHE Eingabefelder.

    Ich bekomme zwar immer noch ab und zu komische Mails, aber in denen steht nicht mehr drin, als man ohne Hacken reinschreiben könnte. Vor allem kein Kopie an blablabla ...

    Bei Bedarf kann ich das veränderte PlugIn (ist auch übersetzt und so) gerne zur Verfügung stellen. Ich hab aber noch ein bisschen an der HTML-Ausgabe verändert, das Formular wird bei mir als ungeordnete Liste ausgegeben...

    Zitat von copernica

    Ich schreibe nur im Editor im Admin-Bereich. Für die Formatierungen habe ich mir die quicktags.js zurechtgebaut, wie ich es am meisten brauche und längere Code-Schnipsel habe ich in einem "Notepad" abgelegt, dass ich als PlugIn habe.

    Da gibt es übrigens ein sehr feines Plug-In: Nennt sich "WP-AddQuicktag", da braucht man nicht mehr in den Wordpress-Systemdateien herumzufummeln. Ist auch praktischer bei Updates.

    Download: http://roel.meurders.nl/wordpress-plug…dding-quicktags

    :)

    Ich schreib auch alles direkt im Admin-Bereich - Bisweilen benutze ich aber das Windows-Notepad, denn ich scroll nicht so gerne und guck mir längere Texte lieber komplett an.

    ich arbeite derzeit an einem shop mit, bei dem nicht alle mitarbeiter in den admin-bereich dürfen. mit dem shop selbst hab ich nichts zu tun, aber augenscheinlich hat der keine allzu gute administrator-verwaltung, so dass die ganzen "info"-seiten à la "finanzkauf", "versandkostenübersicht ausland" und so weiter und so fort nicht über das "normale" shopsystem verwaltet werden sollen.

    daher hat man sich dafür entschieden, für diese info-seiten wordpress zu benutzen (weil leicht zu bedienen usw.)

    jetzt ist da natürlich folgendes problem: kunde besucht shop, packt sachen in seinen warenkorb, klickt zwischendrin mal auf eine info-seite - will weiter einkaufen - und dann ist auf einmal der warenkorb leer, weil keine session-ID mitgeschleift wird.

    wordpress kann zwar links à la

    http://www.xyzshop.de/info/?page_id=4?bbSid=345345345

    verarbeiten, aber wir haben was an der permalink-struktur getan, um etwas übersichtlichere adressen zu erhalten. und links à la

    http://www.xyzshop.de/info/index.php…bbSid=345345345

    erzeugen eine seite mit menü, header, footer - aber ohne inhalt. gibt es da eine möglichkeit oder ein plug-in?

    also jetzt mal so als anregung:

    folgende konstellation - man lege eine "page" namens "bonbons" an - und auch eine kategorie namens "bonbons". bei aufruf der page "bonbons" erscheinen im "teaser"-DIV sämtliche blog-einträge aus der kategorie "bonbons" im "teaser"-DIV, die page "bonbons" selbst dann im "content"-DIV.

    die category.php sieht extrem schlank aus, nämlich

    PHP
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    	<h4><?php the_title(); ?></h4>
    <?php the_content(); ?>
    <?php endwhile; endif; ?>

    die index.php sieht folgendermaßen aus

    [size=10]und eine bitte an die PHP-profis - nicht lachen, wie kompliziert ich den krams bei "else" konstruiert habe... ich wollte eigentlich nur die zeichenkette ab dem letzten slash bis ende haben. geht mit sicherheit auch noch eleganter. und die blog-adresse wollte ich auch irgendwie mit <?php bloginfo('url') ?> zusammenstückeln - das hat aber nicht so ganz geklappt. wahrscheinlich ein problem mit dem unterschied zwischen " und ', wo sich ein fehler eingeschlichen hat.
    [/size]

    ach ja - damit datt janze funktioniert, muss im permalink-bereich im feld "Struktur" folgendes eingetragen sein:

    Code
    /index.php/%category%/%postname%/


    das feld "Kategorie Basis" muss leer bleiben.

    desweiteren hab ich das plug-in static front page benutzt, damit bei aufruf der seite die gleich die statische seite namens "startseite" angezeigt wird und keine blog-einträge.

    man könnte auch die als "teaser" umfunktionierten blog-einträge unabhängig von der benennung anzeigen... à la

    PHP
    <?php if (is_home()) { 
    	include ("http://www.deinblog.de/index.php/category/startseite"); 
    } elseif (is_page('13')) {
    	include ("http://www.deinblog.de/index.php/category/bonbons"); 
    } elseif (is_page('18')) {
    	include ("http://www.deinblog.de/index.php/category/bananen"); 
    } elseif (is_page('21')) {
    	include ("http://www.deinblog.de/index.php/category/wuerste"); 
    } ?>


    Monika - das ist wohl nicht so ganz das, was du möchtest, denn hier geht es darum, eine seite zu erzeugen, in der nur statische seiten benutzt werden und in der navi auftauchen, aber vielleicht kannst du das auf dein problem übertragen?

    also includen wir hier wordpress in wordpress. witzig, dass es geht. aber an der multiple-loop bin ich gescheitert. vielleicht geht das ja auch gar nicht, wenn man statische seiten mit blog-einträgen mischen will...?

    oops (grad mal nachgeguckt), die von dir ins auge gefasste galerie ist natürlich schon ne menge holz. da wird's wohl recht schwierig werden, einfach ein wordpress-template drumrum zu schrauben.

    was soll denn die geschichte nachher können? vielleicht tut's ja auch eine einfachere galerie (an lazy-gallery stört mich persönlich, dass man keinen beschreibungstext unter die bilder setzen kann - und ich hab's nicht hingekriegt, auch ordnernamen mit sonderzeichen anzulegen. es scheitert schon am minus...)

    http://www.artmedic-phpscripts.de/index.php?page…4556&s=32380103

    das dürfte z.b. relativ leicht in beschriebener weise in wordpress zu integrieren sein.

    ja, nu wäre ein link zu deiner seite hilfreich.

    aber dann ist es wohl die zweite möglichkeit, die ich angesprochen hatte:

    die browser reagieren halt unterschiedlich, wenn innerhalb gefloateter divs elemente sind, die einen abstand von soundsoviel pixeln nach oben bzw. dieser abstand nicht näher festgelegt ist. gib den obersten elementen (wahrscheinlich sind's die überschriften in der navigation und im inhaltsbereich) einen abstand von 0 nach oben - und es sollte auf allen browsern gleich angezeigt werden. (*grins*, naja - wunschdenken)

    und weil das nicht so dolle aussieht, wenn dicke überschriften direkt an oberkanten klatschen, würde ich DAS dann wieder dadurch ausgleichen, indem du den überschriften halt einen entsprechenden innenabstand gibst...

    [size=10]blöd nur, wenn die überschriften farbig hinterlegt sind o.ä. - da würde es dann wahrscheinlich auffallen, dass man "es" über ein paar umwege hingekriegt hat.[/size]

    .page_item und .current_page_item beschreiben die [*]-tags nicht-aktiver bzw. aktiver links, nicht aber den link selbst. wenn also der link selbst irgendwie markiert werden soll, muss im stylesheet

    Code
    .current_page_item a { 
    	... fett ...
    	... farbig hinterlegt ...
    	... oder was auch immer ... 
    	}


    stehen. damit werden dann aber ALLE links innerhalb des listenpunktes der klasse .current_page_item markiert. das muss man wieder aufheben:

    Code
    .current_page_item .page_item a { 
    	... nicht mehr fett ...
    	... nicht mehr farbig hinterlegt ...
    	... oder was auch immer ...
    	}


    man kann natürlich auch den "aktiven" listenpunkt farbig hinterlegen, damit ist aktive link darin ja quasi mit markiert:

    Code
    .current_page_item {
    	... farbig hinterlegt ...
    	}


    bloß ist dann der gesamte listenpunkt farbig, und es nutzt nichts, allen .page_items innerhalb von .current_page_item einen transparenten hintergrund zu geben. die sollten dann eine andere farbe bekommen:

    Code
    .current_page_item .page_item {
    	... hintergrundfarbe der navigationsleiste ...
    	}

    man kann wordpress-fremde scripts allerdings recht einfach in ein wordpress-layout packen. ich hab mal ein newsletter-script eingebunden, ich schätze, dass das auch mit "fremden" galerien funktionieren sollte. in meinem fall hieß das newsletter-hauptscript "newsletter.php" und lag in einem ordner "newsletter" (direkt im wordpress-hauptverzeichnis)

    das "newsletter.php" hab ich folgendermaßen verändert:

    das kann dann je nach gewünschtem layout natürlich ein bisschen anders sein, wichtig ist halt nur, dass nach wp-blog-header.php gefragt wird. dann muss man quasi sein index.php aus dem template hernehmen - und dort, wo normalerweise die inhalte stehen, das komplette originalskript einfügen. alle rückmeldungen des skripts sowie die seite nach aufrufen des bestätigungs-links sehen in dem newsletter fall so aus, wie eine normale wordpress-seite (mit den newsletter-formularen bzw. meldungen im content-div).

    für den besucher sieht es also so aus, als sei alles aus einem guss. dass man dann den newsletter bzw. deine galerie weiterhin über einen eigenen admin-bereich verwalten muss, ist ja eigentlich nicht so schlimm, oder?

    und den link zum newsletter bzw. zur galerie muss man dann per hand irgendwo in seine sidebar.php oder wo auch immer einfügen.

    die lazy-gallery erzeugt xhtml-fehler.

    wenn man wert darauf legt, einen "valid xhtml"-link in seinem footer präsentieren zu können, sind ein paar abänderungen nötig.

    1: lazy-index.php (im hauptverzeichnis)
    dort sollte man den link aufs stylesheet entfernen und diesen in seinem template in der header.php einfügen


    2: lazy-gallery.php im ordner "wp-content/plugins"
    neben den sprachlichen anpassungen (also übersetzen etc.) einfach folgendes tun [und bitte vorher eine sicherheitskopie machen]

    a. "suchen und ersetzen"

    Code

    durch

    Code


    --> dürfte klar sein.

    b. "suchen und ersetzen"

    Code

    durch

    Code


    --> ebenfalls.

    c. "suchen und ersetzen"

    Code
    '&thumb=0">

    durch

    Code
    '&amp;thumb=0" alt="Vorschau f&uuml;r '.$img.'" />


    --> der xhtml-validator bemängelt nämlich sonst immer, dass &thumb= kein korrektes html-entity ist. also das & einfach durch &amp; ersetzen - es funktioniert. desweiteren bemängelt der validator normalerweise das fehlen eines alt-textes. nach der modifikation heißt jeder thumbnail im ergebnis "Vorschau für [bildname]" - und der validator ist zufrieden.

    :)

    ich schraub grad an einer seite, auf der ich deine übersetzung verwende. vielen dank!

    was mir aufgefallen ist: bei eingabe der "umfrage-frage" muss man ä durch &auml; ersetzen. sonst spuckt der xhtml-validator fehlermeldungen aus.

    und in der democracy.php hab ich "onSubmit" durch "onsubmit" ersetzt, weil sonst auch dauernd fehlermeldungen kommen.

    ansonsten lässt sich das skript ja ganz gut den eigenen bedürfnissen anpassen. persönlich mag ich es nicht so gerne, wenn auf einer deutschen seite "vote!" oder "12 votings" steht - ich hab das durch "Abstimmen" und ... "Stimmen" ersetzt.

    eins interessiert mich noch: gibt es eine möglichkeit, mehrere umfragen gleichzeitig laufen zu lassen? ich hab noch nicht die gelegenheit gehabt, mich wirklich intensiv mit dem plug-in zu beschäftigen, vielleicht weißt du ja was?

    der internet explorer macht gerne mist mit margins, wenn das betreffende element auf links oder rechts umfließen gesetzt ist.

    hat mich auch schon desöfteren zum verzweifeln (und zum normalerweise-überflüssige-divs-drumherum-bauen) gebracht... vielleicht kommst du weiter, wenn du dem element außendrum einen innenabstand (padding) gibst?

    aber vorsicht: wenn du einem 200 pixel breiten element einen innenabstand von 10 pixeln an jeder kante gibst, wird es 220 pixel breit. in allen browsern, außer dem IE. juhu.

    [wobei ich ja jetzt ganz ehrlich sagen muss, dass ich das verhalten des internet explorers DA tatsächlich mal sehr viel praktischer finde. in layout-programmen wird ne textbox ja auch nicht breiter, bloß weil man den innenabstand größer macht...]

    was noch sein kann: headlines haben einen standard-abstand nach oben. wenn die headlines in einem gefloateten element (links oder rechts umfließend) auftauchen, ignoriert der IE diesen abstand. firefox, netscape usw. tun das nicht. du könntest dir damit helfen, dass du den ersten überschriften einen außenabstand (margin) nach oben von 0 pixeln gibst. das mag zwar nicht gewünscht sein, sieht dann aber wenigstens schon mal auf allen browsern gleich aus. den rest kannst du dann wieder ausgleichen, indem du den überschriften selbst wieder einen innenabstand (padding) oben gibst.

    dann und wann brauch ich einfach schon mal tabellen. insbesondere bei so geschichten wie eBay-Templates - und bei so ziemlich allem, wo leute in versuchung geführt werden könnten, einfach alles mögliche reinzuschreiben, bloß, weil's reinpasst.

    und ein vergessenes </div> kann einem so ziemlich alles versauen. okay, bei ner internet-seite vielleicht nicht so schlimm, wenn falsch, dann eben ändern. bei eBay aber fatal - wenn falsch und schon jemand drauf geboten, dann kann man NICHTS mehr ändern.

    :)

    und: EINE tabelle find ich für manche sachen weitaus weniger stressig, als z.b. zusätzliche divs irgendwo reinzuschachteln zu müssen, bloß weil der IE in sachen breite und höhe auf "padding" und ränder anders reagiert, als er sollte. und dummerweise soll ich in diesem fall auch noch rücksicht auf den IE5 nehmen - und damit scheidet für mich tabellenfrei fast schon aus. denn wenn's nach mehr als zwei stunden gefummel dort IMMER noch nicht so angezeigt wird, wie gedacht - dann nehme ich eben ne tabelle. sonst sitze ich am ende so lange vor dem ganzen quatsch, bis ich vor lauter viereckigen augen einen blindenbrowser brauche...

    sorry für size=9