Fix When generation of doc is required and generator not provided, we

take first entry found.
This commit is contained in:
Laurent Destailleur
2015-05-03 20:07:16 +02:00
parent f0b10c14d7
commit c485b1fe30
11 changed files with 310 additions and 492 deletions

View File

@@ -1414,7 +1414,11 @@ if (empty($reshook))
$model=$object->modelpdf; $model=$object->modelpdf;
$ret = $object->fetch($id); // Reload to get new records $ret = $object->fetch($id); // Reload to get new records
$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); $result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
if ($result < 0)
{
setEventMessages($object->error, $object->errors, 'errors');
}
} }
unset($_POST['prod_entry_mode']); unset($_POST['prod_entry_mode']);

View File

@@ -3504,7 +3504,7 @@ class Facture extends CommonInvoice
/** /**
* Create a document onto disk according to template module. * Create a document onto disk according to template module.
* *
* @param string $modele Force template to use ('' to not force) * @param string $modele Generator to use. Caller must set it to obj->modelpdf or GETPOST('modelpdf') for example.
* @param Translate $outputlangs objet lang a utiliser pour traduction * @param Translate $outputlangs objet lang a utiliser pour traduction
* @param int $hidedetails Hide details of lines * @param int $hidedetails Hide details of lines
* @param int $hidedesc Hide description * @param int $hidedesc Hide description
@@ -3532,22 +3532,24 @@ class Facture extends CommonInvoice
$modelpath = "core/modules/facture/doc/"; $modelpath = "core/modules/facture/doc/";
return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref); $result=$this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
return $result;
} }
/** /**
* Gets the smallest reference available for a new cycle * Gets the smallest reference available for a new cycle
* *
* @return int >= 1 if OK, -1 if error * @return int >= 1 if OK, -1 if error
*
*
*/ */
function newCycle() function newCycle()
{ {
$sql = 'SELECT max(situation_cycle_ref) FROM ' . MAIN_DB_PREFIX . 'facture'; $sql = 'SELECT max(situation_cycle_ref) FROM ' . MAIN_DB_PREFIX . 'facture as f';
$sql.= " WHERE f.entity in (".getEntity('facture').")";
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) { if ($resql) {
if ($resql->num_rows > 0) { if ($resql->num_rows > 0)
{
$res = $this->db->fetch_array($resql); $res = $this->db->fetch_array($resql);
$ref = $res['max(situation_cycle_ref)']; $ref = $res['max(situation_cycle_ref)'];
$ref++; $ref++;
@@ -3557,7 +3559,7 @@ class Facture extends CommonInvoice
$this->db->free($resql); $this->db->free($resql);
return $ref; return $ref;
} else { } else {
$this->error = $this->db->error(); $this->error = $this->db->lasterror();
dol_syslog("Error sql=" . $sql . ", error=" . $this->error, LOG_ERR); dol_syslog("Error sql=" . $sql . ", error=" . $this->error, LOG_ERR);
return -1; return -1;
} }

View File

@@ -3406,13 +3406,13 @@ abstract class CommonObject
/** /**
* Common function for all objects extending CommonObject for generating documents * Common function for all objects extending CommonObject for generating documents
* *
* @param string $modelspath Relative folder where models are placed * @param string $modelspath Relative folder where generators are placed
* @param string $modele Model to use * @param string $modele Generator to use. Caller must set it to obj->modelpdf or GETPOST('modelpdf') for example.
* @param Translate $outputlangs Language to use * @param Translate $outputlangs Language to use
* @param int $hidedetails 1 to hide details. 0 by default * @param int $hidedetails 1 to hide details. 0 by default
* @param int $hidedesc 1 to hide product description. 0 by default * @param int $hidedesc 1 to hide product description. 0 by default
* @param int $hideref 1 to hide product reference. 0 by default * @param int $hideref 1 to hide product reference. 0 by default
* @return int 1 if OK -1 if not OK * @return int >0 if OK, <0 if KO
*/ */
protected function commonGenerateDocument($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref) protected function commonGenerateDocument($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref)
{ {
@@ -3426,7 +3426,7 @@ abstract class CommonObject
@set_time_limit(120); @set_time_limit(120);
error_reporting($err); error_reporting($err);
// If selected modele is a filename template (then $modele="modelname:filename") // If selected model is a filename template (then $modele="modelname" or "modelname:filename")
$tmp=explode(':',$modele,2); $tmp=explode(':',$modele,2);
if (! empty($tmp[1])) if (! empty($tmp[1]))
{ {
@@ -3456,7 +3456,7 @@ abstract class CommonObject
if ($filefound) break; if ($filefound) break;
} }
// Charge le modele // If generator was found
if ($filefound) if ($filefound)
{ {
require_once $file; require_once $file;
@@ -3464,6 +3464,47 @@ abstract class CommonObject
$obj = new $classname($this->db); $obj = new $classname($this->db);
//$obj->message = $message; //$obj->message = $message;
// If generator is ODT, we must have srctemplatepath defined, if not we set it.
if ($obj->type == 'odt' && empty($srctemplatepath))
{
$varfortemplatedir=$obj->scandir;
if ($varfortemplatedir && ! empty($conf->global->$varfortemplatedir))
{
$dirtoscan=$conf->global->$varfortemplatedir;
$listoffiles=array();
// Now we add first model found in directories scanned
$listofdir=explode(',',$dirtoscan);
foreach($listofdir as $key=>$tmpdir)
{
$tmpdir=trim($tmpdir);
$tmpdir=preg_replace('/DOL_DATA_ROOT/',DOL_DATA_ROOT,$tmpdir);
if (! $tmpdir) { unset($listofdir[$key]); continue; }
if (is_dir($tmpdir))
{
$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.od(s|t)$','','name',SORT_ASC,0);
if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
}
}
if (count($listoffiles))
{
foreach($listoffiles as $record)
{
$srctemplatepath=$record['fullname'];
break;
}
}
}
if (empty($srctemplatepath))
{
$this->error='ErrorGenerationAskedForOdtTemplateWithNoSrcFileFound';
return -1;
}
}
// We save charset_output to restore it because write_file can change it if needed for // We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8. // output format that does not support UTF8.
$sav_charset_output=$outputlangs->charset_output; $sav_charset_output=$outputlangs->charset_output;
@@ -3483,14 +3524,15 @@ abstract class CommonObject
else else
{ {
$outputlangs->charset_output=$sav_charset_output; $outputlangs->charset_output=$sav_charset_output;
dol_print_error($this->db,"Error generating document for ".__CLASS__.". Error: ".$obj->error); dol_print_error($this->db, "Error generating document for ".__CLASS__.". Error: ".$obj->error, $obj->errors);
return -1; return -1;
} }
} }
else else
{ {
dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file)); $this->error=$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file);
dol_print_error('',$this->error);
return -1; return -1;
} }
} }

View File

@@ -1649,7 +1649,7 @@ function isValidEmail($address, $acceptsupervisorkey=0)
/** /**
* Return true if phone number syntax is ok * Return true if phone number syntax is ok
* TODO Decide what to do with this * TODO Decide what to do with this
* *
* @param string $phone phone (Ex: "0601010101") * @param string $phone phone (Ex: "0601010101")
* @return boolean true if phone syntax is OK, false if KO or empty string * @return boolean true if phone syntax is OK, false if KO or empty string
*/ */
@@ -2474,10 +2474,11 @@ function info_admin($text, $infoonimgalt = 0, $nodiv=0)
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
* @param mixed $error String or array of errors strings to show * @param mixed $error String or array of errors strings to show
* @param array $errors Array of errors
* @return void * @return void
* @see dol_htmloutput_errors * @see dol_htmloutput_errors
*/ */
function dol_print_error($db='',$error='') function dol_print_error($db='',$error='',$errors=null)
{ {
global $conf,$langs,$argv; global $conf,$langs,$argv;
global $dolibarr_main_prod; global $dolibarr_main_prod;
@@ -2550,12 +2551,15 @@ function dol_print_error($db='',$error='')
$syslog.=", db_error=".$db->lasterror(); $syslog.=", db_error=".$db->lasterror();
} }
if ($error) if ($error || $errors)
{ {
$langs->load("errors"); $langs->load("errors");
if (is_array($error)) $errors=$error; // Merge all into $errors array
else $errors=array($error); if (is_array($error) && is_array($errors)) $errors=array_merge($error,$errors);
elseif (is_array($error)) $errors=$error;
elseif (is_array($errors)) $errors=array_merge(array($error),$errors);
else $errors=array_merge(array($error));
foreach($errors as $msg) foreach($errors as $msg)
{ {
@@ -2564,7 +2568,7 @@ function dol_print_error($db='',$error='')
{ {
$out.="<b>".$langs->trans("Message").":</b> ".$msg."<br>\n" ; $out.="<b>".$langs->trans("Message").":</b> ".$msg."<br>\n" ;
} }
else // Mode CLI else // Mode CLI
{ {
$out.='> '.$langs->transnoentities("Message").":\n".$msg."\n" ; $out.='> '.$langs->transnoentities("Message").":\n".$msg."\n" ;
} }

View File

@@ -58,6 +58,7 @@ $id=GETPOST('id', 'int');
$ref=GETPOST('ref', 'alpha'); $ref=GETPOST('ref', 'alpha');
$type=GETPOST('type','int'); $type=GETPOST('type','int');
$action=(GETPOST('action','alpha') ? GETPOST('action','alpha') : 'view'); $action=(GETPOST('action','alpha') ? GETPOST('action','alpha') : 'view');
$cancel=GETPOST('cancel');
$confirm=GETPOST('confirm','alpha'); $confirm=GETPOST('confirm','alpha');
$socid=GETPOST('socid','int'); $socid=GETPOST('socid','int');
if (! empty($user->societe_id)) $socid=$user->societe_id; if (! empty($user->societe_id)) $socid=$user->societe_id;
@@ -98,6 +99,8 @@ $hookmanager->initHooks(array('productcard','globalcard'));
* Actions * Actions
*/ */
if ($cancel) $action = '';
$createbarcode=empty($conf->barcode->enabled)?0:1; $createbarcode=empty($conf->barcode->enabled)?0:1;
if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->barcode->creer_advance)) $createbarcode=0; if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->barcode->creer_advance)) $createbarcode=0;
@@ -520,19 +523,45 @@ if (empty($reshook))
} }
// Add product into proposal // Add product into object
if ($object->id > 0 && $action == 'addinpropal') if ($object->id > 0 && $action == 'addin')
{ {
$propal = new Propal($db); if (GETPOST('propalid') > 0)
$result=$propal->fetch(GETPOST('propalid'));
if ($result <= 0)
{ {
dol_print_error($db,$propal->error); $propal = new Propal($db);
exit; $result=$propal->fetch(GETPOST('propalid'));
if ($result <= 0)
{
dol_print_error($db,$propal->error);
exit;
}
$thirpdartyid = $propal->socid;
}
elseif (GETPOST('commandeid') > 0)
{
$commande = new Commande($db);
$result=$commande->fetch(GETPOST('commandeid'));
if ($result <= 0)
{
dol_print_error($db,$commande->error);
exit;
}
$thirpdartyid = $commande->socid;
}
elseif (GETPOST('factureid') > 0)
{
$facture = new Facture($db);
$result=$facture->fetch(GETPOST('factureid'));
if ($result <= 0)
{
dol_print_error($db,$facture->error);
exit;
}
$thirpdartyid = $facture->socid;
} }
$soc = new Societe($db); $soc = new Societe($db);
$result=$soc->fetch($propal->socid); $result=$soc->fetch($thirpdartyid);
if ($result <= 0) if ($result <= 0)
{ {
dol_print_error($db,$soc->error); dol_print_error($db,$soc->error);
@@ -589,254 +618,116 @@ if (empty($reshook))
} }
} }
$result = $propal->addline( if (GETPOST('propalid') > 0)
$desc,
$pu_ht,
GETPOST('qty'),
$tva_tx,
$localtax1_tx, // localtax1
$localtax2_tx, // localtax2
$object->id,
GETPOST('remise_percent'),
$price_base_type,
$pu_ttc,
0,
0,
-1,
0,
0,
0,
0,
'',
'',
'',
0,
$object->fk_unit
);
if ($result > 0)
{ {
header("Location: ".DOL_URL_ROOT."/comm/propal.php?id=".$propal->id); $result = $propal->addline(
return; $desc,
$pu_ht,
GETPOST('qty'),
$tva_tx,
$localtax1_tx, // localtax1
$localtax2_tx, // localtax2
$object->id,
GETPOST('remise_percent'),
$price_base_type,
$pu_ttc,
0,
0,
-1,
0,
0,
0,
0,
'',
'',
'',
0,
$object->fk_unit
);
if ($result > 0)
{
header("Location: ".DOL_URL_ROOT."/comm/propal.php?id=".$propal->id);
return;
}
setEventMessage($langs->trans("ErrorUnknown").": $result", 'errors');
} }
elseif (GETPOST('commandeid') > 0)
setEventMessage($langs->trans("ErrorUnknown").": $result", 'errors');
}
// Add product into order
if ($object->id > 0 && $action == 'addincommande')
{
$commande = new Commande($db);
$result=$commande->fetch(GETPOST('commandeid'));
if ($result <= 0)
{ {
dol_print_error($db,$commande->error); $result = $commande->addline(
exit; $desc,
$pu_ht,
GETPOST('qty'),
$tva_tx,
$localtax1_tx, // localtax1
$localtax2_tx, // localtax2
$object->id,
GETPOST('remise_percent'),
'',
'',
$price_base_type,
$pu_ttc,
'',
'',
0,
-1,
0,
0,
null,
0,
'',
0,
$object->fk_unit
);
if ($result > 0)
{
header("Location: ".DOL_URL_ROOT."/commande/card.php?id=".$commande->id);
exit;
}
} }
elseif (GETPOST('factureid') > 0)
$soc = new Societe($db);
$result=$soc->fetch($commande->socid);
if ($result <= 0)
{
dol_print_error($db,$soc->error);
exit;
}
$desc = $object->description;
$tva_tx = get_default_tva($mysoc, $soc, $object->id);
$localtax1_tx= get_localtax($tva_tx, 1, $soc);
$localtax2_tx= get_localtax($tva_tx, 2, $soc);
$pu_ht = $object->price;
$pu_ttc = $object->price_ttc;
$price_base_type = $object->price_base_type;
// If multiprice
if ($conf->global->PRODUIT_MULTIPRICES && $soc->price_level)
{
$pu_ht = $object->multiprices[$soc->price_level];
$pu_ttc = $object->multiprices_ttc[$soc->price_level];
$price_base_type = $object->multiprices_base_type[$soc->price_level];
}
elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
{ {
require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php'; $result = $facture->addline(
$desc,
$pu_ht,
GETPOST('qty'),
$tva_tx,
$localtax1_tx,
$localtax2_tx,
$object->id,
GETPOST('remise_percent'),
'',
'',
'',
'',
'',
$price_base_type,
$pu_ttc,
Facture::TYPE_STANDARD,
-1,
0,
'',
0,
0,
null,
0,
'',
0,
100,
'',
$object->fk_unit
);
$prodcustprice = new Productcustomerprice($db); if ($result > 0)
{
$filter = array('t.fk_product' => $object->id,'t.fk_soc' => $soc->id); header("Location: ".DOL_URL_ROOT."/compta/facture.php?facid=".$facture->id);
exit;
$result = $prodcustprice->fetch_all('', '', 0, 0, $filter); }
if ($result) {
if (count($prodcustprice->lines) > 0) {
$pu_ht = price($prodcustprice->lines [0]->price);
$pu_ttc = price($prodcustprice->lines [0]->price_ttc);
$price_base_type = $prodcustprice->lines [0]->price_base_type;
$prod->tva_tx = $prodcustprice->lines [0]->tva_tx;
}
}
} }
// On reevalue prix selon taux tva car taux tva transaction peut etre different
// de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
if ($tva_tx != $object->tva_tx)
{
if ($price_base_type != 'HT')
{
$pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU');
}
else
{
$pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU');
}
}
$result = $commande->addline(
$desc,
$pu_ht,
GETPOST('qty'),
$tva_tx,
$localtax1_tx, // localtax1
$localtax2_tx, // localtax2
$object->id,
GETPOST('remise_percent'),
'',
'',
$price_base_type,
$pu_ttc,
'',
'',
0,
-1,
0,
0,
null,
0,
'',
0,
$object->fk_unit
);
if ($result > 0)
{
header("Location: ".DOL_URL_ROOT."/commande/card.php?id=".$commande->id);
exit;
}
}
// Add product into invoice
if ($object->id > 0 && $action == 'addinfacture' && $user->rights->facture->creer)
{
$facture = New Facture($db);
$result=$facture->fetch(GETPOST('factureid'));
if ($result <= 0)
{
dol_print_error($db,$facture->error);
exit;
}
$soc = new Societe($db);
$soc->fetch($facture->socid);
if ($result <= 0)
{
dol_print_error($db,$soc->error);
exit;
}
$desc = $object->description;
$tva_tx = get_default_tva($mysoc, $soc, $object->id);
$localtax1_tx= get_localtax($tva_tx, 1, $soc);
$localtax2_tx= get_localtax($tva_tx, 2, $soc);
$pu_ht = $object->price;
$pu_ttc = $object->price_ttc;
$price_base_type = $object->price_base_type;
// If multiprice
if ($conf->global->PRODUIT_MULTIPRICES && $soc->price_level)
{
$pu_ht = $object->multiprices[$soc->price_level];
$pu_ttc = $object->multiprices_ttc[$soc->price_level];
$price_base_type = $object->multiprices_base_type[$soc->price_level];
}
elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
{
require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
$prodcustprice = new Productcustomerprice($db);
$filter = array('t.fk_product' => $object->id,'t.fk_soc' => $soc->id);
$result = $prodcustprice->fetch_all('', '', 0, 0, $filter);
if ($result) {
if (count($prodcustprice->lines) > 0) {
$pu_ht = price($prodcustprice->lines [0]->price);
$pu_ttc = price($prodcustprice->lines [0]->price_ttc);
$price_base_type = $prodcustprice->lines [0]->price_base_type;
$prod->tva_tx = $prodcustprice->lines [0]->tva_tx;
}
}
}
// On reevalue prix selon taux tva car taux tva transaction peut etre different
// de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
if ($tva_tx != $object->tva_tx)
{
if ($price_base_type != 'HT')
{
$pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU');
}
else
{
$pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU');
}
}
$result = $facture->addline(
$desc,
$pu_ht,
GETPOST('qty'),
$tva_tx,
$localtax1_tx,
$localtax2_tx,
$object->id,
GETPOST('remise_percent'),
'',
'',
'',
'',
'',
$price_base_type,
$pu_ttc,
Facture::TYPE_STANDARD,
-1,
0,
'',
0,
0,
null,
0,
'',
0,
100,
'',
$object->fk_unit
);
if ($result > 0)
{
header("Location: ".DOL_URL_ROOT."/compta/facture.php?facid=".$facture->id);
exit;
}
} }
} }
if (GETPOST("cancel") == $langs->trans("Cancel"))
{
$action = '';
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id);
exit;
}
/* /*
@@ -1815,42 +1706,23 @@ if ($object->id && ($action == '' || $action == 'view') && $object->status)
$langs->load("propal"); $langs->load("propal");
$html .= '<tr class="liste_titre">';
$html .= '<td class="liste_titre">'.$langs->trans("AddToDraftProposals").'</td>';
$html .= '</tr><tr>';
$html .= '<td valign="top">';
$var=true; $var=true;
$otherprop = $propal->liste_array(2,1,0); $otherprop = $propal->liste_array(2,1,0);
$html .= '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'">';
$html .= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
$html .= '<table class="nobordernopadding" width="100%">';
if (is_array($otherprop) && count($otherprop)) if (is_array($otherprop) && count($otherprop))
{ {
$var=!$var; $var=!$var;
$html .= '<tr '.$bc[$var].'><td style="width: 200px;">'; $html .= '<tr '.$bc[$var].'><td style="width: 200px;">';
$html .= '<input type="hidden" name="action" value="addinpropal">'; $html .= $langs->trans("AddToDraftProposals").'</td><td colspan="2">';
$html .= $langs->trans("Proposals").'</td><td colspan="2">';
$html .= $form->selectarray("propalid", $otherprop, 0, 1); $html .= $form->selectarray("propalid", $otherprop, 0, 1);
$html .= '</td></tr>'; $html .= '</td></tr>';
$html .= '<tr '.$bc[$var].'><td class="nowrap">'.$langs->trans("Quantity").' ';
$html .= '<input type="text" class="flat" name="qty" size="1" value="1"></td><td class="nowrap">'.$langs->trans("ReductionShort").'(%) ';
$html .= '<input type="text" class="flat" name="remise_percent" size="1" value="0">';
$html .= '</td><td align="right">';
$html .= '<input type="submit" class="button" value="'.$langs->trans("Add").'">';
$html .= '</td></tr>';
} }
else else
{ {
$html .= "<tr ".$bc[!$var]."><td>"; $html .= "<tr ".$bc[!$var]."><td>";
$html .= $langs->trans("NoDraftProposals"); $html .= $langs->trans("NoDraftProposals");
$html .= '</td></tr>'; $html .= '</td></tr>';
} }
$html .= '</table>';
$html .= '</form>';
$html .= '</td>';
$html .= '</tr>';
} }
// Commande // Commande
@@ -1860,30 +1732,15 @@ if ($object->id && ($action == '' || $action == 'view') && $object->status)
$langs->load("orders"); $langs->load("orders");
$html .= '<tr class="liste_titre">';
$html .= '<td class="liste_titre">'.$langs->trans("AddToDraftOrders").'</td>';
$html .= '</tr><tr>';
$html .= '<td valign="top">';
$var=true; $var=true;
$othercom = $commande->liste_array(2, 1, null); $othercom = $commande->liste_array(2, 1, null);
$html .= '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'">';
$html .= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
$html .= '<table class="nobordernopadding" width="100%">';
if (is_array($othercom) && count($othercom)) if (is_array($othercom) && count($othercom))
{ {
$var=!$var; $var=!$var;
$html .= '<tr '.$bc[$var].'><td style="width: 200px;">'; $html .= '<tr '.$bc[$var].'><td style="width: 200px;">';
$html .= '<input type="hidden" name="action" value="addincommande">'; $html .= $langs->trans("AddToDraftOrders").'</td><td colspan="2">';
$html .= $langs->trans("Orders").'</td><td colspan="2">';
$html .= $form->selectarray("commandeid", $othercom, 0, 1); $html .= $form->selectarray("commandeid", $othercom, 0, 1);
$html .= '</td></tr>'; $html .= '</td></tr>';
$html .= '<tr '.$bc[$var].'><td class="nowrap">'.$langs->trans("Quantity").' ';
$html .= '<input type="text" class="flat" name="qty" size="1" value="1"></td><td class="nowrap">'.$langs->trans("ReductionShort").'(%) ';
$html .= '<input type="text" class="flat" name="remise_percent" size="1" value="0">';
$html .= '</td><td align="right">';
$html .= '<input type="submit" class="button" value="'.$langs->trans("Add").'">';
$html .= '</td></tr>';
} }
else else
{ {
@@ -1891,11 +1748,6 @@ if ($object->id && ($action == '' || $action == 'view') && $object->status)
$html .= $langs->trans("NoDraftOrders"); $html .= $langs->trans("NoDraftOrders");
$html .= '</td></tr>'; $html .= '</td></tr>';
} }
$html .= '</table>';
$html .= '</form>';
$html .= '</td>';
$html .= '</tr>';
} }
// Factures // Factures
@@ -1905,30 +1757,15 @@ if ($object->id && ($action == '' || $action == 'view') && $object->status)
$langs->load("bills"); $langs->load("bills");
$html .= '<tr class="liste_titre">';
$html .= '<td class="liste_titre">'.$langs->trans("AddToDraftInvoices").'</td>';
$html .= '</tr><tr>';
$html .= '<td valign="top">';
$var=true; $var=true;
$otherinvoice = $invoice->liste_array(2, 1, null); $otherinvoice = $invoice->liste_array(2, 1, null);
$html .= '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'">';
$html .= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
$html .= '<table class="nobordernopadding" width="100%">';
if (is_array($otherinvoice) && count($otherinvoice)) if (is_array($otherinvoice) && count($otherinvoice))
{ {
$var=!$var; $var=!$var;
$html .= '<tr '.$bc[$var].'><td style="width: 200px;">'; $html .= '<tr '.$bc[$var].'><td style="width: 200px;">';
$html .= '<input type="hidden" name="action" value="addinfacture">'; $html .= $langs->trans("AddToDraftInvoices").'</td><td colspan="2">';
$html .= $langs->trans("Invoice").'</td><td colspan="2">';
$html .= $form->selectarray("factureid", $otherinvoice, 0, 1); $html .= $form->selectarray("factureid", $otherinvoice, 0, 1);
$html .= '</td></tr>'; $html .= '</td></tr>';
$html .= '<tr '.$bc[$var].'><td class="nowrap">'.$langs->trans("Quantity").' ';
$html .= '<input type="text" class="flat" name="qty" size="1" value="1"></td><td class="nowrap">'.$langs->trans("ReductionShort").'(%) ';
$html .= '<input type="text" class="flat" name="remise_percent" size="1" value="0">';
$html .= '</td><td align="right">';
$html .= '<input type="submit" class="button" value="'.$langs->trans("Add").'">';
$html .= '</td></tr>';
} }
else else
{ {
@@ -1936,20 +1773,31 @@ if ($object->id && ($action == '' || $action == 'view') && $object->status)
$html .= $langs->trans("NoDraftInvoices"); $html .= $langs->trans("NoDraftInvoices");
$html .= '</td></tr>'; $html .= '</td></tr>';
} }
$html .= '</table>';
$html .= '</form>';
$html .= '</td>';
$html .= '</tr>';
} }
//If any text is going to be printed, then we show the table //If any text is going to be printed, then we show the table
if (!empty($html)) if (!empty($html))
{ {
print '<table width="100%" class="noborder">'; print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addin">';
print load_fiche_titre($langs->trans("Add"),'','');
$html .= '<tr '.$bc[$var].'><td class="nowrap">'.$langs->trans("Quantity").' ';
$html .= '<input type="text" class="flat" name="qty" size="1" value="1"></td><td class="nowrap">'.$langs->trans("ReductionShort").'(%) ';
$html .= '<input type="text" class="flat" name="remise_percent" size="1" value="0">';
$html .= '</td></tr>';
print '<table width="100%" class="border">';
print $html; print $html;
print '</table>'; print '</table>';
print '<br>';
print '<div class="center">';
print '<input type="submit" class="button" value="'.$langs->trans("Add").'">';
print '</div>';
print '</form>';
} }
} }

View File

@@ -523,20 +523,20 @@ if ($id || $ref)
$param="&id=".$product->id; $param="&id=".$product->id;
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Suppliers"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Suppliers"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
print '<td class="liste_titre">'.$langs->trans("SupplierRef").'</td>'; print_liste_field_titre($langs->trans("SupplierRef"));
if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) print_liste_field_titre($langs->trans("Availability"),$_SERVER["PHP_SELF"],"pfp.fk_availability","",$param,"",$sortfield,$sortorder); if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) print_liste_field_titre($langs->trans("Availability"),$_SERVER["PHP_SELF"],"pfp.fk_availability","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("QtyMin"),$_SERVER["PHP_SELF"],"pfp.quantity","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("QtyMin"),$_SERVER["PHP_SELF"],"pfp.quantity","",$param,'align="right"',$sortfield,$sortorder);
print '<td class="liste_titre" align="right">'.$langs->trans("VATRate").'</td>'; print_liste_field_titre($langs->trans("VATRate"));
print '<td class="liste_titre" align="right">'.$langs->trans("PriceQtyMinHT").'</td>'; print_liste_field_titre($langs->trans("PriceQtyMinHT"));
print_liste_field_titre($langs->trans("UnitPriceHT"),$_SERVER["PHP_SELF"],"pfp.unitprice","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("UnitPriceHT"),$_SERVER["PHP_SELF"],"pfp.unitprice","",$param,'align="right"',$sortfield,$sortorder);
print '<td class="liste_titre" align="right">'.$langs->trans("DiscountQtyMin").'</td>'; print_liste_field_titre($langs->trans("DiscountQtyMin"));
print_liste_field_titre($langs->trans("NbDaysToDelivery"),$_SERVER["PHP_SELF"],"pfp.delivery_time_days","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("NbDaysToDelivery"),$_SERVER["PHP_SELF"],"pfp.delivery_time_days","",$param,'align="right"',$sortfield,$sortorder);
// Charges ???? // Charges ????
if ($conf->global->PRODUCT_CHARGES) if ($conf->global->PRODUCT_CHARGES)
{ {
if (! empty($conf->margin->enabled)) print '<td align="right">'.$langs->trans("UnitCharges").'</td>'; if (! empty($conf->margin->enabled)) print_liste_field_titre($langs->trans("UnitCharges"));
} }
print '<td class="liste_titre"></td>'; print_liste_field_titre('');
print "</tr>\n"; print "</tr>\n";
$product_fourn = new ProductFournisseur($db); $product_fourn = new ProductFournisseur($db);

View File

@@ -65,7 +65,7 @@ else
<h1> <h1>
This page is a sample of page using tables. It is designed to make test with<br> This page is a sample of page using tables. It is designed to make test with<br>
- css (edit page to change to test another css)<br> - css (add parameter &theme=newthem to test another theme or edit css of current theme)<br>
- jmobile (add parameter dol_use_jmobile=1&dol_optimize_smallscreen=1 to enable view with jmobile)<br> - jmobile (add parameter dol_use_jmobile=1&dol_optimize_smallscreen=1 to enable view with jmobile)<br>
- dataTables<br> - dataTables<br>
- tablednd<br> - tablednd<br>
@@ -115,9 +115,13 @@ This page is a sample of page using tables. It is designed to make test with<br>
<br><hr><br>Example 1 : Standard table => Use this if you need the drag and drop for lines<br> <br><hr><br>Example 1 : Standard table/thead/tbody/tr/th-td (no class pair/impair on td) => Use this if you need the drag and drop for lines<br>
<?php <?php
include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
$productspecimen=new Product($db);
$productspecimen->initAsSpecimen();
$sortfield='aaa'; $sortfield='aaa';
$sortorder='ASC'; $sortorder='ASC';
$tasksarray=array(1,2,3); // To force having several lines $tasksarray=array(1,2,3); // To force having several lines
@@ -130,14 +134,14 @@ if (! empty($conf->use_javascript_ajax)) include DOL_DOCUMENT_ROOT.'/core/tpl/aj
<?php print getTitleFieldOfList($langs->trans('title2'),0,$_SERVER["PHP_SELF"],'bbb','','','align="right"',$sortfield,$sortorder); ?> <?php print getTitleFieldOfList($langs->trans('title2'),0,$_SERVER["PHP_SELF"],'bbb','','','align="right"',$sortfield,$sortorder); ?>
<?php print getTitleFieldOfList($langs->trans('title3'),0,$_SERVER["PHP_SELF"],'ccc','','','align="center"',$sortfield,$sortorder); ?> <?php print getTitleFieldOfList($langs->trans('title3'),0,$_SERVER["PHP_SELF"],'ccc','','','align="center"',$sortfield,$sortorder); ?>
</tr> </tr>
<tr class="pair"><td class="pair">a1</td><td class="pair" align="right">b1</td><td class="tdlineupdown pair" align="left">c1</td></tr> <tr class="pair"><td><?php echo $productspecimen->getNomUrl(1); ?></td><td align="right">b1</td><td class="tdlineupdown" align="left">c1</td></tr>
<tr class="impair"><td class="impair">a2</td><td class="impair" align="right">b2</td><td class="tdlineupdown impair" align="left">c2</td></tr> <tr class="impair"><td>a2</td><td align="right">b2</td><td class="tdlineupdown" align="left">c2</td></tr>
</table> </table>
<br> <br>
<br><hr><br>Example 2 : Table using tags: table/thead/tbody/tr/td + dataTable => Use this for long result tables<br> <br><hr><br>Example 2 : Table using tags: table/thead/tbody/tr/th-td + dataTable => Use this for long result tables<br>
@@ -221,9 +225,11 @@ $('xxxth').replaceWith(
<table id="idtableexample2" class="centpercent"> <table id="idtableexample2" class="centpercent">
<thead> <thead>
<tr class="liste_titre"> <tr class="liste_titre">
<th>snake</th> <th>Column A</th>
<th><label><input type="checkbox" name="hidedetails" value="2"> A checkbox inside a cell</label></th> <th><label><input type="checkbox" name="hidedetails" value="2"> A checkbox inside a title of Column B</label></th>
<?php print getTitleFieldOfList($langs->trans('zzz'),1,$_SERVER["PHP_SELF"],'','','','align="center" class="tagtd"',$sortfield,$sortorder); ?> <?php
print getTitleFieldOfList($langs->trans('Column C'),1,$_SERVER["PHP_SELF"],'','','','align="center" class="tagtd"',$sortfield,$sortorder);
?>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -292,7 +298,7 @@ $('xxxth').replaceWith(
<br> <br>
<br><hr><br>Example 3 : Table using tags: div.tagtable+div.tagtr+div or div.tagtable+div.tagtr+div.tagtd => Use this, but AVOID IT if possible, for tables that need to have a different form for each line (drag and drop of lines does not work for this case, also height of title can't be forced to a minimum)<br><br> <br><hr><br>Example 3 : Table using tags: div.tagtable+div.tagtr+div or div.tagtable+div.tagtr+div.tagtd => Use this for tables that need to have a different form for each line, but AVOID IT if possible (drag and drop of lines does not work for this case, also height of title can't be forced to a minimum)<br><br>
<?php <?php
@@ -302,23 +308,29 @@ $('xxxth').replaceWith(
?> ?>
<div class="tagtable centpercent" id="tablelines"> <div class="tagtable centpercent" id="tablelines">
<div class="tagtr liste_titre"> <div class="tagtr liste_titre">
<div class="tagtd">line3<input type="hidden" name="cartitem" value="3"></div> <div class="tagtd">Title A<input type="hidden" name="cartitem" value="3"></div>
<div class="tagtd">dfsdf</div> <div class="tagtd">title B</div>
<div class="tagtd">ffdsfsd</div> <div class="tagtd">title C</div>
<div class="tagtd tdlineupdown">aaaa</div> <div class="tagtd">title D</div>
</div> </div>
<div class="impair tagtr"> <div class="pair tagtr">
<div class="tagtd">line4<input type="hidden" name="cartitem" value="3"></div> <div class="tagtd">line4<input type="hidden" name="cartitem" value="3"></div>
<div class="tagtd">dfsdf</div> <div class="tagtd">dfsdf</div>
<div class="tagtd"><input name="count" value="4"></div> <div class="tagtd"><input name="count" value="4"></div>
<div class="tagtd tdlineupdown">bbbb</div> <div class="tagtd tdlineupdown">bbbb</div>
</div> </div>
<div class="pair tagtr"> <div class="impair tagtr">
<div class="tagtd">line5<input type="hidden" name="cartitemb" value="3"></div> <div class="tagtd">line5<input type="hidden" name="cartitemb" value="3"></div>
<div class="tagtd">dfsdf</div> <div class="tagtd">dfsdf</div>
<div class="tagtd"><input name="countb" value="4"></div> <div class="tagtd"><input name="countb" value="4"></div>
<div class="tagtd tdlineupdown">bbbb</div> <div class="tagtd tdlineupdown">bbbb</div>
</div> </div>
<div class="pair tagtr">
<div class="tagtd">line6<input type="hidden" name="cartitem" value="3"></div>
<div class="tagtd">jghjgh</div>
<div class="tagtd">5</div>
<div class="tagtd tdlineupdown">lll</div>
</div>
<!-- Using form into div make Firefox crazy (page loading does not end) --> <!-- Using form into div make Firefox crazy (page loading does not end) -->
<!-- <form class="liste_titre" method="POST" action="1.php"> <!-- <form class="liste_titre" method="POST" action="1.php">
<div>line1<input type="hidden" name="cartitem" value="1"></div> <div>line1<input type="hidden" name="cartitem" value="1"></div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 264 B

View File

@@ -187,11 +187,6 @@ if ($tmpval <= 340) { $colortextbacktab='FFF'; }
else { $colortextbacktab='111'; } else { $colortextbacktab='111'; }
$usecss3=true;
if ($conf->browser->name == 'ie' && round($conf->browser->version,2) < 10) $usecss3=false;
elseif ($conf->browser->name == 'iceweasel') $usecss3=false;
elseif ($conf->browser->name == 'epiphany') $usecss3=false;
print '/*'."\n"; print '/*'."\n";
print 'colred='.$colred.' colgreen='.$colgreen.' colblue='.$colblue."\n"; print 'colred='.$colred.' colgreen='.$colgreen.' colblue='.$colblue."\n";
print 'isred='.$isred.' isgreen='.$isgreen.' isblue='.$isblue."\n"; print 'isred='.$isred.' isgreen='.$isgreen.' isblue='.$isblue."\n";
@@ -201,7 +196,6 @@ print 'colorbacklineimpairhover='.$colorbacklineimpairhover."\n";
print 'colorbacklinepair1='.$colorbacklinepair1."\n"; print 'colorbacklinepair1='.$colorbacklinepair1."\n";
print 'colorbacklinepair2='.$colorbacklinepair2."\n"; print 'colorbacklinepair2='.$colorbacklinepair2."\n";
print 'colorbacklinepairhover='.$colorbacklinepairhover."\n"; print 'colorbacklinepairhover='.$colorbacklinepairhover."\n";
print 'usecss3='.$usecss3."\n";
print 'dol_hide_topmenu='.$dol_hide_topmenu."\n"; print 'dol_hide_topmenu='.$dol_hide_topmenu."\n";
print 'dol_hide_leftmenu='.$dol_hide_leftmenu."\n"; print 'dol_hide_leftmenu='.$dol_hide_leftmenu."\n";
print 'dol_optimize_smallscreen='.$dol_optimize_smallscreen."\n"; print 'dol_optimize_smallscreen='.$dol_optimize_smallscreen."\n";
@@ -249,7 +243,7 @@ textarea.cke_source:focus
box-shadow: none; box-shadow: none;
} }
input, input.flat, textarea, textarea.flat, form.flat select, select.flat { input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select {
font-size: <?php print $fontsize ?>px; font-size: <?php print $fontsize ?>px;
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
background: #FDFDFD; background: #FDFDFD;
@@ -570,17 +564,12 @@ div#tmenu_tooltip {
padding-<?php echo $right; ?>: 100px; padding-<?php echo $right; ?>: 100px;
background: <?php echo $colorbackvmenu; ?>; background: <?php echo $colorbackvmenu; ?>;
box-shadow: 0 0 6px rgba(0, 0, 0, .4) !important; box-shadow: 0 0 6px rgba(0, 0, 0, .4) !important;
<?php if ($usecss3) { ?>
background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%); background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%); background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%); background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%); background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%); background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(128,128,128,.3)) ); background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(128,128,128,.3)) );
<?php } else { ?>
background-image: rgb(<?php echo $colorbackhmenu1; ?>);
border-bottom: 1px solid #CCC;
<?php } ?>
<?php } ?> <?php } ?>
} }
@@ -642,17 +631,12 @@ ul.tmenu { /* t r b l */
ul.tmenu li { ul.tmenu li {
background: rgb(<?php echo $colorbackhmenu1 ?>); background: rgb(<?php echo $colorbackhmenu1 ?>);
<?php if ($usecss3) { ?>
background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) ); background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) );
<?php } else { ?>
background-image: rgb(<?php echo $colorbackhmenu1; ?>);
border-bottom: 1px solid #CCC;
<?php } ?>
} }
li.tmenu, li.tmenusel { li.tmenu, li.tmenusel {
<?php print $minwidthtmenu?'min-width: '.$minwidthtmenu.'px;':''; ?> <?php print $minwidthtmenu?'min-width: '.$minwidthtmenu.'px;':''; ?>
@@ -1034,18 +1018,12 @@ div.blockvmenupair, div.blockvmenuimpair, div.blockvmenubookmarks
padding-bottom: 3px; padding-bottom: 3px;
margin: 1px 0px 8px 2px; margin: 1px 0px 8px 2px;
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px); background-image: -o-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px);
background-image: -moz-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px); background-image: -moz-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px);
background-image: -webkit-linear-gradient(right, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px); background-image: -webkit-linear-gradient(right, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px);
background-image: -ms-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px); background-image: -ms-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px);
background-image: linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px); background-image: linear-gradient(bottom, rgb(<?php echo $colorbackvmenu2; ?>) 0px, rgb(<?php echo $colorbackvmenu1; ?>) 3px);
<?php } else { ?>
background-position:top;
background-repeat:repeat-x;
<?php } ?>
border-left: 1px solid #AAA; border-left: 1px solid #AAA;
border-right: 1px solid #BBB; border-right: 1px solid #BBB;
border-bottom: 1px solid #BBB; border-bottom: 1px solid #BBB;
@@ -1070,13 +1048,11 @@ div.blockvmenusearch
margin: 1px 0px 8px 2px; margin: 1px 0px 8px 2px;
background: #E3E6E8; background: #E3E6E8;
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%); background-image: -o-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: -moz-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%); background-image: -moz-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%); background-image: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: -ms-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%); background-image: -ms-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%); background-image: linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 90%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
<?php } ?>
border-left: 1px solid #AAA; border-left: 1px solid #AAA;
border-right: 1px solid #CCC; border-right: 1px solid #CCC;
@@ -1153,13 +1129,12 @@ td.photo {
/* ============================================================================== */ /* ============================================================================== */
.largebutton { .largebutton {
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important; background-image: -o-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important;
background-image: -moz-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important; background-image: -moz-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important;
background-image: -webkit-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important; background-image: -webkit-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important;
background-image: -ms-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important; background-image: -ms-linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important;
background-image: linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important; background-image: linear-gradient(bottom, rgba(200,200,200,0.1) 0%, rgba(255,255,255,0.3) 120%) !important;
<?php } ?>
background: #FFF; background: #FFF;
background-repeat: repeat-x !important; background-repeat: repeat-x !important;
border: 1px solid #CCC !important; border: 1px solid #CCC !important;
@@ -1409,23 +1384,14 @@ div.tabBar {
border-left: 1px solid #AAA; border-left: 1px solid #AAA;
border-top: 1px solid #BBB; border-top: 1px solid #BBB;
width: auto; width: auto;
/*
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgba(<?php echo $colorbacktabcard1; ?>, 0.5) 25%, rgba(<?php echo $colorbacktabcard2; ?>, 0.5) 100%);
background-image: -moz-linear-gradient(bottom, rgba(<?php echo $colorbacktabcard1; ?>, 0.5) 25%, rgba(<?php echo $colorbacktabcard2; ?>, 0.5) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(<?php echo $colorbacktabcard1; ?>, 0.5) 25%, rgba(<?php echo $colorbacktabcard2; ?>, 0.5) 100%);
background-image: -ms-linear-gradient(bottom, rgba(<?php echo $colorbacktabcard1; ?>, 0.5) 25%, rgba(<?php echo $colorbacktabcard2; ?>, 0.5) 100%);
background-image: linear-gradient(bottom, rgba(<?php echo $colorbacktabcard1; ?>, 0.5) 25%, rgba(<?php echo $colorbacktabcard2; ?>, 0.5) 100%);
<?php } else { ?>
background: rgb(<?php echo $colorbacktabcard1; ?>); background: rgb(<?php echo $colorbacktabcard1; ?>);
<?php } ?>
*/ <?php if (empty($dol_optimize_smallscreen)) { ?>
background: rgb(<?php echo $colorbacktabcard1; ?>);
<?php if (empty($dol_optimize_smallscreen)) { ?>
-moz-box-shadow: 3px 3px 4px #DDD; -moz-box-shadow: 3px 3px 4px #DDD;
-webkit-box-shadow: 3px 3px 4px #DDD; -webkit-box-shadow: 3px 3px 4px #DDD;
box-shadow: 3px 3px 4px #DDD; box-shadow: 3px 3px 4px #DDD;
<?php } ?> <?php } ?>
} }
div.tabsAction { div.tabsAction {
@@ -1460,28 +1426,6 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
-webkit-border-radius:6px 6px 0px 0px; -webkit-border-radius:6px 6px 0px 0px;
border-radius:6px 6px 0px 0px; border-radius:6px 6px 0px 0px;
/*
-moz-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
-webkit-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
box-shadow: 0 -1px 4px rgba(0,0,0,.1);
*/
border-bottom: none;
/*
border-right: 1px solid #BBB;
border-left: 1px solid #BBB;
border-top: 1px solid #CCC;
*/
/*
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 35%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: -moz-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 35%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 35%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: -ms-linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 35%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
background-image: linear-gradient(bottom, rgb(<?php echo $colorbackvmenu1; ?>) 35%, rgb(<?php echo $colorbackvmenu2; ?>) 100%);
<?php } ?>
background-image: none !important;
*/
background: rgb(<?php echo $colorbackvmenu2; ?>); background: rgb(<?php echo $colorbackvmenu2; ?>);
border-right: 1px solid #BBB; border-right: 1px solid #BBB;
@@ -1492,14 +1436,6 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
} }
.tabactive { .tabactive {
/*
<?php if ($usecss3) { ?>
background: rgba(<?php echo $colorbacktabcard2; ?>, 0.5) url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/nav-overlay3.png',1); ?>) 50% 0 repeat-x;
<?php } else { ?>
background: rgb(<?php echo $colorbacktabactive; ?>) url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/nav-overlay3.png',1); ?>) 50% 0 repeat-x;
<?php } ?>
*/
/*background-image: none !important; */
color: #<?php echo $colortextbacktab; ?> !important; color: #<?php echo $colortextbacktab; ?> !important;
background: rgb(<?php echo $colorbacktabcard1; ?>) !important; background: rgb(<?php echo $colorbacktabcard1; ?>) !important;
-moz-box-shadow: 0 -1px 4px rgba(0,0,0,.1); -moz-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
@@ -1899,53 +1835,28 @@ table.liste td {
} }
*/ */
.impair:hover, td.nohover {
<?php if ($colorbacklineimpairhover) { if ($usecss3) { ?> .odd:hover, .impair:hover, .even:hover, .pair:hover, .even:hover, .pair:hover, table.dataTable tr.even:hover, table.dataTable tr.odd:hover
background: rgb(<?php echo $colorbacklineimpairhover; ?>); {
<?php if ($colorbacklinepairhover) { if ($colorbacklinepairhover > 0) { ?>
background: rgb(<?php echo $colorbacklinepairhover; ?>) !important;
<?php } else { ?> <?php } else { ?>
background: #fafafa; background: rgba(0, 0, 0, 0.05) !important;
<?php } } ?> <?php } } ?>
border: 0px;
} }
.impair, .nohover .impair:hover, tr.impair td.nohover { .odd, .impair, .nohover .odd:hover, .nohover .impair:hover, tr.odd td.nohover, tr.impair td.nohover {
<?php if ($usecss3) { ?>
background: linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -o-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -moz-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -ms-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
<?php } else { ?>
background: #eaeaea;
<?php } ?>
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
border: 0px; border: 0px;
margin-bottom: 1px; margin-bottom: 1px;
color: #202020; color: #202020;
min-height: 18px; /* seems to not be used */ min-height: 18px; /* seems to not be used */
}
.pair:hover {
<?php if ($colorbacklinepairhover) { if ($usecss3) { ?>
background: rgb(<?php echo $colorbacklinepairhover; ?>);
<?php } else { ?>
background: #fafafa;
<?php } }?>
border: 0px;
}
.pair, .nohover .pair:hover, tr.pair td.nohover {
/*
<?php if ($usecss3) { ?>
background: linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -o-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -moz-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -ms-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
<?php } else { ?>
background: #ffffff; background: #ffffff;
<?php } ?> }
*/
.even, .pair, .nohover .even:hover, .nohover .pair:hover, tr.even td.nohover, tr.pair td.nohover {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
border: 0px; border: 0px;
margin-bottom: 1px; margin-bottom: 1px;
@@ -1953,11 +1864,17 @@ table.liste td {
background-color: #f9f9f9; background-color: #f9f9f9;
} }
tr.pair td, tr.impair td, form.impair div.tagtd, form.pair div.tagtd { table.dataTable tr.odd {
padding: 5px 2px; background-color: #f9f9f9 !important;
}
table.dataTable td {
padding: 5px 2px 5px 3px !important;
}
tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair div.tagtd, form.pair div.tagtd, div.impair div.tagtd, div.pair div.tagtd, div.liste_titre div.tagtd {
padding: 5px 2px 5px 3px;
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
} }
tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td { tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td {
border-bottom: 0px !important; border-bottom: 0px !important;
} }
td.nobottom, td.nobottom { td.nobottom, td.nobottom {
@@ -1977,14 +1894,14 @@ div.liste_titre, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.list
{ {
background: rgb(<?php echo $colorbacktitle1; ?>); background: rgb(<?php echo $colorbacktitle1; ?>);
background-repeat: repeat-x; background-repeat: repeat-x;
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
font-weight: bold; font-weight: bold;
<?php } ?>
color: #<?php echo $colortexttitle; ?>; color: #<?php echo $colortexttitle; ?>;
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
border-bottom: 1px solid #FDFFFF; border-bottom: 1px solid #FDFFFF;
@@ -2097,14 +2014,14 @@ tr.box_titre {
height: 26px; height: 26px;
background: rgb(<?php echo $colorbacktitle1; ?>); background: rgb(<?php echo $colorbacktitle1; ?>);
background-repeat: repeat-x; background-repeat: repeat-x;
<?php if ($usecss3) { ?>
background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) ); background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) );
<?php } ?>
color: #<?php echo $colortexttitle; ?>; color: #<?php echo $colortexttitle; ?>;
text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>;
font-family: <?php print $fontlist ?>, sans-serif; font-family: <?php print $fontlist ?>, sans-serif;
@@ -2118,30 +2035,17 @@ tr.box_titre td.boxclose {
} }
tr.box_impair { tr.box_impair {
<?php if ($usecss3) { ?>
background: -o-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%); background: -o-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -moz-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%); background: -moz-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%); background: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: -ms-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%); background: -ms-linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
background: linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%); background: linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
<?php } else { ?>
background: #eaeaea;
<?php } ?>
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
} }
tr.box_pair { tr.box_pair {
/*<?php if ($usecss3) { ?>
background: -o-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -moz-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: -ms-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
background: linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
<?php } else { ?>
background: #ffffff;
<?php } ?>
*/
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
background-color: #f9f9f9; background-color: #f9f9f9;
@@ -2997,11 +2901,13 @@ div.dolEventError h1, div.dolEventError h2 {
/* ============================================================================== */ /* ============================================================================== */
/* Datatable */ /* Datatable */
/* ============================================================================== */ /* ============================================================================== */
table.dataTable tr.odd td.sorting_1, table.dataTable tr.even td.sorting_1 {
.sorting_asc { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_asc.png',1); ?>') no-repeat center right; } background: none !important;
.sorting_desc { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_desc.png',1); ?>') no-repeat center right; } }
.sorting_asc_disabled { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_asc_disabled',1); ?>') no-repeat center right; } .sorting_asc { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_asc.png',1); ?>') no-repeat center right !important; }
.sorting_desc_disabled { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_desc_disabled',1); ?>') no-repeat center right; } .sorting_desc { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_desc.png',1); ?>') no-repeat center right !important; }
.sorting_asc_disabled { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_asc_disabled.png',1); ?>') no-repeat center right !important; }
.sorting_desc_disabled { background: url('<?php echo dol_buildpath('/theme/'.$theme.'/img/sort_desc_disabled.png',1); ?>') no-repeat center right !important; }
.paginate_disabled_previous:hover, .paginate_enabled_previous:hover, .paginate_disabled_next:hover, .paginate_enabled_next:hover .paginate_disabled_previous:hover, .paginate_enabled_previous:hover, .paginate_disabled_next:hover, .paginate_enabled_next:hover
{ {
font-weight: normal; font-weight: normal;
@@ -3195,14 +3101,14 @@ ul.ulmenu {
border: 1px solid #5f5f7a !important; border: 1px solid #5f5f7a !important;
background: rgb(<?php echo $colorbacktitle1; ?>); background: rgb(<?php echo $colorbacktitle1; ?>);
background-repeat: repeat-x; background-repeat: repeat-x;
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
font-weight: bold; font-weight: bold;
<?php } ?>
color: #<?php echo $colortexttitle; ?> !important; color: #<?php echo $colortexttitle; ?> !important;
} }
.alilevel0 { .alilevel0 {