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: #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: #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: #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
|
||||
@ -19,11 +18,9 @@ NEW: #21397 added option to auto define barcode numbers for third-parties in bar
|
||||
NEW: #21399
|
||||
NEW: #21442 Enhancement of module builder init
|
||||
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: #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: #22370 Modulebuilder supports 'alwayseditable' (like extrafields)
|
||||
NEW: #22424
|
||||
NEW: #22500 member module set up made easier
|
||||
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: Adding JAPAN Chart-of-Account and regions/departments
|
||||
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 margin infos to takepos invoice lines
|
||||
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 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 Add 4 other templates in website module
|
||||
NEW: Can use products categories to make inventory
|
||||
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
|
||||
@ -129,7 +126,6 @@ NEW: manage no email with thirdparties (better for GDPR)
|
||||
NEW: Manage Position (Rank) on Contract Lines
|
||||
NEW: Manage VAT on all lines on purchases cycle
|
||||
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 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
|
||||
@ -163,7 +159,6 @@ NEW: SMTP using oauth2 authentication
|
||||
NEW: can substitue project title in mail template
|
||||
NEW: Supplier order list - Add column private and public note
|
||||
NEW: Support IP type in extrafields
|
||||
NEW: support multilang in Civilities API
|
||||
NEW: Table of membership types
|
||||
NEW: The purge of files can purge only if older than a number of seconds
|
||||
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:
|
||||
------------------------------
|
||||
|
||||
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: 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 to complete payment in TakePOS
|
||||
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: translate for contact type API, setup/ticket API, shipping method API
|
||||
NEW: All ajax pages have now a top_httphead()
|
||||
NEW: support multilang in Civilities API
|
||||
NEW: Add API for the partnership module
|
||||
NEW: Add "Get lines and Post lines from BOM" in the API
|
||||
NEW: Replace fk_categories_product with categories_product in inventory
|
||||
|
||||
@ -53,27 +53,20 @@ if ($action == 'set') {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error && $gimcdf && !file_exists($gimcdf)) {
|
||||
setEventMessages($langs->trans("ErrorFileNotFound", $gimcdf), null, 'errors');
|
||||
$res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity);
|
||||
if (!($res1 > 0)) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity);
|
||||
if (!($res2 > 0)) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
$res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity);
|
||||
if (!($res1 > 0)) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity);
|
||||
if (!($res2 > 0)) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||
}
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
//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";
|
||||
|
||||
// Lib version
|
||||
print '<tr class="oddeven"><td width="50%">'.$langs->trans("GeoIPLibVersion").'</td>';
|
||||
print '<td colspan="2">';
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("GeoIPLibVersion").'</td>';
|
||||
print '<td>';
|
||||
$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'));
|
||||
if ($conf->global->GEOIP_VERSION == 'php') {
|
||||
@ -124,16 +117,29 @@ if ($conf->global->GEOIP_VERSION == 'php') {
|
||||
print '<br>'.$langs->trans("Version").': '.$version;
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
print '<td>';
|
||||
print '</td></tr>';
|
||||
|
||||
$gimcdf = getDolGlobalString('GEOIPMAXMIND_COUNTRY_DATAFILE');
|
||||
|
||||
// Path to database file
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("PathToGeoIPMaxmindCountryDataFile").'</td>';
|
||||
print '<td colspan="2">';
|
||||
|
||||
print '<td>';
|
||||
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 '<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 '</table>';
|
||||
@ -145,12 +151,16 @@ print '<br>';
|
||||
print $langs->trans("NoteOnPathLocation").'<br>';
|
||||
|
||||
$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>';
|
||||
|
||||
$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) {
|
||||
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 '<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 '<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 '<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 '<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])) {
|
||||
$searchkeyinjsonformat = preg_replace('/"$/', '', preg_replace('/^"/', '', json_encode($search_[$key])));
|
||||
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') {
|
||||
$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 {
|
||||
// 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)) {
|
||||
$sql .= natural_search('p.email', $search_email);
|
||||
}
|
||||
|
||||
@ -936,7 +936,7 @@ function getSocialNetworkSharingLinks()
|
||||
* @param string $langcode Language code ('' or 'en', 'fr', 'es', ...)
|
||||
* @param array $otherfilters Other filters
|
||||
* @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)
|
||||
{
|
||||
@ -974,6 +974,8 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
||||
$found = 0;
|
||||
|
||||
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';
|
||||
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
||||
$sql .= ', '.MAIN_DB_PREFIX.'categorie_website_page as cwp';
|
||||
@ -983,7 +985,7 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
||||
$sql .= " AND wp.status = ".((int) $status);
|
||||
}
|
||||
if ($langcode) {
|
||||
$sql .= " AND wp.lang ='".$db->escape($langcode)."'";
|
||||
$sql .= " AND wp.lang = '".$db->escape($langcode)."'";
|
||||
}
|
||||
if ($type) {
|
||||
$tmparrayoftype = explode(',', $type);
|
||||
@ -996,11 +998,11 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
||||
$sql .= " AND (";
|
||||
$searchalgo = '';
|
||||
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.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.title LIKE '%".$db->escape($db->escapeforlike($searchstring))."%' OR wp.description LIKE '%".$db->escape($db->escapeforlike($searchstring))."%'";
|
||||
$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)) {
|
||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.content LIKE '%".$db->escapeforlike($db->escape($searchstring))."%'";
|
||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.content LIKE '%".$db->escape($db->escapeforlike($searchstring))."%'";
|
||||
}
|
||||
$sql .= $searchalgo;
|
||||
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
||||
@ -1012,6 +1014,7 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
||||
//print $sql;
|
||||
|
||||
$resql = $db->query($sql);
|
||||
|
||||
if ($resql) {
|
||||
$i = 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);
|
||||
//var_dump($stringtosearch);
|
||||
//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))."%'";
|
||||
$filters[] = $col." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
||||
$where[] = $key." LIKE '%".$this->db->escape($this->db->escapeforlike($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
|
||||
} else {
|
||||
$where[] = $key.' = '.$data[$key];
|
||||
|
||||
@ -908,8 +908,8 @@ class ImportXlsx extends ModeleImports
|
||||
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
||||
//var_dump($stringtosearch);
|
||||
//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))."%'";
|
||||
$filters[] = $col." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
||||
$where[] = $key." LIKE '%".$this->db->escape($this->db->escapeforlike($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
|
||||
} else {
|
||||
$where[] = $key.' = '.$data[$key];
|
||||
|
||||
@ -1068,6 +1068,7 @@ if ($step == 4 && $datatoimport) {
|
||||
print '<div id="left" class="connectedSortable">'."\n";
|
||||
|
||||
// List of source fields
|
||||
|
||||
$var = false;
|
||||
$lefti = 1;
|
||||
foreach ($fieldssource as $key => $val) {
|
||||
@ -1090,6 +1091,7 @@ if ($step == 4 && $datatoimport) {
|
||||
print '</td><td width="50%" class="nopaddingrightimp">';
|
||||
|
||||
// Set the list of all possible target fields in Dolibarr.
|
||||
|
||||
$optionsall = array();
|
||||
foreach ($fieldstarget as $code => $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', ...
|
||||
$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" style="font-weight: normal">=> </td>';
|
||||
print '<td class="nowraponall hideonsmartphone" style="font-weight: normal">=> </td>';
|
||||
print '<td class="nowraponall" style="font-weight: normal">';
|
||||
|
||||
//var_dump($_SESSION['dol_array_match_file_to_database_select']);
|
||||
@ -1510,7 +1511,7 @@ if ($step == 4 && $datatoimport) {
|
||||
print '<tr class="oddeven"><td>';
|
||||
print $obj->label;
|
||||
print '</td>';
|
||||
print '<td>';
|
||||
print '<td class="tdoverflowmax150">';
|
||||
if (empty($obj->fk_user)) {
|
||||
print $langs->trans("Everybody");
|
||||
} else {
|
||||
@ -2338,7 +2339,7 @@ $db->close();
|
||||
*/
|
||||
function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
||||
{
|
||||
global $langs;
|
||||
global $conf, $langs;
|
||||
|
||||
$height = '32px';
|
||||
|
||||
@ -2384,7 +2385,7 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
||||
if (isset($fieldssource[$pos]['imported']) && $fieldssource[$pos]['imported'] == false) {
|
||||
print '<td class="nowraponall boxtdunused" style="font-weight: normal">';
|
||||
} 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.')';
|
||||
if (empty($fieldssource[$pos]['example1'])) {
|
||||
@ -2396,7 +2397,12 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '')
|
||||
if (!utf8_check($example)) {
|
||||
$example = utf8_encode($example);
|
||||
}
|
||||
print ' - ';
|
||||
if (!empty($conf->dol_optimize_smallscreen)) {
|
||||
//print '<br>';
|
||||
print ' - ';
|
||||
} else {
|
||||
print ' - ';
|
||||
}
|
||||
//print '<span class="opacitymedium hideonsmartphone">'.$langs->trans("ExampleOnFirstLine").': </span>';
|
||||
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
|
||||
This website template is an example of website for a restaurant
|
||||
|
||||
@ -1,2 +1,8 @@
|
||||
Image are provided under the Unsplash+ License
|
||||
Rest of templates (HTML and PHP code) content are GPLv3
|
||||
LICENSE
|
||||
-------
|
||||
|
||||
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
|
||||
This website template is an example of website for a restaurant
|
||||
|
||||
@ -1,5 +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 './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
|
||||
// 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 './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="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/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||
|
||||
|
||||
@ -1,11 +1,5 @@
|
||||
<?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.
|
||||
$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;
|
||||
if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Load master if not already loaded
|
||||
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
|
||||
// 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 './page250.tpl.php'; else require $dolibarr_main_data_root.'/website/'.$website->ref.'/page250.tpl.php';
|
||||
?>
|
||||
|
||||
@ -8,6 +8,7 @@ header('Cache-Control: max-age=3600, public, must-revalidate');
|
||||
header('Content-type: application/javascript');
|
||||
// END PHP ?>
|
||||
/* JS content (all pages) */
|
||||
// test
|
||||
<?php // BEGIN PHP
|
||||
$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp, "js");
|
||||
// END PHP ?>
|
||||
|
||||
@ -1,5 +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 './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="title" content="Contact us" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="generator" content="Dolibarr 17.0.0-alpha (https://www.dolibarr.org)" />
|
||||
<meta name="dolibarr:pageid" content="170" />
|
||||
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||
<meta name="dolibarr:pageid" content="249" />
|
||||
<?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" />
|
||||
@ -34,7 +34,7 @@ ob_start();
|
||||
<body id="bodywebsite" class="bodywebsite bodywebpage-contact">
|
||||
<!-- 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
|
||||
if (GETPOST('action') == 'sendmail') {
|
||||
if (GETPOST('action') == 'sendmail') {
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||
$from = GETPOST('email', 'alpha');
|
||||
$to = $mysoc->email;
|
||||
@ -51,67 +51,12 @@ ob_start();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php includeContainer('header'); ?>
|
||||
|
||||
|
||||
<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">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
@ -128,7 +73,7 @@ ob_start();
|
||||
<div class="overlay"></div>
|
||||
</header>
|
||||
|
||||
<a id="reservation"></a>
|
||||
<a id="reservation"></a><br>
|
||||
|
||||
<section class="contact section-padding">
|
||||
<div class="container">
|
||||
@ -144,6 +89,9 @@ ob_start();
|
||||
method="post"
|
||||
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">
|
||||
<label for="contact-name" class="form-label"
|
||||
>Full Name</label
|
||||
@ -163,7 +111,7 @@ ob_start();
|
||||
<label
|
||||
for="contact-phone"
|
||||
class="form-label"
|
||||
>Phone Number</label
|
||||
><?php echo $weblangs->trans("Phone"); ?></label
|
||||
>
|
||||
|
||||
<input
|
||||
@ -178,7 +126,7 @@ ob_start();
|
||||
<label
|
||||
for="contact-email"
|
||||
class="form-label"
|
||||
>Email</label
|
||||
><?php echo $weblangs->trans("Email"); ?></label
|
||||
>
|
||||
|
||||
<input
|
||||
@ -194,7 +142,7 @@ ob_start();
|
||||
<label
|
||||
for="contact-message"
|
||||
class="form-label"
|
||||
>Message</label
|
||||
><?php echo $weblangs->trans("Message"); ?></label
|
||||
>
|
||||
|
||||
<textarea
|
||||
@ -208,7 +156,7 @@ ob_start();
|
||||
|
||||
<div class="col-lg-5 col-12 ms-auto">
|
||||
<button type="submit" class="form-control">
|
||||
Send
|
||||
<?php echo $weblangs->trans("Send"); ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
@ -234,89 +182,25 @@ ob_start();
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<h4 class="mt-5 mb-4">
|
||||
<div class="col-12" id="divaddress">
|
||||
<br><br>
|
||||
|
||||
<h4 class="mt-5 mb-4 center">
|
||||
<?php echo $mysoc->getFullAddress() ?>
|
||||
</h4>
|
||||
|
||||
<div class="google-map pt-3">
|
||||
<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>
|
||||
<!-- Google MAPS -->
|
||||
<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>
|
||||
</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>
|
||||
</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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Modal -->
|
||||
<div
|
||||
@ -346,7 +230,7 @@ ob_start();
|
||||
<form
|
||||
class="booking-form row"
|
||||
role="form"
|
||||
action="index.php"
|
||||
action="contact.php"
|
||||
method="POST"
|
||||
>
|
||||
<input type="hidden" name="token" value="<?php echo newToken(); ?>" />
|
||||
@ -473,8 +357,12 @@ ob_start();
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<?php includeContainer('footer'); ?>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<?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 ?>
|
||||
@ -18,8 +18,8 @@ ob_start();
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="title" content="index" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="generator" content="Dolibarr 17.0.0-alpha (https://www.dolibarr.org)" />
|
||||
<meta name="dolibarr:pageid" content="171" />
|
||||
<meta name="generator" content="Dolibarr 17.0.0-beta (https://www.dolibarr.org)" />
|
||||
<meta name="dolibarr:pageid" content="250" />
|
||||
<?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" />
|
||||
@ -34,68 +34,10 @@ ob_start();
|
||||
<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 -->
|
||||
|
||||
<?php includeContainer('header'); ?>
|
||||
|
||||
|
||||
<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>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
@ -106,16 +48,9 @@ ob_start();
|
||||
Delicious Steaks
|
||||
</h1>
|
||||
|
||||
<div
|
||||
class="c-reviews my-3 d-flex flex-wrap align-items-center"
|
||||
>
|
||||
<div class="c-reviews my-3 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>
|
||||
|
||||
class="d-flex flex-wrap align-items-center">
|
||||
<div class="reviews-stars">
|
||||
<i
|
||||
class="bi-star-fill reviews-icon"
|
||||
@ -132,11 +67,6 @@ ob_start();
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-white w-100">
|
||||
From <strong>1,206+</strong> Customer
|
||||
Reviews
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -151,7 +81,7 @@ ob_start();
|
||||
<div class="carousel-item active">
|
||||
<div class="carousel-image-wrap">
|
||||
<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"
|
||||
alt=""
|
||||
/>
|
||||
@ -167,7 +97,7 @@ ob_start();
|
||||
<div class="carousel-item">
|
||||
<div class="carousel-image-wrap">
|
||||
<img
|
||||
src="image/mypersonalsite/slide/jason-leung-O67LZfeyYBk-unsplash.jpg"
|
||||
src="image/aaab/slide/jason-leung-O67LZfeyYBk-unsplash.jpg"
|
||||
class="img-fluid carousel-image"
|
||||
alt=""
|
||||
/>
|
||||
@ -183,41 +113,13 @@ ob_start();
|
||||
>26.50<small>€</small></span
|
||||
>
|
||||
</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 class="carousel-item">
|
||||
<div class="carousel-image-wrap">
|
||||
<img
|
||||
src="image/mypersonalsite/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg"
|
||||
src="image/aaab/slide/ivan-torres-MQUqbmszGGM-unsplash.jpg"
|
||||
class="img-fluid carousel-image"
|
||||
alt=""
|
||||
/>
|
||||
@ -235,34 +137,6 @@ ob_start();
|
||||
>18.25<small>€</small></span
|
||||
>
|
||||
</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>
|
||||
@ -299,22 +173,6 @@ ob_start();
|
||||
</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>
|
||||
</section>
|
||||
|
||||
@ -331,7 +189,7 @@ ob_start();
|
||||
<div class="menu-thumb">
|
||||
<div class="menu-image-wrap">
|
||||
<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"
|
||||
alt=""
|
||||
/>
|
||||
@ -354,10 +212,6 @@ ob_start();
|
||||
<div
|
||||
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">
|
||||
<i
|
||||
class="bi-star-fill reviews-icon"
|
||||
@ -373,10 +227,6 @@ ob_start();
|
||||
></i>
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
</div>
|
||||
|
||||
<p class="reviews-text mb-0 ms-4">
|
||||
102 Reviews
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -386,7 +236,7 @@ ob_start();
|
||||
<div class="menu-thumb">
|
||||
<div class="menu-image-wrap">
|
||||
<img
|
||||
src="image/mypersonalsite/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg"
|
||||
src="image/aaab/lunch/farhad-ibrahimzade-MGKqxm6u2bc-unsplash.jpg"
|
||||
class="img-fluid menu-image"
|
||||
alt=""
|
||||
/>
|
||||
@ -409,10 +259,6 @@ ob_start();
|
||||
<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"
|
||||
@ -426,10 +272,6 @@ ob_start();
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
</div>
|
||||
|
||||
<p class="reviews-text mb-0 ms-4">
|
||||
50 Reviews
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -439,7 +281,7 @@ ob_start();
|
||||
<div class="menu-thumb">
|
||||
<div class="menu-image-wrap">
|
||||
<img
|
||||
src="image/mypersonalsite/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg"
|
||||
src="image/aaab/dinner/keriliwi-c3mFafsFz2w-unsplash.jpg"
|
||||
class="img-fluid menu-image"
|
||||
alt=""
|
||||
/>
|
||||
@ -462,10 +304,6 @@ ob_start();
|
||||
<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"
|
||||
@ -479,10 +317,6 @@ ob_start();
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
</div>
|
||||
|
||||
<p class="reviews-text mb-0 ms-4">
|
||||
86 Reviews
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -492,7 +326,7 @@ ob_start();
|
||||
<div class="menu-thumb">
|
||||
<div class="menu-image-wrap">
|
||||
<img
|
||||
src="image/mypersonalsite/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg"
|
||||
src="image/aaab/dinner/farhad-ibrahimzade-ZipYER3NLhY-unsplash.jpg"
|
||||
class="img-fluid menu-image"
|
||||
alt=""
|
||||
/>
|
||||
@ -515,10 +349,6 @@ ob_start();
|
||||
<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"
|
||||
@ -532,10 +362,6 @@ ob_start();
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
</div>
|
||||
|
||||
<p class="reviews-text mb-0 ms-4">
|
||||
44 Reviews
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -545,7 +371,7 @@ ob_start();
|
||||
<div class="menu-thumb">
|
||||
<div class="menu-image-wrap">
|
||||
<img
|
||||
src="image/mypersonalsite/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg"
|
||||
src="image/aaab/breakfast/louis-hansel-dphM2U1xq0U-unsplash.jpg"
|
||||
class="img-fluid menu-image"
|
||||
alt=""
|
||||
/>
|
||||
@ -568,10 +394,6 @@ ob_start();
|
||||
<div
|
||||
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">
|
||||
<i
|
||||
class="bi-star-fill reviews-icon"
|
||||
@ -587,10 +409,6 @@ ob_start();
|
||||
></i>
|
||||
<i class="bi-star reviews-icon"></i>
|
||||
</div>
|
||||
|
||||
<p class="reviews-text mb-0 ms-4">
|
||||
102 Reviews
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -600,7 +418,7 @@ ob_start();
|
||||
<div class="menu-thumb">
|
||||
<div class="menu-image-wrap">
|
||||
<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"
|
||||
alt=""
|
||||
/>
|
||||
@ -623,10 +441,6 @@ ob_start();
|
||||
<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"
|
||||
@ -640,10 +454,6 @@ ob_start();
|
||||
<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>
|
||||
@ -653,68 +463,13 @@ ob_start();
|
||||
</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>
|
||||
|
||||
|
||||
<?php includeContainer('footer'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<?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 ?>
|
||||
@ -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 ?>
|
||||
@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 {
|
||||
--bs-blue: #0d6efd;
|
||||
--bs-indigo: #6610f2;
|
||||
@ -143,6 +105,10 @@ header('Content-type: text/css');
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
.bodywebsite .center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bodywebsite hr {
|
||||
margin: 1rem 0;
|
||||
color: inherit;
|
||||
@ -8367,6 +8333,7 @@ header('Content-type: text/css');
|
||||
|
||||
.bodywebsite .m-1 {
|
||||
margin: 0.25rem !important;
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
.bodywebsite .m-2 {
|
||||
@ -12596,8 +12563,8 @@ body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; }
|
||||
}
|
||||
|
||||
.bodywebsite .section-padding {
|
||||
padding-top: 8rem;
|
||||
padding-bottom: 8rem;
|
||||
padding-top: 6rem;
|
||||
padding-bottom: 6rem;
|
||||
}
|
||||
|
||||
.bodywebsite b,
|
||||
@ -13019,8 +12986,8 @@ body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; }
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
padding-top: 7rem;
|
||||
padding-bottom: 7rem;
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
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
|
||||
tosell tinyint DEFAULT 1, -- Product you sell
|
||||
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)
|
||||
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
|
||||
|
||||
@ -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
|
||||
##### GeoIPMaxmind #####
|
||||
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).
|
||||
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.
|
||||
|
||||
@ -153,3 +153,5 @@ PreviousContainer=Previous page/container
|
||||
WebsiteMustBeDisabled=The website 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.
|
||||
Booking=Booking
|
||||
Reservation=Reservation
|
||||
|
||||
@ -1484,7 +1484,7 @@ function top_httphead($contenttype = 'text/html', $forcenocache = 0)
|
||||
|
||||
// Referrer-Policy
|
||||
// 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')) {
|
||||
$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 {
|
||||
width: calc(100% - 40px) !important;
|
||||
min-width: 100px;
|
||||
display: inline-block;
|
||||
}
|
||||
select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-selection), input.widthcentpercentminusxx {
|
||||
|
||||
@ -151,10 +151,10 @@ class Website extends CommonObject
|
||||
/**
|
||||
* Create object into database
|
||||
*
|
||||
* @param User $user User that creates
|
||||
* @param bool $notrigger false=launch triggers after, true=disable triggers
|
||||
* @param User $user User that creates
|
||||
* @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)
|
||||
{
|
||||
@ -282,8 +282,11 @@ class Website extends CommonObject
|
||||
// Commit or rollback
|
||||
if ($error) {
|
||||
$this->db->rollback();
|
||||
|
||||
return -1 * $error;
|
||||
if ($this->db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||
return 0;
|
||||
} else {
|
||||
return -1 * $error;
|
||||
}
|
||||
} else {
|
||||
$this->db->commit();
|
||||
|
||||
|
||||
@ -694,7 +694,10 @@ if ($action == 'addsite' && $usercanedit) {
|
||||
$tmpobject->virtualhost = GETPOST('virtualhost', 'alpha');
|
||||
|
||||
$result = $tmpobject->create($user);
|
||||
if ($result <= 0) {
|
||||
if ($result == 0) {
|
||||
$error++;
|
||||
setEventMessages($langs->trans("ErrorLabelAlreadyExists"), null, 'errors');
|
||||
} elseif ($result < 0) {
|
||||
$error++;
|
||||
setEventMessages($tmpobject->error, $tmpobject->errors, 'errors');
|
||||
}
|
||||
@ -3678,7 +3681,7 @@ if ($action == 'editcss') {
|
||||
// Manifest.json
|
||||
print '<tr><td class="tdtop">';
|
||||
$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 '</td><td>';
|
||||
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