Ticket #377: jWSDLModule.diff

File jWSDLModule.diff, 22.7 kB (added by sylvain261, 9 months ago)

Module jWSDL (génération du WSDL et de la doc des web service de l'application

  • ../jelix-modules/jWSDL/locales/en_EN/errors.ISO-8859-1.properties

    old new  
     1# jWSDL RUNTIME ERRORS 
     2service.param.invalid=(114)Invalid service name (Syntax is $module~$controller) 
     3service.param.required=(115)Service name is required 
     4wsdl.generation=(116)Error during WSDL generation : %s 
  • ../jelix-modules/jWSDL/locales/en_EN/errors.UTF-8.properties

    old new  
     1# jWSDL RUNTIME ERRORS 
     2service.param.invalid=(114)Invalid service name (Syntax is $module~$controller) 
     3service.param.required=(115)Service name is required 
     4wsdl.generation=(116)Error during WSDL generation : %s 
  • ../jelix-modules/jWSDL/locales/en_US/errors.ISO-8859-1.properties

    old new  
     1# jWSDL RUNTIME ERRORS 
     2service.param.invalid=(114)Invalid service name (Syntax is $module~$controller) 
     3service.param.required=(115)Service name is required 
     4wsdl.generation=(116)Error during WSDL generation : %s 
  • ../jelix-modules/jWSDL/locales/en_US/errors.UTF-8.properties

    old new  
     1# jWSDL RUNTIME ERRORS 
     2service.param.invalid=(114)Invalid service name (Syntax is $module~$controller) 
     3service.param.required=(115)Service name is required 
     4wsdl.generation=(116)Error during WSDL generation : %s 
  • ../jelix-modules/jWSDL/locales/fr_FR/errors.ISO-8859-1.properties

    old new  
     1# jWSDL RUNTIME ERRORS 
     2service.param.invalid=(114)Nom de service invalide (La syntaxe est $module~$controller) 
     3service.param.required=(115)Nom de service requis 
     4wsdl.generation=(116)Erreur durant la g�ration du WSDL : %s 
  • ../jelix-modules/jWSDL/locales/fr_FR/errors.UTF-8.properties

    old new  
     1# jWSDL AND SOAP HANDLING RUNTIME ERRORS 
     2service.param.invalid=(114)Nom de service invalide (La syntaxe est $module~$controller) 
     3service.param.required=(115)Nom de service requis 
     4wsdl.generation=(116)Erreur durant la génération du WSDL : %s 
  • ../jelix-modules/jWSDL/module.xml

    old new  
     1<?xml version="1.0" encoding="UTF-8"?> 
     2<module xmlns="http://jelix.org/ns/module/1.0"> 
     3 
     4</module> 
  • ../jelix-modules/jWSDL/controllers/WSDL.classic.php

    old new  
     1<?php 
     2/** 
     3* @package     jelix-modules 
     4* @subpackage  jelix 
     5* @author      Sylvain de Vathaire 
     6* @copyright   2008 Sylvain de Vathaire 
     7* @licence     http://www.gnu.org/licenses/gpl.html GNU General Public Licence, see LICENCE file 
     8*/ 
     9 
     10/** 
     11 * jWSDL class 
     12 */ 
     13require(JELIX_LIB_UTILS_PATH.'jWSDL.class.php'); 
     14 
     15 
     16/** 
     17 * @package    jelix-modules 
     18 * @subpackage jelix 
     19 */ 
     20class WSDLCtrl extends jController { 
     21 
     22   /** 
     23    * Display the web service documentation for the requested service 
     24    */ 
     25    public function index() { 
     26        $rep = $this->getResponse('html', true); 
     27 
     28        $webservices = jWSDL::getSoapControllers(); 
     29 
     30        if(sizeof($webservices) != 0){ 
     31            $service = $this->param('service'); 
     32 
     33            if (empty($service)) { 
     34                $module = $webservices[0]['module']; 
     35                $controller = $webservices[0]['class']; 
     36            }else{ 
     37                if(!strpos($service, '~')===FALSE){ 
     38                    list($module, $controller) =  explode('~',$service); 
     39                } 
     40                if (empty($module) || empty($controller)) { 
     41                    throw new JException("jWSDL~errors.service.param.invalid"); 
     42                } 
     43            } 
     44 
     45            //Used for documentation of data structures classes 
     46            $className = $this->param('className'); 
     47 
     48            $wsdl = new jWSDL($module, $controller); 
     49            $doc = $wsdl->doc($className); 
     50            $doc['menu'] = $webservices; 
     51            $rep->body->assign("doc", $doc); 
     52            $rep->title = "Documentation - ".$controller; 
     53        }else{ 
     54            $rep->title = "Documentation -  Web services"; 
     55        } 
     56        $rep->bodyTpl = 'jWSDL~soap_doc'; 
     57        return $rep; 
     58    } 
     59 
     60    /** 
     61    * Return the WSDL file for a soap web service 
     62    */ 
     63    public function wsdl() { 
     64 
     65        $rep = $this->getResponse('xml'); 
     66        $rep->sendXMLHeader = FALSE; 
     67 
     68        $service = $this->param('service'); 
     69 
     70        if (empty($service)) { 
     71            throw new JException("jWSDL~errors.service.param.required"); 
     72        } 
     73 
     74        if(!strpos($service, '~')===FALSE){ 
     75            list($module, $controller) =  explode('~',$service); 
     76        } 
     77        if (empty($module) || empty($controller)) { 
     78            throw new JException("jWSDL~errors.service.param.invalid"); 
     79        } 
     80 
     81        $wsdl = new jWSDL($module, $controller); 
     82        $rep->content = $wsdl->getWSDLFile(); 
     83 
     84        return $rep; 
     85    } 
     86} 
     87?> 
  • ../jelix-modules/jWSDL/templates/soap_doc.tpl

    old new  
     1{meta_html css $j_jelixwww.'design/design.css'} 
     2<div id="header"> 
     3        <h1> 
     4                <a title="Jelix" href="http://www.jelix.org"> 
     5                        <img alt="Jelix" src="jelix/design/images/logo_jelix_moyen.png"/> 
     6                </a> 
     7                Web services documentation : {$doc['class']->name|replace:'Ctrl':''} <a target='_blank' href="{jurl 'jWSDL~WSDL:wsdl', array("service"=>$doc['service'])}">[WSDL]</a> 
     8        </h1> 
     9</div> 
     10<div id="main"> 
     11        <div id="content-menu"> 
     12                <h3>Services</h3> 
     13                <ul> 
     14                {foreach $doc['menu'] as $webservice} 
     15                        <li><a href="{jurl 'jWSDL~WSDL:index', array("service"=>$webservice['service'])}">{$webservice['class']}</a></li> 
     16                {/foreach} 
     17                </ul> 
     18        </div> 
     19 
     20        <div id="content"> 
     21                <h1>Full description</h1> 
     22                <div class="level1"> 
     23                        <p>{$doc['class']->fullDescription}</p> 
     24                </div> 
     25 
     26                {if(sizeof($doc['class']->properties))} 
     27                        <h1>Properties</h1> 
     28                        <ul> 
     29                                {foreach $doc['class']->properties as $propertie} 
     30                                        <li class="level1"><b>{$propertie->name}</b> 
     31                                                <p> 
     32                                                {if  $propertie->type == ''} 
     33                                                        <div class='docError'>Missing type info</div><br /> 
     34                                                {else} 
     35                                                        {assign $propertieClassName=str_replace('[]' , '',str_replace('[=>]' , '',$propertie->type))} 
     36                                                        {if $propertieClassName =='int' || $propertieClassName =='string' || $propertieClassName =='boolean' || $propertieClassName =='double' || $propertieClassName =='float' ||$propertieClassName =='void'} 
     37                                                                <i>type {$propertie->type}</i><br /> 
     38                                                        {else} 
     39                                                                <i>type <a href="{jurl 'jWSDL~WSDL:index', array('service'=>$doc['service'], 'className'=>str_replace('[]' , '',$propertieClassName))}">{$propertie->type}</a></i><br /> 
     40                                                        {/if} 
     41                                                {/if} 
     42                                                {$propertie->fullDescription} 
     43                                                </p> 
     44                                                </li> 
     45                                {/foreach} 
     46                        </ul> 
     47                {/if} 
     48 
     49 
     50                {if(sizeof($doc['class']->methods))} 
     51                        <h1>Methods</h1> 
     52                        <ul> 
     53                        {foreach $doc['class']->methods as $method} 
     54                                <li class="level1"><b>{$method->name}</b> ( 
     55                                                        {assign $i=0} 
     56                                                        {foreach $method->parameters as $param} 
     57                                                                {$param->name}{assign $i=$i+1}{if($i!=(sizeof($method->parameters)))},{/if}{/foreach} 
     58                                                        ) 
     59                                                <p> 
     60                                                {if  $method->return == ''} 
     61                                                        <div class='docError'>Missing return value</div><br /> 
     62                                                {else} 
     63                                                        {assign $returnClassName=str_replace('[]' , '',str_replace('[=>]' , '',$method->return))} 
     64                                                        {if $returnClassName =='int' || $returnClassName =='string' || $returnClassName =='boolean' || $returnClassName =='double' || $returnClassName =='float' || $returnClassName =='void'} 
     65                                                                <i>return {$method->return}</i><br /> 
     66                                                        {else} 
     67                                                                        <i>return <a href="{jurl 'jWSDL~WSDL:index', array('service'=>$doc['service'], 'className'=>$returnClassName)}">{$method->return}</a></i><br /> 
     68                                                        {/if} 
     69                                                {/if} 
     70                                                {$method->fullDescription} 
     71                                                </p> 
     72                                </li> 
     73                        {/foreach} 
     74                        </ul> 
     75                {/if} 
     76        </div> 
     77</div> 
     78<div id="footer"> 
     79        <img width="80" height="15" alt="Jelix Powered" src="jelix/design/images/jelix_powered.png"/> 
     80</div> 
  • ../jelix-www/design/design.css

    old new  
     1/* 
     2 * Design and CSS file by Laurent Jouanneau for jelix.org 
     3 * Copyright (c) 2006-2007 by Laurent Jouanneau 
     4 * 
     5 * You cannot use this stylesheet on your own site without the permission of the author 
     6 * All right reserved 
     7 */ 
     8 
     9body {   
     10    font-family: Verdana, Arial, Sans;  
     11    font-size:0.8em; 
     12    margin:0; 
     13    background-color:#eff4f6; 
     14    padding-left:1em; 
     15    padding-right:1em; 
     16} 
     17 
     18a img { border:0;} 
     19 
     20pre { 
     21  padding-left:1em; 
     22  border-left:4px solid /*#c66464;*/#efe03b; 
     23  background-image:url(images/fond_horizontale.png); 
     24  background-repeat:repeat-y; 
     25  color:black; 
     26  overflow:auto; 
     27} 
     28 
     29 
     30#header {  margin:0; padding:1em 5px; color : #002830; } 
     31#header h1 { margin:0; font-size:1.7em;} 
     32#header a { color:#0594c8; text-decoration:none; } 
     33#header img { vertical-align:bottom; } 
     34 
     35#accessibility {font-size:0.8em;color:#c0e0eb;} 
     36#accessibility a { color:#c0e0eb; } 
     37#accessibility:hover{ color:#0594c8; } 
     38#accessibility a:hover{ color:#0594C8; text-decoration:underline;} 
     39 
     40 
     41#search { position:absolute; top : 5px; right:6.3em; text-align:right;} 
     42#search input { border:1px solid #002830; } 
     43#search input.button { 
     44   margin-left:1em;color:white; 
     45   border:1px solid white; background-color:#002830; 
     46   font-weight:bold; 
     47} 
     48#search form { margin-top:5px;} 
     49 
     50#topmenubar_right , #topmenubar { 
     51    background-repeat:no-repeat; 
     52    color:white; 
     53    vertical-align:bottom; 
     54    margin:0; 
     55    padding:10px 5px 5px 70px; 
     56 
     57} 
     58#topmenubar_right {  
     59    float:right; 
     60    background-color:#002830; 
     61    background-image:url(images/chevron_separe.png); 
     62    background-position:center left; 
     63    -moz-border-radius:0px 15px 0px 0px; 
     64     
     65} 
     66#topmenubar {  
     67    background-color:#3c90af; 
     68    background-image:url(images/chevrons.png); 
     69    background-position:center left; 
     70    padding-left:75px; 
     71    padding-right:0px; 
     72    /*margin-right:15px;*/ 
     73    -moz-border-radius:15px 15px 0px  0px ; 
     74} 
     75 
     76#topmenubar_right li, #topmenubar li {  
     77    display:inline; 
     78    padding:5px 5px 10px 5px; 
     79    font-size:1.3em; 
     80    vertical-align:top; 
     81    list-style-type:none; 
     82    list-style-position:outside; 
     83} 
     84#topmenubar_right li a, #topmenubar li a, #submenubar li a { 
     85 color:white;  
     86 text-decoration:none; 
     87} 
     88 
     89#topmenubar li a:hover{ color:white; border-bottom: solid 3px #FFA08F /*#A9FA55*/;} 
     90#topmenubar li.selected {-moz-border-radius:8px 8px 0 0; background-color:#2b4c53; } 
     91#topmenubar_right li a:hover{ text-decoration:underline; } 
     92 
     93#submenubar { 
     94    background-color:#2b4c53; 
     95    color:white; 
     96    padding:5px  5px 5px 70px; 
     97    margin: 0 0 0 0; 
     98    vertical-align:bottom; 
     99    -moz-border-radius:0px 0 8px 8px; 
     100} 
     101#submenubar li {  
     102    display:inline; 
     103    padding:5px; 
     104    font-size:1em; 
     105    list-style-type:none; 
     106    list-style-position:outside; 
     107} 
     108#submenubar li a:hover{  text-decoration:underline; } 
     109#submenubar li.selected a { border-bottom: 2px solid  #FFA08F } 
     110 
     111 
     112#main { background-color:white; padding:2em 1em 1em 1em; color : #002830; } 
     113 
     114#main a { color:#3f6f7a; text-decoration:underline; } 
     115#main a:visited {  color : #002830;} 
     116#main a:hover { color: #0f82af; background-color: #d7e7eb; } 
     117#main a.wikilink2 { color:#ed5a02;} 
     118#main input.button, #mainfooter input.button{ 
     119   background-color:#4397b6; 
     120   border-left: 1px solid #99cbde; 
     121   border-right: 1px solid  #225365; 
     122   border-top: 1px solid #99cbde ; 
     123   border-bottom: 1px solid  #225365; 
     124   -moz-border-radius:3px; 
     125   color:white; 
     126   cursor: pointer; 
     127} 
     128 
     129#main input[type=button][disabled], input[type=submit][disabled], input[type=reset][disabled] { 
     130 background: #94a8af; 
     131 color: #ddd; 
     132} 
     133 
     134#main ul { list-style-image:url(images/puce_page.png); } 
     135#main li { padding-bottom:0.3em;} 
     136#main li.open { list-style-image: url(images/../lib/tpl/default/images/open.gif); } 
     137#main li.closed { list-style-image: url(images/../lib/tpl/default/images/closed.gif); } 
     138 
     139#main h1 { color: #c03033; margin:0; } 
     140#main h2 { color: #002830; /*border-bottom:2px solid #002830;*/ margin:1em 0 0.5em 0; } /* */ 
     141#main h3 { color: #002830; /*border-bottom:1px solid #002830;*/ margin:1em 0 0.5em 0; } 
     142#main h4 { color: #002830; } 
     143 
     144 
     145 
     146#main a.interwiki{ 
     147   background: transparent url(images/../lib/images/interwiki.png) 0px 1px no-repeat; 
     148   padding-left: 16px; 
     149} 
     150 
     151#main .contenuinfo { 
     152   text-align:right; font-size:0.9em; margin:0.5em 0;  height:2em; color:white; 
     153   /*background-image:url(images/fond_navlinks.png);*/ 
     154   background-repeat: repeat-x; 
     155   background-color:#3c90af; 
     156} 
     157#main .contenuinfo ul li { display:inline; float:right;  padding:0 1em 0 0; margin:0;} 
     158#main .contenuinfo  a { color:white; } 
     159#main .contenuinfo  a:visited { color:white;} 
     160#main .contenuinfo  a:hover { background-color: inherit;} 
     161 
     162 
     163#main .news-infos { 
     164   /*border:1px solid #d8e1e4;*/ 
     165   color : #002830; 
     166   background-color:#eff4f6; 
     167   text-align:right; 
     168   font-style:italic; 
     169   margin-top:-0.5em; 
     170} 
     171 
     172 
     173 
     174#content {  padding:5px 5px 5px 15px; margin-left: 175px; border-left:2px solid #d8e1e4;} 
     175 
     176/* styles for the wiki */ 
     177 
     178div.level1, div.level2, div.level3, div.level4, div.level5, div.level6 { padding-left:2em; } 
     179 
     180div.secedit { text-align:right; } 
     181div.secedit form { margin: 0 0 1em 0; } 
     182div.toc { 
     183  margin: 2em 0 2em 2em ; 
     184  padding:10px; 
     185  float:right; 
     186  width: 200px; 
     187  font-size: 80%; 
     188  color : #002830; 
     189  background-color:#eff4f6; 
     190  border : 1px solid; 
     191  border-top-color: #d4dee3; 
     192  border-left-color: #d4dee3; 
     193  border-right-color: #9bb0b9; 
     194  border-bottom-color: #9bb0b9; 
     195} 
     196 
     197div.tocheader { 
     198  padding: 3px; 
     199  background-color: #2b4c53; 
     200  text-align: left; 
     201  font-weight:bold; 
     202  color:white; 
     203} 
     204 
     205div.toctoggle { float:right; margin-top:0.3em; margin-right:3px; } 
     206div.toctoggle img { width:0.8em; height:0.8em; } 
     207div.tocinside { 
     208 padding-top: 0.5em; padding-bottom: 0.7em; 
     209  border: 1px solid #2b4c53; 
     210  background-color: #ffffff; 
     211  text-align: left; 
     212} 
     213 
     214div.toc ul { 
     215    margin: 0 0 0 1em; padding: 0; 
     216  list-style-type: none; 
     217  list-style-image: none; 
     218  line-height: 1.2em; 
     219} 
     220 
     221div.toc ul li { } 
     222div.toc ul li.clear { } 
     223div.toc ul a { text-decoration:none;} 
     224 
     225 
     226 
     227 
     228 
     229 
     230 
     231#content-header { 
     232   margin:0.5em 0.5em 1.5em 0.5em; padding:5px; 
     233   /*border-left:1px solid #d8e1e4; 
     234   border-right:1px solid #d8e1e4;*/ 
     235   color : #002830; 
     236   background-color:#d8e1e4; 
     237   -moz-border-radius:8px; 
     238} 
     239#content-header a { color:#0594c8; text-decoration:none; } 
     240#content-header a:hover { text-decoration:underline;} 
     241 
     242 
     243#content-menu { float:left; 
     244   width:155px; 
     245   padding-right:5px; 
     246   margin:1em 5px 5px 0; 
     247   font-size:0.8em; 
     248} 
     249#content-menu a {color:#0594c8; text-decoration:none;} 
     250#content-menu a:hover { text-decoration: underline; } 
     251#content-menu ul { margin:1em 0 0 1em; padding:0 0 0 1em; color: #3c90af; 
     252   list-style-image:url(images/puce_menu_actif.png); 
     253   /*background-image:url(images/fond_sidemenu.png); */ 
     254   background-repeat:repeat-y;} 
     255#content-menu ul ul { margin-top:0; background-image:none;} 
     256#content-menu ul li { margin:0; padding:0 0 0 0em; } 
     257#content-menu li.actif { list-style-image:url(images/puce_menu_actif.png);} 
     258#content-menu li.actif a {/*color: #002830; font-weight:bold;*/} 
     259#content-menu li.actif a:hover {} 
     260#content-menu li.actif ul { font-size:0.9em; list-style-image:url(images/puce_menu_actif.png); } 
     261#content-menu .userinfo { margin:2em 0; } 
     262 
     263 
     264 
     265#mainfooter, #fullmainfooter { 
     266   clear:both; 
     267   margin:1em 0 0 200px; 
     268   padding:3px 15px; 
     269   min-height:2em; 
     270   color : #002830; 
     271   background-color:#d8e1e4; 
     272   -moz-border-radius:8px; 
     273} 
     274#mainfooter.full, #fullmainfooter { margin-left:0} 
     275#mainfooter .wfooterbuttons { text-align:right;} 
     276#mainfooter form { display:inline; margin:0;} 
     277#mainfooter .wfooterinfo { font-size:0.8em; float:left; } 
     278#authinfo { clear:both; } 
     279 
     280 
     281#footer { 
     282   clear:both; 
     283   margin:1em 0 0 190px; 
     284   padding:10px; 
     285   color : #002830; 
     286   text-align:center; 
     287   font-size:0.8em; 
     288} 
     289#footer.full { margin-left:0} 
     290#footer a { color:#3c90af; text-decoration:underline; } 
     291#footer a:visited {  color : #002830;} 
     292#footer a:hover { color: #0f82af; background-color: #d7e7eb; } 
     293 
     294 
     295/* ---------------------------- Diff rendering --------------------------*/ 
     296 
     297table.diff { background:white; } 
     298td.diff-blockheader {font-weight:bold} 
     299td.diff-header { 
     300  border-bottom: 1px solid #8cacbb; 
     301  font-size:120%; 
     302} 
     303td.diff-addedline { 
     304    background:#ddffdd; 
     305    font-family: monospace; 
     306    font-size: 100%; 
     307} 
     308td.diff-deletedline { 
     309    background:#ffffbb; 
     310    font-family: monospace; 
     311    font-size: 100%; 
     312} 
     313td.diff-context { 
     314    background:#f7f9fa; 
     315    font-family: monospace; 
     316    font-size: 100%; 
     317} 
     318span.diffchange { color: red; } 
     319 
     320/* ==================== homepage =============== */ 
     321#homesidebar { 
     322   float:right; 
     323   width:22em; 
     324} 
     325 
     326#homesidebar .sponsor { margin:1em 0 1em 0; padding:0 0 5px 0; color: black; 
     327   background-color:#EFF4F6; 
     328text-align:center; -moz-border-radius:8px; 
     329} 
     330 
     331#homesidebar .sponsor h3 { background-color: #002830; color:white; -moz-border-radius:8px 8px 0 0;} 
     332 
     333#news { 
     334   margin:1em 0; padding:5px 20px 0 20px; 
     335   border:1px solid #d8e1e4; 
     336   color : #002830; 
     337   background-color:#eff4f6; 
     338   -moz-border-radius:15px; 
     339 
     340} 
     341 
     342#news h1 { font-size:1.3em;} 
     343#news h2 { font-size:1.1em;} 
     344 
     345#news div.news-content { 
     346    /*-moz-column-count:2; 
     347    -moz-column-gap:1em; 
     348    -moz-column-width:18em; 
     349    -moz-column-rule: medium solid;*/ 
     350} 
     351 
     352.news-infos { 
     353   /*border:1px solid #d8e1e4;*/ 
     354   color : #002830; 
     355   background-color:#eff4f6; 
     356   text-align:right; 
     357   font-style:italic; 
     358   margin-top:-1.5em; 
     359} 
     360.news-link { 
     361  padding: 0.5em; 
     362  background-color:#d8e1e4; 
     363} 
     364 
     365.infobox { 
     366    text-align:center; 
     367    float:left; 
     368    background-color: #002830;  
     369    color:#fff; 
     370    -moz-border-radius:15px; 
     371    width:12em; 
     372    margin:1em 0 1em 3%; 
     373    padding:0.5em; 
     374    min-height:10em; 
     375} 
     376 
     377.infobox h3 { color:#fff !important; } 
     378 
     379.infobox a { font-size:1.3em; color:white !important; opacity:0.8; text-decoration:none; } 
     380.infobox a:hover { color : white !important; opacity:1; background-color:transparent !important; text-decoration:none !important; } 
     381.infobox a:visited {  color : white !important;} 
     382 
     383 
     384/* ==================== Forum =============== */ 
     385 
     386table.forum { border:1px solid grey; border-collapse:collapse; margin:1em auto; } 
     387table.forum th { background-color: #002830; color:#fff; } 
     388table.forum td { border:1px solid grey; vertical-align:top;} 
     389table.forum td.lastpost { font-size:0.8em;} 
     390 
     391table.forum td h2 { color:#AF283A; font-size:1.1em !important; 
     392   border-bottom:0 none transparent !important;} 
     393table.forum td h2 a{ color:#AF283A !important; } 
     394table.forum td h2 a:hover{ color:#fff !important; } 
     395 
     396table.forumform td { vertical-align:top;} 
     397table.forumform th { text-align:right; vertical-align:top;} 
     398 
     399.forumMessage {margin-bottom:1em;} 
     400.forumMessage h2 {  margin-bottom:0;} 
     401.forumMessage h3 { border-bottom:1px solid #000; margin-bottom:0;} 
     402 
     403 
     404   .forumtext { background-color: #f9f9f7; margin:0.5em 0 0 0; padding:0.3em; 
     405      border:2px solid #edede6;} 
     406   .forumtext blockquote { margin-left:1.5em; padding-left:0.5em;border-left:2px solid #195a80;} 
     407   .forumsignature { font-size:0.9em;} 
     408   .forumeditmessage { text-align:right; font-style:italic; font-size:0.8em; margin-bottom:0;} 
     409 
     410 
     411   .forumMessageInfo {} 
     412   .forumMessageInfo p {margin:0; font-size:0.8em;} 
     413   .forumMessageOptions{text-align:right; background-color:#edede6; font-size:0.8em;} 
     414   .forumMessageOptions a { padding-right:1.5em;} 
     415   .forumModeration {text-align:right; background-color:#edede6; font-size:0.8em;} 
     416   .forumModeration a { padding-right:1.5em;} 
     417.forumAlert { border:1px solid grey; } 
     418.forumError { border:1px solid red; } 
     419 
     420 
     421.msgoptions { font-size:0.8em; text-align:right;} 
     422.msgnew, .msgpages { font-size:0.8em;} 
     423.msgnew {color:#ff0000;} 
     424.msgannouncement { color:#fff; background-color:#000;} 
     425#forummenudroit { float:right; width:12em; padding:0 0.5em; } 
     426#forumcontenu { margin-right:13em;} 
     427 
     428.search_result { margin-top:1.5em; } 
     429.search_result .wikilink1 { font-weight:bold; font-size:1.1em; } 
     430.search_result .search_cnt { font-style:italic;} 
     431.search_result .search_snippet { margin-left:2em; } 
     432.search_result .search_hit { background-color:#fff8d3; } 
     433 
     434.docError { font-weight:bold;color:red } 
Download in other formats: Original Format