ch0sen 0 Опубликовано: 8 октября 2007 Рассказать Опубликовано: 8 октября 2007 Изначально все доп поля новости записываются последовательно в xfields таблицы dle_post, и потом выводятся как текст. А как сделать чтоб они заносились в отдельные столбцы таблицы и потом по содержимому этих полей можно былобы выводить новости ? т.е. помимо вывода новостей по категориям. или м.б. это возможно сделать и без дополнительных столбцов? P.S. например как в жж ключевые слова. Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 8 октября 2007 Рассказать Опубликовано: 8 октября 2007 Думаю это весьма большая работа и создание новых полей по данном алгоритму будет проблематично. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 8 октября 2007 Рассказать Опубликовано: 8 октября 2007 Если вы хотите ввести в БД новые поля, то по сути вам и не нужны возможности двига в плане "дополнительных полей". Работайте напрямую с БД! Цитата Ссылка на сообщение Поделиться на других сайтах
ch0sen 0 Опубликовано: 8 октября 2007 Рассказать Опубликовано: 8 октября 2007 Автор ну я начал с малого =) я попытался выводить новости по вхождению слова в xfield добавив следующий код в engine.php if ($do == "pole" AND $pole != '') { if ($cstart){ $cstart = $cstart - 1; $cstart = $cstart * $config['news_number']; } $url_page = $config['http_home_url'].get_url($pole); $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM " . PREFIX . "_post where xfields regexp '[[:<:]]($pole)[[:>:]]' ".$where_date." ORDER BY fixed desc LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where xfields regexp '[[:<:]]($pole)[[:>:]]'".$where_date; с цифровыми значениями и латиницей отлично работает через index.php?do=pole&pole=[запрос] с русскими словами проблема...хоть их браузер и переводит в %D0%A2%D0%BE%D0%BC толку ноль =( это можно както подправить? И можно както эту конструкцию сделать ЧПУ? Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 9 октября 2007 Рассказать Опубликовано: 9 октября 2007 а откуда у тебя берётся переменная $pole? И можно както эту конструкцию сделать ЧПУ? Скажи мне какие пути тебе надо - напишу Цитата Ссылка на сообщение Поделиться на других сайтах
ch0sen 0 Опубликовано: 10 октября 2007 Рассказать Опубликовано: 10 октября 2007 Автор хм...запросы перестали работать...выводит все посты подряд, а когда переходиш на 2ю страницу выведенных постов пишет - "По данному критерию новости не найдены, либо у вас нет доступа для просмотра этих новостей" причем я вроде не менял ничего =\ а откуда у тебя берётся переменная $pole? через GET определяется. а [значение] оно будет в ссылках вбито, это будет значение доп. поля по которому идет поиск и вначале энжина.пхп я еще прописал if (isset ($_REQUEST['pole'])) $pole = $_REQUEST['pole']; else $pole = ""; А ЧПУ наверно лучше будет /sort/[значение] или если возможно то /sort/[доп.поле в котором это значение] Цитата Ссылка на сообщение Поделиться на других сайтах
ch0sen 0 Опубликовано: 10 октября 2007 Рассказать Опубликовано: 10 октября 2007 Автор да и IF переделал на if ($pole != '') Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 10 октября 2007 Рассказать Опубликовано: 10 октября 2007 или если возможно то /sort/[доп.поле в котором это значение]тогда тебе в ссылку придётся включить это поле наверно лучше будет /sort/[значение] RewriteRule ^sort/([^.]+)(/?)$ index.php?do=pole&pole=$1 [L] Цитата Ссылка на сообщение Поделиться на других сайтах
ch0sen 0 Опубликовано: 11 октября 2007 Рассказать Опубликовано: 11 октября 2007 (изменено) Автор спасибо. но тут полтергейст какойто... он при любых значениях pole выводит все новости эксперимента ради заменял regexp '[[:<:]]($pole)[[:>:]]' на regexp '[[:<:]]life[[:>:]]' чтоб он вывел пост со словом life в доп. поле независимо от значения $pole - всеравно выдал все новости. запрос SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM dle_post WHERE xfields regexp '[[:<:]]life[[:>:]]' ORDER BY fixed desc в phpMyAdmin выполнился на ура непойму где ошибка =\ if ($do == "pole" AND $pole != '') { if ($cstart){ $cstart = $cstart - 1; $cstart = $cstart * $config['news_number']; } $url_page = $config['http_home_url'].get_url($pole); $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM " . PREFIX . "_post WHERE xfields regexp '[[:<:]]($pole)[[:>:]]' ORDER BY fixed desc LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE xfields regexp '[[:<:]]($pole)[[:>:]]'"; } Изменено 11 октября 2007 пользователем ch0sen Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 11 октября 2007 Рассказать Опубликовано: 11 октября 2007 ch0sen, кинь мне в личку весь engine.php Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.