Пытаюсь создать мультилендинг на php, есть шесть так называемых шаблонов (египет,бали,араб-эмираты,греция,вьетнам,по умолчанию) подскажите пожалуйста, как задать перечисление этих самых utm меток? чтобы каждый раз не прописывать одно и тоже.
Т.е там где например "египет" добавить "Отдых в египте"
<?php
$utm = $_GET['utm_content'];
if($utm == 'египет') {
$multiTitle = '<h2 class="h2">Отдых в <span>Египте</span> на 7 ночей <br> от <span>340$ </span>с человека</h2>';
$multiHeaderBg = 'img/header-slider/egypt.jpg';
$multiInputHidden = 'Заявка на тур в Египет';
}
elseif($utm == 'бали') {
$multiTitle = 'Отдых на <span>Бали</span> на 7 ночей <br> от <span>413$</span> с человека';
$multiHeaderBg = 'img/header-slider/bali.jpg';
$multiInputHidden = 'Заявка на тур в Бали';
}
elseif($utm == 'арабские-эмираты') {
$multiTitle = 'Отдых в <span>Арабских Эмиратах</span> на 7 ночей от <span>413$</span> с человека';
$multiHeaderBg = 'img/header-slider/arabic-emiratec.jpg';
$multiInputHidden = 'Заявка на тур в Арабские Эмираты';
}
elseif($utm == 'греция') {
$multiTitle = 'Отдых в <span>Греции</span> на 7 ночей <br>от <span>511€</span> с человека';
$multiHeaderBg = 'img/header-slider/grecia.jpg';
$multiInputHidden = 'Заявка на тур в Грецию';
}
elseif($utm == 'вьетнам') {
$multiTitle = 'Отдых во <span>Вьетнаме</span> на 7 ночей <br> от <span>413$</span> с человека';
$multiHeaderBg = 'img/header-slider/vietnam.jpg';
$multiInputHidden = 'Заявка на тур во Вьетнам';
}
else{
$multiTitle = '<span>Ранее</span> бронирование <br> туров в любые страны!';
$multiHeaderBg = 'img/header-slider/6.jpg';
$multiInputHidden = 'Заявка на ранее бронирование';
}
?>
Ручное наполнение условий, не особо, но читаемый код:
switch(mb_strtolower($utm)) {
case 'египет':
case 'отдых в египте':
$multiTitle = '<h2 class="h2">Отдых в <span>Египте</span> на 7 ночей <br> от <span>340$ </span>с человека</h2>';
$multiHeaderBg = 'img/header-slider/egypt.jpg';
$multiInputHidden = 'Заявка на тур в Египет';
break;
case 'бали':
$multiTitle = 'Отдых на <span>Бали</span> на 7 ночей <br> от <span>413$</span> с человека';
$multiHeaderBg = 'img/header-slider/bali.jpg';
$multiInputHidden = 'Заявка на тур в Бали';
break;
default:
$multiTitle = '<span>Ранее</span> бронирование <br> туров в любые страны!';
$multiHeaderBg = 'img/header-slider/6.jpg';
$multiInputHidden = 'Заявка на ранее бронирование';
break;
}
preg_match
Это как ваш текущий if, только расширенный
if(preg_match('/(египет|отдых в египте)/iu', $utm) {
$multiTitle = '<h2 class="h2">Отдых в <span>Египте</span> на 7 ночей <br> от <span>340$ </span>с человека</h2>';
$multiHeaderBg = 'img/header-slider/egypt.jpg';
$multiInputHidden = 'Заявка на тур в Египет';
}
elseif(preg_match('/(бали|отдых на бали)/iu', $utm)) {
$multiTitle = 'Отдых на <span>Бали</span> на 7 ночей <br> от <span>413$</span> с человека';
$multiHeaderBg = 'img/header-slider/bali.jpg';
$multiInputHidden = 'Заявка на тур в Бали';
}
else{
$multiTitle = '<span>Ранее</span> бронирование <br> туров в любые страны!';
$multiHeaderBg = 'img/header-slider/6.jpg';
$multiInputHidden = 'Заявка на ранее бронирование';
}
foreach in_array
Массивный способ, но он позволяет хранить и работать с данными динамически. К примеру можно выгрузить информацию в .json файл или в БД.
$multi_landing = [
[
'utm' => [
'египет',
'отдых в египте'
],
'title' => '<h2 class="h2">Отдых в <span>Египте</span> на 7 ночей <br> от <span>340$ </span>с человека</h2>',
'header-bg' => 'img/header-slider/egypt.jpg',
'input-hidden' => 'Заявка на тур в Египет'
], [
'utm' => [
'бали',
'отдых на бали'
],
'title' => 'Отдых на <span>Бали</span> на 7 ночей <br> от <span>413$</span> с человека',
'header-bg' => 'img/header-slider/bali.jpg',
'input-hidden' => 'Заявка на тур в Бали'
]
];
$mark = mb_strtolower($utm);
$multiTitle = '<span>Ранее</span> бронирование <br> туров в любые страны!';
$multiHeaderBg = 'img/header-slider/6.jpg';
$multiInputHidden = 'Заявка на ранее бронирование';
foreach($multi_landing as $option) {
if(in_array($mark, $option['utm'])) {
$multiTitle = $option['title'];
$multiHeaderBg = $option['header-bg'];
$multiInputHidden = $option['input-hidden'];
break;
}
}
Храните данные в массиве:
$utms = [
'египет' => [
'title' => '<h2 class="h2">Отдых в <span>Египте</span> на 7 ночей <br> от <span>340$ </span>с человека</h2>',
'header-bg' => 'img/header-slider/egypt.jpg',
'input-hidden' => 'Заявка на ранее бронирование',
],
'бали' => [
// наполнение для "бали"
],
// и так далее
];
Для общего случая можно придумать какой-нибудь особый ключ массива. Например, default
.
Тогда код обработки данных станет более общим:
$utm = $_GET['utm_content'];
if (!array_key_exists($utm, $utms)) {
$utm = 'default';
}
$multiTitle = $utms[$utm]['title'];
$multiHeaderBg = $utms[$utm]['header-bg'];
$multiInputHidden = $utms[$utm['input-hidden'];
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Передать нужно два параметра id и url_alias в action view и настроить rules
Вопрос достаточно спорныйДопустим есть строка, которая может меняться