panacea 0 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 Значит тема такая. Хочу достать хак. Желательно на халяву. Вывод коротких новостей со всеми прелестями навигации, но посредством своего SQL запроса. Чтобы я мог вставить код в одно-два места в движке и он заработал. DLE 8.0 overauto.ru Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 На 4dle.ru читал вашу просьбу, так и не понял, что вам нужно... Здесь опять туман пишите, ну, хотя бы механизм бы описали что это и как должно работать, а то "хочу, а чего сказать не могу - сами придумайте" Сделайте скрин, чтоб понятно было, как этот хак вообще выглядеть должен, что именно подразумевается под "прелестями". Цитата Ссылка на сообщение Поделиться на других сайтах
panacea 0 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 (изменено) Автор Ладно. Попробую на общепонятном языке - на языке php выразить свои мысли. Если я правильно понимаю принцип работы движка, то на URL запросы первоначально анализируется в engine.php Вот наверное с него мы начнем. Тут между $subaction можно поместить некий код, по типу как тут } elseif ($subaction == 'СВОЙ ЗАПРОС') { // ################ Вывод новостей по своему запросу ################# if ($cstart) { $cstart = $cstart - 1; $cstart = $cstart * $config['news_number']; } $newsmodule = true; # Формируем URL для страницы коротких новостей для навигации $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/СВОЙ ЗАПРОС"; $user_query = "subaction=СВОЙ ЗАПРОС&user=" . urlencode ( $user ); $where_category = "category IN ('2') AND "; if (isset ( $view_template ) and $view_template == "rss") { $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, approve, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post where {$where_category}autor = '$user' AND approve" . $where_date . " ORDER BY " . $config['news_sort'] . " " . $config['news_msort'] . " LIMIT 0," . $config['rss_number']; } else { if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews']; if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews']; # ПИШЕМ СВОЙ SQL $sql_select = "SELECT SQL_CALC_FOUND_ROWS id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post where {$where_category}autor = '$user' AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; // Здесь Формируем свой запрос. $sql_count = "SELECT FOUND_ROWS() as count"; } $allow_active_news = true; $config['allow_cache'] = false; Ну я до конца в движке не разобрался. Этого кода не достаточно, чтобы в конечном итоге, выдать страницу с короткими новостями по своему SQL запросу. Вот что я хотел увидеть. Изменено 16 декабря 2010 пользователем panacea Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 Недавно делал вывод картинок одному заказчику для "похожих новостей", в стандартном варианте такого нет, вот и подправил ему запрос... А зачем вы так хотите - не понятно... Зачем менять запросы? - ну, разово написал хак, как нужно и всё, переделал диз - переделал тогда и хак. Зачем фигачить такую муть? Лучше бы не примеры вот такие привели, а смысл сего написали. Я лично не вижу этому никакого смысла, практического применения и удобства. Цитата Ссылка на сообщение Поделиться на других сайтах
panacea 0 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 Автор Недавно делал вывод картинок одному заказчику для "похожих новостей", в стандартном варианте такого нет, вот и подправил ему запрос... А зачем вы так хотите - не понятно... Зачем менять запросы? - ну, разово написал хак, как нужно и всё, переделал диз - переделал тогда и хак. Зачем фигачить такую муть? Лучше бы не примеры вот такие привели, а смысл сего написали. Я лично не вижу этому никакого смысла, практического применения и удобства. Почему муть? Провоцирующий вопрос. Ну вот. К примеру на одной страничке хочу, чтоб были новости одного пользователя за определенный период, из определенной категории или страницу где будут одни фотки и т.д. и т.п. А стандартные средства движка такие как custom очень ограничены. Другое дело когда ты знаешь SQL и можешь написать внятый и гибкий запрос и его вывести. Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 Я предпочитаю свои моды клепать, так как мне самому нужно. Некоторые заказчики предпочитают вместо модов хаки, ну, каждый со своей колокольни смотрит, как ему удобно... хочу, чтоб были новости одного пользователя за определенный период, из определенной категории Есть моды для страничек-профилей пользователей... их много, если нужно что-то конкретное под свой сайт, а этого нет в паблике, то проще мод заказать в соседней ветке страницу где будут одни фотки Есть масса галерей, как под ДЛЕ, так и отдельных CMS Если есть конкретные вопросы, пишите, что знаю я или другие форумчане - вас проконсультируют, сложные вопросы пишите в Личку Целсофту с его сайта. Цитата Ссылка на сообщение Поделиться на других сайтах
panacea 0 Опубликовано: 16 декабря 2010 Рассказать Опубликовано: 16 декабря 2010 Автор Спасибо за отклик. Но не могли бы мне помочь самому этот хак написать. Подскажите, какие файлы движка необходимо редактировать, чтоб запустить мой хак-запрос или необходимо для этого писать отдельный мод? Цитата Ссылка на сообщение Поделиться на других сайтах
blaga 39 Опубликовано: 17 декабря 2010 Рассказать Опубликовано: 17 декабря 2010 гораздо легче написать готовый мод который подключается через {include file} в шаблонах чем вот так изгаляться над движком. зато при новой версии скрипта не придется все заново переписывать... я тоже когда то задавал похожие вопросы. вот ссылки, ознакомьтесь. http://dle-news.ru/extras/online/modules_include.html http://forum.dle-news.ru/index.php?showtopic=53420 Цитата Ссылка на сообщение Поделиться на других сайтах
panacea 0 Опубликовано: 17 декабря 2010 Рассказать Опубликовано: 17 декабря 2010 Автор "Начиная с версии DataLife Engine 8.3" Это придется потратится на новую лицензию. У мя на 8 все закончилось. Да к тому же я не понял, это надо написать мод, который сторит SQL запрос по параметрам {include file="engine/modules/mymod.php?param=value1&variable2=value2"} или лучше мне плодить show.short.php с различными sql запросами на борту их будут 10ки а это дайте прикинуть 23К * 20 уже не хило получается для хостинга. Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 17 декабря 2010 Рассказать Опубликовано: 17 декабря 2010 Во-первых; много запросов вы не сможете выполнить - сервер просто ляжет от нагрузки при стольких запросах и большой посещаемости. Во-вторых; каждый запрос индивидуальный, т.е. какие-то можно закешировать, какие-то нет... где-то логику лучше в самом запросе обработать, сделав очень тяжелый запрос. а где-то гораздо проще и удобней обработать логику в php, хоть так и долго будет работать скрипт, зато его написание в разы проще. Ну нельзя индивидуальную задачу под свои нужды делать общей - просто нельзя В-третьих; при редактировании движка нужно следить за его актуальностью, не дай бог Целсофт поменяет какие-то файлы, их расположение и название - знаете, какая каторга километр кода переписывать? А модуль просто скопировал (свой один файлик или папку) и всё - само автоматом встало и работает без всяких установок и прочего. Ну и последнее... Как вам помочь - даже не знаю, ведь вы просто чего-то хотите, а чего, - это даже для вас является еще чем-то непознанным. Сформулируйте свою конкретную задачу. Вот, например, мне пишут такие задачи: "Хочу рейтинг пользователей", "хочу другую форму регистрации", "хочу..." - есть чёткая задача, есть что конкретно делать Цитата Ссылка на сообщение Поделиться на других сайтах
panacea 0 Опубликовано: 17 декабря 2010 Рассказать Опубликовано: 17 декабря 2010 Автор В грамотнопоставленном вопросе содержится 95% ответа. Не знаю, вроде уже писал, я хочу модуль (не хак, с этим я соглашусь с zgr), который выводит определенные новости (редактируется SQL запросом) в виде коротких новостей. Параметры переменных SQL передаются в GET ($subaction = $_REQUEST['subaction'] Например RewriteRule ^user/([^/]*)/name_cat/page/([0-9]+)(/?)+$ index.php?subaction=name_cat&user=$1&cstart=$2 [L] Должен вывести все новости данной категории, опубликованные пользователем на Nой странице (постраничная навигация) Захочу вывести галлерею, Мне нужно будет просто добавить\изменить SQL запрос и GET структуру. RewriteRule ^user/([^/]*)/foto/page/([0-9]+)(/?)+$ index.php?subaction=foto&user=$1&cstart=$2 [L] Вроде как то так. Цитата Ссылка на сообщение Поделиться на других сайтах
panacea 0 Опубликовано: 19 декабря 2010 Рассказать Опубликовано: 19 декабря 2010 Автор <?php if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); } if ($cstart) { $cstart = $cstart - 1; $cstart = $cstart * $config['news_number']; } # Обработка SQL запросов if ($action=="blog") { $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/blog/"; $user_query = "subaction=blog&user=" . urlencode ( $user ); $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE category IN ('2','3') AND autor = '$user' AND approve" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; // Здесь Формируем свой запрос. $sql_count = "SELECT FOUND_ROWS() as count"; $allow_active_news = true; $config['allow_cache'] = false; } #====== require_once ENGINE_DIR.'/modules/show.short.php'; #Сим-салябим-ахалай-махалай появись-вротябись ?> Вот, написал мега модуль. Но что то он не работает. Оцените опытным глазом, подскажите что не так. Я никогда не писал модули да и с языком тока знакомлюсь. Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.