Перейти к публикации

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


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

Доброе время суток. Я на своём сайте сделал дополнительные поля и вывожу ими актёры, год и страну фильма. Всё бы не чего и работает мне нравится но когда нажимаю 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 и на выходе при записи в базу получал правильное название для чпу

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...