CMS DataLife Engine - Система управления сайтами

Авторизация  
Dimstrik

Проблема вывода информации из доп поля

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

Доброе время суток. Я на своём сайте сделал дополнительные поля и вывожу ими актёры, год и страну фильма. Всё бы не чего и работает мне нравится но когда нажимаю http://cstavr.ru/year/2018/ должно вывести фильмы все которые 2018 года но выводит  все и 2016 и 2009 и так далее. Это твориться только с 2018 а стругими всё нормально если http://cstavr.ru/year/2017/ или http://cstavr.ru/country/США/ то работает как часики и информация выводиться как нужно.

 

В чём может быть проблема? Помогите!

 

Сайт http://cstavr.ru/ 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Dimstrik сказал:

Всё бы не чего и работает мне нравится но когда нажимаю http://cstavr.ru/year/2018/

Это вообще то адрес показа категорий, а не информации их доп. полей. Каким образом вы формируете такие URL, судя по всему, вы пользуетесь какими то сторонними модификациями, а не стандартными возможностями скрипта.

 

Для использования стандартных возможностей скрипта, включается для доп. поля опция "Использовать как перекрестные ссылки". Для старых новостей где доп. поля уже ранее было сформированы, делается перестроение публикаций в админпанели в соответствующем разделе.

Поделиться сообщением


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

Это и есть информация из дополнительных полей, просто в настройках движка я убрал приставку xfvalue и всё. Я использую доп поле как вы и сказали "Использовать как перекрестные ссылки" все работают нормально кроме http://cstavr.ru/year/2018/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, Dimstrik сказал:

Это и есть информация из дополнительных полей, просто в настройках движка я убрал приставку xfvalue и всё. Я использую доп поле как вы и сказали "Использовать как перекрестные ссылки" все работают нормально кроме http://cstavr.ru/year/2018/

Вы модифицировали CMS и ждёте помощи от разработчика? Не раз уже говорили, что помощь осуществляется только по "чистым" дистрибутивам, если Вы делаете модификации, то почему не работает та или иная функция, должны разбираться самостоятельно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 минут назад, Dimstrik сказал:

Это и есть информация из дополнительных полей, просто в настройках движка я убрал приставку xfvalue и всё.

Нет в скрипте таких настроек. Поэтому что вы убрали и как я не знаю. Если использовать стандартные возможности в скрипте, как это и предусмотрено скриптом, и как я ранее выше написал, то никаких проблем в показе и поиске новостей нет. А вы видимо сделали какие либо некорректные правки. Верните оригинальные файлы, чтобы были оригинальные URL и все файлы скрипта, проблема скорее всего будет устранена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, germanydletest сказал:

Вы модифицировали CMS и ждёте помощи от разработчика? Не раз уже говорили, что помощь осуществляется только по "чистым" дистрибутивам, если Вы делаете модификации, то почему не работает та или иная функция, должны разбираться самостоятельно.

Я спросил так как думал может кто знает, нет так нет. Разработчики движка  больше понимают может и подсказали бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Dimstrik сказал:

Я спросил так как думал может кто знает, нет так нет. Разработчики движка  больше понимают может и подсказали бы.

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

Поделиться сообщением


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

Я думаю это связано с текущим годом так как 2019 тоже выводит только инфу про 2019 а 2012 про 2012 и актёры норм вот с 2018 проблема.

Поделиться сообщением


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

Присоединяюсь к проблеме и вопросу... сайт Live-lib.ru Поломались некоторые ссылки, например 2018 и 2017 год http://live-lib.ru/year/2017/. Плюс некоторые издательства явно не полностью отображаются, Например Эксмо, а вот этот вообще вдруг стал пустым: http://live-lib.ru/publisher/Издательство+"Проспект"/

Самое интересное, что локально этот сайт целый, скачал БД и файлы движка, заменил полностью папку engine теми что на сервере в инете, все равно живые ссылки на года и издательства...

Что за беда... 

Издатель http://live-lib.ru/publisher/АСТ/ Выдает всего 3 книги...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
30 минут назад, Devol1 сказал:

Присоединяюсь к проблеме и вопросу... сайт Live-lib.ru Поломались некоторые ссылки, например 2018 и 2017 год http://live-lib.ru/year/2017/. Плюс некоторые издательства явно не полностью отображаются, Например Эксмо, а вот этот вообще вдруг стал пустым: http://live-lib.ru/publisher/Издательство+"Проспект"/

Самое интересное, что локально этот сайт целый, скачал БД и файлы движка, заменил полностью папку engine теми что на сервере в инете, все равно живые ссылки на года и издательства...

Я уже выше сказал, таких адресов для доп. полей не существует и никогда не существовало. Должны быть правильными ссылки при выводе их на сайте, должны быть оригинальными все файлы скрипта, не только в папке engine, но и в корне, включая .htaccess. И тип доп. полей должен быть перекрестные ссылки. Соблюдайте эти условия и проблемы не будет. А почему у вас не работают сторонние модификации в скрипте, я уже сказать не могу, т.к. не знаю по какому принципу они работают.

 

P.S. Что касается двойных кавычек в доп. полях перекрестных ссылок, то они в DLE и ранее не работали, добавлении их поддержки только запланировано на новые версии скрипта. На данный момент в них допускаются только одинарные кавычки.

Поделиться сообщением


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

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

Так что не похоже что в модификации дело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, Devol1 сказал:

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

Так что не похоже что в модификации дело.

1. Какие именно ссылки стали, приведите их примеры полностью.

2. Тип доп. полей точно установлен в "перекрестные ссылки"?

3. Убедитесь то что .htaccess соответствует оригинальному именно вашей версии.

4. Возможно ранее доп. поля хранились в другом формате у вас. Сделайте перестроение публикаций в соответствующем разделе админпанели, чтобы DLE перестроил данные доп. полей (не забудьте сделать бекап БД, перед перестроением)

Поделиться сообщением


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

К сожалению я уже вернул мои модификанты назад =) Тип полей указан точно как перекрестные ссылки и ранее оно работало. Хта тоже брал из архива. 

Что означает формат доп полей? С недавнего времени я парсю новости из 2х источников, возможно это как-то повлияло.

Изначально хотел запустить перестроение публикаций, но у меня порядка 140 тысяч новостей, боюсь это будет очень на долго. Есть ли возможность сделать это кусочками?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, Devol1 сказал:

Есть ли возможность сделать это кусочками?

Есть. Все в этом разделе.

 

6 минут назад, Devol1 сказал:

К сожалению я уже вернул мои модификанты назад =) Тип полей указан точно как перекрестные ссылки и ранее оно работало.

Ранее работали ваши модификанты. А не стандартные возможности DLE. Если изначально использовать стандартные возможности DLE, то такой проблемы точно нет, я проверил специально. А как работали ваши модификанты ранее, я не знаю, они могут быть и не совместимы с новой версией скрипта и после обновления работать некорректно.

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

С недавнего времени я парсю новости из 2х источников, возможно это как-то повлияло.

Что значит парсите? Добавляете в БД минуя стандартные возможности DLE? Если да, то конечно это может влиять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, celsoft сказал:

Что значит парсите? Добавляете в БД минуя стандартные возможности DLE? Если да, то конечно это может влиять.

Перестроение публикаций поможет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, Devol1 сказал:

Перестроение публикаций поможет?

Понятия не имею. Потому как вы не пользуетесь стандартными возможностями скрипта, а делаете какие то собственные модификации. Для стандартных возможностей все работает изначально корректно и проблем в них изначально нет. И перестроение для стандартных возможностей также все перестраивает, и тоже корректно. А будет ли корректно для ваших модификаций я сказать не могу, т.к. ваших модификаций не делал, не и не тестировал. Может вообще все рухнуть. Все может быть. Я могу гарантировать только работу стандартных функций, а работу ваших сторонних функций я гарантировать уже к сожалению не могу.

 

Мне вооще непонятно, зачем "лезть" в существующие стандартные возможности, и делать тоже самое но по другому. Ведь тот же URL не просто так такой в стандартном скрипте, это результат тестирований, чтобы не вызывать конфликтов с другими возможностями и функциями скрипта. А у вас я думаю никаких тщательных тестирований на совместимость и при внесении модификаций не производилось. Вроде как работает на первый взгляд и ладно, а потом "боком" начинает вылезать.

Поделиться сообщением


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

Я разобрался в чем причина, парсер литрес не правильно использует функцию totranlit. Поэтому новые публикации попадают в новости без нормального алтернативного имени. Грубо говоря ссылка выглядит как http://site.ru/category/234-.htm

У меня есть наковырянный на просторах инета скрипт, который перелопачивает эти имена и создает новостям нормальные альтернативные имена.

После отработки скрипта, все восстановилось.

Блин парни...я такой спец в пхп, что просто звиздец. Если кто поможет правильно подключить функцию тотранлит, то тому просто ОГРОМНЕЙШИЙ ПЛЮС в карму....

Это скрипт, который постит новости из таблицы litres_data

 

 

<?php
    define('DATALIFEENGINE', true);
    include("config.php");
    mysql_query("SET NAMES utf8");
    include("functions.php");
    require_once ROOT_DIR . '/language/Russian/website.lng';
    include_once ROOT_DIR.'/language/Russian/'.$config['langs'].'/website.lng';
    require_once ENGINE_DIR . '/modules/functions.php';
    error_reporting(E_ALL);
    
    $while_number = 100; //Повторы основного цикла
    
    //$csv = file('top3000.csv');
    //$csv = array_map('trim',$csv);
    //$top_ids = implode(',',$csv);
    $allowed_genres = "1";
    /*AND local_book_id_litres_catalog IS NULL*/
    /*AND ydisk_book_url != ''*/
    /*AND hub_id IN (" . $top_ids . ")*/
    /*AND has_trial>0*/
    $login_userid = mysql_query("SELECT user_id FROM dle_users WHERE name='{$r_autor_login}'");
    $login_userid_array = mysql_fetch_array($login_userid);
    for($i = 0;$i < $while_number;$i++)
    {
    $result = mysql_query("SELECT * FROM `litres_data` WHERE `hub_id` > 0 AND (`lang` = 'ru' OR lang = '') AND local_book_id IS NULL AND local_book_id_litres_catalog IS NULL AND genre != '' AND (" . $allowed_genres . ") AND options&2 ORDER BY date_inserted DESC LIMIT 20");
    while ($row = mysql_fetch_array($result)){
        if($row['local_book_id'] == NULL){
            $litres_link = 'http://www.litres.ru/' . ($row['litres_url'] != '' ? $row['litres_url'] . '?lfrom=' : 'pages/biblio_book/?art=' . $row['hub_id'] . '&lfrom=' ) . $partner_id;
            /*
            $q_audio = "SELECT * FROM litres_data WHERE
                            hub_author_id = " . $row['hub_author_id'] . "
                            AND type = 1
                            AND book_title = '" . $row['book_title'] . "'
                            LIMIT 1";
            $res_audio = mysql_query($q_audio);
            $r_audio = mysql_fetch_array($res_audio);
            */        
            //жанры
            $genres = explode('|',$row['genre'],2);

            /*$rec_cat = mysql_query("SELECT local_category FROM `litres_genres_relation` WHERE local_category > 0 AND litres_token IN ('" . $genres[0] . "','" . $genres[1] . "')");

            if (mysql_num_rows($rec_cat) == 0){
                echo 'нет жанра в локальной таблице (' . $row['hub_id'] . ')';
                //делаем пометку что книгу нельзя импортнуть из-за отсутствия жанра чтобы в след раз опять не дергать эту книгу
                $q = "UPDATE `litres_data` SET 
                            local_book_id_litres_catalog = '-1'
                            WHERE hub_id = " . $row['hub_id'];
                mysql_query($q);
            }    //если не нашли локальный жанр, то пропускаем книгу

            $r_cat = mysql_fetch_array($rec_cat);*/
            
            //$local_categories = $r_cat['local_category'];
            $local_categories = "";
            $genres_db = $genres[0];
            $title = stripslashes(trim($row['author_name'] . ' ' . $row['author_sname']) . ' - ' . $row['book_title']);
            
            //перекодировку не убирать!
            $alt_name = totranslit(mb_convert_encoding(stripslashes($row['book_title']),'windows-1251','UTF-8'), false, true );
            
            $pic_name = time() . "_" . rand(100000,999999) . '.jpg';
            
            $cover_id = $row['litres_id'];
            while (strlen($cover_id) < 8) { $cover_id = '0' . $cover_id; }
            $cover_path = 'http://www.litres.ru/static/bookimages/' . $cover_id[0] . $cover_id[1] . '/' . $cover_id[2] . $cover_id[3] . '/' . $cover_id[4] . $cover_id[5] . '/' . $cover_id . '.bin.dir/' . $cover_id . '.cover.' . $row['cover_ext'];
            $cover_link = "<div align=\"center\"><a class=\"highslide\" href=\"".$cover_path."\" target=\"_blank\"><img width=\"".$r_image_width."\" height=\"".$r_image_height."\" src=\"".$cover_path."\" alt=\"\" class=\"fr-dib\"></a><br><br></div>";
            $short_story = $cover_link .nl2br(mb_substr($row['annotation'], 0, 200, 'utf-8'));
            $full_story_con = "<br>".nl2br(mb_substr($row['annotation'], 0, 600, 'utf-8'));
            
            if (substr($full_story_con, strlen($full_story_con) - 1, strlen($full_story_con)) != ".") $full_story_con .= "...";
            $full_story = $full_story_con;
            
            $descr = $row['annotation'];
            
            $xfields = array(); $xfields_str = '';
            $xfields['author'] = trim($row['author_sname'] . ' ' . $row['author_name']);
            if ($row['publisher'] != '') $xfields['publisher'] = $row['publisher'];
            if ($row['publ_year'] > 0) $xfields['year'] = $row['publ_year'];
            if ($row['lang'] == 'ru') $xfields['booklanguage'] = 'русский';
            $xfields['audiobook'] = 'Нет';
            
            $xfields['litres_link'] = $litres_link;
            $xfields['litres_hub_id'] = $row['hub_id'];
            if ($row['has_trial'] > 0) $xfields['litres_has_trial'] = $row['has_trial'];

            if (isset($r_audio['litres_url'])) $xfields['litres_audio_link'] = 'http://www.litres.ru/' . ($r_audio['litres_url'] != '' ? $r_audio['litres_url'] . '?lfrom=' : 'pages/biblio_book/?art=' . $r_audio['hub_id'] . '&lfrom=' ) . $partner_id;
            

            //собираем поля xfields в кучу
            $xfields_str = implode_xfields($xfields);
            
            $cat_altname_get = mysql_query("SELECT * FROM dle_category WHERE alt_name='{$genres_db}'");
            $cat_altname_array = mysql_fetch_assoc($cat_altname_get);
            $cat_altname = $cat_altname_array['id'];
            if ($cat_altname > 0)
            {
            if ($row['local_book_id_litres_catalog'] == NULL){
                $r_date = @date("Y-m-d H:i:s");
                $r_short_story = mysql_real_escape_string($short_story);
                $r_full_story = mysql_real_escape_string($full_story);
                $r_xfields = mysql_real_escape_string($xfields_str);
                $r_title = mysql_real_escape_string($row['book_title']);
                $r_descr = mysql_real_escape_string(mb_substr(strip_tags($descr), 0, 190, 'utf-8')."...");
                mysql_query("INSERT INTO dle_post SET autor='{$r_autor_login}', date='{$r_date}', short_story='{$r_short_story}', full_story='{$r_full_story}', xfields='{$r_xfields}', title='{$r_title}', descr='$r_descr', keywords='', category='{$cat_altname}', alt_name='2', allow_comm='1', allow_main='1', approve='1', fixed='0', allow_br='1', symbol='', tags='', metatitle=''");
                
                $local_book_id = mysql_insert_id();
                mysql_query("INSERT INTO dle_post_extras SET news_id='{$local_book_id}', allow_rate='1', rating='0', vote_num='0', news_read='0', votes='0', access='', editdate='0', editor='', reason='', view_edit='0'");
                mysql_query("UPDATE dle_users SET news_num=news_num+1 WHERE user_id='{$login_userid_array['user_id']}'");
                //txt файл для чтения
                /*
                $txt_name = date("YmdHis") . '_' . $local_book_id . '.txt';
                echo $q = "INSERT INTO dle_reader SET
                    post = " . $local_book_id . ",
                    format = 'txt',
                    title = '" . mysql_real_escape_string($row['book_title'] . ' - ' . $row['author_name'] . ' ' . $row['author_sname']) . "',
                    file = '" . $txt_name . "',
                    `order` = 1
                    ";
                mysql_query($q);
                */
            }
            else{
                mysql_query("UPDATE dle_post SET short_story = '" . mysql_real_escape_string($short_story) . "', full_story = '" . mysql_real_escape_string($full_story) . "', xfields = '" . mysql_real_escape_string($xfields_str) . "', title = '" . mysql_real_escape_string($row['book_title']) . "', descr  = '" . mysql_real_escape_string(mb_substr(strip_tags($descr),0,190)) . "', category = '{$cat_altname}' WHERE id = " . $row['local_book_id_litres_catalog']);
                $local_book_id = $row['local_book_id_litres_catalog'];
            }
            
            mysql_query("UPDATE `litres_data` SET local_book_id_litres_catalog = " . $local_book_id . " WHERE hub_id = " . $row['hub_id']);
            }
        }
        else{
            $local_book_id = ($row['local_book_id_litres_catalog'] > 0 ? $row['local_book_id_litres_catalog'] : $row['local_book_id']);
        }
        
        //txt фрагмент
        /*
        $txt_id = $row['hub_id'];
        while (strlen($txt_id) < 8){
            $txt_id = '0' . $txt_id;
        }
        $txt_path = 'http://www.litres.ru/static/trials/' . $txt_id[0] . $txt_id[1] . '/' . $txt_id[2] . $txt_id[3] . '/' . $txt_id[4] . $txt_id[5] . '/' . $txt_id . '.txt';
        if ($txt = file_get_contents($txt_path)){
            file_put_contents(__DIR__ . '/../../../uploads/reader/' . $txt_name,$txt);
        }
        */
    }
    }
?>

Поделиться сообщением


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

Вопрос решил самостоятельно, плюс себе в карму

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 15.06.2018 в 17:50, Devol1 сказал:

Вопрос решил самостоятельно, плюс себе в карму

 

В ад попадают несколько категорий людей.
Педофилы, насильники, убийцы, зоофилы, любители БМВ

Но в первую очередь, туда попадают те, кто пишет что он решил проблему, но не пишет что он именно сделал

Поделиться сообщением


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

вот пример как я правил чпу, брал русское название использовал totranslit и на выходе при записи в базу получал правильное название для чпу

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация