--- /tmp/dsg/dolibarr/htdocs/zapier/lib/github_19.0.3_zapier.lib.php
+++ /tmp/dsg/dolibarr/htdocs/zapier/lib/client_zapier.lib.php
@@ -15 +15 @@
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.

+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.

@@ -27 +27 @@
- * @return array		Array with list of tab entries

+ * @return array

@@ -31 +31 @@
-	global $langs, $conf;

+    global $langs, $conf;

@@ -33,2 +33 @@
-	$h = 0;

-	$head = array();

+    $langs->load("zapier@zapier");

@@ -36,8 +35,2 @@
-	$head[$h][0] = dol_buildpath("/zapier/admin/setup.php", 1);

-	$head[$h][1] = $langs->trans("Settings");

-	$head[$h][2] = 'settings';

-	$h++;

-	$head[$h][0] = dol_buildpath("/zapier/admin/about.php", 1);

-	$head[$h][1] = $langs->trans("About");

-	$head[$h][2] = 'about';

-	$h++;

+    $h = 0;

+    $head = array();

@@ -45,9 +38,8 @@
-	// Show more tabs from modules

-	// Entries must be declared in modules descriptor with line

-	//$this->tabs = array(

-	//	'entity:+tabname:Title:@zapier:/zapier/mypage.php?id=__ID__'

-	//); // to add new tab

-	//$this->tabs = array(

-	//	'entity:-tabname:Title:@zapier:/zapier/mypage.php?id=__ID__'

-	//); // to remove a tab

-	complete_head_from_modules($conf, $langs, null, $head, $h, 'zapier');

+    $head[$h][0] = dol_buildpath("/zapier/admin/setup.php", 1);

+    $head[$h][1] = $langs->trans("Settings");

+    $head[$h][2] = 'settings';

+    $h++;

+    $head[$h][0] = dol_buildpath("/zapier/admin/about.php", 1);

+    $head[$h][1] = $langs->trans("About");

+    $head[$h][2] = 'about';

+    $h++;

@@ -55 +47,9 @@
-	complete_head_from_modules($conf, $langs, null, $head, $h, 'zapier', 'remove');

+    // Show more tabs from modules

+    // Entries must be declared in modules descriptor with line

+    //$this->tabs = array(

+    //	'entity:+tabname:Title:@zapier:/zapier/mypage.php?id=__ID__'

+    //); // to add new tab

+    //$this->tabs = array(

+    //	'entity:-tabname:Title:@zapier:/zapier/mypage.php?id=__ID__'

+    //); // to remove a tab

+    complete_head_from_modules($conf, $langs, $object, $head, $h, 'zapier');

@@ -57 +57 @@
-	return $head;

+    return $head;

--- /tmp/dsg/dolibarr/htdocs/zapier/lib/github_19.0.3_zapier_hook.lib.php
+++ /tmp/dsg/dolibarr/htdocs/zapier/lib/client_zapier_hook.lib.php
@@ -0,0 +1,83 @@
+<?php

+/* Copyright (C) ---Put here your own copyright and developer email---

+ *

+ * 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 3 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, see <http://www.gnu.org/licenses/>.

+ */

+

+/**

+ * \file    htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php

+ * \ingroup mymodule

+ * \brief   Library files with common functions for MyObject

+ */

+

+/**

+ * Prepare array of tabs for MyObject

+ *

+ * @param	MyObject	$object		MyObject

+ * @return 	array					Array of tabs

+ */

+function myobjectPrepareHead($object)

+{

+	global $db, $langs, $conf;

+

+	$langs->load("mymodule@mymodule");

+

+	$h = 0;

+	$head = array();

+

+	$head[$h][0] = dol_buildpath("/mymodule/myobject_card.php", 1).'?id='.$object->id;

+	$head[$h][1] = $langs->trans("Card");

+	$head[$h][2] = 'card';

+	$h++;

+

+	if (isset($object->fields['note_public']) || isset($object->fields['note_private']))

+	{

+		$nbNote = 0;

+		if (!empty($object->note_private)) $nbNote++;

+		if (!empty($object->note_public)) $nbNote++;

+		$head[$h][0] = dol_buildpath('/mymodule/myobject_note.php', 1).'?id='.$object->id;

+		$head[$h][1] = $langs->trans('Notes');

+		if ($nbNote > 0) $head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbNote.'</span>';

+		$head[$h][2] = 'note';

+		$h++;

+	}

+

+	require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';

+	require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';

+	$upload_dir = $conf->mymodule->dir_output."/myobject/".dol_sanitizeFileName($object->ref);

+	$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));

+	$nbLinks = Link::count($db, $object->element, $object->id);

+	$head[$h][0] = dol_buildpath("/mymodule/myobject_document.php", 1).'?id='.$object->id;

+	$head[$h][1] = $langs->trans('Documents');

+	if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= '<span class="badge marginleftonlyshort">'.($nbFiles + $nbLinks).'</span>';

+	$head[$h][2] = 'document';

+	$h++;

+

+	$head[$h][0] = dol_buildpath("/mymodule/myobject_agenda.php", 1).'?id='.$object->id;

+	$head[$h][1] = $langs->trans("Events");

+	$head[$h][2] = 'agenda';

+	$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:Title:@mymodule:/mymodule/mypage.php?id=__ID__'

+	//); // to remove a tab

+	complete_head_from_modules($conf, $langs, $object, $head, $h, 'myobject@mymodule');

+

+	return $head;

+}