подборки

MadPitbull

Приватовец
Приватовец
VIP
Регистрация
6 Апр 2017
Сообщения
103
Реакции
15
Баллы
18
Всем привет.

Кому не сложно, распишите пожалуйста, как доп. полями сделать на сайте подборки?
 

Irridian

Новичок
Регистрация
24 Апр 2017
Сообщения
14
Реакции
2
Баллы
3
Была на одном из сайтов (не кино) схожая задача - вывести подборки контента по интересам. Не знаю, есть ли более простые варианты (вроде как в кино есть спец. модуль для подборок), но сделал так:

1) Создал 1 доп поле типа "Список", куда вбил необходимые мне 9 значений.
2) При добавлении материала выбирал нужное значение
3) На сайте выводил всё платным модулем Black.Pro 3 (весьма функциональный аналог тега {custom}

Вот, собственно, и весь рецепт :)
 

AndreyM

Приватовец
Приватовец
Регистрация
13 Мар 2017
Сообщения
207
Реакции
57
Баллы
28
На сайте выводил всё платным модулем Black.Pro 3 (весьма функциональный аналог тега {custom}
Можно просто custom через поиск по значению. {custom xfields="значение 1,значение 2"}

А вообще через доп. поля все просто. Создаешь поле, включаешь в нем перекрестные ссылки. Пишешь туда названия подборок (про сиськи, про машины и т.д.) через запятую и готово. Вывод готовой подборки по адресу /xfsearch/про-сиськи/
 

Usebay

Приватовец
Приватовец
Регистрация
27 Фев 2017
Сообщения
32
Реакции
22
Баллы
8
Был где то хак по уникализации xfsearch
можно заменить написание "xfsearch" в адресной строке и уникализировать тайтлы и описания для каждого значения custom
 

Usebay

Приватовец
Приватовец
Регистрация
27 Фев 2017
Сообщения
32
Реакции
22
Баллы
8
@byroot, не правильно выразился,
для каждого значения xfsearch
хак позволяет уникализировать тайтлы и описания! для страниц - /xfsearch/про **1/ , /xfsearch/про **1/ ит.д.

тайтл - Смотреть фильмы (про ****1 ) онлайн бесплатно
описание - Фильмы (про ****1 ) в хорошем качестве
и т.д.

причем можно сделать это по разному под разные доп поля

где то дома сохранено, вечером закину сюда
 

Usebay

Приватовец
Приватовец
Регистрация
27 Фев 2017
Сообщения
32
Реакции
22
Баллы
8
Изменение ссылок дополнительных полей dle

Как вы знаете ссылка поиска по дополнительным полям выглядит имеет вид:
/xfsearch/искомое слово/

Данный хак позволяет изменить вид ссылки на
/латинское название доп.поля/искомое слово/

Например мы имеем дополнительные поля:
Для примера привожу свой файл engine/data/xfields.txt
brands|бренды||select|тойота__NEWL__BMV__NEWL__AUDI__NEWL__porshe|0|1|0|0|0
firms|фирмы||select|Позавод__NEWL__нокия__NEWL__самсунг|0|1|0|0|0
produser|продюсер фильма||text||1|0|0|0|0


После установки скрипта ссылки вида
/brands/BMV/
/produse/rocksmart/
/firms/нокия/
/year/1980/


будут работать также как и ссылки
/xfsearch/искомое слово/

Установка:
1. Сделать копию вашего .htaccess
2 Открываем файл .htaccess

После строк очень важно именно после этих строк:
# поиск по доп полям
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]


Вставить следующий код:
#<custom-rule>
#</custom-rule>


Открываем файл engine/inc/include\init.php:
После строки
$action = totranslit ( $action, false, false );

Вставить:
//####################################################################
// Перезаписываем .htaccess для пользовательского вида ссылок
//######################################################################
$customhtacces = get_vars ( "customhtacces" );
if (! $customhtacces) {
$htaccess = @file_get_contents('.htaccess');
$xfields = xfieldsload();
$keyfields = array();
$keyhtacces = array();
$newaddhtacces = array();
if (strpos ($htaccess, "<key" ) !== false) {preg_match_all("#\#<key=(.+?)>(.+?)</key>#is",$htaccess, $key);}
$xtrue = count($xfields)>0 ? true : false; //доп поля
$ktrue = count($key)>0 ? true : false; // ключи ссылок
if($xtrue){foreach($xfields as $x)$keyfields[] = $x[0];/* Получаем ключи (лат. названия) доп.полей */
if($ktrue){
foreach($key[1] as $h)$keyhtacces[] = $h;/* Получаем ключи из файла .htaccess*/
foreach($keyfields as $f){
if (in_array($f, $keyhtacces, true)) {continue;}
$newaddhtacces[] = "#<key=".$f.">\r\nRewriteRule ^".$f."/([^/]*)(/?)+\$ index.php?do=xfsearch&xf=\$1 [L]\r\nRewriteRule ^".$f."/([^/]*)/page/([0-9]+)(/?)+\$ index.php?do=xfsearch&xf=\$1&cstart=\$2 [L]\r\n#</key>\r\n";}
}else{
foreach($keyfields as $f){
$newaddhtacces[] = "#<key=".$f.">\r\nRewriteRule ^".$f."/([^/]*)(/?)+\$ index.php?do=xfsearch&xf=\$1 [L]\r\nRewriteRule ^".$f."/([^/]*)/page/([0-9]+)(/?)+\$ index.php?do=xfsearch&xf=\$1&cstart=\$2 [L]\r\n#</key>\r\n";
}}
if(count($newaddhtacces)>0){
$newrule = "#<custom-rule>\r\n".implode("\n",$newaddhtacces)."\r\n#</custom-rule>";
preg_match("#\#<custom-rule>(.+?)\#</custom-rule>#si",$htaccess, $oldrule );
$htaccess = str_replace( $oldrule[0] ,$newrule ,$htaccess);
file_put_contents('.htaccess',$htaccess);}}
set_vars ( "customhtacces", array('yes') );
}


Еще один важный фактор:
1. Создавая дополнительные поля убедитесь что латинское название поля не совпадает с латинским названием ваших категорий
2. После изменений доп.полей очистите кеш на главной странице админ панели

Установка закончена:
В файлах: show.short.php, show.full.php, show.custom.php
Заменить
$value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";

На
$value3[] = "<a href=\"" . $config['http_home_url'] . "".$preg_safe_name."/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";


Дополнение: Уникальный заголовок для каждого дополнительного поля

в файле engine.php
Заменить строку:
elseif ($do == 'xfsearch') $nam_e = $xf;

На эту
elseif ($do == 'xfsearch'){

$xftitle =array(
'year' => 'Все фильмы {xf} года',
'actors' => 'Все фильмы c актером {xf}',
);

$xfName = explode('/',$_SERVER['REDIRECT_URL']);
$nam_e = (isset($xftitle[$xfName[1]])) ? str_replace('{xf}',$xf,$xftitle[$xfName[1]]) : $xf;
}


Где ключи year, actors - латинское название дополнительного поля
В массив $xftitle можно добавить свои доп.поля по аналогии
 

aeneas

Новичок
Регистрация
27 Фев 2017
Сообщения
2.974
Реакции
1.352
Баллы
113
вся эта беда имеет один минус - если сделать списком допполе, то выбирать тока одно можно вроде, одно из списка для каждой новости, а если надо чтобы она к нескольким относилась ? типа про сиськи про любовь
 
Последнее редактирование:
  • Like
Реакции: rofl

rofl

Приватовец
Приватовец
Регистрация
22 Фев 2017
Сообщения
552
Реакции
145
Баллы
43
Лучши тегами сделать, проще будет.
 

GENERIC

Гуру
Кодер
Регистрация
22 Фев 2017
Сообщения
455
Реакции
195
Баллы
43
вся эта беда имеет один минус - если сделать списком допполе, то выбирать тока одно можно вроде, одно из списка для каждой новости, а если надо чтобы она к нескольким относилась ? типа про сиськи про любовь
Ну тут делать либо по 2м доп полям в таком случае, или юзать категории. Но если задача стоит 1 фильм только в 1 подборку. Так доп полями проще сего сделать, и выводить их куда угодо и как угодно
 

KoLLekcioneR

Приватовец
Приватовец
Регистрация
24 Фев 2017
Сообщения
109
Реакции
56
Баллы
28
Почему собственно модуль подборок не поставить?
 

Usebay

Приватовец
Приватовец
Регистрация
27 Фев 2017
Сообщения
32
Реакции
22
Баллы
8
@aeneas, 1 фильм можно хоть в 10 подборок засунуть
когда этот хак попался на глаза - тестировал этом на сайте - http://krasgorka.com
 
Сверху Снизу