images/smilies/face-oops.svg
author Dan
Fri, 05 Oct 2007 01:57:00 -0400
changeset 162 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"
   sodipodi:docname="face-oops.svg"
   sodipodi:docbase="/home/dan/emotes"
   inkscape:version="0.45"
   sodipodi:version="0.32"
   id="svg4376"
   height="48px"
   width="48px"
   inkscape:output_extension="org.inkscape.output.svg.inkscape"
   sodipodi:modified="true">
  <defs
     id="defs3">
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2120"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1,0,0,1.159815,18.5,-2.815047)"
       x1="14.000000"
       y1="21.062500"
       x2="14.500000"
       y2="33.431156" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2116"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1,0,0,1.171895,2.5,-3.141166)"
       x1="14.000000"
       y1="21.062500"
       x2="13.500000"
       y2="33.426670" />
    <linearGradient
       id="linearGradient2102">
      <stop
         style="stop-color:#000000;stop-opacity:1;"
         offset="0"
         id="stop2104" />
      <stop
         style="stop-color:#000000;stop-opacity:0;"
         offset="1"
         id="stop2106" />
    </linearGradient>
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2112"
       gradientUnits="userSpaceOnUse"
       x1="14.000000"
       y1="21.062500"
       x2="14"
       y2="34.305527"
       gradientTransform="matrix(1,0,0,1.404523,10.5,-7.966331)" />
    <linearGradient
       id="linearGradient3068">
      <stop
         style="stop-color:#cccccc;stop-opacity:1.0000000;"
         offset="0.0000000"
         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:#cecece;stop-opacity:1.0000000;"
         offset="1.0000000"
         id="stop3072" />
    </linearGradient>
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3068"
       id="linearGradient2132"
       x1="9.7892637"
       y1="29.629091"
       x2="38.390732"
       y2="29.629091"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.048897,0,0,1,-1.267931,0)" />
    <linearGradient
       id="linearGradient8156">
      <stop
         style="stop-color:#ac0000;stop-opacity:0.62127662;"
         offset="0"
         id="stop8158" />
      <stop
         style="stop-color:#ac0000;stop-opacity:0;"
         offset="1"
         id="stop8160" />
    </linearGradient>
    <linearGradient
       id="linearGradient3290">
      <stop
         id="stop3292"
         offset="0.0000000"
         style="stop-color:#fffcde;stop-opacity:1.0000000;" />
      <stop
         style="stop-color:#f6e76a;stop-opacity:1.0000000;"
         offset="0.64485979"
         id="stop3294" />
      <stop
         id="stop3296"
         offset="1.0000000"
         style="stop-color:#ffb738;stop-opacity:1.0000000;" />
    </linearGradient>
    <radialGradient
       r="8.9020796"
       fy="15.755712"
       fx="29.158466"
       cy="15.720984"
       cx="29.288071"
       gradientUnits="userSpaceOnUse"
       id="radialGradient2714"
       xlink:href="#linearGradient3290"
       inkscape:collect="always" />
    <linearGradient
       id="linearGradient2509">
      <stop
         style="stop-color:#fffbd5;stop-opacity:1.0000000;"
         offset="0.0000000"
         id="stop2511" />
      <stop
         style="stop-color:#edd400;stop-opacity:1.0000000;"
         offset="1.0000000"
         id="stop2513" />
    </linearGradient>
    <radialGradient
       gradientTransform="matrix(1.25,0,0,1.2206272,-6.479446,-11.617797)"
       id="aigrd2"
       cx="25.0527"
       cy="39.5928"
       r="15.7572"
       fx="25.0527"
       fy="39.5928"
       gradientUnits="userSpaceOnUse">
      <stop
         offset="0.0000000"
         style="stop-color:#777777;stop-opacity:1.0000000;"
         id="stop8602" />
      <stop
         offset="1"
         style="stop-color:#000000"
         id="stop8604" />
    </radialGradient>
    <linearGradient
       id="linearGradient4565"
       inkscape:collect="always">
      <stop
         id="stop4567"
         offset="0"
         style="stop-color:#000000;stop-opacity:1;" />
      <stop
         id="stop4569"
         offset="1"
         style="stop-color:#000000;stop-opacity:0;" />
    </linearGradient>
    <linearGradient
       id="linearGradient3824">
      <stop
         id="stop3826"
         offset="0"
         style="stop-color:#ffffff;stop-opacity:1;" />
      <stop
         id="stop3828"
         offset="1.0000000"
         style="stop-color:#c9c9c9;stop-opacity:1.0000000;" />
    </linearGradient>
    <linearGradient
       id="linearGradient3800">
      <stop
         id="stop3802"
         offset="0.0000000"
         style="stop-color:#ffeed6;stop-opacity:1.0000000;" />
      <stop
         style="stop-color:#e49c2f;stop-opacity:1.0000000;"
         offset="0.50000000"
         id="stop8664" />
      <stop
         id="stop3804"
         offset="1.0000000"
         style="stop-color:#ffc66c;stop-opacity:1.0000000;" />
    </linearGradient>
    <radialGradient
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,25.71429)"
       r="19.714285"
       fy="38.571430"
       fx="24.714285"
       cy="38.571430"
       cx="24.714285"
       id="radialGradient4571"
       xlink:href="#linearGradient4565"
       inkscape:collect="always" />
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient8156"
       id="radialGradient8164"
       cx="15.153078"
       cy="28.062902"
       fx="15.153078"
       fy="28.062902"
       r="5.0579581"
       gradientTransform="matrix(1,0,0,1.3196488,0,-8.9702732)"
       gradientUnits="userSpaceOnUse" />
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient8156"
       id="radialGradient8170"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1,0,0,1.3196488,0,-8.9702732)"
       cx="15.153078"
       cy="28.062902"
       fx="15.153078"
       fy="28.062902"
       r="5.0579581" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2226"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.609351,0,0,0.34239,20.743344,20.335896)"
       x1="14.000000"
       y1="21.062500"
       x2="14.500000"
       y2="33.431156" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2229"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.609351,0,0,0.3526107,10.993725,20.017144)"
       x1="14.000000"
       y1="21.062500"
       x2="13.500000"
       y2="33.426670" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2232"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.609351,0,0,0.4226059,15.868535,18.565304)"
       x1="14.000000"
       y1="21.062500"
       x2="14"
       y2="34.305527" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3068"
       id="linearGradient2235"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.6446665,0,0,0.2104377,8.5621255,24.461994)"
       x1="9.7892637"
       y1="29.629091"
       x2="38.390732"
       y2="29.629091" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient3068"
       id="linearGradient2252"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.6446665,0,0,0.2104377,8.5621255,24.461994)"
       x1="9.7892637"
       y1="29.629091"
       x2="38.390732"
       y2="29.629091" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2254"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.609351,0,0,0.4226059,15.868535,18.565304)"
       x1="14.000000"
       y1="21.062500"
       x2="14"
       y2="34.305527" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2256"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.609351,0,0,0.3526107,10.993725,20.017144)"
       x1="14.000000"
       y1="21.062500"
       x2="13.500000"
       y2="33.426670" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2258"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.609351,0,0,0.34239,20.743344,20.335896)"
       x1="14.000000"
       y1="21.062500"
       x2="14.500000"
       y2="33.431156" />
  </defs>
  <sodipodi:namedview
     inkscape:window-y="0"
     inkscape:window-x="50"
     inkscape:window-height="735"
     inkscape:window-width="822"
     inkscape:showpageshadow="false"
     inkscape:document-units="px"
     inkscape:grid-bbox="true"
     showgrid="false"
     inkscape:current-layer="layer1"
     inkscape:cy="25.694057"
     inkscape:cx="25.411306"
     inkscape:zoom="11.313708"
     inkscape:pageshadow="2"
     inkscape:pageopacity="0.0"
     borderopacity="0.19607843"
     bordercolor="#666666"
     pagecolor="#ffffff"
     id="base"
     fill="#edd400" />
  <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 - Happy</dc:title>
        <dc:subject>
          <rdf:Bag>
            <rdf:li>emoticon</rdf:li>
            <rdf:li>emote</rdf:li>
            <rdf:li>smiley</rdf:li>
            <rdf:li>happy</rdf:li>
            <rdf:li>:)</rdf:li>
            <rdf:li>:-)</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
     inkscape:groupmode="layer"
     inkscape:label="Layer 1"
     id="layer1">
    <path
       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"
       sodipodi:ry="6.5714288"
       sodipodi:rx="19.714285"
       sodipodi:cy="38.571430"
       sodipodi:cx="24.714285"
       id="path4563"
       style="opacity:0.53164557;color:#000000;fill:url(#radialGradient4571);fill-opacity:1.0;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"
       sodipodi:type="arc" />
    <path
       transform="matrix(2.083142,0.000000,0.000000,2.083142,-40.54715,-16.49224)"
       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="path4320"
       style="overflow:visible;display:inline;visibility:visible;stroke-opacity:1.0000000;stroke-dashoffset:0.0000000;stroke-dasharray:none;stroke-miterlimit:4.0000000;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.48004404;stroke:#9c8c0a;fill-rule:evenodd;fill-opacity:1.0000000;fill:url(#radialGradient2714);color:#000000;opacity:1.0000000"
       sodipodi:type="arc" />
    <path
       sodipodi:type="arc"
       style="fill:url(#radialGradient8164);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       id="path7181"
       sodipodi:cx="15.153078"
       sodipodi:cy="28.062902"
       sodipodi:rx="4.8079581"
       sodipodi:ry="6.4247284"
       d="M 19.961036 28.062902 A 4.8079581 6.4247284 0 1 1  10.34512,28.062902 A 4.8079581 6.4247284 0 1 1  19.961036 28.062902 z"
       transform="translate(-0.6518641,-3.2816311)" />
    <path
       transform="matrix(1.979782,0.000000,0.000000,1.979782,-37.33128,-14.52746)"
       sodipodi:type="arc"
       style="opacity:0.67721519;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"
       id="path4322"
       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" />
    <g
       transform="matrix(1,0,0,0.7991174,0.353553,4.4409911)"
       id="g8666">
      <path
         style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
         d="M 21.398158,15.321428 C 21.398158,17.821428 20.273158,19.821428 18.898158,19.821428 C 17.523158,19.821428 16.273158,17.821428 16.273158,15.321428 C 16.273158,12.821428 17.398158,10.821428 18.773158,10.821428 C 20.148158,10.821428 21.273158,12.821428 21.273158,15.321428 L 21.398158,15.321428 z "
         id="path8610" />
      <path
         style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
         d="M 30.688512,15.321428 C 30.688512,17.821428 29.563512,19.821428 28.188512,19.821428 C 26.813512,19.821428 25.688512,17.821428 25.688512,15.321428 C 25.688512,12.821428 26.813512,10.821428 28.188512,10.821428 C 29.563512,10.821428 30.688512,12.821428 30.688512,15.321428 z "
         id="path8612" />
      <path
         style="fill:#000000;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
         d="M 21.398158,14.696428 C 21.398158,17.196428 20.273158,19.196428 18.898158,19.196428 C 17.523158,19.196428 16.398158,17.196428 16.398158,14.696428 C 16.398158,12.196428 17.523158,10.196428 18.898158,10.196428 C 20.273158,10.196428 21.398158,12.196428 21.398158,14.696428 z "
         id="path8614" />
      <path
         style="fill:#000000;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
         d="M 30.688512,14.696428 C 30.688512,17.196428 29.563512,19.196428 28.188512,19.196428 C 26.813512,19.196428 25.688512,17.196428 25.688512,14.696428 C 25.688512,12.196428 26.813512,10.196428 28.188512,10.196428 C 29.563512,10.196428 30.688512,12.196428 30.688512,14.696428 z "
         id="path8616" />
    </g>
    <path
       sodipodi:type="arc"
       style="fill:url(#radialGradient8170);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       id="path8168"
       sodipodi:cx="15.153078"
       sodipodi:cy="28.062902"
       sodipodi:rx="4.8079581"
       sodipodi:ry="6.4247284"
       d="M 19.961036 28.062902 A 4.8079581 6.4247284 0 1 1  10.34512,28.062902 A 4.8079581 6.4247284 0 1 1  19.961036 28.062902 z"
       transform="translate(17.957913,-3.2761064)" />
    <g
       id="g2237"
       transform="translate(0,2)">
      <path
         style="color:#000000;fill:url(#linearGradient2252);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;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 14.988198,28.890608 C 15.179727,31.617118 17.87199,32.503303 24.115922,32.503303 C 30.414173,32.503303 33.174136,31.055189 33.16306,28.90376 C 33.151844,26.725175 14.796672,26.164096 14.988198,28.890608 z "
         id="path2096"
         sodipodi:nodetypes="czzz" />
      <path
         style="opacity:0.18181817;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient2254);stroke-width:0.42819062px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
         d="M 24.39945,27.440031 L 24.39945,32.511304"
         id="path2110" />
      <path
         id="path2114"
         d="M 19.524642,27.421971 L 19.524642,31.653301"
         style="opacity:0.18181817;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient2256);stroke-width:0.42819077px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
      <path
         style="opacity:0.18181817;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient2258);stroke-width:0.42413118px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
         d="M 29.274259,27.526098 L 29.274259,31.634785"
         id="path2118" />
      <path
         sodipodi:nodetypes="czzz"
         id="path2756"
         d="M 15.143945,28.80035 C 15.223926,31.330376 18.314745,32.606706 24.245798,32.606706 C 30.394114,32.606706 33.063062,30.724409 33.078757,28.787198 C 33.094451,26.849987 15.063964,26.270323 15.143945,28.80035 z "
         style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#8f5902;stroke-width:0.35963577;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" />
    </g>
  </g>
</svg>