<?php if (!defined('PmWiki')) exit();
/* skinnice: interactive skin parameters configuration rev2 - 8 march 2005
* for PmWiki2 @author Pierre Rouzeau <pierre àt rouzeau döt net>  
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
# all files *.skt goes in pub/css directory
# file Main.SkinConfig goes in wikilib.d directory. Can be renamed.
# file skinnice.php go in cookbook directory
# file Main.SkinConfig.php go in local directory. Beware to change
# the password in this file, default 'mypassword'.
# To set background images, you need to activate uploads.
#
# pub/css directory should be writable
# local.css apply to all the wiki. A css file applicable to one group
# should be named 'MyGroup.css' and to a page 'AGroup.OnePage.css'
# file.skc contains data to rebuild the css file
# file.skt contains all or only part of what is in a .skc file but
# can be loaded as a template.
*/

include_once ('cookbook/buildforms.php');

function skincsscre () {
  global $BFrmRdPar, $WorkDir, $pagename, $FarmD;
  foreach ($BFrmRdPar as $v)  
    if ($v['area']!='') $area[]=$v['area'];
  $area = array_unique($area);
  $cssdir = "$FarmD/pub/css"; 
  $uploadurl = FmtPageName('$UploadUrlFmt$UploadPrefixFmt', $pagename);
  $slist = $BFrmRdPar['slist']['value'];
  $sfile = $BFrmRdPar['sfile']['value'];
  $BFrmRdPar['sfile']['value'] = '';
  if ($slist!='') {
    $style = BFrmReadPars("$cssdir/$slist", TRUE); 
	$BFrmRdPar['slist']['value']='';
    foreach ($style as $k=>$v)  
      $BFrmRdPar[$k]['value'] = $v;
  }	
  if ($sfile!='' and IsEnabled($EnableSave,1)) {
    if (substr($sfile,-4)!='.skt') $sfile.='.skt';
	if (copy("$WorkDir/$pagename.val", "$cssdir/$sfile"))
	  $BFrmRdPar['msgresult']['value'] = XL('Datas saved in file').": $sfile";
	else  
	  $BFrmRdPar['msgresult']['value'] = "#{XL('Creation of file failed')}: $sfile";
  }	
  BFrmSavePars();
  $css = '';
  if (isset($_REQUEST['css0'])) 
      $css.= str_replace('`', "\n", $_REQUEST['css0'])."\n"; 
  foreach ($area as $ar) {
    $css .= "$ar{";  
    foreach ($BFrmRdPar as $v) { 
	  if ($v['area']==$ar and $v['value']!='') {
        if ($v['csstype']=='background-image')
          $def = "url('$uploadurl{$v['value']}')";
		else
          $def = $v['value'];
        $css .="\n {$v['csstype']}:$def;";
      }	
    }
    $css .="\n}\n";
  }
  foreach (array('css1','css2','css3') as $c) 
    if (isset($_REQUEST[$c])) 
      $css.= str_replace('`', "\n", $_REQUEST[$c])."\n"; 
  $fp = fopen("$cssdir/$pagename.css", "wb");  
  fwrite($fp, $css);
  fclose($fp); 
  $glist = $BFrmRdPar['glist']['value'];
  if ($glist!='' and IsEnabled($EnableSave,1)) 
	copy ("$cssdir/$pagename.css", "$cssdir/$glist.css");
} 

function grouplist() {
  global $GroupPattern, $NamePattern;
  $pagelist = ListPages();
  $grouplist = array();
  foreach($pagelist as $pname) {
    if (!preg_match("/^($GroupPattern)[\\/.]($NamePattern)$/",$pname,$m))
      continue;
    $grouplist[$m[1]]=$m[1];
  }
  natsort($grouplist);
  $grouplist = array(''=>'', 'local'=>XL('WHOLE WIKI')) + $grouplist;
  return $grouplist;
}

function savelist() {
  global $FarmD;
  return array(''=>'') + BFrmListdir("$FarmD/pub/css", 'skt');
}

function cchart1() {clrchart (24,0);}
function cchart2() {clrchart (8,160);}
function dispclr() {
  $clr = sprintf("%06x",@$_REQUEST['color']);
  return ("<span style='background-color:#$clr;'> &nbsp; &nbsp; </span>&nbsp;#$clr");
}

function clrchart ($delta, $limit){
  global $pagename, $PageStartFmt;
  $addr = FmtPageName('$PageUrl',$pagename);
  $PageChartFmt =
"<html><head><style type='text/css'><!--#ilk a{text-decoration:none}--></style></head>
<body><center>".XL('Click on color to select')."<br/><br/>
<script language='JavaScript'><!--
for (i=255;i>=$limit;i=i-$delta) { 
document.write('<table id=\"ilk\" border=0 cellpadding=0>');
for (j=255;j>=$limit;j=j-$delta) {
document.write('<tr>');
for (k=255;k>=$limit;k=k-$delta) {
document.write('<td style=\"background-color:rgb('+i+','+j+','+k+');\">');
cl=65536*i+256*j+k;
document.write('<a href=\"$addr?color='+cl+'\">&nbsp; &nbsp; &nbsp; &nbsp;</a></td>'); }
document.write('</tr>'); }
document.write('</table><br>'); }
// end --></script></center></body></html>";
  print ($PageChartFmt);  
  exit;
}

?>