* Copyright (C) 2024-2025 MDW * Copyright (C) 2024-2025 Frédéric France * * 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 . */ /** * @var Conf $conf * @var DoliDB $db * @var CommonObject $object * @var Translate $langs * @var ?FormMail $formmail * @var ?FormWebsite $formwebsite * @var ?FormAI $formai * @var string $htmlname * @var string $showlinktolayout 'emailing', 'email', 'websitepage', ... * @var string $showlinktolayoutlabel '...' * @var string $showlinktoai '' or 'textgeneration', 'textgenerationemail', 'textgenerationwebpage', ... * @var string $showlinktoailabel '...' * @var string $htmlname * @var ?string $out * @var ?string $aiprompt */ //Protection to avoid direct call of template if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit(1); } if (empty($langs)) { print 'Parameter langs not defined.'; exit(1); } if (empty($htmlname)) { print 'Parameter htmlname not defined.'; exit(1); } ?> '; $out .= img_picto($showlinktolayoutlabel, 'layout', 'class="paddingrightonly"'); $out .= ''.$showlinktolayoutlabel.'...'; $out .= '     '; $out .= ' '; } // Add link to add AI content if ($showlinktoai) { // TODO Diff between showlinktoai and htmlname ? Why not using one key only ? $out .= ''; $out .= img_picto($showlinktoailabel, 'ai', 'class="paddingrightonly"'); $out .= ''.$showlinktoailabel.'...'; $out .= ''; $out .= ' '; } if ($showlinktolayout) { if (!empty($formwebsite) && is_object($formwebsite)) { $out .= $formwebsite->getContentPageTemplate($htmlname); } else { if (!is_object($formmail)) { // Create form object include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; $formmail = new FormMail($db); } $out .= $formmail->getEmailLayoutSelector($htmlname, $showlinktolayout); } } else { $out .= ''; } /** @var ?FormAI $formai */ if ($showlinktoai) { if (empty($formai) || $formai instanceof FormAI) { include_once DOL_DOCUMENT_ROOT.'/core/class/html.formai.class.php'; $formai = new FormAI($db); } $out .= $formai->getAjaxAICallFunction(); if (empty($onlyenhancements)) { $onlyenhancements = ''; } if (!empty($aiprompt) && !empty($object)) { $formai->setSubstitFromObject($object, $langs); $aiprompt = make_substitutions($aiprompt, $formai->substit); } $out .= $formai->getSectionForAIEnhancement($showlinktoai, $formmail->withaiprompt, $htmlname, $onlyenhancements, $aiprompt); } else { $out .= ''; } ?>