Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Дополнительное поле в mfp


newjey

Recommended Posts

Добрый день. Понадобилось на посадочных страницах фильтра mfp вывести еще одно описание (дополнительное). Создал поле в базе, добавил поле в админке, все отлично пишется и сохраняется. Но не могу вывести это поле на сайт, по аналогии с дефолтным описание посадочных страниц. Подскажите куда копать? Не могу найти каким образом выводится основное описание для посадочных страниц( Хотя бы в каком файле копать?)

Змінено користувачем newjey
Надіслати
Поділитися на інших сайтах


через модификатор фильтра для product/category.php
смотрите $this->model_module_mega_filter->prepareData

  • +1 1
Надіслати
Поділитися на інших сайтах


38 минут назад, thentru сказал:

через модификатор фильтра для product/category.php
смотрите $this->model_module_mega_filter->prepareData

Спасибо. Но что-то все равно не могу понять как мне вывести новые данные по аналогии?(

Надіслати
Поділитися на інших сайтах


 Ок, а можно тогда вывести в шаблоне данные из этой таблицы в базе с проверкой по id url alias?

Что-то на подобии 

<?php
  $sql = mysqli_query($link, 'SELECT `mfilter_url_alias_id`,’description_2’ FROM `mfilter_url_alias`');
  while ($result = mysqli_fetch_array($sql)) {
if ($mfilter_url_alias['mfilter_url_alias_id'] = ' ') {
    echo "{$result[‘description_2’]}";
  }
?>

 

Змінено користувачем newjey
Надіслати
Поділитися на інших сайтах


тут даже изобретать ничего не нужно, ваше поле будет доступно в методе prepareData

  • +1 1
Надіслати
Поділитися на інших сайтах


3 минуты назад, thentru сказал:

тут даже изобретать ничего не нужно, ваше поле будет доступно в методе prepareData

Если можно, можете подробнее объяснить. Я не специалист в области программирования. С методом prepareData еще знаком и совсем не понимаю как вывести нужные мне данные. Спасибо, с меня +1.

Надіслати
Поділитися на інших сайтах


Получается вывод description в модели указан как:

Цитата

 


public function prepareData( $data ) {
		if( ! empty( $data['breadcrumbs'] ) && ! empty( $this->request->get['mfp'] ) ) {
			foreach( $data['breadcrumbs'] as $mfK => $mfBreadcrumb ) {
				$data['breadcrumbs'][$mfK]['href'] = $this->removeMfpFromUrl( $data['breadcrumbs'][$mfK]['href'] );
			}
		}
		
		if( class_exists( 'ControllerModuleMegaFilter' ) ) {
			if( ControllerModuleMegaFilter::$_meta ) {
				if( ControllerModuleMegaFilter::$_meta['h1'] ) {
					$data['heading_title'] = ControllerModuleMegaFilter::$_meta['h1'];
				}
				if( ControllerModuleMegaFilter::$_meta['description'] ) {
					$data['description'] = html_entity_decode(ControllerModuleMegaFilter::$_meta['description'], ENT_QUOTES, 'UTF-8');
				}
			}
			
			self::$_meta = true;
		}
				
		if( isset( $this->request->get['mfilterAjax'] ) && class_exists( 'MegaFilterCore' ) ) {
			$calculate_number_of_products = false;
			$settings = isset( $this->request->get['mfilterIdx'] ) ? $this->getModuleSettings( $this->request->get['mfilterIdx'] ) : array();

			if( ! empty( $settings['configuration'] ) ) {
				$calculate_number_of_products = ! empty( $settings['configuration']['calculate_number_of_products'] );
			} else {
				$settings = $this->config->get('mega_filter_settings');
				$calculate_number_of_products = ! empty( $settings['calculate_number_of_products'] );
			}

			$seo_settings = $this->config->get('mega_filter_seo');
			$baseTypes	= array( 'stock_status', 'manufacturers', 'rating', 'attributes', 'price', 'options', 'filters' );

			if( isset( $this->request->get['mfilterBTypes'] ) ) {
				$baseTypes = explode( ',', $this->request->get['mfilterBTypes'] );
			}

			if( ! empty( $seo_settings['enabled'] ) || $calculate_number_of_products || in_array( 'categories:tree', $baseTypes ) || in_array( 'vehicles', $baseTypes ) ) {
				if( ! $calculate_number_of_products ) {
					$baseTypesCopy = $baseTypes;
					$baseTypes = array();

					if( in_array( 'categories:tree', $baseTypesCopy ) ) {
						$baseTypes[] = 'categories:tree';
					}

					if( in_array( 'vehicles', $baseTypesCopy ) ) {
						$baseTypes[] = 'vehicles';
					}
				}

				$idx = 0;

				if( isset( $this->request->get['mfilterIdx'] ) ) {
					$idx = (int) $this->request->get['mfilterIdx'];
				}

				$data['mfilter_json'] = json_encode( MegaFilterCore::newInstance( $this, NULL, array( 'mfp_overwrite_path' => true ) )->getJsonData($baseTypes, $idx) );
			}

			$data['header'] = $data['column_left'] = $data['column_right'] = $data['content_top'] = $data['content_bottom'] = $data['footer'] = '';
		}
		
		if( isset( $data['mfilter_json'] ) ) {
			$data['header'] .= '<div id="mfilter-json" style="display:none">' . base64_encode( $data['mfilter_json'] ) . '</div>';
		}
		
		$data['content_top'] .= '<div id="mfilter-content-container">';
		$data['content_bottom'] = '</div>' . $data['content_bottom'];
					
		return $data;
	}

 

Как мне вывести еще description_2, так что бы он выводился вверху над товарами?

Змінено користувачем newjey
Надіслати
Поділитися на інших сайтах


3 минуты назад, newjey сказал:

Получается вывод description в модели указан как:

Как мне вывести еще description_2, так что бы он выводился вверху над товарами?

Можно просто ввести через разделитель текст. А на фронте сделать explode

Надіслати
Поділитися на інших сайтах

Вывод описания осуществляется условием

if( ControllerModuleMegaFilter::$_meta['description'] ) {
					$data['description'] = html_entity_decode(ControllerModuleMegaFilter::$_meta['description'], ENT_QUOTES, 'UTF-8');
				}

Логичнее будет так же вывести второе описание, только как правильно это сделать?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.