<?php
/*
* phpMyVisites : website statistics and audience measurements
* Copyright (C) 2002 - 2006
* http://www.phpmyvisites.net/
* phpMyVisites is free software (license GNU/GPL)
* Authors : phpMyVisites team
*/
// $Id: FormSiteGeneral.class.php 236 2007-11-04 15:04:08Z matthieu_ $
require_once INCLUDE_PATH . "/core/forms/Form.class.php";
require_once INCLUDE_PATH . "/core/include/SiteConfigDb.class.php";
class FormSiteGeneral extends Form
{
var $valueName = '';
var $valueMainUrl = '';
var $valueLogo = '1.png';
var $valueRecordGet = 'all';
var $valueVariableNames = '';
var $site;
var $idPdf = -1;
var $pathTheme = THEME_DEFAULT;
function FormSiteGeneral( &$template, $siteAdmin = null, $action = null)
{
parent::Form( $template, $action );
// site selected for mod, display site info in form input
if( !is_null($siteAdmin))
{
$siteSelect = new Site($siteAdmin);
$this->valueName = $siteSelect->getName();
$urls = $siteSelect->getUrls();
$this->valueMainUrl = $urls[0];
$this->valueLogo = $siteSelect->getLogo();
$this->idPdf = $siteSelect->getIdPdf();
$this->pathTheme = $siteSelect->getPathTheme();
$params = $siteSelect->getParams();
$this->valueRecordGet = $params['params_choice'];
$this->valueVariableNames = $params['params_names'];
$this->siteAdmin = $siteAdmin;
}
}
function process()
{
// general input
$tmpImg = (isset( $this->valueLogo) && $this->valueLogo!='pixel.gif' ? $this->valueLogo : '1.png');
$formElements = array(
array('text', 'form_name', $GLOBALS['lang']['admin_site_name'], 'value="'.str_replace('"',"'",$this->valueName).'"'),
array('text', 'form_url', $GLOBALS['lang']['admin_site_url'], 'value="'.$this->valueMainUrl.'"'),
array('radio', 'form_logo', sprintf($GLOBALS['lang']['install_afficherlogo'],
'<img alt="logo" name="logo_phpmv" src="'.DIR_IMG_LOGOS.'/'. $tmpImg . '"/> ')
, $GLOBALS['lang']['install_oui'] . '<br><br><a href="javascript:popup(\'index.php?mod=list_logos\');">-> '.$GLOBALS['lang']['install_logodispo'].'</a>'
, 'yes'),
array('radio', 'form_logo', null, $GLOBALS['lang']['install_non'], 'no'),
array('hidden', 'form_logo_no', $tmpImg),
);
$this->addElements( $formElements , 'General');
// Prepare PDF list
$listPdf = array();
$listPdfOption = array();
$listPdf["-1"] = $GLOBALS['lang']['admin_get_default_pdfdefault'];
if (isset($this->siteAdmin)) {
$pdfDb = new PdfConfigDb($this->siteAdmin);
$tmpLstPdf = $pdfDb->getListPdf();
foreach ($tmpLstPdf as $key => $info) {
$listPdf[$key] = $info->pdfName. " (".PARAM_URL_NEWSLETTER."=".$key.")";
}
}
// Get List of theme
$dir = INCLUDE_PATH."/themes/";
$d = dir($dir);
$arDir = array();
while (false !== ($entry = $d->read()))
{
if( is_dir($dir.$entry)
&& $entry[0] != '.' // we don't want .. or . or .svn
)
$arDir[$entry] = ucfirst($entry);
}
$d->close();
// optional input (relative to GET variable recording)
$formElements = array(
array('radio', 'form_params', $GLOBALS['lang']['admin_get_question'] , $GLOBALS['lang']['admin_get_a1'], 'all'),
array('radio', 'form_params', null, $GLOBALS['lang']['admin_get_a2'] , 'none'),
array('radio', 'form_params', null, $GLOBALS['lang']['admin_get_a3'], 'only'),
array('radio', 'form_params', null, $GLOBALS['lang']['admin_get_a4'], 'except'),
array('text', 'form_params_names', sprintf( $GLOBALS['lang']['admin_get_list'], GET_LIST_EXAMPLE),
'value="'.$this->valueVariableNames.'"'),
array('select','form_idpdf'), // Reserve field postion but it is creating after
// array('text', 'form_path_theme', $GLOBALS['lang']['admin_get_default_theme'],'value="'.$this->pathTheme.'"'),
array('select', 'form_path_theme'), // Reserve field postion but it is creating after
);
$this->addElements( $formElements , $GLOBALS['lang']['install_utilisateursavances']);
// Set list PDF with default value
$s =& $this->createElement('select','form_idpdf', $GLOBALS['lang']['admin_get_default_pdf']);
$s->loadArray($listPdf, $this->idPdf); // Default value
$this->addElement($s);
// Set list theme with default value
$s =& $this->createElement('select','form_path_theme', $GLOBALS['lang']['admin_get_default_theme']);
$s->loadArray($arDir, $this->pathTheme); // Default value
$this->addElement($s);
// set first radio checked for variables recording
//$radio =& $this->getElement('form_params');
//$radio->_attributes['checked'] = 'checked';
$this->setChecked( 'form_params', $this->valueRecordGet );
// set first radio checked for logo display
$this->setChecked( 'form_logo', $this->valueLogo=='pixel.gif'?'no':'yes' );
// validation rules
$formRules = array(
array('form_name', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_site_name']), 'required'),
array('form_url', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_site_url']), 'required'),
$this->getRuleCheckUrl( 'form_url'),
array('form_logo', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_logo_question']), 'required'),
array('form_params', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_get_question']), 'required'),
);
$this->addRules( $formRules );
// launche process
return parent::process( 'admin_configetperso' );
}
function postProcess()
{
$confSite = new SiteConfigDb();
$infoSite = array(
// db field name => new value
'name' => $this->getSubmitValue('form_name'),
'logo' => $this->getSubmitValue('form_logo')=='yes'
? $this->getSubmitValue('form_logo_no')
: 'pixel.gif',
'params_choice' => $this->getSubmitValue('form_params'),
'idpdf' => $this->getSubmitValue('form_idpdf'),
'path_theme' => $this->getSubmitValue('form_path_theme'),
);
$urlSite = $this->getSubmitValue('form_url');
$params_names = $this->getSubmitValue('form_params_names');
if(!empty($params_names))
{
$infoSite['params_names'] = $params_names;
}
$req =& Request::getInstance();
switch( $req->getActionName() )
{
case 'add':
$this->siteAdmin = $confSite->addSite( $infoSite, $urlSite);
break;
case 'mod':
$infoSite['idsite'] = $this->siteAdmin;
$confSite->modSite( $infoSite, $urlSite);
break;
default:
trigger_error('Action not specified for Site configuration. Were you trying to add, modify, delete? Only YOU know that!', E_USER_ERROR);
break;
}
}
}
?>