Google Maps a TinyMCE-ben

Néha elkerülhetetlen különböző webmédia tartalmak beillesztése a TinyMCE-be, vagy egyéb wysywig editorba. Lehet próbálkozni a google maps iframes megoldásával (első mentésig működik is), vagy a youtube embed-jével, vagy egyéb más “különleges” kódokkal. Youtube-ra létezik plugin (nem próbáltuk), mapsre nem találtunk megoldást. Erre eszünkbe jutott egy okos nagyszerű hülye ötlet, mely vélhetően nem a legszebb megoldás, de egyszerűsége miatt gyakorlatilag bármit megeszik.

Cél az, hogy a beillesztendő kód eredeti formában jelenjen meg, azt a szerkesztő ne rontsa el. Az ötlet a következő:

  • illesszük be szerkesztő felületen a kódot (ne html nézetbe), így a kódja “htmlspecialcharolva” lesz
  • jelöljük, hogy ezzel valamit csinálni kell (nekünk), pl. ezzel: “[htmlcode]ide jön a kód[/htmlcode]“
  • az éles megjelenítésig semmi dolgunk vele
  • megjelenítés előtt a jelölt részeket vissza kell kódolni htmlbe, és a kapott kóddal lecserélni a régit

Ez a valóságban így nézki:

Kódot csak a megjelenítésnél kell alkalmazni, mely feldolgozza az összes “htmlcode”-ot:

  function parse_htmlcode($string){
      preg_match_all("/[htmlcode](.*?)[/htmlcode]/is",$string,$htmlcodes);
      foreach($htmlcodes[0] as $key => $html){
             $string = str_replace($html,htmlspecialchars_decode($htmlcodes[1][$key]),$string);
      }
      return $string;
  }// kigyűjtjük az összes htmlcode-ot
// htmlspecialchars_decode-oljuk (PHP 5 >= 5.1.0) a kapott stringet, és ezzel lecseréljük a szövegben a régit.

Akinek régebbi php verzió van telepítve, annak is van lehetősége a decodera:

if (!function_exists("htmlspecialchars_decode")) {
    function htmlspecialchars_decode($string, $quote_style = ENT_COMPAT) {
        return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, $quote_style)));
    }
}

Na?

A bejegyzés kategóriája: Nincs kategorizálva
Kiemelt szavak: , , , .
Közvetlen link.

Google Maps a TinyMCE-ben bejegyzéshez 9 hozzászólás

  1. Visszajelzés: Turulcsirip - Zoltan

  2. feki hozzászólása:

    Igazán örülök, hogy követhettem a projectet bölcsőtől az ivarérett korig.
    Respect!

  3. zsolti hozzászólása:

    öö.. izé.

  4. kow hozzászólása:

    Szépsége az egyszerűsége. Ha lehetne pontozni, most adnék egyet :)

  5. kow hozzászólása:

    Már csak egy gomb kell, ami beilleszti a csomgoló teg-eket, mert tegnap hívott egy haver, h hogy kell linket csinálni :)

  6. cadmagician hozzászólása:

    http://www.dev2.hu/2007/10/15/szerkesztett-tartalom-darabolasa/
    http://www.dev2.hu/attachments/szoveg/pagebreak.zip
    a zip a bejegyzésben tárgyalt taget szúrja be. írjátok át. :) de majd egy példányt kérek. :D

  7. Zsolt hozzászólása:

    zseniális. Most valósítottam meg egy iframe-kre specializált változatát, amely a valódi kódot php-ban tárolja, és csak egy id-t ad át.

    function parse_htmlcode($string){
    preg_match_all(“/\[iframe\]id=\d{1,2}\[\/iframe\]/is”,$string,$htmlcodes);
    foreach($htmlcodes[0] as $key => $html){
    $iframeid=sscanf($html, “[iframe]id=%d[/iframe]“);
    switch ($iframeid[0]) {
    case 1 :
    $iframe=”;
    }
    $string = str_replace($html,$iframe,$string);
    }
    return $string;
    }

  8. Majomka hozzászólása:

    én ezt úgy küszöböltem ki, hogy benyomtam egy “a” betűt amit beformáztam középre, stb utána phpmyadmin és kicseréltem az adatbáziban a szöveget, mivel ez az oldal ritkán változik lévén a hely elérhetőségeit mutatja :-)

  9. Visszajelzés: Turulcsirip - Zoltan

ITT és MOST VÁRJUK A HOZZÁSZÓLÁST!

Email cím (nem tesszük közzé) A kötelezően kitöltendő mezőket * karakterrel jelöljük

*

A következő HTML tag-ek és tulajdonságok használata engedélyezett: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>