* Copyright (C) 2005-2009 Laurent Destailleur * Copyright (C) 2010 Regis Houssin * Copyright (C) 2019 Nicolas ZABOURI * Copyright (C) 2024 MDW * * 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 . */ /** * \file htdocs/comm/mailing/index.php * \ingroup mailing * \brief Home page for emailing area */ // Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; $hookmanager = new HookManager($db); // Initialize a technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('mailingindex')); // Load translation files required by the page $langs->loadLangs(array('commercial', 'orders', 'mails')); $object = new Mailing($db); // Security check $result = restrictedArea($user, 'mailing'); /* * View */ $help_url = 'EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing'; $title = $langs->trans('MailingArea'); llxHeader('', $title, $help_url); print load_fiche_titre($title); print '
'; print '
'; print '
'; $titlesearch = $langs->trans("SearchAMailing"); if (getDolGlobalInt('EMAILINGS_SUPPORT_ALSO_SMS')) { $titlesearch .= ' | '.$langs->trans("smsing"); } // Search into emailings print '
'; print ''; print '
'; print ''; print ''; print ''; print ''; print ''; print "
'.$titlesearch.'
'; print $langs->trans("Ref").':
'; print $langs->trans("Other").':

\n"; // Affiche stats de tous les modules de destinataires mailings print ''; print ''; $dir = DOL_DOCUMENT_ROOT."/core/modules/mailings"; $handle = opendir($dir); if (is_resource($handle)) { while (($file = readdir($handle)) !== false) { if (substr($file, 0, 1) != '.' && substr($file, 0, 3) != 'CVS') { if (preg_match("/(.*)\.(.*)\.(.*)/i", $file, $reg)) { $modulename = $reg[1]; if ($modulename == 'example') { continue; } // Loading Class $file = $dir."/".$modulename.".modules.php"; $classname = "mailing_".$modulename; require_once $file; $mailmodule = new $classname($db); '@phan-var-force MailingTargets $mailmodule'; $qualified = 1; foreach ($mailmodule->require_module as $key) { if (!isModEnabled($key) || (!$user->admin && !empty($mailmodule->require_admin))) { $qualified = 0; //print "Prerequisites are not not, selector won't be active"; break; } } // If emailing is qualified for statistic section if ($qualified) { foreach ($mailmodule->getSqlArrayForStats() as $sql) { print ''; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; while ($i < $num) { $obj = $db->fetch_object($result); print ''; print ''; $i++; } $db->free($result); } else { dol_print_error($db); } print ''; } } } } } closedir($handle); } print "
'.$langs->trans("TargetsStatistics").'
'.img_object('', $mailmodule->picto).' '.dol_escape_htmltag($obj->label).''.$obj->nb.'

"; print '
'; /* * List of last emailings */ $limit = 10; $sql = "SELECT m.rowid, m.titre as title, m.nbemail, m.statut as status, m.date_creat, m.messtype"; $sql .= " FROM ".MAIN_DB_PREFIX."mailing as m"; $sql .= " WHERE m.entity = ".$conf->entity; $sql .= " ORDER BY m.date_creat DESC"; $sql .= " LIMIT ".$limit; $result = $db->query($sql); if ($result) { print '
'; print ''; print ''; print ''; if (getDolGlobalInt('EMAILINGS_SUPPORT_ALSO_SMS')) { print ''; } print ''; print ''; print ''; print ''; $num = $db->num_rows($result); if ($num > 0) { $i = 0; while ($i < $num) { $obj = $db->fetch_object($result); $mailstatic = new Mailing($db); $mailstatic->id = $obj->rowid; $mailstatic->ref = $obj->rowid; $mailstatic->messtype = $obj->messtype; print ''; print ''; print ''; if (getDolGlobalInt('EMAILINGS_SUPPORT_ALSO_SMS')) { print ''; } print ''; print ''; print ''; print ''; $i++; } } else { print ''; } print "
'.$langs->trans("LastMailings", $limit).''.$langs->trans("Type").''.$langs->trans("DateCreation").''; print $langs->trans("NbOfEMails"); if (getDolGlobalInt('EMAILINGS_SUPPORT_ALSO_SMS')) { print ' | '.$langs->trans("Phone"); } print ''.$langs->trans("AllEMailings").'
'.$mailstatic->getNomUrl(1).''.dol_escape_htmltag($obj->title).''.dol_escape_htmltag($obj->messtype).''.dol_print_date($db->jdate($obj->date_creat), 'day').''.($obj->nbemail ? (int) $obj->nbemail : "0").''.$mailstatic->LibStatut($obj->status, 5).'
'.$langs->trans("None").'

"; $db->free($result); } else { dol_print_error($db); } print '
'; $parameters = array('user' => $user); $reshook = $hookmanager->executeHooks('dashboardEmailings', $parameters, $object); // Note that $action and $object may have been modified by hook // End of page llxFooter(); $db->close();