Works on product canvas and templates

!! WARNING : not stable !!
This commit is contained in:
Regis Houssin 2010-05-01 10:40:42 +00:00
parent ba0fa4b60b
commit 2f924a3f7a
3 changed files with 49 additions and 25 deletions

View File

@ -63,11 +63,10 @@ class ProductDefault extends Product
/** /**
* \brief Lecture des donnees dans la base * \brief Lecture des donnees dans la base
* \param id Product id * \param id Product id
* \param ref Product ref
*/ */
function fetchCanvas($id='', $ref='', $action='') function fetchCanvas($id='', $action='')
{ {
$result = $this->fetch($id,$ref); $result = $this->fetch($id);
return $result; return $result;
} }
@ -80,8 +79,12 @@ class ProductDefault extends Product
{ {
global $conf,$html; global $conf,$html;
// Ref
$this->tpl['showrefnav'] = $html->showrefnav($this,'ref','',1,'ref'); $this->tpl['showrefnav'] = $html->showrefnav($this,'ref','',1,'ref');
// Label
$this->tpl['label'] = $this->libelle; $this->tpl['label'] = $this->libelle;
// Statut
$this->tpl['status'] = $this->getLibStatut(2);
if ($action == 'view') if ($action == 'view')
{ {
@ -99,9 +102,6 @@ class ProductDefault extends Product
$this->tpl['accountancySellCodeKey'] = $html->editfieldkey("ProductAccountancySellCode",'productaccountancycodebuy',$this->accountancy_code_buy,'id',$this->id,$user->rights->produit->creer); $this->tpl['accountancySellCodeKey'] = $html->editfieldkey("ProductAccountancySellCode",'productaccountancycodebuy',$this->accountancy_code_buy,'id',$this->id,$user->rights->produit->creer);
$this->tpl['accountancySellCodeVal'] = $html->editfieldval("ProductAccountancySellCode",'productaccountancycodebuy',$this->accountancy_code_buy,'id',$this->id,$user->rights->produit->creer); $this->tpl['accountancySellCodeVal'] = $html->editfieldval("ProductAccountancySellCode",'productaccountancycodebuy',$this->accountancy_code_buy,'id',$this->id,$user->rights->produit->creer);
// Statut
$this->tpl['status'] = $this->getLibStatut(2);
// Description // Description
$this->tpl['description'] = nl2br($this->description); $this->tpl['description'] = nl2br($this->description);

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr> * Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
* Copyright (C) 2007 Jean Heimburger <jean@tiaris.info> * Copyright (C) 2007 Jean Heimburger <jean@tiaris.info>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
@ -2795,6 +2795,39 @@ class Product extends CommonObject
return -1; return -1;
} }
} }
/**
* \brief Load type of canvas
* \param id product id
* \param ref product ref
*/
function getCanvas($id, $ref)
{
global $conf;
$sql = "SELECT rowid, ref, canvas";
$sql.= " FROM ".MAIN_DB_PREFIX."product";
$sql.= " WHERE entity = ".$conf->entity;
if (!empty($id)) $sql.= " AND rowid = ".$id;
if (!empty($ref)) $sql.= " AND ref = '".$ref."'";
$resql = $this->db->query($sql);
if ($resql)
{
$obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid;
$this->ref = $obj->ref;
$this->canvas = $obj->canvas;
return 1;
}
else
{
dol_print_error($this->db);
return -1;
}
}
/** /**
* \brief Affecte les valeurs smarty * \brief Affecte les valeurs smarty

View File

@ -653,7 +653,7 @@ if ($_GET["action"] == 'create' && ($user->rights->produit->creer || $user->righ
if ($mesg) print $mesg."\n"; if ($mesg) print $mesg."\n";
if ($_GET["canvas"] <> '' && file_exists('canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php')) if ($_GET["canvas"] <> '' && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php'))
{ {
// On assigne les valeurs meme en creation car elles sont definies si // On assigne les valeurs meme en creation car elles sont definies si
// on revient en erreur // on revient en erreur
@ -844,26 +844,17 @@ if ($_GET["action"] == 'create' && ($user->rights->produit->creer || $user->righ
*/ */
if ($_GET["id"] || $_GET["ref"]) if ($_GET["id"] || $_GET["ref"])
{ {
$product = new Product($db); $productstatic = new Product($db);
$result = $productstatic->getCanvas($_GET["id"],$_GET["ref"]);
if ($_GET["ref"])
{
$result = $product->fetch('',$_GET["ref"]);
$_GET["id"] = $product->id;
}
elseif ($_GET["id"])
{
$result = $product->fetch($_GET["id"]);
}
// Gestion des produits specifiques // Gestion des produits specifiques
if (!empty($product->canvas) && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$product->canvas.'/product.'.$product->canvas.'.class.php') ) if (!empty($productstatic->canvas) && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$productstatic->canvas.'/product.'.$productstatic->canvas.'.class.php') )
{ {
$classname = 'Product'.ucfirst($product->canvas); $classname = 'Product'.ucfirst($productstatic->canvas);
include_once(DOL_DOCUMENT_ROOT.'/product/canvas/'.$product->canvas.'/product.'.$product->canvas.'.class.php'); include_once(DOL_DOCUMENT_ROOT.'/product/canvas/'.$productstatic->canvas.'/product.'.$productstatic->canvas.'.class.php');
$product = new $classname($db); $product = new $classname($db);
$result = $product->fetchCanvas($_GET["id"],'',$_GET["action"]); $result = $product->fetchCanvas($productstatic->id,'',$_GET["action"]);
$template_dir = DOL_DOCUMENT_ROOT.'/product/canvas/'.$product->canvas.'/tpl/'; $template_dir = DOL_DOCUMENT_ROOT.'/product/canvas/'.$product->canvas.'/tpl/';
} }
@ -1132,7 +1123,7 @@ print "\n</div><br>\n";
* All the "Add to" areas * All the "Add to" areas
*/ */
if ($_GET["id"] && $_GET["action"] == '' && $product->status) if ($product->id && $_GET["action"] == '' && $product->status)
{ {
$propal = New Propal($db); $propal = New Propal($db);