Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into NEW---Shipping-address-to-invoice
This commit is contained in:
commit
cb20ac6567
17
ChangeLog
17
ChangeLog
@ -9,9 +9,8 @@ For users:
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
NEW: Minimal PHP version is now PHP 7.0 instead of PHP 5.6
|
NEW: Minimal PHP version is now PHP 7.0 instead of PHP 5.6
|
||||||
NEW: #21750 Added "Get lines and Post lines from BOM" at the REST Service
|
|
||||||
NEW: #21780 Add pid field to Cronjob class and store PID on job execution
|
NEW: #21780 Add pid field to Cronjob class and store PID on job execution
|
||||||
NEW: #19680 Add option PRODUCT_ALLOW_EXTERNAL_DOWNLOAD
|
NEW: #19680 Add option PRODUCT_ALLOW_EXTERNAL_DOWNLOAD to automatically have uploaded files shared publicly by a link
|
||||||
NEW: #20650 can move the checkbox column on left (experimental option)
|
NEW: #20650 can move the checkbox column on left (experimental option)
|
||||||
NEW: #21000 Added columns 'alias_name' on poject, supplier invoice, supplier order, supplier proposals and taks list
|
NEW: #21000 Added columns 'alias_name' on poject, supplier invoice, supplier order, supplier proposals and taks list
|
||||||
NEW: #21395 Added option for dark theme mode in display - color and theme
|
NEW: #21395 Added option for dark theme mode in display - color and theme
|
||||||
@ -19,11 +18,9 @@ NEW: #21397 added option to auto define barcode numbers for third-parties in bar
|
|||||||
NEW: #21399
|
NEW: #21399
|
||||||
NEW: #21442 Enhancement of module builder init
|
NEW: #21442 Enhancement of module builder init
|
||||||
NEW: #21654 add bank account number used on invoices for debit
|
NEW: #21654 add bank account number used on invoices for debit
|
||||||
NEW: #21775 Template 03 manages send mails
|
|
||||||
NEW: #22048 Added notes to productlot module
|
NEW: #22048 Added notes to productlot module
|
||||||
NEW: #22298 Bank - Add salaries & vat in tab planned entries
|
NEW: #22298 Bank - Add salaries & vat in the tab of planned entries of a bank account
|
||||||
NEW: #22328
|
NEW: #22328
|
||||||
NEW: #22370 Modulebuilder supports 'alwayseditable' (like extrafields)
|
|
||||||
NEW: #22424
|
NEW: #22424
|
||||||
NEW: #22500 member module set up made easier
|
NEW: #22500 member module set up made easier
|
||||||
NEW: #22527 projects and thirdparties can be viewed as conversation ("Message" view), like events/agenda.
|
NEW: #22527 projects and thirdparties can be viewed as conversation ("Message" view), like events/agenda.
|
||||||
@ -57,7 +54,6 @@ NEW: Add hidden option MAIN_EMAIL_SUPPORT_ACK to restore Email ack checkbox (fea
|
|||||||
NEW: Add IMAP port setting on email collector module
|
NEW: Add IMAP port setting on email collector module
|
||||||
NEW: Adding JAPAN Chart-of-Account and regions/departments
|
NEW: Adding JAPAN Chart-of-Account and regions/departments
|
||||||
NEW: Adding NIF verification for Algeria
|
NEW: Adding NIF verification for Algeria
|
||||||
NEW: Add 4 other templates in website module
|
|
||||||
NEW: Add link to create an element from the category page
|
NEW: Add link to create an element from the category page
|
||||||
NEW: add margin infos to takepos invoice lines
|
NEW: add margin infos to takepos invoice lines
|
||||||
NEW: Add max size send for "backup and link to mail" option
|
NEW: Add max size send for "backup and link to mail" option
|
||||||
@ -98,6 +94,7 @@ NEW: Website Can remove a website template
|
|||||||
NEW: Website can set header "Strict-Transport-Security" in web sites.
|
NEW: Website can set header "Strict-Transport-Security" in web sites.
|
||||||
NEW: Website Can switch status of website and page from the website toolbar
|
NEW: Website Can switch status of website and page from the website toolbar
|
||||||
NEW: Website Templates of websites are now directories and not zip into core repo
|
NEW: Website Templates of websites are now directories and not zip into core repo
|
||||||
|
NEW: Website Add 4 other templates in website module
|
||||||
NEW: Can use products categories to make inventory
|
NEW: Can use products categories to make inventory
|
||||||
NEW: Change filter type on tickets list into a multiselect combo
|
NEW: Change filter type on tickets list into a multiselect combo
|
||||||
NEW: conf TIMESPENT_ALWAYS_UPDATE_THM, when it's on we always check current thm of user to update it in task time line
|
NEW: conf TIMESPENT_ALWAYS_UPDATE_THM, when it's on we always check current thm of user to update it in task time line
|
||||||
@ -129,7 +126,6 @@ NEW: manage no email with thirdparties (better for GDPR)
|
|||||||
NEW: Manage Position (Rank) on Contract Lines
|
NEW: Manage Position (Rank) on Contract Lines
|
||||||
NEW: Manage VAT on all lines on purchases cycle
|
NEW: Manage VAT on all lines on purchases cycle
|
||||||
NEW: manage virtual stock at a future date
|
NEW: manage virtual stock at a future date
|
||||||
NEW: ModuleBuilder can generate code of class from an existing SQL table
|
|
||||||
NEW: On a bank reconciled line, we can modify the bank receipt
|
NEW: On a bank reconciled line, we can modify the bank receipt
|
||||||
NEW: On a form to send an email, we show all emails of all contacts of object
|
NEW: On a form to send an email, we show all emails of all contacts of object
|
||||||
NEW: Option PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT showing wh on PDF
|
NEW: Option PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT showing wh on PDF
|
||||||
@ -163,7 +159,6 @@ NEW: SMTP using oauth2 authentication
|
|||||||
NEW: can substitue project title in mail template
|
NEW: can substitue project title in mail template
|
||||||
NEW: Supplier order list - Add column private and public note
|
NEW: Supplier order list - Add column private and public note
|
||||||
NEW: Support IP type in extrafields
|
NEW: Support IP type in extrafields
|
||||||
NEW: support multilang in Civilities API
|
|
||||||
NEW: Table of membership types
|
NEW: Table of membership types
|
||||||
NEW: The purge of files can purge only if older than a number of seconds
|
NEW: The purge of files can purge only if older than a number of seconds
|
||||||
NEW: Update ActionComm type_code on email message ticket
|
NEW: Update ActionComm type_code on email message ticket
|
||||||
@ -174,8 +169,11 @@ NEW: expand/collapse permissions on user permission page
|
|||||||
For developers or integrators:
|
For developers or integrators:
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
NEW: ModuleBuilder can generate code of class from an existing SQL table
|
||||||
|
NEW: #22370 Modulebuilder supports 'alwayseditable' (like extrafields)
|
||||||
NEW: #20912 Add trigger to record the event of sending an email from a project
|
NEW: #20912 Add trigger to record the event of sending an email from a project
|
||||||
NEW: Removed completely the need for library adodbtime
|
NEW: #21750 Added "Get lines and Post lines from BOM" at the REST Service
|
||||||
|
NEW: Removed completely the need for the library adodbtime
|
||||||
NEW: hook on agenda pages
|
NEW: hook on agenda pages
|
||||||
NEW: hook to complete payment in TakePOS
|
NEW: hook to complete payment in TakePOS
|
||||||
NEW: hook "changeHelpURL" to modify target of the help button
|
NEW: hook "changeHelpURL" to modify target of the help button
|
||||||
@ -186,6 +184,7 @@ NEW: Add new hooks for actioncomm
|
|||||||
NEW: conf->global->SYSLOG_FILE_ONEPERSESSION accept a string
|
NEW: conf->global->SYSLOG_FILE_ONEPERSESSION accept a string
|
||||||
NEW: translate for contact type API, setup/ticket API, shipping method API
|
NEW: translate for contact type API, setup/ticket API, shipping method API
|
||||||
NEW: All ajax pages have now a top_httphead()
|
NEW: All ajax pages have now a top_httphead()
|
||||||
|
NEW: support multilang in Civilities API
|
||||||
NEW: Add API for the partnership module
|
NEW: Add API for the partnership module
|
||||||
NEW: Add "Get lines and Post lines from BOM" in the API
|
NEW: Add "Get lines and Post lines from BOM" in the API
|
||||||
NEW: Replace fk_categories_product with categories_product in inventory
|
NEW: Replace fk_categories_product with categories_product in inventory
|
||||||
|
|||||||
@ -53,12 +53,6 @@ if ($action == 'set') {
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error && $gimcdf && !file_exists($gimcdf)) {
|
|
||||||
setEventMessages($langs->trans("ErrorFileNotFound", $gimcdf), null, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$error) {
|
|
||||||
$res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity);
|
$res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity);
|
||||||
if (!($res1 > 0)) {
|
if (!($res1 > 0)) {
|
||||||
$error++;
|
$error++;
|
||||||
@ -72,8 +66,7 @@ if ($action == 'set') {
|
|||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
//setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,8 +105,8 @@ print '<td class="right"><input type="submit" class="button button-edit" value="
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// Lib version
|
// Lib version
|
||||||
print '<tr class="oddeven"><td width="50%">'.$langs->trans("GeoIPLibVersion").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("GeoIPLibVersion").'</td>';
|
||||||
print '<td colspan="2">';
|
print '<td>';
|
||||||
$arrayofvalues = array('php' => 'Native PHP functions', '1' => 'Embedded GeoIP v1', '2' => 'Embedded GeoIP v2');
|
$arrayofvalues = array('php' => 'Native PHP functions', '1' => 'Embedded GeoIP v1', '2' => 'Embedded GeoIP v2');
|
||||||
print $form->selectarray('geoipversion', $arrayofvalues, (isset($conf->global->GEOIP_VERSION) ? $conf->global->GEOIP_VERSION : '2'));
|
print $form->selectarray('geoipversion', $arrayofvalues, (isset($conf->global->GEOIP_VERSION) ? $conf->global->GEOIP_VERSION : '2'));
|
||||||
if ($conf->global->GEOIP_VERSION == 'php') {
|
if ($conf->global->GEOIP_VERSION == 'php') {
|
||||||
@ -124,16 +117,29 @@ if ($conf->global->GEOIP_VERSION == 'php') {
|
|||||||
print '<br>'.$langs->trans("Version").': '.$version;
|
print '<br>'.$langs->trans("Version").': '.$version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
$gimcdf = getDolGlobalString('GEOIPMAXMIND_COUNTRY_DATAFILE');
|
||||||
|
|
||||||
// Path to database file
|
// Path to database file
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("PathToGeoIPMaxmindCountryDataFile").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("PathToGeoIPMaxmindCountryDataFile").'</td>';
|
||||||
print '<td colspan="2">';
|
print '<td>';
|
||||||
|
|
||||||
if ($conf->global->GEOIP_VERSION == 'php') {
|
if ($conf->global->GEOIP_VERSION == 'php') {
|
||||||
print 'Using geoip PHP internal functions. Value must be '.geoip_db_filename(GEOIP_COUNTRY_EDITION).' or '.geoip_db_filename(GEOIP_CITY_EDITION_REV1).' or /pathtodatafile/GeoLite2-Country.mmdb<br>';
|
print 'Using geoip PHP internal functions. Value must be '.geoip_db_filename(GEOIP_COUNTRY_EDITION).' or '.geoip_db_filename(GEOIP_CITY_EDITION_REV1).' or /pathtodatafile/GeoLite2-Country.mmdb<br>';
|
||||||
}
|
}
|
||||||
print '<input type="text" class="minwidth200" name="GEOIPMAXMIND_COUNTRY_DATAFILE" value="'.dol_escape_htmltag($conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE).'">';
|
print '<input type="text" class="minwidth200" name="GEOIPMAXMIND_COUNTRY_DATAFILE" value="'.dol_escape_htmltag(getDolGlobalString('GEOIPMAXMIND_COUNTRY_DATAFILE')).'">';
|
||||||
|
if (!file_exists($gimcdf)) {
|
||||||
|
print '<div class="error">'.$langs->trans("ErrorFileNotFound", $gimcdf).'</div>';
|
||||||
|
}
|
||||||
|
print '</td><td>';
|
||||||
|
print '<span class="opacitymedium">';
|
||||||
|
print $langs->trans("Example").'<br>';
|
||||||
|
print '/usr/local/share/GeoIP/GeoIP.dat<br>
|
||||||
|
/usr/share/GeoIP/GeoIP.dat<br>
|
||||||
|
/usr/share/GeoIP/GeoLite2-Country.mmdb';
|
||||||
|
print '</span>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -145,12 +151,16 @@ print '<br>';
|
|||||||
print $langs->trans("NoteOnPathLocation").'<br>';
|
print $langs->trans("NoteOnPathLocation").'<br>';
|
||||||
|
|
||||||
$url1 = 'http://www.maxmind.com/en/city?rId=awstats';
|
$url1 = 'http://www.maxmind.com/en/city?rId=awstats';
|
||||||
print $langs->trans("YouCanDownloadFreeDatFileTo", '<a href="'.$url1.'" target="_blank" rel="noopener noreferrer external">'.$url1.'</a>');
|
$textoshow = $langs->trans("YouCanDownloadFreeDatFileTo", '{s1}');
|
||||||
|
$textoshow = str_replace('{s1}', '<a href="'.$url1.'" target="_blank" rel="noopener noreferrer external">'.$url1.'</a>', $textoshow);
|
||||||
|
print $textoshow;
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$url2 = 'http://www.maxmind.com/en/city?rId=awstats';
|
$url2 = 'http://www.maxmind.com/en/city?rId=awstats';
|
||||||
print $langs->trans("YouCanDownloadAdvancedDatFileTo", '<a href="'.$url2.'" target="_blank" rel="noopener noreferrer external">'.$url2.'</a>');
|
$textoshow = $langs->trans("YouCanDownloadAdvancedDatFileTo", '{s1}');
|
||||||
|
$textoshow = str_replace('{s1}', '<a href="'.$url2.'" target="_blank" rel="noopener noreferrer external">'.$url2.'</a>', $textoshow);
|
||||||
|
print $textoshow;
|
||||||
|
|
||||||
if ($geoip) {
|
if ($geoip) {
|
||||||
print '<br><br>';
|
print '<br><br>';
|
||||||
|
|||||||
@ -542,13 +542,13 @@ print '<br>';
|
|||||||
print '<strong>MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL</strong> = '.(empty($conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL) ? '<span class="opacitymedium">'.$langs->trans("Undefined").' ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 0)</span>' : $conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL)."<br>";
|
print '<strong>MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL</strong> = '.(empty($conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL) ? '<span class="opacitymedium">'.$langs->trans("Undefined").' ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 0)</span>' : $conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL)."<br>";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<strong>MAIN_SECURITY_FORCECSP</strong> = '.(empty($conf->global->MAIN_SECURITY_FORCECSP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_FORCECSP).' <span class="opacitymedium">('.$langs->trans("Example").": \"default-src 'self'; img-src *;\")</span><br>";
|
print '<strong>MAIN_SECURITY_FORCECSP</strong> = '.(empty($conf->global->MAIN_SECURITY_FORCECSP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_FORCECSP).' <span class="opacitymedium">('.$langs->trans("Example").": \"frame-ancestors 'self'; default-src 'self'; img-src *;\")</span><br>";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<strong>MAIN_SECURITY_FORCERP</strong> = '.(empty($conf->global->MAIN_SECURITY_FORCERP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_FORCERP).' <span class="opacitymedium">('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or")." \"same-origin\")</span><br>";
|
print '<strong>MAIN_SECURITY_FORCERP</strong> = '.(empty($conf->global->MAIN_SECURITY_FORCERP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_FORCERP).' <span class="opacitymedium">('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or")." \"same-origin\" so browser doesn't send any referrer when going into another web site domain)</span><br>";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<strong>WEBSITE_MAIN_SECURITY_FORCECSP</strong> = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCECSP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->WEBSITE_MAIN_SECURITY_FORCECSP).' <span class="opacitymedium">('.$langs->trans("Example").": \"default-src 'self'; style-src: https://cdnjs.cloudflare.com https://fonts.googleapis.com; script-src: https://cdn.transifex.com https://www.googletagmanager.com; object-src https://youtube.com; frame-src https://youtube.com; img-src: *;\")</span><br>";
|
print '<strong>WEBSITE_MAIN_SECURITY_FORCECSP</strong> = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCECSP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->WEBSITE_MAIN_SECURITY_FORCECSP).' <span class="opacitymedium">('.$langs->trans("Example").": \"frame-ancestors 'self'; default-src 'self'; style-src https://cdnjs.cloudflare.com https://fonts.googleapis.com; script-src https://cdn.transifex.com https://www.googletagmanager.com; object-src https://youtube.com; frame-src https://youtube.com; img-src *;\")</span><br>";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<strong>WEBSITE_MAIN_SECURITY_FORCERP</strong> = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCERP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->WEBSITE_MAIN_SECURITY_FORCERP).' <span class="opacitymedium">('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or")." \"strict-origin-when-cross-origin\")</span><br>";
|
print '<strong>WEBSITE_MAIN_SECURITY_FORCERP</strong> = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCERP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->WEBSITE_MAIN_SECURITY_FORCERP).' <span class="opacitymedium">('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or")." \"strict-origin-when-cross-origin\")</span><br>";
|
||||||
|
|||||||
@ -567,16 +567,17 @@ if (isModEnabled('socialnetworks')) {
|
|||||||
if ($value['active'] && strlen($search_[$key])) {
|
if ($value['active'] && strlen($search_[$key])) {
|
||||||
$searchkeyinjsonformat = preg_replace('/"$/', '', preg_replace('/^"/', '', json_encode($search_[$key])));
|
$searchkeyinjsonformat = preg_replace('/"$/', '', preg_replace('/^"/', '', json_encode($search_[$key])));
|
||||||
if (in_array($db->type, array('mysql', 'mysqli'))) {
|
if (in_array($db->type, array('mysql', 'mysqli'))) {
|
||||||
$sql .= " AND p.socialnetworks REGEXP '\"".$db->escapeforlike($db->escape($key))."\":\"[^\"]*".$db->escapeforlike($db->escape($searchkeyinjsonformat))."'";
|
$sql .= " AND p.socialnetworks REGEXP '\"".$db->escape($db->escapeforlike($key))."\":\"[^\"]*".$db->escape($db->escapeforlike($searchkeyinjsonformat))."'";
|
||||||
} elseif ($db->type == 'pgsql') {
|
} elseif ($db->type == 'pgsql') {
|
||||||
$sql .= " AND p.socialnetworks ~ '\"".$db->escapeforlike($db->escape($key))."\":\"[^\"]*".$db->escapeforlike($db->escape($searchkeyinjsonformat))."'";
|
$sql .= " AND p.socialnetworks ~ '\"".$db->escape($db->escapeforlike($key))."\":\"[^\"]*".$db->escape($db->escapeforlike($searchkeyinjsonformat))."'";
|
||||||
} else {
|
} else {
|
||||||
// Works with all database but not reliable because search only for social network code starting with earched value
|
// Works with all database but not reliable because search only for social network code starting with earched value
|
||||||
$sql .= " AND p.socialnetworks LIKE '%\"".$db->escapeforlike($db->escape($key))."\":\"".$db->escapeforlike($db->escape($searchkeyinjsonformat))."%'";
|
$sql .= " AND p.socialnetworks LIKE '%\"".$db->escape($db->escapeforlike($key))."\":\"".$db->escape($db->escapeforlike($searchkeyinjsonformat))."%'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//print $sql;
|
||||||
if (strlen($search_email)) {
|
if (strlen($search_email)) {
|
||||||
$sql .= natural_search('p.email', $search_email);
|
$sql .= natural_search('p.email', $search_email);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -936,7 +936,7 @@ function getSocialNetworkSharingLinks()
|
|||||||
* @param string $langcode Language code ('' or 'en', 'fr', 'es', ...)
|
* @param string $langcode Language code ('' or 'en', 'fr', 'es', ...)
|
||||||
* @param array $otherfilters Other filters
|
* @param array $otherfilters Other filters
|
||||||
* @param int $status 0 or 1, or -1 for both
|
* @param int $status 0 or 1, or -1 for both
|
||||||
* @return string HTML content
|
* @return array Array with results of search
|
||||||
*/
|
*/
|
||||||
function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $sortfield = 'date_creation', $sortorder = 'DESC', $langcode = '', $otherfilters = 'null', $status = 1)
|
function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $sortfield = 'date_creation', $sortorder = 'DESC', $langcode = '', $otherfilters = 'null', $status = 1)
|
||||||
{
|
{
|
||||||
@ -974,6 +974,8 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
|||||||
$found = 0;
|
$found = 0;
|
||||||
|
|
||||||
if (!$error && (empty($max) || ($found < $max)) && (preg_match('/meta/', $algo) || preg_match('/content/', $algo))) {
|
if (!$error && (empty($max) || ($found < $max)) && (preg_match('/meta/', $algo) || preg_match('/content/', $algo))) {
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php';
|
||||||
|
|
||||||
$sql = 'SELECT wp.rowid FROM '.MAIN_DB_PREFIX.'website_page as wp';
|
$sql = 'SELECT wp.rowid FROM '.MAIN_DB_PREFIX.'website_page as wp';
|
||||||
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
||||||
$sql .= ', '.MAIN_DB_PREFIX.'categorie_website_page as cwp';
|
$sql .= ', '.MAIN_DB_PREFIX.'categorie_website_page as cwp';
|
||||||
@ -996,11 +998,11 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
|||||||
$sql .= " AND (";
|
$sql .= " AND (";
|
||||||
$searchalgo = '';
|
$searchalgo = '';
|
||||||
if (preg_match('/meta/', $algo)) {
|
if (preg_match('/meta/', $algo)) {
|
||||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.title LIKE '%".$db->escapeforlike($db->escape($searchstring))."%' OR wp.description LIKE '%".$db->escapeforlike($db->escape($searchstring))."%'";
|
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.title LIKE '%".$db->escape($db->escapeforlike($searchstring))."%' OR wp.description LIKE '%".$db->escape($db->escapeforlike($searchstring))."%'";
|
||||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.keywords LIKE '".$db->escapeforlike($db->escape($searchstring)).",%' OR wp.keywords LIKE '% ".$db->escapeforlike($db->escape($searchstring))."%'"; // TODO Use a better way to scan keywords
|
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.keywords LIKE '".$db->escape($db->escapeforlike($searchstring)).",%' OR wp.keywords LIKE '% ".$db->escape($db->escapeforlike($searchstring))."%'"; // TODO Use a better way to scan keywords
|
||||||
}
|
}
|
||||||
if (preg_match('/content/', $algo)) {
|
if (preg_match('/content/', $algo)) {
|
||||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.content LIKE '%".$db->escapeforlike($db->escape($searchstring))."%'";
|
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.content LIKE '%".$db->escape($db->escapeforlike($searchstring))."%'";
|
||||||
}
|
}
|
||||||
$sql .= $searchalgo;
|
$sql .= $searchalgo;
|
||||||
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
||||||
@ -1012,6 +1014,7 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
|||||||
//print $sql;
|
//print $sql;
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while (($obj = $db->fetch_object($resql)) && ($i < $max || $max == 0)) {
|
while (($obj = $db->fetch_object($resql)) && ($i < $max || $max == 0)) {
|
||||||
|
|||||||
@ -862,8 +862,8 @@ class ImportCsv extends ModeleImports
|
|||||||
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
||||||
//var_dump($stringtosearch);
|
//var_dump($stringtosearch);
|
||||||
//var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like)
|
//var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like)
|
||||||
$where[] = $key." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
$where[] = $key." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'";
|
||||||
$filters[] = $col." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
$filters[] = $col." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'";
|
||||||
//var_dump($where[1]); // This provide a value for sql string inside a like
|
//var_dump($where[1]); // This provide a value for sql string inside a like
|
||||||
} else {
|
} else {
|
||||||
$where[] = $key.' = '.$data[$key];
|
$where[] = $key.' = '.$data[$key];
|
||||||
|
|||||||
@ -908,8 +908,8 @@ class ImportXlsx extends ModeleImports
|
|||||||
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
||||||
//var_dump($stringtosearch);
|
//var_dump($stringtosearch);
|
||||||
//var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like)
|
//var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like)
|
||||||
$where[] = $key." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
$where[] = $key." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'";
|
||||||
$filters[] = $col." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
$filters[] = $col." LIKE '%".$this->db->escape($this->db->escapeforlike($stringtosearch))."%'";
|
||||||
//var_dump($where[1]); // This provide a value for sql string inside a like
|
//var_dump($where[1]); // This provide a value for sql string inside a like
|
||||||
} else {
|
} else {
|
||||||
$where[] = $key.' = '.$data[$key];
|
$where[] = $key.' = '.$data[$key];
|
||||||
|
|||||||
@ -1068,6 +1068,7 @@ if ($step == 4 && $datatoimport) {
|
|||||||
print '<div id="left" class="connectedSortable">'."\n";
|
print '<div id="left" class="connectedSortable">'."\n";
|
||||||
|
|
||||||
// List of source fields
|
// List of source fields
|
||||||
|
|
||||||
$var = false;
|
$var = false;
|
||||||
$lefti = 1;
|
$lefti = 1;
|
||||||
foreach ($fieldssource as $key => $val) {
|
foreach ($fieldssource as $key => $val) {
|
||||||
@ -1090,6 +1091,7 @@ if ($step == 4 && $datatoimport) {
|
|||||||
print '</td><td width="50%" class="nopaddingrightimp">';
|
print '</td><td width="50%" class="nopaddingrightimp">';
|
||||||
|
|
||||||
// Set the list of all possible target fields in Dolibarr.
|
// Set the list of all possible target fields in Dolibarr.
|
||||||
|
|
||||||
$optionsall = array();
|
$optionsall = array();
|
||||||
foreach ($fieldstarget as $code => $line) {
|
foreach ($fieldstarget as $code => $line) {
|
||||||
//var_dump($line);
|
//var_dump($line);
|
||||||
@ -1141,8 +1143,7 @@ if ($step == 4 && $datatoimport) {
|
|||||||
$entityicon = !empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity; // $entityicon must string name of picto of the field like 'project', 'company', 'contact', 'modulename', ...
|
$entityicon = !empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity; // $entityicon must string name of picto of the field like 'project', 'company', 'contact', 'modulename', ...
|
||||||
$entitylang = $entitytolang[$entity] ? $entitytolang[$entity] : $objimport->array_import_label[0]; // $entitylang must be a translation key to describe object the field is related to, like 'Company', 'Contact', 'MyModyle', ...
|
$entitylang = $entitytolang[$entity] ? $entitytolang[$entity] : $objimport->array_import_label[0]; // $entitylang must be a translation key to describe object the field is related to, like 'Company', 'Contact', 'MyModyle', ...
|
||||||
|
|
||||||
//print '<td class="nowraponall" style="font-weight: normal">=> '.img_object('', $entityicon).' '.$langs->trans($entitylang).'</td>';
|
print '<td class="nowraponall hideonsmartphone" style="font-weight: normal">=> </td>';
|
||||||
print '<td class="nowraponall" style="font-weight: normal">=> </td>';
|
|
||||||
print '<td class="nowraponall" style="font-weight: normal">';
|
print '<td class="nowraponall" style="font-weight: normal">';
|
||||||
|
|
||||||
//var_dump($_SESSION['dol_array_match_file_to_database_select']);
|
//var_dump($_SESSION['dol_array_match_file_to_database_select']);
|
||||||
@ -1510,7 +1511,7 @@ if ($step == 4 && $datatoimport) {
|
|||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $obj->label;
|
print $obj->label;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>';
|
print '<td class="tdoverflowmax150">';
|
||||||
if (empty($obj->fk_user)) {
|
if (empty($obj->fk_user)) {
|
||||||
print $langs->trans("Everybody");
|
print $langs->trans("Everybody");
|
||||||
} else {
|
} else {
|
||||||
@ -2338,7 +2339,7 @@ $db->close();
|
|||||||
*/
|
*/
|
||||||
function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
$height = '32px';
|
$height = '32px';
|
||||||
|
|
||||||
@ -2384,7 +2385,7 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
|||||||
if (isset($fieldssource[$pos]['imported']) && $fieldssource[$pos]['imported'] == false) {
|
if (isset($fieldssource[$pos]['imported']) && $fieldssource[$pos]['imported'] == false) {
|
||||||
print '<td class="nowraponall boxtdunused" style="font-weight: normal">';
|
print '<td class="nowraponall boxtdunused" style="font-weight: normal">';
|
||||||
} else {
|
} else {
|
||||||
print '<td class="nowraponall" style="font-weight: normal">';
|
print '<td class="nowraponall tdoverflowmax500" style="font-weight: normal">';
|
||||||
}
|
}
|
||||||
print $langs->trans("Column").' '.num2Alpha($pos - 1).' (#'.$pos.')';
|
print $langs->trans("Column").' '.num2Alpha($pos - 1).' (#'.$pos.')';
|
||||||
if (empty($fieldssource[$pos]['example1'])) {
|
if (empty($fieldssource[$pos]['example1'])) {
|
||||||
@ -2396,7 +2397,12 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
|||||||
if (!utf8_check($example)) {
|
if (!utf8_check($example)) {
|
||||||
$example = utf8_encode($example);
|
$example = utf8_encode($example);
|
||||||
}
|
}
|
||||||
|
if (!empty($conf->dol_optimize_smallscreen)) {
|
||||||
|
//print '<br>';
|
||||||
print ' - ';
|
print ' - ';
|
||||||
|
} else {
|
||||||
|
print ' - ';
|
||||||
|
}
|
||||||
//print '<span class="opacitymedium hideonsmartphone">'.$langs->trans("ExampleOnFirstLine").': </span>';
|
//print '<span class="opacitymedium hideonsmartphone">'.$langs->trans("ExampleOnFirstLine").': </span>';
|
||||||
print '<i class="opacitymedium">'.$example.'</i>';
|
print '<i class="opacitymedium">'.$example.'</i>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
README
|
|
||||||
======
|
|
||||||
|
|
||||||
ADOdb Date Library, part of the ADOdb abstraction library
|
|
||||||
|
|
||||||
See Wiki: https://adodb.org/dokuwiki/doku.php?id=v5:datetime:datetime_index
|
|
||||||
Download: https://github.com/ADOdb/ADOdb/blob/master/adodb-time.inc.php
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1 +1,2 @@
|
|||||||
Website generated by Dolibarr ERP CRM
|
Website generated by Dolibarr ERP CRM
|
||||||
|
This website template is an example of website for a restaurant
|
||||||
|
|||||||
@ -1,2 +1,8 @@
|
|||||||
Image are provided under the Unsplash+ License
|
LICENSE
|
||||||
Rest of templates (HTML and PHP code) content are GPLv3
|
-------
|
||||||
|
|
||||||
|
Images are provided under the license:
|
||||||
|
Unsplash+ License
|
||||||
|
|
||||||
|
Rest of templates (HTML and PHP code) content are under license
|
||||||
|
CC-BY-SA - https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|||||||
@ -1 +1,2 @@
|
|||||||
Website generated by Dolibarr ERP CRM
|
Website generated by Dolibarr ERP CRM
|
||||||
|
This website template is an example of website for a restaurant
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
||||||
global $dolibarr_main_data_root;
|
global $dolibarr_main_data_root;
|
||||||
if (empty($dolibarr_main_data_root)) require './page169.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page169.tpl.php';
|
if (empty($dolibarr_main_data_root)) require './page248.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page248.tpl.php';
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
||||||
global $dolibarr_main_data_root;
|
global $dolibarr_main_data_root;
|
||||||
if (empty($dolibarr_main_data_root)) require './page170.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page170.tpl.php';
|
if (empty($dolibarr_main_data_root)) require './page249.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page249.tpl.php';
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
||||||
|
global $dolibarr_main_data_root;
|
||||||
|
if (empty($dolibarr_main_data_root)) require './page252.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page252.tpl.php';
|
||||||
|
?>
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
||||||
|
global $dolibarr_main_data_root;
|
||||||
|
if (empty($dolibarr_main_data_root)) require './page253.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page253.tpl.php';
|
||||||
|
?>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" id="google-fonts-css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,700" />
|
<link rel="stylesheet" id="google-fonts-css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,700" />
|
||||||
<link rel="stylesheet" id="font-wasesome-css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" />
|
<link rel="stylesheet" id="font-wasesome-css" type="text/css" href="/dolibarr_dev/htdocs/theme/common/fontawesome-5/css/all.min.css?layout=classic&version=17.0.0-beta">
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// BEGIN PHP File generated to provide an index.php as Home Page or alias redirector - DO NOT MODIFY - It is just a generated wrapper.
|
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
||||||
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
global $dolibarr_main_data_root;
|
||||||
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Load master if not already loaded
|
if (empty($dolibarr_main_data_root)) require './page250.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page250.tpl.php';
|
||||||
if (!empty($_GET['pageref']) || !empty($_GET['pagealiasalt']) || !empty($_GET['pageid'])) {
|
?>
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
|
||||||
redirectToContainer($_GET['pageref'], $_GET['pagealiasalt'], $_GET['pageid']);
|
|
||||||
}
|
|
||||||
include_once './page171.tpl.php';
|
|
||||||
// END PHP
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ header('Cache-Control: max-age=3600, public, must-revalidate');
|
|||||||
header('Content-type: application/javascript');
|
header('Content-type: application/javascript');
|
||||||
// END PHP ?>
|
// END PHP ?>
|
||||||
/* JS content (all pages) */
|
/* JS content (all pages) */
|
||||||
|
// test
|
||||||
<?php // BEGIN PHP
|
<?php // BEGIN PHP
|
||||||
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "js");
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "js");
|
||||||
// END PHP ?>
|
// END PHP ?>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
// File generated to wrap the alias page - DO NOT MODIFY - It is just a wrapper to real page
|
||||||
global $dolibarr_main_data_root;
|
global $dolibarr_main_data_root;
|
||||||
if (empty($dolibarr_main_data_root)) require './page172.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page172.tpl.php';
|
if (empty($dolibarr_main_data_root)) require './page251.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page251.tpl.php';
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -1,198 +0,0 @@
|
|||||||
<?php // BEGIN PHP
|
|
||||||
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
|
||||||
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) {
|
|
||||||
$pathdepth = count(explode('/', $_SERVER['SCRIPT_NAME'])) - 2;
|
|
||||||
require_once ($pathdepth ? str_repeat('../', $pathdepth) : './').'master.inc.php';
|
|
||||||
} // Not already loaded
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
|
||||||
ob_start();
|
|
||||||
// END PHP ?>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>About us</title>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
||||||
<meta name="robots" content="index, follow" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
<meta name="title" content="About us" />
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="generator" content="Dolibarr 17.0.0-alpha (https://www.dolibarr.org)" />
|
|
||||||
<meta name="dolibarr:pageid" content="169" />
|
|
||||||
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
|
||||||
<!-- Include link to CSS file -->
|
|
||||||
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
|
||||||
<!-- Include link to JS file -->
|
|
||||||
<script async src="/javascript.js.php"></script>
|
|
||||||
<!-- Include HTML header from common file -->
|
|
||||||
<?php if (file_exists(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")) include DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html"; ?>
|
|
||||||
<!-- Include HTML header from page header block -->
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<!-- File generated by Dolibarr website module editor -->
|
|
||||||
<body id="bodywebsite" class="bodywebsite bodywebpage-about">
|
|
||||||
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
|
||||||
<section id="mysection1" contenteditable="true">
|
|
||||||
<nav class="navbar navbar-expand-lg bg-white shadow-lg">
|
|
||||||
<div class="container">
|
|
||||||
<button
|
|
||||||
class="navbar-toggler"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#navbarNav"
|
|
||||||
aria-controls="navbarNav"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation"
|
|
||||||
>
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<a class="navbar-brand" href="index.html"><?php echo $mysoc->name; ?></a>
|
|
||||||
|
|
||||||
<div class="d-lg-none">
|
|
||||||
<a href="contact.php#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
|
||||||
<ul class="navbar-nav mx-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="index.php">Home</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="about.php">About</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="menu.php">Menu</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="contact.php">Contact</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-none d-lg-block">
|
|
||||||
<a href="contact.php#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<main>
|
|
||||||
|
|
||||||
<header class="site-header site-about-header">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-lg-10 col-12 mx-auto">
|
|
||||||
<h1 class="text-white">About Us</h1>
|
|
||||||
|
|
||||||
<strong class="text-white">Get to know us more</strong>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="overlay"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section class="about section-padding">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-12">
|
|
||||||
<h2 class="mb-5">Team Members</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-12">
|
|
||||||
<div class="team-thumb">
|
|
||||||
<img src="image/mypersonalsite/team/matthew-hamilton-tNCH0sKSZbA-unsplash.jpg" class="img-fluid team-image" alt="">
|
|
||||||
|
|
||||||
<div class="team-info">
|
|
||||||
<h4 class="mt-3 mb-0">Sophia</h4>
|
|
||||||
|
|
||||||
<p>CEO & Founder</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-12 my-lg-0 my-4">
|
|
||||||
<div class="team-thumb">
|
|
||||||
<img src="image/mypersonalsite/team/nicolas-horn-MTZTGvDsHFY-unsplash.jpg" class="img-fluid team-image" alt="">
|
|
||||||
|
|
||||||
<h4 class="mt-3 mb-0">Benjamin W.</h4>
|
|
||||||
|
|
||||||
<p>Restaurant Manager</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-12">
|
|
||||||
<div class="team-thumb">
|
|
||||||
<img src="image/mypersonalsite/team/rc-cf-FMh5o5m5N9E-unsplash.jpg" class="img-fluid team-image" alt="">
|
|
||||||
|
|
||||||
<h4 class="mt-3 mb-0">Muchen Jack</h4>
|
|
||||||
|
|
||||||
<p>Senior Chef</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<section class="newsletter section-padding bg-white">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-lg-6 col-12">
|
|
||||||
<img src="image/mypersonalsite/charles-deluvio-FdDkfYFHqe4-unsplash.jpg" class="img-fluid newsletter-image" alt="">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-6 col-12 d-flex align-items-center mt-5 mt-lg-0 mx-auto">
|
|
||||||
<div class="subscribe-form-wrap">
|
|
||||||
<h4 class="mb-0">Our Newsletter</h4>
|
|
||||||
|
|
||||||
<p>The food news every day</p>
|
|
||||||
|
|
||||||
<form class="custom-form subscribe-form mt-4" role="form">
|
|
||||||
<input type="email" name="subscribe-email" id="subscribe-email" pattern="[^ @]*@[^ @]*" class="form-control" placeholder="Your email address" required="">
|
|
||||||
|
|
||||||
<button type="submit" class="form-control mb-3" id="subscribe">Subscribe</button>
|
|
||||||
|
|
||||||
<small>By signing up, you agree to our Privacy Notice and the data policy</small>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
-->
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
<?php // BEGIN PHP
|
|
||||||
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 169);
|
|
||||||
// END PHP ?>
|
|
||||||
@ -1,597 +0,0 @@
|
|||||||
<?php // BEGIN PHP
|
|
||||||
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
|
||||||
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) {
|
|
||||||
$pathdepth = count(explode('/', $_SERVER['SCRIPT_NAME'])) - 2;
|
|
||||||
require_once ($pathdepth ? str_repeat('../', $pathdepth) : './').'master.inc.php';
|
|
||||||
} // Not already loaded
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
|
||||||
ob_start();
|
|
||||||
// END PHP ?>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>Our menus</title>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
||||||
<meta name="robots" content="index, follow" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
<meta name="title" content="Our menus" />
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="generator" content="Dolibarr 17.0.0-alpha (https://www.dolibarr.org)" />
|
|
||||||
<meta name="dolibarr:pageid" content="172" />
|
|
||||||
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
|
||||||
<!-- Include link to CSS file -->
|
|
||||||
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
|
||||||
<!-- Include link to JS file -->
|
|
||||||
<script async src="/javascript.js.php"></script>
|
|
||||||
<!-- Include HTML header from common file -->
|
|
||||||
<?php if (file_exists(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")) include DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html"; ?>
|
|
||||||
<!-- Include HTML header from page header block -->
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<!-- File generated by Dolibarr website module editor -->
|
|
||||||
<body id="bodywebsite" class="bodywebsite bodywebpage-menu">
|
|
||||||
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
|
||||||
<section id="mysection1" contenteditable="true">
|
|
||||||
<nav class="navbar navbar-expand-lg bg-white shadow-lg">
|
|
||||||
<div class="container">
|
|
||||||
<button
|
|
||||||
class="navbar-toggler"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#navbarNav"
|
|
||||||
aria-controls="navbarNav"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation"
|
|
||||||
>
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<a class="navbar-brand" href="index.html"><?php echo $mysoc->name; ?></a>
|
|
||||||
|
|
||||||
<div class="d-lg-none">
|
|
||||||
<a href="contact.php#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
|
||||||
<ul class="navbar-nav mx-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="index.php">Home</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="about.php">About</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="menu.php">Menu</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="contact.php">Contact</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-none d-lg-block">
|
|
||||||
<a href="contact.php#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<main>
|
|
||||||
<header class="site-header site-menu-header">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-10 col-12 mx-auto">
|
|
||||||
<h1 class="text-white">Our Menus</h1>
|
|
||||||
|
|
||||||
<strong class="text-white"
|
|
||||||
>Perfect for all Breakfast, Lunch and
|
|
||||||
Dinner</strong
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="overlay"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section class="menu section-padding">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h2 class="mb-lg-5 mb-4">Breakfast Menu</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Fresh Start</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>24.50</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
4.4/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
128 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="/image/mypersonalsite/breakfast/lucas-swennen-1W_MyJSRLuQ-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Baked Creamy</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>16.50</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
64 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Burger Set</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>24.50</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<del class="ms-4"
|
|
||||||
><small>$</small>36.50</del
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
32 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="menu section-padding bg-white">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h2 class="mb-lg-5 mb-4">Lunch Menu</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/lunch/louis-hansel-cH5IPjaAYyo-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Super Steak Set</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>32.75</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<del class="ms-4"><small>$</small>55</del>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
4.2/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
66 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/lunch/louis-hansel-rheOvfxOlOA-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Bread & Steak Set</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>42.50</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
84 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="menu section-padding">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h2 class="mb-lg-5 mb-4">Dinner Menu</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Seafood Set</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>65.50</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
4.4/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
102 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Premium Steak</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>74.25</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
56 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-12">
|
|
||||||
<div class="menu-thumb">
|
|
||||||
<img
|
|
||||||
src="image/mypersonalsite/dinner/farhad-ibrahimzade-isHUj3N0194-unsplash.jpg"
|
|
||||||
class="img-fluid menu-image"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="menu-info d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="mb-0">Salmon Set</h4>
|
|
||||||
|
|
||||||
<span
|
|
||||||
class="price-tag bg-white shadow-lg ms-4"
|
|
||||||
><small>$</small>60</span
|
|
||||||
>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
|
||||||
>
|
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
<i class="bi-star reviews-icon"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
76 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="site-footer section-padding">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h4 class="text-white mb-4 me-5"><?php echo $mysoc->name; ?></h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-7 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Location</h6>
|
|
||||||
|
|
||||||
<p><?php echo $mysoc->getFullAddress(); ?></p>
|
|
||||||
|
|
||||||
<a
|
|
||||||
href="https://goo.gl/maps/CJ8FfebWZHLQBA2r5"
|
|
||||||
class="custom-btn btn btn-dark mt-2"
|
|
||||||
>Directions</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-5 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Opening Hours</h6>
|
|
||||||
|
|
||||||
|
|
||||||
<?php $days = ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"];
|
|
||||||
foreach ($days as $day){
|
|
||||||
echo "<p> $day : " .getDolGlobalString("MAIN_INFO_OPENINGHOURS_$day") ."</p>";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Tel:
|
|
||||||
<a href="tel: 010-02-0340" class="tel-link"
|
|
||||||
><?php echo $mysoc->phone ?></a
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Social</h6>
|
|
||||||
|
|
||||||
<ul class="social-icon">
|
|
||||||
<?php foreach($mysoc->socialnetworks as $key => $value) {
|
|
||||||
print '<li> <a class="btn btn-perso2 btn-floating m-1" href="'. (preg_match('/^http/', $value) ? $value : 'https://www.'.$key.'.com/'.$value).'"><span class="fab fa-'.$key.'"></i></a> </li>';
|
|
||||||
} ?>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p class="copyright-text tooplate-mt60">
|
|
||||||
Copyright © <?php echo $mysoc->name; ?>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- row ending -->
|
|
||||||
</div>
|
|
||||||
<!-- container ending -->
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
<?php // BEGIN PHP
|
|
||||||
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 172);
|
|
||||||
// END PHP ?>
|
|
||||||
@ -0,0 +1,113 @@
|
|||||||
|
<?php // BEGIN PHP
|
||||||
|
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
||||||
|
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) {
|
||||||
|
$pathdepth = count(explode('/', $_SERVER['SCRIPT_NAME'])) - 2;
|
||||||
|
require_once ($pathdepth ? str_repeat('../', $pathdepth) : './').'master.inc.php';
|
||||||
|
} // Not already loaded
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
||||||
|
ob_start();
|
||||||
|
// END PHP ?>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>About us</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="keywords" content="" />
|
||||||
|
<meta name="title" content="About us" />
|
||||||
|
<meta name="description" content="" />
|
||||||
|
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||||
|
<meta name="dolibarr:pageid" content="248" />
|
||||||
|
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
||||||
|
<!-- Include link to CSS file -->
|
||||||
|
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
||||||
|
<!-- Include link to JS file -->
|
||||||
|
<script async src="/javascript.js.php"></script>
|
||||||
|
<!-- Include HTML header from common file -->
|
||||||
|
<?php if (file_exists(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")) include DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html"; ?>
|
||||||
|
<!-- Include HTML header from page header block -->
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<!-- File generated by Dolibarr website module editor -->
|
||||||
|
<body id="bodywebsite" class="bodywebsite bodywebpage-about">
|
||||||
|
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
||||||
|
<?php includeContainer('header'); ?>
|
||||||
|
|
||||||
|
<section id="mysection1" contenteditable="true">
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<header class="site-header site-about-header">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-lg-10 col-12 mx-auto">
|
||||||
|
<h1 class="text-white">About Us</h1>
|
||||||
|
|
||||||
|
<strong class="text-white">Get to know us more</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="overlay"></div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="about section-padding">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<h2 class="mb-5">Team Members</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<div class="team-thumb">
|
||||||
|
<img src="image/aaab/team/matthew-hamilton-tNCH0sKSZbA-unsplash.jpg" class="img-fluid team-image" alt="">
|
||||||
|
|
||||||
|
<div class="team-info">
|
||||||
|
<h4 class="mt-3 mb-0">Sophia</h4>
|
||||||
|
|
||||||
|
<p>CEO & Founder</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-12 my-lg-0 my-4">
|
||||||
|
<div class="team-thumb">
|
||||||
|
<img src="image/aaab/team/nicolas-horn-MTZTGvDsHFY-unsplash.jpg" class="img-fluid team-image" alt="">
|
||||||
|
|
||||||
|
<h4 class="mt-3 mb-0">Benjamin W.</h4>
|
||||||
|
|
||||||
|
<p>Restaurant Manager</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<div class="team-thumb">
|
||||||
|
<img src="image/aaab/team/rc-cf-FMh5o5m5N9E-unsplash.jpg" class="img-fluid team-image" alt="">
|
||||||
|
|
||||||
|
<h4 class="mt-3 mb-0">Muchen Jack</h4>
|
||||||
|
|
||||||
|
<p>Senior Chef</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<?php includeContainer('footer'); ?>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php // BEGIN PHP
|
||||||
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 248);
|
||||||
|
// END PHP ?>
|
||||||
@ -18,8 +18,8 @@ ob_start();
|
|||||||
<meta name="keywords" content="" />
|
<meta name="keywords" content="" />
|
||||||
<meta name="title" content="Contact us" />
|
<meta name="title" content="Contact us" />
|
||||||
<meta name="description" content="" />
|
<meta name="description" content="" />
|
||||||
<meta name="generator" content="Dolibarr 17.0.0-alpha (https://www.dolibarr.org)" />
|
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||||
<meta name="dolibarr:pageid" content="170" />
|
<meta name="dolibarr:pageid" content="249" />
|
||||||
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
||||||
<!-- Include link to CSS file -->
|
<!-- Include link to CSS file -->
|
||||||
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
||||||
@ -51,66 +51,11 @@ ob_start();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
<?php includeContainer('header'); ?>
|
||||||
|
|
||||||
|
|
||||||
<section id="mysection1" contenteditable="true">
|
<section id="mysection1" contenteditable="true">
|
||||||
<nav class="navbar navbar-expand-lg bg-white shadow-lg">
|
|
||||||
<div class="container">
|
|
||||||
<button
|
|
||||||
class="navbar-toggler"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#navbarNav"
|
|
||||||
aria-controls="navbarNav"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation"
|
|
||||||
>
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<a class="navbar-brand" href="index.html"><?php echo $mysoc->name; ?></a>
|
|
||||||
|
|
||||||
<div class="d-lg-none">
|
|
||||||
<a href="#reservation"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
|
||||||
<ul class="navbar-nav mx-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="index.php">Home</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="about.php">About</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="menu.php">Menu</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="contact.php">Contact</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-none d-lg-block">
|
|
||||||
<a href="#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
<header class="site-header site-contact-header">
|
<header class="site-header site-contact-header">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
@ -128,7 +73,7 @@ ob_start();
|
|||||||
<div class="overlay"></div>
|
<div class="overlay"></div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<a id="reservation"></a>
|
<a id="reservation"></a><br>
|
||||||
|
|
||||||
<section class="contact section-padding">
|
<section class="contact section-padding">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
@ -144,6 +89,9 @@ ob_start();
|
|||||||
method="post"
|
method="post"
|
||||||
role="form"
|
role="form"
|
||||||
>
|
>
|
||||||
|
<input type="hidden" name="action" value="sendmail">
|
||||||
|
<input type="hidden" name="toekn" value="<?php echo newToken(); ?>">
|
||||||
|
|
||||||
<div class="col-lg-6 col-6">
|
<div class="col-lg-6 col-6">
|
||||||
<label for="contact-name" class="form-label"
|
<label for="contact-name" class="form-label"
|
||||||
>Full Name</label
|
>Full Name</label
|
||||||
@ -163,7 +111,7 @@ ob_start();
|
|||||||
<label
|
<label
|
||||||
for="contact-phone"
|
for="contact-phone"
|
||||||
class="form-label"
|
class="form-label"
|
||||||
>Phone Number</label
|
><?php echo $weblangs->trans("Phone"); ?></label
|
||||||
>
|
>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
@ -178,7 +126,7 @@ ob_start();
|
|||||||
<label
|
<label
|
||||||
for="contact-email"
|
for="contact-email"
|
||||||
class="form-label"
|
class="form-label"
|
||||||
>Email</label
|
><?php echo $weblangs->trans("Email"); ?></label
|
||||||
>
|
>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
@ -194,7 +142,7 @@ ob_start();
|
|||||||
<label
|
<label
|
||||||
for="contact-message"
|
for="contact-message"
|
||||||
class="form-label"
|
class="form-label"
|
||||||
>Message</label
|
><?php echo $weblangs->trans("Message"); ?></label
|
||||||
>
|
>
|
||||||
|
|
||||||
<textarea
|
<textarea
|
||||||
@ -208,7 +156,7 @@ ob_start();
|
|||||||
|
|
||||||
<div class="col-lg-5 col-12 ms-auto">
|
<div class="col-lg-5 col-12 ms-auto">
|
||||||
<button type="submit" class="form-control">
|
<button type="submit" class="form-control">
|
||||||
Send
|
<?php echo $weblangs->trans("Send"); ?>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@ -234,88 +182,24 @@ ob_start();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12">
|
<div class="col-12" id="divaddress">
|
||||||
<h4 class="mt-5 mb-4">
|
<br><br>
|
||||||
|
|
||||||
|
<h4 class="mt-5 mb-4 center">
|
||||||
<?php echo $mysoc->getFullAddress() ?>
|
<?php echo $mysoc->getFullAddress() ?>
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<div class="google-map pt-3">
|
<!-- Google MAPS -->
|
||||||
<iframe
|
<center><div class="mapouter"><div class="gmap_canvas"><iframe width="600" height="500" id="gmap_canvas" src="https://maps.google.com/maps?q=<?php echo urlencode($mysoc->getFullAddress()); ?>&t=&z=13&ie=UTF8&iwloc=&output=embed" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe>
|
||||||
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d90596.06698695973!2d-0.7089680200547398!3d44.79859846268479!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd54d8fb00b62b4d%3A0x963d0840e2fa1f97!2sPessac%20Centre!5e0!3m2!1sen!2sfr!4v1659970475018!5m2!1sen!2sfr"
|
|
||||||
width="100%"
|
|
||||||
height="300"
|
|
||||||
style="border: 0"
|
|
||||||
allowfullscreen=""
|
|
||||||
loading="lazy"
|
|
||||||
referrerpolicy="no-referrer-when-downgrade"
|
|
||||||
></iframe>
|
|
||||||
</div>
|
</div>
|
||||||
|
<style>.mapouter{text-align:right;height:500px;width:600px;}.gmap_canvas {overflow:hidden;background:none!important;height:500px;width:600px;}</style>
|
||||||
|
</div></center>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer class="site-footer section-padding">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h4 class="text-white mb-4 me-5"><?php echo $mysoc->name; ?></h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-7 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Location</h6>
|
|
||||||
|
|
||||||
<p><?php echo $mysoc->getFullAddress(); ?></p>
|
|
||||||
|
|
||||||
<a
|
|
||||||
href="https://goo.gl/maps/CJ8FfebWZHLQBA2r5"
|
|
||||||
class="custom-btn btn btn-dark mt-2"
|
|
||||||
>Directions</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-5 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Opening Hours</h6>
|
|
||||||
|
|
||||||
|
|
||||||
<?php $days = ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"];
|
|
||||||
foreach ($days as $day){
|
|
||||||
echo "<p> $day : " .getDolGlobalString("MAIN_INFO_OPENINGHOURS_$day") ."</p>";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Tel:
|
|
||||||
<a href="tel: 010-02-0340" class="tel-link"
|
|
||||||
><?php echo $mysoc->phone ?></a
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Social</h6>
|
|
||||||
|
|
||||||
<ul class="social-icon">
|
|
||||||
<?php foreach($mysoc->socialnetworks as $key => $value) {
|
|
||||||
print '<li> <a class="btn btn-perso2 btn-floating m-1" href="'. (preg_match('/^http/', $value) ? $value : 'https://www.'.$key.'.com/'.$value).'"><span class="fab fa-'.$key.'"></i></a> </li>';
|
|
||||||
} ?>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p class="copyright-text tooplate-mt60">
|
|
||||||
Copyright © <?php echo $mysoc->name; ?>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- row ending -->
|
|
||||||
</div>
|
|
||||||
<!-- container ending -->
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Modal -->
|
<!-- Modal -->
|
||||||
@ -346,7 +230,7 @@ ob_start();
|
|||||||
<form
|
<form
|
||||||
class="booking-form row"
|
class="booking-form row"
|
||||||
role="form"
|
role="form"
|
||||||
action="index.php"
|
action="contact.php"
|
||||||
method="POST"
|
method="POST"
|
||||||
>
|
>
|
||||||
<input type="hidden" name="token" value="<?php echo newToken(); ?>" />
|
<input type="hidden" name="token" value="<?php echo newToken(); ?>" />
|
||||||
@ -473,8 +357,12 @@ ob_start();
|
|||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<?php includeContainer('footer'); ?>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<?php // BEGIN PHP
|
<?php // BEGIN PHP
|
||||||
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 170);
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 249);
|
||||||
// END PHP ?>
|
// END PHP ?>
|
||||||
@ -18,8 +18,8 @@ ob_start();
|
|||||||
<meta name="keywords" content="" />
|
<meta name="keywords" content="" />
|
||||||
<meta name="title" content="index" />
|
<meta name="title" content="index" />
|
||||||
<meta name="description" content="" />
|
<meta name="description" content="" />
|
||||||
<meta name="generator" content="Dolibarr 17.0.0-alpha (https://www.dolibarr.org)" />
|
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||||
<meta name="dolibarr:pageid" content="171" />
|
<meta name="dolibarr:pageid" content="250" />
|
||||||
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
||||||
<!-- Include link to CSS file -->
|
<!-- Include link to CSS file -->
|
||||||
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
||||||
@ -34,68 +34,10 @@ ob_start();
|
|||||||
<body id="bodywebsite" class="bodywebsite bodywebpage-index">
|
<body id="bodywebsite" class="bodywebsite bodywebpage-index">
|
||||||
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
||||||
|
|
||||||
|
<?php includeContainer('header'); ?>
|
||||||
|
|
||||||
|
|
||||||
<section id="mysection1" contenteditable="true">
|
<section id="mysection1" contenteditable="true">
|
||||||
<nav class="navbar navbar-expand-lg bg-white shadow-lg">
|
|
||||||
<div class="container">
|
|
||||||
<button
|
|
||||||
class="navbar-toggler"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#navbarNav"
|
|
||||||
aria-controls="navbarNav"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation"
|
|
||||||
>
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<a class="navbar-brand" href="index.html"><?php echo $mysoc->name; ?></a>
|
|
||||||
|
|
||||||
<div class="d-lg-none">
|
|
||||||
<a href="contact.php#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
|
||||||
<ul class="navbar-nav mx-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="index.php"
|
|
||||||
>Home</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="about.php">About</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="menu.php">Menu</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="contact.php">Contact</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-none d-lg-block">
|
|
||||||
<a href="contact.php#reservation"
|
|
||||||
type="button"
|
|
||||||
class="custom-btn btn btn-danger"
|
|
||||||
data-bs-toggle="modal"
|
|
||||||
data-bs-target="#BookingModal"
|
|
||||||
>
|
|
||||||
Reservation
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
<section class="hero">
|
<section class="hero">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
@ -106,16 +48,9 @@ ob_start();
|
|||||||
Delicious Steaks
|
Delicious Steaks
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
<div class="c-reviews my-3 d-flex flex-wrap align-items-center">
|
||||||
<div
|
<div
|
||||||
class="c-reviews my-3 d-flex flex-wrap align-items-center"
|
class="d-flex flex-wrap align-items-center">
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h4 class="text-white mb-0 me-3">
|
|
||||||
4.7/5
|
|
||||||
</h4>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -132,11 +67,6 @@ ob_start();
|
|||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="text-white w-100">
|
|
||||||
From <strong>1,206+</strong> Customer
|
|
||||||
Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -151,7 +81,7 @@ ob_start();
|
|||||||
<div class="carousel-item active">
|
<div class="carousel-item active">
|
||||||
<div class="carousel-image-wrap">
|
<div class="carousel-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/slide/jay-wennington-N_Y88TWmGwA-unsplash.jpg"
|
src="image/aaab/slide/jay-wennington-N_Y88TWmGwA-unsplash.jpg"
|
||||||
class="img-fluid carousel-image"
|
class="img-fluid carousel-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -167,7 +97,7 @@ ob_start();
|
|||||||
<div class="carousel-item">
|
<div class="carousel-item">
|
||||||
<div class="carousel-image-wrap">
|
<div class="carousel-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/slide/jason-leung-O67LZfeyYBk-unsplash.jpg"
|
src="image/aaab/slide/jason-leung-O67LZfeyYBk-unsplash.jpg"
|
||||||
class="img-fluid carousel-image"
|
class="img-fluid carousel-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -183,41 +113,13 @@ ob_start();
|
|||||||
>26.50<small>€</small></span
|
>26.50<small>€</small></span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h5
|
|
||||||
class="reviews-text mb-0 me-3"
|
|
||||||
>
|
|
||||||
3.8/5
|
|
||||||
</h5>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star reviews-icon"
|
|
||||||
></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="carousel-item">
|
<div class="carousel-item">
|
||||||
<div class="carousel-image-wrap">
|
<div class="carousel-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg"
|
src="image/aaab/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg"
|
||||||
class="img-fluid carousel-image"
|
class="img-fluid carousel-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -235,34 +137,6 @@ ob_start();
|
|||||||
>18.25<small>€</small></span
|
>18.25<small>€</small></span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
|
||||||
class="d-flex flex-wrap align-items-center"
|
|
||||||
>
|
|
||||||
<h5
|
|
||||||
class="reviews-text mb-0 me-3"
|
|
||||||
>
|
|
||||||
4.2/5
|
|
||||||
</h5>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star-fill reviews-icon"
|
|
||||||
></i>
|
|
||||||
<i
|
|
||||||
class="bi-star reviews-icon"
|
|
||||||
></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -299,22 +173,6 @@ ob_start();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="video-wrap">
|
|
||||||
<video
|
|
||||||
autoplay=""
|
|
||||||
loop=""
|
|
||||||
muted=""
|
|
||||||
class="custom-video"
|
|
||||||
poster=""
|
|
||||||
>
|
|
||||||
<source
|
|
||||||
src="image/mypersonalsite/video/production_ID_3769033.mp4"
|
|
||||||
type="video/mp4"
|
|
||||||
/>
|
|
||||||
Your browser does not support the video tag.
|
|
||||||
</video>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="overlay"></div>
|
<div class="overlay"></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -331,7 +189,7 @@ ob_start();
|
|||||||
<div class="menu-thumb">
|
<div class="menu-thumb">
|
||||||
<div class="menu-image-wrap">
|
<div class="menu-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg"
|
src="image/aaab/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg"
|
||||||
class="img-fluid menu-image"
|
class="img-fluid menu-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -354,10 +212,6 @@ ob_start();
|
|||||||
<div
|
<div
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
||||||
>
|
>
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
4.3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -373,10 +227,6 @@ ob_start();
|
|||||||
></i>
|
></i>
|
||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
102 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -386,7 +236,7 @@ ob_start();
|
|||||||
<div class="menu-thumb">
|
<div class="menu-thumb">
|
||||||
<div class="menu-image-wrap">
|
<div class="menu-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg"
|
src="image/aaab/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg"
|
||||||
class="img-fluid menu-image"
|
class="img-fluid menu-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -409,10 +259,6 @@ ob_start();
|
|||||||
<div
|
<div
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
||||||
>
|
>
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -426,10 +272,6 @@ ob_start();
|
|||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
50 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -439,7 +281,7 @@ ob_start();
|
|||||||
<div class="menu-thumb">
|
<div class="menu-thumb">
|
||||||
<div class="menu-image-wrap">
|
<div class="menu-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg"
|
src="image/aaab/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg"
|
||||||
class="img-fluid menu-image"
|
class="img-fluid menu-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -462,10 +304,6 @@ ob_start();
|
|||||||
<div
|
<div
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
||||||
>
|
>
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -479,10 +317,6 @@ ob_start();
|
|||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
86 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -492,7 +326,7 @@ ob_start();
|
|||||||
<div class="menu-thumb">
|
<div class="menu-thumb">
|
||||||
<div class="menu-image-wrap">
|
<div class="menu-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg"
|
src="image/aaab/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg"
|
||||||
class="img-fluid menu-image"
|
class="img-fluid menu-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -515,10 +349,6 @@ ob_start();
|
|||||||
<div
|
<div
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
||||||
>
|
>
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -532,10 +362,6 @@ ob_start();
|
|||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
44 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -545,7 +371,7 @@ ob_start();
|
|||||||
<div class="menu-thumb">
|
<div class="menu-thumb">
|
||||||
<div class="menu-image-wrap">
|
<div class="menu-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg"
|
src="image/aaab/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg"
|
||||||
class="img-fluid menu-image"
|
class="img-fluid menu-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -568,10 +394,6 @@ ob_start();
|
|||||||
<div
|
<div
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
||||||
>
|
>
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
4.3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -587,10 +409,6 @@ ob_start();
|
|||||||
></i>
|
></i>
|
||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
102 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -600,7 +418,7 @@ ob_start();
|
|||||||
<div class="menu-thumb">
|
<div class="menu-thumb">
|
||||||
<div class="menu-image-wrap">
|
<div class="menu-image-wrap">
|
||||||
<img
|
<img
|
||||||
src="image/mypersonalsite/lunch/farhad-ibrahimzade-D5c9ZciQy_I-unsplash.jpg"
|
src="image/aaab/lunch/farhad-ibrahimzade-D5c9ZciQy_I-unsplash.jpg"
|
||||||
class="img-fluid menu-image"
|
class="img-fluid menu-image"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
@ -623,10 +441,6 @@ ob_start();
|
|||||||
<div
|
<div
|
||||||
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
class="d-flex flex-wrap align-items-center w-100 mt-2"
|
||||||
>
|
>
|
||||||
<h6 class="reviews-text mb-0 me-3">
|
|
||||||
3/5
|
|
||||||
</h6>
|
|
||||||
|
|
||||||
<div class="reviews-stars">
|
<div class="reviews-stars">
|
||||||
<i
|
<i
|
||||||
class="bi-star-fill reviews-icon"
|
class="bi-star-fill reviews-icon"
|
||||||
@ -640,10 +454,6 @@ ob_start();
|
|||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
<i class="bi-star reviews-icon"></i>
|
<i class="bi-star reviews-icon"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="reviews-text mb-0 ms-4">
|
|
||||||
64 Reviews
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -653,68 +463,13 @@ ob_start();
|
|||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer class="site-footer section-padding">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h4 class="text-white mb-4 me-5"><?php echo $mysoc->name; ?></h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-7 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Location</h6>
|
|
||||||
|
|
||||||
<p><?php echo $mysoc->getFullAddress(); ?></p>
|
|
||||||
|
|
||||||
<a
|
|
||||||
href="https://goo.gl/maps/CJ8FfebWZHLQBA2r5"
|
|
||||||
class="custom-btn btn btn-dark mt-2"
|
|
||||||
>Directions</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-5 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Opening Hours</h6>
|
|
||||||
|
|
||||||
|
|
||||||
<?php $days = ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"];
|
|
||||||
foreach ($days as $day){
|
|
||||||
echo "<p> $day : " .getDolGlobalString("MAIN_INFO_OPENINGHOURS_$day") ."</p>";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Tel:
|
|
||||||
<a href="tel: 010-02-0340" class="tel-link"
|
|
||||||
><?php echo $mysoc->phone ?></a
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-6 col-xs-12 tooplate-mt30">
|
|
||||||
<h6 class="text-white mb-lg-4 mb-3">Social</h6>
|
|
||||||
|
|
||||||
<ul class="social-icon">
|
|
||||||
<?php foreach($mysoc->socialnetworks as $key => $value) {
|
|
||||||
print '<li> <a class="btn btn-perso2 btn-floating m-1" href="'. (preg_match('/^http/', $value) ? $value : 'https://www.'.$key.'.com/'.$value).'"><span class="fab fa-'.$key.'"></i></a> </li>';
|
|
||||||
} ?>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p class="copyright-text tooplate-mt60">
|
|
||||||
Copyright © <?php echo $mysoc->name; ?>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- row ending -->
|
|
||||||
</div>
|
|
||||||
<!-- container ending -->
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<?php includeContainer('footer'); ?>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<?php // BEGIN PHP
|
<?php // BEGIN PHP
|
||||||
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 171);
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 250);
|
||||||
// END PHP ?>
|
// END PHP ?>
|
||||||
@ -0,0 +1,273 @@
|
|||||||
|
<?php // BEGIN PHP
|
||||||
|
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
||||||
|
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) {
|
||||||
|
$pathdepth = count(explode('/', $_SERVER['SCRIPT_NAME'])) - 2;
|
||||||
|
require_once ($pathdepth ? str_repeat('../', $pathdepth) : './').'master.inc.php';
|
||||||
|
} // Not already loaded
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
||||||
|
ob_start();
|
||||||
|
// END PHP ?>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Our menus</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="keywords" content="" />
|
||||||
|
<meta name="title" content="Our menus" />
|
||||||
|
<meta name="description" content="" />
|
||||||
|
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||||
|
<meta name="dolibarr:pageid" content="251" />
|
||||||
|
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
||||||
|
<!-- Include link to CSS file -->
|
||||||
|
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
||||||
|
<!-- Include link to JS file -->
|
||||||
|
<script async src="/javascript.js.php"></script>
|
||||||
|
<!-- Include HTML header from common file -->
|
||||||
|
<?php if (file_exists(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")) include DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html"; ?>
|
||||||
|
<!-- Include HTML header from page header block -->
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<!-- File generated by Dolibarr website module editor -->
|
||||||
|
<body id="bodywebsite" class="bodywebsite bodywebpage-menu">
|
||||||
|
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
||||||
|
|
||||||
|
<?php includeContainer('header'); ?>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="mysection1" contenteditable="true">
|
||||||
|
<main>
|
||||||
|
<header class="site-header site-menu-header">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-10 col-12 mx-auto">
|
||||||
|
<h1 class="text-white">Our Menus</h1>
|
||||||
|
|
||||||
|
<strong class="text-white"
|
||||||
|
>Perfect for all Breakfast, Lunch and
|
||||||
|
Dinner</strong
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="overlay"></div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="menu section-padding">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h2 class="mb-lg-5 mb-4">Breakfast Menu</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/breakfast/brett-jordan-8xt8-HIFqc8-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Fresh Start</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>24.50</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="/image/aaab/breakfast/lucas-swennen-1W_MyJSRLuQ-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Baked Creamy</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>16.50</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Burger Set</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>24.50</span
|
||||||
|
>
|
||||||
|
|
||||||
|
<del class="ms-4"
|
||||||
|
><small>$</small>36.50</del
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="menu section-padding bg-white">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h2 class="mb-lg-5 mb-4">Lunch Menu</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/lunch/louis-hansel-cH5IPjaAYyo-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Super Steak Set</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>32.75</span
|
||||||
|
>
|
||||||
|
|
||||||
|
<del class="ms-4"><small>$</small>55</del>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/lunch/louis-hansel-rheOvfxOlOA-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Bread & Steak Set</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>42.50</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="menu section-padding">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h2 class="mb-lg-5 mb-4">Dinner Menu</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Seafood Set</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>65.50</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Premium Steak</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>74.25</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-12">
|
||||||
|
<div class="menu-thumb">
|
||||||
|
<img
|
||||||
|
src="image/aaab/dinner/farhad-ibrahimzade-isHUj3N0194-unsplash.jpg"
|
||||||
|
class="img-fluid menu-image"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="menu-info d-flex flex-wrap align-items-center"
|
||||||
|
>
|
||||||
|
<h4 class="mb-0">Salmon Set</h4>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="price-tag bg-white shadow-lg ms-4"
|
||||||
|
><small>$</small>60</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<?php includeContainer('footer'); ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php // BEGIN PHP
|
||||||
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 251);
|
||||||
|
// END PHP ?>
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
<?php // BEGIN PHP
|
||||||
|
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
||||||
|
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) {
|
||||||
|
$pathdepth = count(explode('/', $_SERVER['SCRIPT_NAME'])) - 2;
|
||||||
|
require_once ($pathdepth ? str_repeat('../', $pathdepth) : './').'master.inc.php';
|
||||||
|
} // Not already loaded
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
||||||
|
ob_start();
|
||||||
|
// END PHP ?>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Footer</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="keywords" content="" />
|
||||||
|
<meta name="title" content="Footer" />
|
||||||
|
<meta name="description" content="" />
|
||||||
|
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||||
|
<meta name="dolibarr:pageid" content="252" />
|
||||||
|
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
||||||
|
<!-- Include link to CSS file -->
|
||||||
|
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
||||||
|
<!-- Include link to JS file -->
|
||||||
|
<script async src="/javascript.js.php"></script>
|
||||||
|
<!-- Include HTML header from common file -->
|
||||||
|
<?php if (file_exists(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")) include DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html"; ?>
|
||||||
|
<!-- Include HTML header from page header block -->
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<!-- File generated by Dolibarr website module editor -->
|
||||||
|
<body id="bodywebsite" class="bodywebsite bodywebpage-footer">
|
||||||
|
<!-- Enter here your HTML content. Add a section with an id tag and tag contenteditable="true" if you want to use the inline editor for the content -->
|
||||||
|
<section id="footer" contenteditable="true">
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="site-footer section-padding">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-4 col-md-7 col-xs-12 tooplate-mt30">
|
||||||
|
<h6 class="text-white mb-lg-4 mb-3"><?php echo $weblangs->trans("Location"); ?></h6>
|
||||||
|
|
||||||
|
<p><?php echo $mysoc->getFullAddress(); ?></p>
|
||||||
|
|
||||||
|
<a href="contact.php#divaddress" class="custom-btn btn btn-dark mt-2"><?php echo $weblangs->trans("Map"); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-5 col-xs-12 tooplate-mt30">
|
||||||
|
<h6 class="text-white mb-lg-4 mb-3">Opening Hours</h6>
|
||||||
|
|
||||||
|
|
||||||
|
<?php $days = ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"];
|
||||||
|
foreach ($days as $day){
|
||||||
|
echo "<p> $day : " .getDolGlobalString("MAIN_INFO_OPENINGHOURS_$day") ."</p>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Tel:
|
||||||
|
<a href="tel: <?php echo $mysoc->phone ?>" class="tel-link"
|
||||||
|
><?php echo $mysoc->phone ?></a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-md-6 col-xs-12 tooplate-mt30">
|
||||||
|
<h6 class="text-white mb-lg-4 mb-3">Social</h6>
|
||||||
|
|
||||||
|
<ul class="social-icon">
|
||||||
|
<?php foreach($mysoc->socialnetworks as $key => $value) {
|
||||||
|
print '<li> <a class="btn btn-perso2 btn-floating m-1" href="'. (preg_match('/^http/', $value) ? $value : 'https://www.'.$key.'.com/'.$value).'"><span class="fab fa-'.$key.'"></i></a> </li>';
|
||||||
|
} ?>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="copyright-text tooplate-mt60">
|
||||||
|
Copyright © <?php echo $mysoc->name; ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- row ending -->
|
||||||
|
</div>
|
||||||
|
<!-- container ending -->
|
||||||
|
</footer>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php // BEGIN PHP
|
||||||
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 252);
|
||||||
|
// END PHP ?>
|
||||||
@ -0,0 +1,98 @@
|
|||||||
|
<?php // BEGIN PHP
|
||||||
|
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
||||||
|
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) {
|
||||||
|
$pathdepth = count(explode('/', $_SERVER['SCRIPT_NAME'])) - 2;
|
||||||
|
require_once ($pathdepth ? str_repeat('../', $pathdepth) : './').'master.inc.php';
|
||||||
|
} // Not already loaded
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';
|
||||||
|
ob_start();
|
||||||
|
// END PHP ?>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Header</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="keywords" content="" />
|
||||||
|
<meta name="title" content="Header" />
|
||||||
|
<meta name="description" content="" />
|
||||||
|
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||||
|
<meta name="dolibarr:pageid" content="253" />
|
||||||
|
<?php if ($website->use_manifest) { print '<link rel="manifest" href="/manifest.json.php" />'."\n"; } ?>
|
||||||
|
<!-- Include link to CSS file -->
|
||||||
|
<link rel="stylesheet" href="/styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />
|
||||||
|
<!-- Include link to JS file -->
|
||||||
|
<script async src="/javascript.js.php"></script>
|
||||||
|
<!-- Include HTML header from common file -->
|
||||||
|
<?php if (file_exists(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")) include DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html"; ?>
|
||||||
|
<!-- Include HTML header from page header block -->
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<!-- File generated by Dolibarr website module editor -->
|
||||||
|
<body id="bodywebsite" class="bodywebsite bodywebpage-header">
|
||||||
|
<section id="header" contenteditable="true">
|
||||||
|
<nav class="navbar navbar-expand-lg bg-white shadow-lg">
|
||||||
|
<div class="container">
|
||||||
|
<button
|
||||||
|
class="navbar-toggler"
|
||||||
|
type="button"
|
||||||
|
data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#navbarNav"
|
||||||
|
aria-controls="navbarNav"
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Toggle navigation"
|
||||||
|
>
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<a class="navbar-brand" href="index.html"><?php echo $mysoc->name; ?></a>
|
||||||
|
|
||||||
|
<div class="d-lg-none">
|
||||||
|
<a href="contact.php#reservation"
|
||||||
|
type="button"
|
||||||
|
class="custom-btn btn btn-danger"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#BookingModal"
|
||||||
|
><?php $langs->trans("Reservation"); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav mx-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link<?php echo ($websitepage->ref == 'index' ? ' active' : ''); ?>" href="index.php"><?php echo $weblangs->trans("Home"); ?></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link<?php echo ($websitepage->ref == 'about' ? ' active' : ''); ?>" href="about.php"><?php echo $weblangs->trans("About"); ?></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link<?php echo ($websitepage->ref == 'menu' ? ' active' : ''); ?>" href="menu.php"><?php echo $weblangs->trans("Menu"); ?></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link<?php echo ($websitepage->ref == 'contact' ? ' active' : ''); ?>" href="contact.php"><?php echo $weblangs->trans("Contact"); ?></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-none d-lg-block">
|
||||||
|
<a href="contact.php#reservation"
|
||||||
|
type="button"
|
||||||
|
class="custom-btn btn btn-danger"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#BookingModal"
|
||||||
|
><?php echo $weblangs->trans("Reservation"); ?></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php // BEGIN PHP
|
||||||
|
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "html", 253);
|
||||||
|
// END PHP ?>
|
||||||
@ -11,44 +11,6 @@ header('Content-type: text/css');
|
|||||||
// END PHP ?>
|
// END PHP ?>
|
||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
.bodywebsite {
|
|
||||||
/*!
|
|
||||||
* Bootstrap v5.2.1 (https://getbootstrap.com/)
|
|
||||||
* Copyright 2011-2022 The Bootstrap Authors
|
|
||||||
* Copyright 2011-2022 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
||||||
*/
|
|
||||||
/* rtl:raw:
|
|
||||||
[type="tel"],
|
|
||||||
[type="url"],
|
|
||||||
[type="email"],
|
|
||||||
[type="number"] {
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/* rtl:begin:ignore */
|
|
||||||
/* rtl:end:ignore */
|
|
||||||
/* rtl:begin:ignore */
|
|
||||||
/* rtl:end:ignore */
|
|
||||||
/* rtl:begin:ignore */
|
|
||||||
/* rtl:end:ignore */
|
|
||||||
/* rtl:begin:ignore */
|
|
||||||
/* rtl:end:ignore */
|
|
||||||
/* rtl:begin:ignore */
|
|
||||||
/* rtl:end:ignore */
|
|
||||||
/* rtl:options: {
|
|
||||||
"autoRename": true,
|
|
||||||
"stringMap":[ {
|
|
||||||
"name" : "prev-next",
|
|
||||||
"search" : "prev",
|
|
||||||
"replace" : "next"
|
|
||||||
} ]
|
|
||||||
} */
|
|
||||||
/* rtl:begin:remove */
|
|
||||||
/* rtl:end:remove */
|
|
||||||
/*# sourceMappingURL=bootstrap.css.map */;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bodywebsite :root {
|
.bodywebsite :root {
|
||||||
--bs-blue: #0d6efd;
|
--bs-blue: #0d6efd;
|
||||||
--bs-indigo: #6610f2;
|
--bs-indigo: #6610f2;
|
||||||
@ -143,6 +105,10 @@ header('Content-type: text/css');
|
|||||||
-webkit-tap-highlight-color: transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bodywebsite .center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.bodywebsite hr {
|
.bodywebsite hr {
|
||||||
margin: 1rem 0;
|
margin: 1rem 0;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
@ -8367,6 +8333,7 @@ header('Content-type: text/css');
|
|||||||
|
|
||||||
.bodywebsite .m-1 {
|
.bodywebsite .m-1 {
|
||||||
margin: 0.25rem !important;
|
margin: 0.25rem !important;
|
||||||
|
padding-left: 0px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bodywebsite .m-2 {
|
.bodywebsite .m-2 {
|
||||||
@ -12596,8 +12563,8 @@ body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bodywebsite .section-padding {
|
.bodywebsite .section-padding {
|
||||||
padding-top: 8rem;
|
padding-top: 6rem;
|
||||||
padding-bottom: 8rem;
|
padding-bottom: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bodywebsite b,
|
.bodywebsite b,
|
||||||
@ -13019,8 +12986,8 @@ body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; }
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
padding-top: 7rem;
|
padding-top: 3rem;
|
||||||
padding-bottom: 7rem;
|
padding-bottom: 3rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -57,7 +57,7 @@ create table llx_product
|
|||||||
fk_user_modif integer, -- user making last change
|
fk_user_modif integer, -- user making last change
|
||||||
tosell tinyint DEFAULT 1, -- Product you sell
|
tosell tinyint DEFAULT 1, -- Product you sell
|
||||||
tobuy tinyint DEFAULT 1, -- Product you buy
|
tobuy tinyint DEFAULT 1, -- Product you buy
|
||||||
onportal tinyint DEFAULT 0, -- If it is a product you sell and you want to sell it on portal (module website must be on)
|
onportal tinyint DEFAULT 0, -- If it is a product you sell and you want to sell it from internal portal (module 'portal')
|
||||||
tobatch tinyint DEFAULT 0 NOT NULL, -- Is it a product that need a batch management (eat-by or lot management)
|
tobatch tinyint DEFAULT 0 NOT NULL, -- Is it a product that need a batch management (eat-by or lot management)
|
||||||
sell_or_eat_by_mandatory tinyint DEFAULT 0 NOT NULL, -- Make sell-by or eat-by date mandatory
|
sell_or_eat_by_mandatory tinyint DEFAULT 0 NOT NULL, -- Make sell-by or eat-by date mandatory
|
||||||
batch_mask varchar(32) DEFAULT NULL, -- If the product has batch feature, you may want to use a batch mask per product
|
batch_mask varchar(32) DEFAULT NULL, -- If the product has batch feature, you may want to use a batch mask per product
|
||||||
|
|||||||
@ -1881,7 +1881,7 @@ SuppliersInvoiceNumberingModel=Vendor invoices numbering models
|
|||||||
IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval
|
IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval
|
||||||
##### GeoIPMaxmind #####
|
##### GeoIPMaxmind #####
|
||||||
GeoIPMaxmindSetup=GeoIP Maxmind module setup
|
GeoIPMaxmindSetup=GeoIP Maxmind module setup
|
||||||
PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoLite2-Country.mmdb
|
PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation
|
||||||
NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions).
|
NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions).
|
||||||
YouCanDownloadFreeDatFileTo=You can download a <b>free demo version</b> of the Maxmind GeoIP country file at %s.
|
YouCanDownloadFreeDatFileTo=You can download a <b>free demo version</b> of the Maxmind GeoIP country file at %s.
|
||||||
YouCanDownloadAdvancedDatFileTo=You can also download a more <b>complete version, with updates,</b> of the Maxmind GeoIP country file at %s.
|
YouCanDownloadAdvancedDatFileTo=You can also download a more <b>complete version, with updates,</b> of the Maxmind GeoIP country file at %s.
|
||||||
|
|||||||
@ -153,3 +153,5 @@ PreviousContainer=Previous page/container
|
|||||||
WebsiteMustBeDisabled=The website must have the status "%s"
|
WebsiteMustBeDisabled=The website must have the status "%s"
|
||||||
WebpageMustBeDisabled=The web page must have the status "%s"
|
WebpageMustBeDisabled=The web page must have the status "%s"
|
||||||
SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first.
|
SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first.
|
||||||
|
Booking=Booking
|
||||||
|
Reservation=Reservation
|
||||||
|
|||||||
@ -1484,7 +1484,7 @@ function top_httphead($contenttype = 'text/html', $forcenocache = 0)
|
|||||||
|
|
||||||
// Referrer-Policy
|
// Referrer-Policy
|
||||||
// Say if we must provide the referrer when we jump onto another web page.
|
// Say if we must provide the referrer when we jump onto another web page.
|
||||||
// Default browser are 'strict-origin-when-cross-origin', we want more so we use 'same-origin' so we don't send any referrer when going into another web site
|
// Default browser are 'strict-origin-when-cross-origin' (only domain is sent on other domain switching), we want more so we use 'same-origin' so browser doesn't send any referrer when going into another web site domain.
|
||||||
if (!defined('MAIN_SECURITY_FORCERP')) {
|
if (!defined('MAIN_SECURITY_FORCERP')) {
|
||||||
$referrerpolicy = getDolGlobalString('MAIN_SECURITY_FORCERP', "same-origin");
|
$referrerpolicy = getDolGlobalString('MAIN_SECURITY_FORCERP', "same-origin");
|
||||||
|
|
||||||
|
|||||||
@ -1709,6 +1709,7 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
|
|||||||
|
|
||||||
select.minwidth100imp, select.minwidth100, select.minwidth200, select.minwidth200imp, select.minwidth300 {
|
select.minwidth100imp, select.minwidth100, select.minwidth200, select.minwidth200imp, select.minwidth300 {
|
||||||
width: calc(100% - 40px) !important;
|
width: calc(100% - 40px) !important;
|
||||||
|
min-width: 100px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-selection), input.widthcentpercentminusxx {
|
select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-selection), input.widthcentpercentminusxx {
|
||||||
|
|||||||
@ -154,7 +154,7 @@ class Website extends CommonObject
|
|||||||
* @param User $user User that creates
|
* @param User $user User that creates
|
||||||
* @param bool $notrigger false=launch triggers after, true=disable triggers
|
* @param bool $notrigger false=launch triggers after, true=disable triggers
|
||||||
*
|
*
|
||||||
* @return int <0 if KO, Id of created object if OK
|
* @return int <0 if KO, 0 if already exists, ID of created object if OK
|
||||||
*/
|
*/
|
||||||
public function create(User $user, $notrigger = false)
|
public function create(User $user, $notrigger = false)
|
||||||
{
|
{
|
||||||
@ -282,8 +282,11 @@ class Website extends CommonObject
|
|||||||
// Commit or rollback
|
// Commit or rollback
|
||||||
if ($error) {
|
if ($error) {
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
|
if ($this->db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
return -1 * $error;
|
return -1 * $error;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
|
|
||||||
|
|||||||
@ -694,7 +694,10 @@ if ($action == 'addsite' && $usercanedit) {
|
|||||||
$tmpobject->virtualhost = GETPOST('virtualhost', 'alpha');
|
$tmpobject->virtualhost = GETPOST('virtualhost', 'alpha');
|
||||||
|
|
||||||
$result = $tmpobject->create($user);
|
$result = $tmpobject->create($user);
|
||||||
if ($result <= 0) {
|
if ($result == 0) {
|
||||||
|
$error++;
|
||||||
|
setEventMessages($langs->trans("ErrorLabelAlreadyExists"), null, 'errors');
|
||||||
|
} elseif ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($tmpobject->error, $tmpobject->errors, 'errors');
|
setEventMessages($tmpobject->error, $tmpobject->errors, 'errors');
|
||||||
}
|
}
|
||||||
@ -3678,7 +3681,7 @@ if ($action == 'editcss') {
|
|||||||
// Manifest.json
|
// Manifest.json
|
||||||
print '<tr><td class="tdtop">';
|
print '<tr><td class="tdtop">';
|
||||||
$htmlhelp = $langs->trans("Example").' :<br>';
|
$htmlhelp = $langs->trans("Example").' :<br>';
|
||||||
$htmlhelp .= dol_htmlentitiesbr($manifestjsoncontentdefault);
|
$htmlhelp .= '<small>'.dol_htmlentitiesbr($manifestjsoncontentdefault).'</small>';
|
||||||
print $form->textwithpicto($langs->trans('WEBSITE_MANIFEST_JSON'), $htmlhelp, 1, 'help', '', 0, 2, 'manifestjsontooltip');
|
print $form->textwithpicto($langs->trans('WEBSITE_MANIFEST_JSON'), $htmlhelp, 1, 'help', '', 0, 2, 'manifestjsontooltip');
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
print $langs->trans("UseManifest").': '.$form->selectyesno('use_manifest', $website->use_manifest, 1).'<br>';
|
print $langs->trans("UseManifest").': '.$form->selectyesno('use_manifest', $website->use_manifest, 1).'<br>';
|
||||||
|
|||||||
178
test/phpunit/Website.class.php
Normal file
178
test/phpunit/Website.class.php
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
* or see https://www.gnu.org/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file test/phpunit/WebsiteTest.php
|
||||||
|
* \ingroup test
|
||||||
|
* \brief PHPUnit test
|
||||||
|
* \remarks To run this script as CLI: phpunit filename.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
global $conf,$user,$langs,$db;
|
||||||
|
//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver
|
||||||
|
//require_once 'PHPUnit/Autoload.php';
|
||||||
|
|
||||||
|
if (! defined('NOREQUIRESOC')) {
|
||||||
|
define('NOREQUIRESOC', '1');
|
||||||
|
}
|
||||||
|
if (! defined('NOCSRFCHECK')) {
|
||||||
|
define('NOCSRFCHECK', '1');
|
||||||
|
}
|
||||||
|
if (! defined('NOTOKENRENEWAL')) {
|
||||||
|
define('NOTOKENRENEWAL', '1');
|
||||||
|
}
|
||||||
|
if (! defined('NOREQUIREMENU')) {
|
||||||
|
define('NOREQUIREMENU', '1'); // If there is no menu to show
|
||||||
|
}
|
||||||
|
if (! defined('NOREQUIREHTML')) {
|
||||||
|
define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php
|
||||||
|
}
|
||||||
|
if (! defined('NOREQUIREAJAX')) {
|
||||||
|
define('NOREQUIREAJAX', '1');
|
||||||
|
}
|
||||||
|
if (! defined("NOLOGIN")) {
|
||||||
|
define("NOLOGIN", '1'); // If this page is public (can be called outside logged session)
|
||||||
|
}
|
||||||
|
if (! defined("NOSESSION")) {
|
||||||
|
define("NOSESSION", '1');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once dirname(__FILE__).'/../../htdocs/main.inc.php';
|
||||||
|
require_once dirname(__FILE__).'/../../htdocs/core/lib/website.lib.php';
|
||||||
|
|
||||||
|
|
||||||
|
if (empty($user->id)) {
|
||||||
|
print "Load permissions for admin user nb 1\n";
|
||||||
|
$user->fetch(1);
|
||||||
|
$user->getrights();
|
||||||
|
}
|
||||||
|
$conf->global->MAIN_DISABLE_ALL_MAILS=1;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class for PHPUnit tests
|
||||||
|
*
|
||||||
|
* @backupGlobals disabled
|
||||||
|
* @backupStaticAttributes enabled
|
||||||
|
* @remarks backupGlobals must be disabled to have db,conf,user and lang not erased.
|
||||||
|
*/
|
||||||
|
class WebsiteTest extends PHPUnit\Framework\TestCase
|
||||||
|
{
|
||||||
|
protected $savconf;
|
||||||
|
protected $savuser;
|
||||||
|
protected $savlangs;
|
||||||
|
protected $savdb;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* We save global variables into local variables
|
||||||
|
*
|
||||||
|
* @return SecurityTest
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
|
||||||
|
//$this->sharedFixture
|
||||||
|
global $conf,$user,$langs,$db;
|
||||||
|
$this->savconf=$conf;
|
||||||
|
$this->savuser=$user;
|
||||||
|
$this->savlangs=$langs;
|
||||||
|
$this->savdb=$db;
|
||||||
|
|
||||||
|
print __METHOD__." db->type=".$db->type." user->id=".$user->id;
|
||||||
|
//print " - db ".$db->db;
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* setUpBeforeClass
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function setUpBeforeClass()
|
||||||
|
{
|
||||||
|
global $conf,$user,$langs,$db;
|
||||||
|
$db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
|
||||||
|
|
||||||
|
print __METHOD__."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tearDownAfterClass
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function tearDownAfterClass()
|
||||||
|
{
|
||||||
|
global $conf,$user,$langs,$db;
|
||||||
|
$db->rollback();
|
||||||
|
|
||||||
|
print __METHOD__."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init phpunit tests
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function setUp()
|
||||||
|
{
|
||||||
|
global $conf,$user,$langs,$db;
|
||||||
|
$conf=$this->savconf;
|
||||||
|
$user=$this->savuser;
|
||||||
|
$langs=$this->savlangs;
|
||||||
|
$db=$this->savdb;
|
||||||
|
|
||||||
|
print __METHOD__."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* End phpunit tests
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function tearDown()
|
||||||
|
{
|
||||||
|
print __METHOD__."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testGetPagesFromSearchCriterias
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testGetPagesFromSearchCriterias()
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$s = "123') OR 1=1-- \' xxx";
|
||||||
|
/*
|
||||||
|
var_dump($s);
|
||||||
|
var_dump($db->escapeforlike($s));
|
||||||
|
var_dump($db->escape($db->escapeforlike($s)));
|
||||||
|
*/
|
||||||
|
|
||||||
|
$res = getPagesFromSearchCriterias('page,blogpost', 'meta,content', $s, 2, 'date_creation', 'DESC', 'en');
|
||||||
|
//var_dump($res);
|
||||||
|
print __METHOD__." message=".$res['code']."\n";
|
||||||
|
// We must found no line (so code should be KO). If we found somethiing, it means there is a SQL injection of the 1=1
|
||||||
|
$this->assertEquals($res['code'], 'KO');
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user