Example #1
0
/**
 * Prepare array with list of tabs
 *
 * @param   Product	$object		Object related to tabs
 * @return  array				Array of tabs to show
 */
function product_prepare_head($object)
{
    global $langs, $conf, $user;
    $langs->load("products");
    $h = 0;
    $head = array();
    $head[$h][0] = DOL_URL_ROOT . "/product/card.php?id=" . $object->id;
    $head[$h][1] = $langs->trans("Card");
    $head[$h][2] = 'card';
    $h++;
    $head[$h][0] = DOL_URL_ROOT . "/product/price.php?id=" . $object->id;
    $head[$h][1] = $langs->trans("CustomerPrices");
    $head[$h][2] = 'price';
    $h++;
    if (!empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire) {
        $head[$h][0] = DOL_URL_ROOT . "/product/fournisseurs.php?id=" . $object->id;
        $head[$h][1] = $langs->trans("SuppliersPrices");
        $head[$h][2] = 'suppliers';
        $h++;
    }
    // Show category tab
    /* No more required. Replaced with new multiselect component
    	if (! empty($conf->categorie->enabled) && $user->rights->categorie->lire)
    	{
    		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    		$type = Categorie::TYPE_PRODUCT;
    		$head[$h][0] = DOL_URL_ROOT."/categories/categorie.php?id=".$object->id.'&type='.$type;
    		$head[$h][1] = $langs->trans('Categories');
    		$head[$h][2] = 'category';
    		$h++;
    	}*/
    // Multilangs
    if (!empty($conf->global->MAIN_MULTILANGS)) {
        $head[$h][0] = DOL_URL_ROOT . "/product/traduction.php?id=" . $object->id;
        $head[$h][1] = $langs->trans("Translation");
        $head[$h][2] = 'translation';
        $h++;
    }
    // Sub products
    if (!empty($conf->global->PRODUIT_SOUSPRODUITS)) {
        $head[$h][0] = DOL_URL_ROOT . "/product/composition/card.php?id=" . $object->id;
        $head[$h][1] = $langs->trans('AssociatedProducts');
        $head[$h][2] = 'subproduct';
        $h++;
    }
    $head[$h][0] = DOL_URL_ROOT . "/product/stats/card.php?id=" . $object->id;
    $head[$h][1] = $langs->trans('Statistics');
    $head[$h][2] = 'stats';
    $h++;
    $head[$h][0] = DOL_URL_ROOT . "/product/stats/facture.php?id=" . $object->id;
    $head[$h][1] = $langs->trans('Referers');
    $head[$h][2] = 'referers';
    $h++;
    if ($object->isproduct() || $object->isservice() && !empty($conf->global->STOCK_SUPPORTS_SERVICES)) {
        if (!empty($conf->stock->enabled) && $user->rights->stock->lire) {
            $head[$h][0] = DOL_URL_ROOT . "/product/stock/product.php?id=" . $object->id;
            $head[$h][1] = $langs->trans("Stock");
            $head[$h][2] = 'stock';
            $h++;
        }
    }
    // Show more tabs from modules
    // Entries must be declared in modules descriptor with line
    // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__');   to add new tab
    // $this->tabs = array('entity:-tabname);   												to remove a tab
    complete_head_from_modules($conf, $langs, $object, $head, $h, 'product');
    /* Merged into the Join files tab
    	$head[$h][0] = DOL_URL_ROOT."/product/photos.php?id=".$object->id;
    	$head[$h][1] = $langs->trans("Photos");
    	$head[$h][2] = 'photos';
    	$h++;
    	*/
    // Attachments
    require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
    if (!empty($conf->product->enabled)) {
        $upload_dir = $conf->product->multidir_output[$object->entity] . '/' . dol_sanitizeFileName($object->ref);
    } elseif (!empty($conf->service->enabled)) {
        $upload_dir = $conf->service->multidir_output[$object->entity] . '/' . dol_sanitizeFileName($object->ref);
    }
    $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\\.meta|_preview\\.png)$'));
    $head[$h][0] = DOL_URL_ROOT . '/product/document.php?id=' . $object->id;
    $head[$h][1] = $langs->trans('Documents');
    if ($nbFiles > 0) {
        $head[$h][1] .= ' <span class="badge">' . $nbFiles . '</span>';
    }
    $head[$h][2] = 'documents';
    $h++;
    // More tabs from canvas
    // TODO Is this still used ?
    if (isset($object->onglets) && is_array($object->onglets)) {
        foreach ($object->onglets as $onglet) {
            $head[$h] = $onglet;
            $h++;
        }
    }
    complete_head_from_modules($conf, $langs, $object, $head, $h, 'product', 'remove');
    return $head;
}