Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Как добавить на страницу meta_title + meta_description?


 Поделиться

Рекомендованные сообщения

Есть модуль Faq Вопрос-Ответ.

Не могу теперь найти в сети, но в файле значится такие опознавательные комментарии

/*
Version: 1.0
Author: Artur Sułkowski
Website: http://artursulkowski.pl
*/

Суть в том, что в этом модуле в файле faq.tpl верх страницы выводится так:

<?php echo $header; $s = 1; ?>

Эта страница с пустым метатегом <title> и отсутствует <description>

Как добавить метатеги на эту страницу?

 

Вот содержание контроллера faq.php

Спойлер


<?php
/*
Version: 1.0
Author: Artur Sułkowski
Website: http://artursulkowski.pl
*/

class ControllerModuleFaq extends Controller {
	public function index() {
		$lang_id = $this->config->get('config_language_id');
		$setting = $this->config->get('faq_module');

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/css/faq.css')) {
            $this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template') . '/css/faq.css');
        }

        $data['settings'] = $setting['settings'];
		$data['sections'] = array();

		if(is_array($setting['sections'])) {
			$this->sortData($setting['sections'], 'order');
            foreach($setting['sections'] as $section){
                $data['sections'][$section['id']]['title'] = $section['title'][$lang_id];
                $data['sections'][$section['id']]['hidden'] = isset($section['hidden']) && $section['hidden'] == 1 ? true : false; ;
                if(!empty($setting['items'])){
                    $this->sortData($setting['items'], 'order');
                    $i = 0;
                    foreach($setting['items'] as $item){
                        if(!isset($item['section_id'])) continue;
                        if($item['section_id'] == $section['id']){
                            $data['sections'][$section['id']]['items'][$i]['question'] = html_entity_decode($item['question'][$lang_id], ENT_QUOTES, 'UTF-8');
                            $data['sections'][$section['id']]['items'][$i]['answer'] = html_entity_decode($item['answer'][$lang_id], ENT_QUOTES, 'UTF-8');
                            $i++;
                        }
                    }
                }
            }
		}

		$data['breadcrumbs'] = array();

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/home')
		);

		$data['breadcrumbs'][] = array(
			'text' => "Часто задаваемые вопросы",
			'href' => $this->url->link('module/faq', '', 'SSL')
		);

        $data['heading_title'] = 'Часто задаваемые вопросы';

		$data['column_left'] = $this->load->controller('common/column_left');
		$data['column_right'] = $this->load->controller('common/column_right');
		$data['content_top'] = $this->load->controller('common/content_top');
		$data['content_bottom'] = $this->load->controller('common/content_bottom');
		$data['footer'] = $this->load->controller('common/footer');
		$data['header'] = $this->load->controller('common/header');

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/faq.tpl')) {
            $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/module/faq.tpl', $data));
		} else {
			$this->response->setOutput($this->load->view('default/template/module/faq.tpl', $data));
		}
	}



    function sortData(&$data, $col)
    {
        usort($data, function($a, $b) use ($col){
            if ($a[$col] == $b[$col]) {
                return 0;
            }
            return ($a[$col] < $b[$col]) ? -1 : 1;
        });
    }
}
?>


 

 

Посоветуйте пожалуйста, как добавить метатеги на эту страницу.

Ссылка на комментарий
Поделиться на других сайтах


 

 

Заодно перекроете и другие страницы

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
В 30.01.2022 в 02:20, chukcha сказал:

 

 

Заодно перекроете и другие страницы

Спасибо. Учту. Но у меня только у одной страницы не хватает  метатегов. С остальными и так сойдёт. )) Может кто-то подскажет как добавить метатег для этой одной страницы без модулей? Полагаю, там вставить в контроллер строчку кода будет достаточно. За 200 р. кто поможет вставить метатеги на эту страницу?

Изменено пользователем alinalessioYandex
Ссылка на комментарий
Поделиться на других сайтах


31 минуту назад, alinalessioYandex сказал:

Полагаю, там вставить в контроллер строчку кода будет достаточно. За 200 р. кто поможет вставить метатеги на эту страницу?

Ну, раз вы так здорово всё уже знаете, то не дешевле будет самому сделать?
200р за такую фигню?
Обсудить с вами, получить доступы, зайти на сайт (это, кстати, само по себе с некоторыми пользователями в целый квест превращается). Разобраться в работе незнакомого модуля. Выяснить, почему в нем не работают штатные функции, исправить их или(скорее всего) написать с нуля для них админскую часть модуля, создать  нужные поля в базе данных, решить возможные(очень частые) неожиданные моменты...
И за всё это целых 200р? Да вы балуете исполнителей.

Ссылка на комментарий
Поделиться на других сайтах


7 минут назад, Shureg сказал:

Ну, раз вы так здорово всё уже знаете, то не дешевле будет самому сделать?
200р за такую фигню?
Обсудить с вами, получить доступы, зайти на сайт (это, кстати, само по себе с некоторыми пользователями в целый квест превращается). Разобраться в работе незнакомого модуля. Выяснить, почему в нем не работают штатные функции, исправить их или(скорее всего) написать с нуля для них админскую часть модуля, создать  нужные поля в базе данных, решить возможные(очень частые) неожиданные моменты...
И за всё это целых 200р? Да вы балуете исполнителей.

Админку не надо. Можно просто в файл вписать метатеги. 

Ссылка на комментарий
Поделиться на других сайтах


1 минуту назад, alinalessioYandex сказал:

Админку не надо. Можно просто в файл вписать метатеги. 

Ну, это вы так думаете. В какой "просто файл" вы их собрались вписать? В контроллер header для всех страниц магазина? Удачи.
Я уже написал, раз всё знаете, лучше самостоятельно.

Ссылка на комментарий
Поделиться на других сайтах


5 минут назад, Shureg сказал:

Ну, это вы так думаете. В какой "просто файл" вы их собрались вписать? В контроллер header для всех страниц магазина? Удачи.
Я уже написал, раз всё знаете, лучше самостоятельно.

Полагаю, в контроллер faq.php

Вот его содержание:

Спойлер


<?php
/*
Version: 1.0
Author: Artur Sułkowski
Website: http://artursulkowski.pl
*/

class ControllerModuleFaq extends Controller {
	public function index() {
		$lang_id = $this->config->get('config_language_id');
		$setting = $this->config->get('faq_module');

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/css/faq.css')) {
            $this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template') . '/css/faq.css');
        }

        $data['settings'] = $setting['settings'];
		$data['sections'] = array();

		if(is_array($setting['sections'])) {
			$this->sortData($setting['sections'], 'order');
            foreach($setting['sections'] as $section){
                $data['sections'][$section['id']]['title'] = $section['title'][$lang_id];
                $data['sections'][$section['id']]['hidden'] = isset($section['hidden']) && $section['hidden'] == 1 ? true : false; ;
                if(!empty($setting['items'])){
                    $this->sortData($setting['items'], 'order');
                    $i = 0;
                    foreach($setting['items'] as $item){
                        if(!isset($item['section_id'])) continue;
                        if($item['section_id'] == $section['id']){
                            $data['sections'][$section['id']]['items'][$i]['question'] = html_entity_decode($item['question'][$lang_id], ENT_QUOTES, 'UTF-8');
                            $data['sections'][$section['id']]['items'][$i]['answer'] = html_entity_decode($item['answer'][$lang_id], ENT_QUOTES, 'UTF-8');
                            $i++;
                        }
                    }
                }
            }
		}

		$data['breadcrumbs'] = array();

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/home')
		);

		$data['breadcrumbs'][] = array(
			'text' => "Часто задаваемые вопросы",
			'href' => $this->url->link('module/faq', '', 'SSL')
		);

        $data['heading_title'] = 'Часто задаваемые вопросы';

		$data['column_left'] = $this->load->controller('common/column_left');
		$data['column_right'] = $this->load->controller('common/column_right');
		$data['content_top'] = $this->load->controller('common/content_top');
		$data['content_bottom'] = $this->load->controller('common/content_bottom');
		$data['footer'] = $this->load->controller('common/footer');
		$data['header'] = $this->load->controller('common/header');

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/faq.tpl')) {
            $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/module/faq.tpl', $data));
		} else {
			$this->response->setOutput($this->load->view('default/template/module/faq.tpl', $data));
		}
	}



    function sortData(&$data, $col)
    {
        usort($data, function($a, $b) use ($col){
            if ($a[$col] == $b[$col]) {
                return 0;
            }
            return ($a[$col] < $b[$col]) ? -1 : 1;
        });
    }
}
?>


 

Я понял, что для вас это недостаточно для такой работы. На форумах новичкам и бесплатно помогают написать пару строк кода. Я предложил символическую оплату за это. Если я неадекватно оценил объём работы, то моя просьба останется без ответа. 

Я не шарю в пхп. Но надеюсь, что там работы на пару строк и что кто-нибудь откликнется.

Всем добра! Я пришёл с миром! Не надо меня выставлять, будто я со своим предложением в 200 р. кому-то нахамил. ))))

Ссылка на комментарий
Поделиться на других сайтах


21 минуту назад, alinalessioYandex сказал:

Не надо меня выставлять, будто я со своим предложением в 200 р. кому-то нахамил. ))))

Вообще-то именно так примерно и получилось. Выглядит, как подачка. Лучше уж уж вовсе бесплатно, если у исполнителя приступ доброго самарянина.
Извините тоже, если что не так написал :-)

А в вашем файле вставлять некуда:
$data['header'] = $this->load->controller('common/header');
И как вы сюда что-то вставите?
Надо создать правильные данные в базе, чтобы контроллер common/header их получил и отправил в контроллер вашего модуля. В нормальном случае они создаются в админской части модуля, но у вас это либо вовсе не предусмотрено автором, либо сделано криво и не работает. Надо либо править, либо дописывать своё. Задача не эпическая, но всё же не ctrlC/ctrlV
PS: Если бы ваш вопрос решался простой вставкой чего-то куда-то, вам бы сразу подсказали. Бесплатно )

Изменено пользователем Shureg
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


14 минут назад, Shureg сказал:

Вообще-то именно так примерно и получилось. Выглядит, как подачка. Лучше уж уж вовсе бесплатно, если у исполнителя приступ доброго самарянина.
Извините тоже, если что не так написал :-)

А в вашем файле вставлять некуда:
$data['header'] = $this->load->controller('common/header');
И как вы сюда что-то вставите?
Надо создать правильные данные в базе, чтобы контроллер common/header их получил и отправил в контроллер вашего модуля. В нормальном случае они создаются в админской части модуля, но у вас это либо вовсе не предусмотрено автором, либо сделано криво и не работает. Надо либо править, либо дописывать своё. Задача не эпическая, но всё же не ctrlC/ctrlV

Понял. Спасибо за разъяснение. Раз модуль не предусмотрен для этого, то и фиг с ним ))

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.