images/smilies/face-grin.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://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="48.000000px"
   height="48.000000px"
   id="svg4376"
   sodipodi:version="0.32"
   inkscape:version="0.42+devel"
   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/emotes"
   sodipodi:docname="face-grin.svg"
   inkscape:export-filename="/home/tigert/Desktop/face-grin.png"
   inkscape:export-xdpi="90.000000"
   inkscape:export-ydpi="90.000000">
  <defs
     id="defs3">
    <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
       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:#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"
       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="#linearGradient2102"
       id="linearGradient2108"
       x1="14.000000"
       y1="21.062500"
       x2="14.000000"
       y2="32.875000"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,1.033654,1.500000,-0.627404)" />
    <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.000000,0.000000,0.000000,1.404523,10.50000,-7.966331)" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2116"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,1.171895,2.500000,-3.141166)"
       x1="14.000000"
       y1="21.062500"
       x2="13.500000"
       y2="33.426670" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2120"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,1.159815,18.50000,-2.815047)"
       x1="14.000000"
       y1="21.062500"
       x2="14.500000"
       y2="33.431156" />
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient2102"
       id="linearGradient2124"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,1.071351,-22.50000,-3.854623)"
       x1="14.000000"
       y1="21.062500"
       x2="14.000000"
       y2="35.744175" />
    <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.000000,0.000000,1.000000,-1.267931,0.000000)" />
  </defs>
  <sodipodi:namedview
     fill="#a40000"
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="0.19607843"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="1"
     inkscape:cx="23.514119"
     inkscape:cy="28.588454"
     inkscape:current-layer="layer1"
     showgrid="false"
     inkscape:grid-bbox="true"
     inkscape:document-units="px"
     inkscape:showpageshadow="false"
     inkscape:window-width="1010"
     inkscape:window-height="1181"
     inkscape:window-x="123"
     inkscape:window-y="34"
     stroke="#8f5902" />
  <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>
        <dc:contributor>
          <cc:Agent>
            <dc:title>Tuomas Kuosmanen</dc:title>
          </cc:Agent>
        </dc:contributor>
      </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
       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
       sodipodi:nodetypes="czcc"
       id="path2096"
       d="M 9.1875355,21.044769 C 7.6485541,28.612147 13.879571,38.212295 24.038687,38.212295 C 34.286185,38.212295 40.544215,29.781871 38.758727,21.107269 L 9.1875355,21.044769 z "
       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2132);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000001;stroke-linecap:butt;stroke-linejoin:miter;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" />
    <path
       id="path2110"
       d="M 24.500000,21.528657 L 24.500000,38.382936"
       style="opacity:0.18181818;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient2112);stroke-width:0.99999988px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1.0000000" />
    <path
       style="opacity:0.18181818;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient2116);stroke-width:1.0000002px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1.0000000"
       d="M 16.500000,21.468635 L 16.500000,35.531381"
       id="path2114" />
    <path
       id="path2118"
       d="M 32.500000,21.541107 L 32.500000,35.458909"
       style="opacity:0.18181818;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient2120);stroke-width:1.0000005px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1.0000000" />
    <path
       style="opacity:1.0000000;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#8f5902;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;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"
       d="M 9.4409398,20.615864 C 7.6602852,29.43779 14.599952,38.703673 24.250001,38.703673 C 34.253546,38.703673 40.902217,29.12529 38.621563,20.553364 L 9.4409398,20.615864 z "
       id="path2756"
       sodipodi:nodetypes="czcc" />
  </g>
</svg>