Как сделать вывод доп полей в отдельном файле

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Ребята как сделать такую шнягу?? Будет отдельный файл к примеру who.php в этом файлике нужно сделать такую вещь что бы при обращении к нем к примеру таким образом who.php?alena скрипт делал запрос к базе к xfields к доп полю к примеру imya, и при нахождении и совпадении выводил бы инфу с другого доп поля к примеру info. Может кто-то предоставить код такой заморочки??? Заранее спасибо.
 

LisER07

Гуру
Кодер
Регистрация
3 Июн 2017
Сообщения
140
Реакции
43
Баллы
28
Ребята как сделать такую шнягу?? Будет отдельный файл к примеру who.php в этом файлике нужно сделать такую вещь что бы при обращении к нем к примеру таким образом who.php?alena скрипт делал запрос к базе к xfields к доп полю к примеру imya, и при нахождении и совпадении выводил бы инфу с другого доп поля к примеру info. Может кто-то предоставить код такой заморочки??? Заранее спасибо.
Новичку сделать это трудно
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Новичку сделать это трудно
Я это понимаю, но хоть как-то помочь можно??
Знаю что нужно делать перебор доп поля через xfieldsdataload по логике понимаю что нужно сверить входящий запрос с тем что в базе, ну как это сделать не пойму весь инет уже перелопатил толком ничего не нашёл:-(
 

Seopirat

Admin
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
21 Фев 2017
Сообщения
2.169
Реакции
1.556
Баллы
113
А для чего тебе такая мутотень? может есть решение проще?
 

PunPun

Coder
Команда форума
Приватовец
Регистрация
23 Фев 2017
Сообщения
618
Реакции
402
Баллы
63
@igrovik пожалуйста, в следующий раз пишите норм заголовок темы
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
А для чего тебе такая мутотень? может есть решение проще?
Проще только наверное через api ну на это пока что финансов нет. Нужно некоторую инфу отдавать пользователю.
 

Seopirat

Admin
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
21 Фев 2017
Сообщения
2.169
Реакции
1.556
Баллы
113
Цель то какую преследуешь? Я так ниче и не понял, зачем какую то инфу отдавать пользователю?
 

Cyxapuk

VIP
VIP
Прошёл марафон
Регистрация
26 Фев 2017
Сообщения
441
Реакции
104
Баллы
43

PunPun

Coder
Команда форума
Приватовец
Регистрация
23 Фев 2017
Сообщения
618
Реакции
402
Баллы
63
Какое ТЗ, такой и результат.
PHP:
<?php
// by PunPun.name
$xfield = empty($xfield) ? $db->safesql( htmlspecialchars(strip_tags( trim( $xfield ) ), ENT_QUOTES, $config['charset'] ) ) : false;
if (!$xfield) {
    return;
}

$field = empty($field) ? $db->safesql( htmlspecialchars(strip_tags( trim( $field ) ), ENT_QUOTES, $config['charset'] ) ) : false;

if (!$field) {
    return;
}

$cache = $xfield . $field;
$allow_cache = ($config['version_id'] >= '10.2') ? $config['allow_cache'] == '1' : $config['allow_cache'] == "yes";

if (!$allow_cache) {
    if ($config['version_id'] >= '10.2')
        $config['allow_cache'] = '1';
    else
        $config['allow_cache'] = "yes";
    $is_change = true;
}

$xflist = dle_cache("news", $config["skin"] . $cache, false);

if ($xflist) {
    echo $xflist;
    return;
}

if (trim($xfield) != "") {
    $where_str_xfield = "CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xfield}|', -1 ) ,  '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xfield}|', -1 ) ,  '||', 1 ) NOT LIKE '%|%' AND CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 ) NOT LIKE '%|%'";
    $select_str_xfield = "SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 ) as xf_{$field}";
}
else {
    return;
}

if (!$field) {
    return;
}

$thisdate = date ( "Y-m-d H:i:s", time () );
if($config['no_date'] && !$config['news_future'])
    $where_date = " AND date < '" . $thisdate . "' ";
else
    $where_date = "";

$db->query("SELECT {$select_str_xfield} FROM " . PREFIX . "_post WHERE approve=1 {$where_date} AND {$where_str_xfield}");

$xflist = array();

while ($row = $db->get_row()) {
    if (!isset($xflist[$row["xf_{$field}"]])) {
        $xflist[$row["xf_{$field}"]] = $row["xf_{$field}"];
    }
}
$xf_list = implode($xflist);
create_cache("news", $xf_list, $config["skin"] . $cache, false);

if ($is_change) {
    $config['allow_cache'] = false;
}

echo $xflist;
$db->free();
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Какое ТЗ, такой и результат.
PHP:
<?php
// by PunPun.name
$xfield = empty($xfield) ? $db->safesql( htmlspecialchars(strip_tags( trim( $xfield ) ), ENT_QUOTES, $config['charset'] ) ) : false;
if (!$xfield) {
    return;
}

$field = empty($field) ? $db->safesql( htmlspecialchars(strip_tags( trim( $field ) ), ENT_QUOTES, $config['charset'] ) ) : false;

if (!$field) {
    return;
}

$cache = $xfield . $field;
$allow_cache = ($config['version_id'] >= '10.2') ? $config['allow_cache'] == '1' : $config['allow_cache'] == "yes";

if (!$allow_cache) {
    if ($config['version_id'] >= '10.2')
        $config['allow_cache'] = '1';
    else
        $config['allow_cache'] = "yes";
    $is_change = true;
}

$xflist = dle_cache("news", $config["skin"] . $cache, false);

if ($xflist) {
    echo $xflist;
    return;
}

if (trim($xfield) != "") {
    $where_str_xfield = "CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xfield}|', -1 ) ,  '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xfield}|', -1 ) ,  '||', 1 ) NOT LIKE '%|%' AND CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 ) NOT LIKE '%|%'";
    $select_str_xfield = "SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 ) as xf_{$field}";
}
else {
    return;
}

if (!$field) {
    return;
}

$thisdate = date ( "Y-m-d H:i:s", time () );
if($config['no_date'] && !$config['news_future'])
    $where_date = " AND date < '" . $thisdate . "' ";
else
    $where_date = "";

$db->query("SELECT {$select_str_xfield} FROM " . PREFIX . "_post WHERE approve=1 {$where_date} AND {$where_str_xfield}");

$xflist = array();

while ($row = $db->get_row()) {
    if (!isset($xflist[$row["xf_{$field}"]])) {
        $xflist[$row["xf_{$field}"]] = $row["xf_{$field}"];
    }
}
$xf_list = implode($xflist);
create_cache("news", $xf_list, $config["skin"] . $cache, false);

if ($is_change) {
    $config['allow_cache'] = false;
}

echo $xflist;
$db->free();
Спс может и то что нужно, ну если можно укажи плиз в каких местах мне нужно поставить мои доп поля???
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Какое ТЗ, такой и результат.
PHP:
<?php
// by PunPun.name
$xfield = empty($xfield) ? $db->safesql( htmlspecialchars(strip_tags( trim( $xfield ) ), ENT_QUOTES, $config['charset'] ) ) : false;
if (!$xfield) {
    return;
}

$field = empty($field) ? $db->safesql( htmlspecialchars(strip_tags( trim( $field ) ), ENT_QUOTES, $config['charset'] ) ) : false;

if (!$field) {
    return;
}

$cache = $xfield . $field;
$allow_cache = ($config['version_id'] >= '10.2') ? $config['allow_cache'] == '1' : $config['allow_cache'] == "yes";

if (!$allow_cache) {
    if ($config['version_id'] >= '10.2')
        $config['allow_cache'] = '1';
    else
        $config['allow_cache'] = "yes";
    $is_change = true;
}

$xflist = dle_cache("news", $config["skin"] . $cache, false);

if ($xflist) {
    echo $xflist;
    return;
}

if (trim($xfield) != "") {
    $where_str_xfield = "CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xfield}|', -1 ) ,  '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xfield}|', -1 ) ,  '||', 1 ) NOT LIKE '%|%' AND CHARACTER_LENGTH(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 )) > 0 AND SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 ) NOT LIKE '%|%'";
    $select_str_xfield = "SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$field}|', -1 ) ,  '||', 1 ) as xf_{$field}";
}
else {
    return;
}

if (!$field) {
    return;
}

$thisdate = date ( "Y-m-d H:i:s", time () );
if($config['no_date'] && !$config['news_future'])
    $where_date = " AND date < '" . $thisdate . "' ";
else
    $where_date = "";

$db->query("SELECT {$select_str_xfield} FROM " . PREFIX . "_post WHERE approve=1 {$where_date} AND {$where_str_xfield}");

$xflist = array();

while ($row = $db->get_row()) {
    if (!isset($xflist[$row["xf_{$field}"]])) {
        $xflist[$row["xf_{$field}"]] = $row["xf_{$field}"];
    }
}
$xf_list = implode($xflist);
create_cache("news", $xf_list, $config["skin"] . $cache, false);

if ($is_change) {
    $config['allow_cache'] = false;
}

echo $xflist;
$db->free();

Чего-то на такой запрос не действует who.php?alena

И не пойму где здесь вписывать мои доп поля по которым нужно делать запрос и проверку.

Запрос должен быть к полю к примеру imya если в этом поле есть такое имя alena то вывести ответ с поля info.

Куда здесь прописать эти доп поля????
 

AlexSPNet

Пользователь
Кодер
Регистрация
23 Июн 2017
Сообщения
13
Реакции
9
Баллы
3
Простой пример who.php?alena
PHP:
<?php

@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);

@ini_set('display_errors', true);
@ini_set('html_errors', false);

define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');

include(ENGINE_DIR.'/data/config.php');

require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

$search_data = trim(strip_tags($_SERVER['QUERY_STRING']));

$xfields_search_name = 'imya'; //Имя доп. поля в котором искать
$xfields_print_name = 'info'; //Имя доп. поля которое выводить

$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);

foreach ($posts as $post) {
    $xfieldsdata = xfieldsdataload($post['xfields']);
    if (isset($xfieldsdata[$xfields_print_name])) {
        echo $xfieldsdata[$xfields_print_name].'<br>';
    }
}
В данном примере поиск ведется не по точному значение, а на первую часть доп. поля, например если поиск идет "alena", то получите все посты где значения дом. поля начинается на "alena", "alena grup", "alena4346". Тоже касается и название доп. поля по которому производится поиск, только тут учитывается правая сторона названия доп. поля, например если вы ищите в доп. поле "imya", то поиск также будет производится в доп. полях "imya" и "gidimya".
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Простой пример who.php?alena
PHP:
<?php

@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);

@ini_set('display_errors', true);
@ini_set('html_errors', false);

define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');

include(ENGINE_DIR.'/data/config.php');

require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

$search_data = trim(strip_tags($_SERVER['QUERY_STRING']));

$xfields_search_name = 'imya'; //Имя доп. поля в котором искать
$xfields_print_name = 'info'; //Имя доп. поля которое выводить

$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);

foreach ($posts as $post) {
    $xfieldsdata = xfieldsdataload($post['xfields']);
    if (isset($xfieldsdata[$xfields_print_name])) {
        echo $xfieldsdata[$xfields_print_name].'<br>';
    }
}
В данном примере поиск ведется не по точному значение, а на первую часть доп. поля, например если поиск идет "alena", то получите все посты где значения дом. поля начинается на "alena", "alena grup", "alena4346". Тоже касается и название доп. поля по которому производится поиск, только тут учитывается правая сторона названия доп. поля, например если вы ищите в доп. поле "imya", то поиск также будет производится в доп. полях "imya" и "gidimya".

Спасибо то что нужно.большущее спасибо.
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Простой пример who.php?alena
PHP:
<?php

@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);

@ini_set('display_errors', true);
@ini_set('html_errors', false);

define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');

include(ENGINE_DIR.'/data/config.php');

require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

$search_data = trim(strip_tags($_SERVER['QUERY_STRING']));

$xfields_search_name = 'imya'; //Имя доп. поля в котором искать
$xfields_print_name = 'info'; //Имя доп. поля которое выводить

$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);

foreach ($posts as $post) {
    $xfieldsdata = xfieldsdataload($post['xfields']);
    if (isset($xfieldsdata[$xfields_print_name])) {
        echo $xfieldsdata[$xfields_print_name].'<br>';
    }
}
В данном примере поиск ведется не по точному значение, а на первую часть доп. поля, например если поиск идет "alena", то получите все посты где значения дом. поля начинается на "alena", "alena grup", "alena4346". Тоже касается и название доп. поля по которому производится поиск, только тут учитывается правая сторона названия доп. поля, например если вы ищите в доп. поле "imya", то поиск также будет производится в доп. полях "imya" и "gidimya".

Только маленький нюанс есть, а что можно сделать с этим при таком запросе who.php? (пустом запросе) скрипт выводит последние запрошенные записи, как от них избавиться???
 

AlexSPNet

Пользователь
Кодер
Регистрация
23 Июн 2017
Сообщения
13
Реакции
9
Баллы
3
PHP:
<?php

@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);

@ini_set('display_errors', true);
@ini_set('html_errors', false);

define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');

$search_data = trim(strip_tags($_SERVER['QUERY_STRING']));

if (empty($search_data)){
    die();
}

include(ENGINE_DIR.'/data/config.php');

require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

$xfields_search_name = 'imya'; //Имя доп. поля в котором искать
$xfields_print_name = 'info'; //Имя доп. поля которое выводить

$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);

foreach ($posts as $post) {
    $xfieldsdata = xfieldsdataload($post['xfields']);
    if (isset($xfieldsdata[$xfields_print_name])) {
        echo $xfieldsdata[$xfields_print_name].'<br>';
    }
}
Примечание: значение "0" тоже будет считаться пустым.
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
PHP:
<?php

@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);

@ini_set('display_errors', true);
@ini_set('html_errors', false);

define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');

$search_data = trim(strip_tags($_SERVER['QUERY_STRING']));

if (empty($search_data)){
    die();
}

include(ENGINE_DIR.'/data/config.php');

require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

$xfields_search_name = 'imya'; //Имя доп. поля в котором искать
$xfields_print_name = 'info'; //Имя доп. поля которое выводить

$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);

foreach ($posts as $post) {
    $xfieldsdata = xfieldsdataload($post['xfields']);
    if (isset($xfieldsdata[$xfields_print_name])) {
        echo $xfieldsdata[$xfields_print_name].'<br>';
    }
}
Примечание: значение "0" тоже будет считаться пустым.

Спасибо большое именно то что нужно.
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Ребятки еще малюсенький вопрос, уже связан с плеером uppod html 5, может кто сталкивался с такой же проблемой?
Нужно в html 5 uppod загонять видео через переменную, но блин ставлю переменную а ссылка на видео не выдается светиться переменная в исходном коде.Во флеш проблем не было переменную поставил ссылка выдалась, мож я чет не верно ставлю переменную???

Код:
<center> <div id="videoplayer176-1502" style="width:300px;height:340px;"></div>
<script type="text/javascript">this.player = new Uppod({m:"video",uid:"videoplayer176-1502",file:"$video",st:"uppodvideo176-1502"});</script>
            </center>
 
Сверху Снизу