From 31873f36c988f4bf00586ee9916827daeec8622b Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 27 Sep 2024 17:18:02 +0530 Subject: [PATCH 1/5] Added: Hotel seo tab and hotel meta title, description, and keywords add/edit feature --- .../admin/AdminAddHotelController.php | 74 +++++++++++ .../admin/add_hotel/helpers/form/form.tpl | 116 ++++++++++++++---- 2 files changed, 169 insertions(+), 21 deletions(-) diff --git a/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php b/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php index 526701c08a..bc9155ab06 100644 --- a/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php +++ b/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php @@ -140,6 +140,9 @@ public function renderForm() $smartyVars['address_info'] = $addressInfo; $smartyVars['hotel_info'] = (array) $hotelBranchInfo; $smartyVars['link_rewrite_info'] = $objCategory->link_rewrite; + $smartyVars['meta_title_info'] = $objCategory->meta_title; + $smartyVars['meta_description_info'] = $objCategory->meta_description; + $smartyVars['meta_keywords_info'] = $objCategory->meta_keywords; //Hotel Images $objHotelImage = new HotelImage(); if ($hotelAllImages = $objHotelImage->getImagesByHotelId($idHotel)) { @@ -288,6 +291,31 @@ public function processSave() $this->errors[] = sprintf($this->l('policies are not valid in %s'), $lang['name']); } } + + if ($metaTitle = trim(Tools::getValue('meta_title_'.$lang['id_lang']))) { + if (!Validate::isGenericName($metaTitle)) { + $this->errors[] = $this->l('Invalid Meta title in ').$lang['name']; + } else if (Tools::strlen($metaTitle) > 128) { + $this->errors[] = $this->l('Meta title cannot be longer than 128 in ').$lang['name']; + } + } + + if ($metaDescription = trim(Tools::getValue('meta_description_'.$lang['id_lang']))) { + if (!Validate::isGenericName($metaDescription)) { + $this->errors[] = $this->l('Invalid Meta description in ').$lang['name']; + } else if (Tools::strlen($metaDescription) > 255) { + $this->errors[] = $this->l('Meta description cannot be longer than 128 in ').$lang['name']; + } + } + + if ($metaKeyWords = trim(Tools::getValue('meta_keywords_'.$lang['id_lang']))) { + if (!Validate::isGenericName($metaKeyWords)) { + $this->errors[] = $this->l('Invalid Meta keywords in ').$lang['name']; + } else if (Tools::strlen($metaKeyWords) > 255) { + $this->errors[] = $this->l('Meta keywords cannot be longer than 128 in ').$lang['name']; + } + + } } } @@ -442,6 +470,9 @@ public function processSave() // lang fields $hotelCatName = array(); $linkRewriteArray = array(); + $metaTitleArray = array(); + $metaDescriptionArray = array(); + $metaKeywordsArray = array(); foreach ($languages as $lang) { if (!trim(Tools::getValue('hotel_name_'.$lang['id_lang']))) { $objHotelBranch->hotel_name[$lang['id_lang']] = trim(Tools::getValue( @@ -505,6 +536,38 @@ public function processSave() 'policies_'.$lang['id_lang'] ); } + + + if (!trim(Tools::getValue('meta_title_'.$lang['id_lang']))) { + $metaTitleArray[$lang['id_lang']] = Tools::getValue( + 'meta_title_'.$defaultLangId + ); + } else { + $metaTitleArray[$lang['id_lang']] = Tools::getValue( + 'meta_title_'.$lang['id_lang'] + ); + } + + if (!trim(Tools::getValue('meta_description_'.$lang['id_lang']))) { + $metaDescriptionArray[$lang['id_lang']] = Tools::getValue( + 'meta_description_'.$defaultLangId + ); + } else { + $metaDescriptionArray[$lang['id_lang']] = Tools::getValue( + 'meta_description_'.$lang['id_lang'] + ); + } + + if (!trim(Tools::getValue('meta_keywords_'.$lang['id_lang']))) { + $metaKeywordsArray[$lang['id_lang']] = Tools::getValue( + 'meta_keywords_'.$defaultLangId + ); + } else { + $metaKeywordsArray[$lang['id_lang']] = Tools::getValue( + 'meta_keywords_'.$lang['id_lang'] + ); + } + } $objHotelBranch->email = $email; $objHotelBranch->check_in = $check_in; @@ -614,6 +677,9 @@ public function processSave() $objCategory = new Category($objHotelBranch->id_category); $objCategory->name = $objHotelBranch->hotel_name; $objCategory->link_rewrite = $linkRewriteArray; + $objCategory->meta_title = $metaTitleArray; + $objCategory->meta_description = $metaDescriptionArray; + $objCategory->meta_keywords = $metaKeywordsArray; $objCategory->id_parent = $catCity; $objCategory->save(); Category::regenerateEntireNtree(); @@ -624,6 +690,13 @@ public function processSave() $objHotelBranch = new HotelBranchInformation($newIdHotel); $objHotelBranch->id_category = $catHotel; $objHotelBranch->save(); + + $objCategory = new Category($catHotel); + $objCategory->meta_title = $metaTitleArray; + $objCategory->meta_description = $metaDescriptionArray; + $objCategory->meta_keywords = $metaKeywordsArray; + $objCategory->save(); + } } } @@ -850,6 +923,7 @@ public function ajaxProcessUpdateSlidesPosition() public function setMedia() { parent::setMedia(); + $this->addjQueryPlugin('tagify'); HotelHelper::assignDataTableVariables(); $this->context->controller->addJS(_PS_JS_DIR_.'/datatable/jquery.dataTables.min.js'); diff --git a/modules/hotelreservationsystem/views/templates/admin/add_hotel/helpers/form/form.tpl b/modules/hotelreservationsystem/views/templates/admin/add_hotel/helpers/form/form.tpl index c53fb31bbe..367c85e541 100644 --- a/modules/hotelreservationsystem/views/templates/admin/add_hotel/helpers/form/form.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/add_hotel/helpers/form/form.tpl @@ -65,6 +65,12 @@ {l s='Information' mod='hotelreservationsystem'} +
  • + + + {l s='Seo' mod='hotelreservationsystem'} + +
  • @@ -132,27 +138,6 @@ {/foreach} -
    - -
    - {foreach from=$languages item=language} - {assign var="link_rewrite" value="link_rewrite_`$language.id_lang`"} - - {/foreach} -
    -
    - -
    -
    +
    + {hook h='displayAdminAddHotelFormSeoTabBefore' id_hotel=$hook_arg_id_hotel} +
    + +
    + {foreach from=$languages item=language} + {assign var="link_rewrite" value="link_rewrite_`$language.id_lang`"} + + {/foreach} +
    +
    + +
    +
    +
    + +
    + {foreach from=$languages item=language} + {assign var="meta_title" value="meta_title_`$language.id_lang`"} + + {/foreach} +
    +
    +
    + +
    + {foreach from=$languages item=language} + {assign var="meta_description" value="meta_description_`$language.id_lang`"} + + {/foreach} +
    +
    +
    + +
    + {foreach from=$languages item=language} +
    + {assign var="meta_keywords" value="meta_keywords_`$language.id_lang`"} + + +
    + {/foreach} +
    +
    + {hook h='displayAdminAddHotelFormSeoTabAfter' id_hotel=$hook_arg_id_hotel} +