Files
dolibarr/htdocs/product/traduction.php
Laurent Destailleur af274668a3 Fix: Detection auto des champs text/html.
Fix: Dans les PDF, il ne faut pas faire le nl2br standard de PHP lors de la conversion text en HTML car ce dernier ne remplace pas le \n mais ajoute le br hors le writeHTMLCell transforme aussi les \n en br.
2008-03-31 03:31:08 +00:00

268 lines
9.0 KiB
PHP
Raw Blame History

<?php
/* Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*
* $Id$
* $Source$
*/
/**
\file htdocs/product/traduction.php
\ingroup product
\brief Page de traduction des produits
\version $Revision$
*/
require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/lib/product.lib.php");
require_once(DOL_DOCUMENT_ROOT."/product.class.php");
$langs->load("products");
$langs->load("bills");
if (!$user->rights->produit->lire)
accessforbidden();
/*
* Actions
*/
// retour a l'affichage des traduction si annulation
if ($_POST["cancel"] == $langs->trans("Cancel"))
{
$_GET["action"] = '';
}
// Validation de l'ajout
if ($_POST["action"] == 'vadd' &&
$_POST["cancel"] != $langs->trans("Cancel") &&
$user->rights->produit->creer)
{
$product = new Product($db);
$product->fetch($_POST["id"]);
$current_lang = $langs->getDefaultLang();
// update de l'objet
if ( $_POST["lang"] == $current_lang )
{
$product->libelle = $_POST["libelle"];
$product->description = $_POST["desc"];
$product->note = $_POST["note"];
}
else
{
$product->multilangs[$_POST["lang"]]["libelle"] = $_POST["libelle"];
$product->multilangs[$_POST["lang"]]["description"] = $_POST["desc"];
$product->multilangs[$_POST["lang"]]["note"] = $_POST["note"];
}
// sauvegarde en base
if ( $product->setMultiLangs() > 0 )
{
$_GET["action"] = '';
$mesg = 'Fiche mise <20> jour';
}
else
{
$_GET["action"] = 'add';
$mesg = 'Fiche non mise <20> jour !' . "<br>" . $product->mesg_error;
}
}
// Validation de l'edition
if ($_POST["action"] == 'vedit' &&
$_POST["cancel"] != $langs->trans("Cancel") &&
$user->rights->produit->creer)
{
$product = new Product($db);
$product->fetch($_POST["id"]);
$current_lang = $langs->getDefaultLang();
foreach ( $product->multilangs as $key => $value ) // enregistrement des nouvelles valeurs dans l'objet
{
if ( $key == $current_lang )
{
$product->libelle = $_POST["libelle-".$key];
$product->description = $_POST["desc-".$key];
$product->note = $_POST["note-".$key];
}
else
{
$product->multilangs[$key]["libelle"] = $_POST["libelle-".$key];
$product->multilangs[$key]["description"] = $_POST["desc-".$key];
$product->multilangs[$key]["note"] = $_POST["note-".$key];
}
}
if ( $product->setMultiLangs() > 0 )
{
$_GET["action"] = '';
$mesg = 'Fiche mise <20> jour';
}
else
{
$_GET["action"] = 'edit';
$mesg = 'Fiche non mise <20> jour !' . "<br>" . $product->mesg_error;
}
}
$product = new Product($db);
if ($_GET["ref"]) $result = $product->fetch('',$_GET["ref"]);
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
/*
* Affichage
*/
llxHeader("","",$langs->trans("Translation"));
$html = new Form($db);
$head=product_prepare_head($product, $user);
$titre=$langs->trans("CardProduct".$product->type);
dolibarr_fiche_head($head, 'translation', $titre);
print '<table class="border" width="100%">';
// Reference
print '<tr>';
print '<td width="15%">'.$langs->trans("Ref").'</td><td colspan="2">';
print $html->showrefnav($product,'ref','',1,'ref');
print '</td>';
print '</tr>';
print '</table>';
if ($_GET["action"] == 'edit')
{
print '<form action="" method="post">';
print '<input type="hidden" name="action" value="vedit">';
print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
foreach ( $product->multilangs as $key => $value)
{
print "<br /><b><u>$key :</u></b><br />";
print '<table class="border" width="100%">';
print '<tr><td valign="top" width="15%">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" size="40" value="'.$product->multilangs[$key]["libelle"].'"></td></tr>';
print '<tr><td valign="top" width="15%">'.$langs->trans('Description').'</td><td>';
if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC)
{
require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");
$doleditor=new DolEditor('desc-'.$key.'',$product->multilangs[$key]["description"],160,'dolibarr_notes','',false);
$doleditor->Create();
}
else
{
print '<textarea name="desc-'.$key.'" rows="3" cols="80">'.dol_htmlentitiesbr_decode($product->multilangs[$key]["description"]).'</textarea>';
}
print '</td></tr>';
print '<tr><td valign="top" width="15%">'.$langs->trans('Note').'</td><td>';
if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC)
{
require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");
$doleditor=new DolEditor('note-'.$key.'',$product->multilangs[$key]["note"],160,'dolibarr_notes','',false);
$doleditor->Create();
}
else
{
print '<textarea name="note-'.$key.'" rows="3" cols="80">'.dol_htmlentitiesbr_decode($product->multilangs[$key]["note"]).'</textarea>';
}
print '</td></tr>';
print '</tr>';
print '</table>';
}
print '<br /><table class="noborder" width="100%">';
print '<tr><td colspan="3" align="center"><input type="submit" class="button" value="'.$langs->trans("Save").'">&nbsp;';
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>';
print '</form>';
}
else
{
$cnt_trans = 0;
foreach ( $product->multilangs as $key => $value)
{
$cnt_trans++;
print "<br /><b><u>$key :</u></b><br />";
print '<table class="border" width="100%">';
print '<tr><td width="15%">'.$langs->trans('Label').'</td><td>'.$product->multilangs[$key]["libelle"].'</td></tr>';
print '<tr><td width="15%">'.$langs->trans('Description').'</td><td>'.$product->multilangs[$key]["description"].'</td></tr>';
print '<tr><td width="15%">'.$langs->trans('Note').'</td><td>'.$product->multilangs[$key]["note"].'</td></tr>';
print '</table>';
}
if ( !$cnt_trans ) print '<br />'. $langs->trans('NoTranslation');
}
print "</div>\n";
/* ************************************************************************** */
/* */
/* Barre d'action */
/* */
/* ************************************************************************** */
print "\n<div class=\"tabsAction\">\n";
if ($_GET["action"] == '')
if ($user->rights->produit->modifier || $user->rights->produit->creer)
{
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=edit&id='.$product->id.'">'.$langs->trans("Update").'</a>';
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=add&id='.$product->id.'">'.$langs->trans("Add").'</a>';
}
print "\n</div>\n";
/*
* Formulaire d'ajout de traduction
*/
if ($_GET["action"] == 'add' || $user->rights->produit->modifier)
{
$langs_available = $langs->get_available_languages();
$current_lang = $langs->getDefaultLang();
// on construit la liste des traduction qui n'existe pas d<>j<EFBFBD>
$select = '<select class="flat" name="lang">';
foreach ($langs_available as $value)
if ( !array_key_exists($value, $product->multilangs) ) // si la traduction n'existe pas
$select.= "<option value='$value'>$value</option>";
$select.='</select>';
print '<form action="" method="post">';
print '<input type="hidden" name="action" value="vadd">';
print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
print '<table class="border" width="100%">';
print '<tr><td valign="top" width="15%">'.$langs->trans('Translation').'</td><td>'.$select.'</td></tr>';
print '<tr><td valign="top" width="15%">'.$langs->trans('Label').'</td><td><input name="libelle" size="40"></td></tr>';
print '<tr><td valign="top" width="15%">'.$langs->trans('Description').'</td><td><textarea name="desc" rows="3" cols="80"></textarea></td></tr>';
print '<tr><td valign="top" width="15%">'.$langs->trans('Note').'</td><td><textarea name="note" rows="3" cols="80"></textarea></td></tr>';
print '</tr>';
print '</table>';
print '<br /><table class="noborder" width="100%">';
print '<tr><td colspan="3" align="center"><input type="submit" class="button" value="'.$langs->trans("Save").'">&nbsp;';
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>';
print '</form>';
}
llxFooter('$Date$ - $Revision$');
?>