2024-04-24 11:26:08 +02:00
< ? php
/* Copyright ( C ) 2024 Laurent Destailleur < eldy @ users . sourceforge . net >
2025-02-03 20:06:32 +01:00
* Copyright ( C ) 2024 - 2025 MDW < mdeweerd @ users . noreply . github . com >
* Copyright ( C ) 2024 - 2025 Frédéric France < frederic . france @ free . fr >
2024-04-24 11:26:08 +02:00
*
* 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 < https :// www . gnu . org / licenses />.
*/
2025-02-16 19:56:03 +01:00
/**
2024-11-04 23:53:20 +01:00
* @ var Conf $conf
2025-02-16 19:56:03 +01:00
* @ var ? FormMail $formmail
* @ var ? FormWebsite $formwebsite
2025-02-18 15:34:35 +01:00
* @ var ? FormAI $formai
2025-02-16 19:56:03 +01:00
* @ 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
2024-11-04 23:53:20 +01:00
*/
2025-02-16 19:56:03 +01:00
//Protection to avoid direct call of template
2024-04-24 11:26:08 +02:00
if ( empty ( $conf ) || ! is_object ( $conf )) {
print " Error, template page can't be called as URL " ;
exit ( 1 );
}
2024-07-19 15:38:52 +02:00
if ( empty ( $htmlname )) {
print 'Parameter htmlname not defined.' ;
exit ( 1 );
}
2024-04-24 11:26:08 +02:00
?>
<!-- BEGIN PHP TEMPLATE formlayoutai . tpl . php -->
< ? php
2024-08-17 19:32:52 +02:00
'
2024-10-14 23:38:14 +02:00
@ phan - var - force ? FormWebSite $formwebsite
@ phan - var - force ? FormMail $formmail
2025-02-18 15:34:35 +01:00
@ phan - var - force ? FormAI $formai
2024-10-14 23:38:14 +02:00
@ phan - var - force string $showlinktolayout
@ phan - var - force string $showlinktolayoutlabel
2025-01-13 20:04:35 +01:00
@ phan - var - force string $showlinktoai
@ phan - var - force string $showlinktoailabel
@ phan - var - force ? string $out
2024-08-17 19:32:52 +02:00
' ;
2025-02-16 19:56:03 +01:00
if ( ! isset ( $out )) { // Init to empty string if not defined
2024-08-14 01:24:55 +02:00
$out = '' ;
}
2025-02-16 19:56:03 +01:00
2024-04-24 11:26:08 +02:00
// Add link to add layout
2025-02-16 22:45:14 +01:00
if ( $showlinktolayout ) { // May be set only if MAIN_EMAIL_USE_LAYOUT is set
2024-10-14 23:38:14 +02:00
$out .= '<a href="#" id="linkforlayouttemplates" class="notasortlink inline-block alink marginrightonly">' ;
2024-04-24 11:26:08 +02:00
$out .= img_picto ( $showlinktolayoutlabel , 'layout' , 'class="paddingrightonly"' );
$out .= $showlinktolayoutlabel . '...' ;
$out .= '</a> ' ;
$out .= ' < script >
$ ( document ) . ready ( function () {
$ ( " #linkforlayouttemplates " ) . click ( function () {
2025-02-16 22:45:14 +01:00
console . log ( " We click on linkforlayouttemplates, we toggle .template-selector " );
2024-04-24 11:26:08 +02:00
event . preventDefault ();
2025-02-16 22:45:14 +01:00
jQuery ( " .template-selector " ) . toggle ();
jQuery ( " .ai_input'. $htmlname .' " ) . hide ();
2024-04-24 11:26:08 +02:00
jQuery ( " #pageContent " ) . show (); // May exists for website page only
});
});
</ script >
' ;
}
// Add link to add AI content
if ( $showlinktoai ) {
2024-10-14 23:38:14 +02:00
$out .= '<a href="#" id="linkforaiprompt' . $showlinktoai . '" class="notasortlink inline-block alink marginrightonly">' ;
2024-04-24 11:26:08 +02:00
$out .= img_picto ( $showlinktoailabel , 'ai' , 'class="paddingrightonly"' );
$out .= $showlinktoailabel . '...' ;
$out .= '</a>' ;
$out .= ' < script >
$ ( document ) . ready ( function () {
2024-07-19 15:38:52 +02:00
$ ( " #linkforaiprompt'. $showlinktoai .' " ) . click ( function () {
2025-02-16 22:45:14 +01:00
console . log ( " formlayoutai.tpl: We click on linkforaiprompt'. $showlinktoai .', we toggle .ai_input'. $showlinktoai .' " );
2024-04-24 11:26:08 +02:00
event . preventDefault ();
2025-02-16 22:45:14 +01:00
jQuery ( " .ai_input'. $htmlname .' " ) . toggle ();
jQuery ( " .template-selector " ) . hide ();
2024-10-15 00:07:08 +02:00
jQuery ( " .email-layout-container " ) . hide ();
2024-07-19 15:38:52 +02:00
if ( ! jQuery ( " #ai_input'. $htmlname .' " ) . is ( " :hidden " )) {
2024-10-15 00:07:08 +02:00
console . log ( " Set focus on input field #ai_instructions'. $htmlname .' " );
jQuery ( " #ai_instructions'. $htmlname .' " ) . focus ();
2024-04-24 11:26:08 +02:00
if ( ! jQuery ( " pageContent " ) . is ( " :hidden " )) { // May exists for website page only
jQuery ( " #pageContent " ) . show ();
}
}
});
});
</ script >
' ;
}
if ( $showlinktolayout ) {
if ( ! empty ( $formwebsite ) && is_object ( $formwebsite )) {
$out .= $formwebsite -> getContentPageTemplate ( $htmlname );
} else {
2024-10-14 23:38:14 +02:00
$out .= $formmail -> getModelEmailTemplate ( $htmlname , $showlinktolayout );
2024-04-24 11:26:08 +02:00
}
2024-07-31 22:26:54 +02:00
} else {
2024-10-14 23:38:14 +02:00
$out .= '<!-- No link to the layout feature, $formmail->withlayout must be set to a string use case, module WYSIWYG must be enabled and MAIN_EMAIL_USE_LAYOUT must be set -->' ;
2024-04-24 11:26:08 +02:00
}
if ( $showlinktoai ) {
2025-02-18 15:34:35 +01:00
$out .= $formai -> getSectionForAIPrompt ( $showlinktoai , $formmail -> withaiprompt , $htmlname );
2024-07-31 22:26:54 +02:00
} else {
$out .= '<!-- No link to the AI feature, $formmail->withaiprompt must be set to the ai feature and module ai must be enabled -->' ;
2024-04-24 11:26:08 +02:00
}
?>
<!-- END PHP TEMPLATE commonfields_edit . tpl . php -->