images/smilies/face-tongue-out.svg
author Dan
Fri, 05 Oct 2007 01:57:00 -0400
changeset 161 e1a22031b5bd
parent 0 902822492a68
permissions -rw-r--r--
Major revamps to the template parser. Fixed a few security holes that could allow PHP to be injected in untimely places in TPL code. Improved Ux for XSS attempt in tplWikiFormat. Documented many functions. Backported much cleaner parser from 2.0 branch. Beautified a lot of code in the depths of the template class. Pretty much a small-scale Extreme Makeover.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://web.resource.org/cc/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="48px"
   height="48px"
   id="svg4376"
   sodipodi:version="0.32"
   inkscape:version="0.45"
   sodipodi:docbase="/home/dan/emotes"
   sodipodi:docname="face-smile-big.svg"
   inkscape:output_extension="org.inkscape.output.svg.inkscape"
   sodipodi:modified="true">
  <defs
     id="defs3">
    <linearGradient
       id="linearGradient3976">
      <stop
         id="stop3978"
         offset="0"
         style="stop-color:#a40000;stop-opacity:1;" />
      <stop
         id="stop3980"
         offset="1"
         style="stop-color:#6a0000;stop-opacity:1;" />
    </linearGradient>
    <linearGradient
       id="linearGradient3290">
      <stop
         style="stop-color:#fffcde;stop-opacity:1.0000000;"
         offset="0.0000000"
         id="stop3292" />
      <stop
         id="stop3294"
         offset="0.64485979"
         style="stop-color:#f6e76a;stop-opacity:1.0000000;" />
      <stop
         style="stop-color:#ffb738;stop-opacity:1.0000000;"
         offset="1.0000000"
         id="stop3296" />
    </linearGradient>
    <linearGradient
       id="linearGradient3068">
      <stop
         style="stop-color:#696969;stop-opacity:1;"
         offset="0"
         id="stop3070" />
      <stop
         id="stop3076"
         offset="0.34579438"
         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
      <stop
         style="stop-color:#ffffff;stop-opacity:1.0000000;"
         offset="0.72486681"
         id="stop3078" />
      <stop
         style="stop-color:#5c5c5c;stop-opacity:1;"
         offset="1"
         id="stop3072" />
    </linearGradient>
    <linearGradient
       id="linearGradient3050">
      <stop
         style="stop-color:#a40000;stop-opacity:1;"
         offset="0"
         id="stop3052" />
      <stop
         style="stop-color:#ec0000;stop-opacity:1.0000000;"
         offset="1.0000000"
         id="stop3054" />
    </linearGradient>
    <linearGradient
       id="linearGradient4565">
      <stop
         style="stop-color:#000000;stop-opacity:1;"
         offset="0"
         id="stop4567" />
      <stop
         style="stop-color:#000000;stop-opacity:0;"
         offset="1"
         id="stop4569" />
    </linearGradient>
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient4565"
       id="radialGradient1360"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,25.71429)"
       cx="24.714285"
       cy="38.571430"
       fx="24.714285"
       fy="38.571430"
       r="19.714285" />
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3290"
       id="radialGradient1362"
       gradientUnits="userSpaceOnUse"
       cx="29.288071"
       cy="15.720984"
       fx="29.158466"
       fy="15.755712"
       r="8.9020796" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3068"
       id="linearGradient1372"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.900635,0,0,0.512797,2.616633,10.42827)"
       x1="11.250000"
       y1="26.093750"
       x2="36.875000"
       y2="26.093750" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3050"
       id="linearGradient1375"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.900634,0,0,0.512797,2.420862,9.703722)"
       x1="23.031250"
       y1="24.312500"
       x2="23.031250"
       y2="36.249878" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3050"
       id="linearGradient3966"
       x1="24.692268"
       y1="36.41777"
       x2="24.692268"
       y2="26.339582"
       gradientUnits="userSpaceOnUse"
       gradientTransform="translate(0.5820313,-1.4726563)" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3976"
       id="linearGradient3974"
       x1="23.838776"
       y1="25.481133"
       x2="23.838776"
       y2="36.279236"
       gradientUnits="userSpaceOnUse"
       gradientTransform="translate(0.5820313,-1.4726563)" />
  </defs>
  <sodipodi:namedview
     fill="#a40000"
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="0.19607843"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="7.9999999"
     inkscape:cx="24.321501"
     inkscape:cy="24"
     inkscape:current-layer="layer1"
     showgrid="false"
     inkscape:grid-bbox="true"
     inkscape:document-units="px"
     inkscape:showpageshadow="false"
     inkscape:window-width="1024"
     inkscape:window-height="740"
     inkscape:window-x="0"
     inkscape:window-y="0"
     stroke="#a40000" />
  <metadata
     id="metadata4">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title>Face - Laughing</dc:title>
        <dc:subject>
          <rdf:Bag>
            <rdf:li>emoticon</rdf:li>
            <rdf:li>emote</rdf:li>
            <rdf:li>smiley</rdf:li>
            <rdf:li>laughing</rdf:li>
            <rdf:li>:-D</rdf:li>
            <rdf:li>:D</rdf:li>
          </rdf:Bag>
        </dc:subject>
        <cc:license
           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
        <dc:creator>
          <cc:Agent>
            <dc:title>Jakub Steiner</dc:title>
          </cc:Agent>
        </dc:creator>
        <dc:source>http://jimmac.musichall.cz</dc:source>
      </cc:Work>
      <cc:License
         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
        <cc:permits
           rdf:resource="http://web.resource.org/cc/Reproduction" />
        <cc:permits
           rdf:resource="http://web.resource.org/cc/Distribution" />
        <cc:requires
           rdf:resource="http://web.resource.org/cc/Notice" />
        <cc:requires
           rdf:resource="http://web.resource.org/cc/Attribution" />
        <cc:permits
           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
        <cc:requires
           rdf:resource="http://web.resource.org/cc/ShareAlike" />
      </cc:License>
    </rdf:RDF>
  </metadata>
  <g
     id="layer1"
     inkscape:label="Layer 1"
     inkscape:groupmode="layer">
    <path
       sodipodi:type="arc"
       style="opacity:0.53164560;color:#000000;fill:url(#radialGradient1360);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
       id="path4563"
       sodipodi:cx="24.714285"
       sodipodi:cy="38.571430"
       sodipodi:rx="19.714285"
       sodipodi:ry="6.5714288"
       d="M 44.428570 38.571430 A 19.714285 6.5714288 0 1 1  5.0000000,38.571430 A 19.714285 6.5714288 0 1 1  44.428570 38.571430 z" />
    <path
       sodipodi:type="arc"
       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1362);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
       id="path4320"
       sodipodi:cx="31.112698"
       sodipodi:cy="19.008621"
       sodipodi:rx="8.6620579"
       sodipodi:ry="8.6620579"
       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
       transform="matrix(2.083142,0.000000,0.000000,2.083142,-40.54715,-16.49224)" />
    <path
       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
       sodipodi:ry="8.6620579"
       sodipodi:rx="8.6620579"
       sodipodi:cy="19.008621"
       sodipodi:cx="31.112698"
       id="path4322"
       style="opacity:0.67721522;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
       sodipodi:type="arc"
       transform="matrix(1.979782,0.000000,0.000000,1.979782,-37.33128,-14.52746)" />
    <path
       style="opacity:1;color:#000000;fill:url(#linearGradient1375);fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
       d="M 12.46856,21.582101 C 9.8316492,20.960126 14.333556,28.420831 24.261236,28.420831 C 34.091034,28.420831 38.930429,20.977414 36.053912,21.582101 C 28.547558,23.160051 18.888402,23.096367 12.46856,21.582101 z "
       id="path2756"
       sodipodi:nodetypes="czss" />
    <path
       style="opacity:1;color:#000000;fill:url(#linearGradient1372);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
       d="M 13.536826,24.177654 L 35.068859,24.117737 C 35.851954,23.198123 36.967052,21.745691 36.121189,21.874738 C 28.097871,23.098802 19.550104,23.670967 12.259336,21.774407 C 11.09799,21.472303 12.411126,23.397376 13.536826,24.177654 z "
       id="path3058"
       sodipodi:nodetypes="ccssc" />
    <path
       sodipodi:type="arc"
       style="fill:none;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
       id="path1364"
       sodipodi:cx="-3.8125000"
       sodipodi:cy="1.8750000"
       sodipodi:rx="2.9375000"
       sodipodi:ry="2.8750000"
       d="M -0.87500000,1.8750000 A 2.9375000,2.8750000 0 0 1 -6.3564497,3.3124999"
       sodipodi:start="0.0000000"
       sodipodi:end="2.6179939"
       sodipodi:open="true"
       transform="matrix(-0.965926,-0.258819,0.258819,-0.965926,24.53442,17.20131)" />
    <path
       transform="matrix(-0.965926,-0.258819,0.258819,-0.965926,15.78442,17.20131)"
       sodipodi:open="true"
       sodipodi:end="2.6179939"
       sodipodi:start="0.0000000"
       d="M -0.87500000,1.8750000 A 2.9375000,2.8750000 0 0 1 -6.3564497,3.3124999"
       sodipodi:ry="2.8750000"
       sodipodi:rx="2.9375000"
       sodipodi:cy="1.8750000"
       sodipodi:cx="-3.8125000"
       id="path2094"
       style="fill:none;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
       sodipodi:type="arc" />
    <path
       style="fill:url(#linearGradient3966);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3974);stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 20.746765,24.465604 C 20.720179,24.443774 19.4343,30.356408 20.839213,32.80155 C 21.198259,33.601658 21.843112,35.125247 23.883409,35.125247 C 25.923707,35.125247 26.510689,34.47698 27.452089,32.643008 C 28.684434,30.068783 27.19429,24.450133 27.19429,24.450133 L 20.746765,24.465604 z "
       id="path2989"
       sodipodi:nodetypes="ccsccc" />
    <path
       style="fill:#360000;fill-opacity:1;fill-rule:evenodd;stroke:#460000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 24.303289,25.52862 C 24.303289,25.52862 23.056987,28.928613 24.02065,33.856952 C 23.075842,28.78291 24.280044,25.448151 24.303289,25.52862 z "
       id="path4951"
       sodipodi:nodetypes="ccc" />
  </g>
</svg>