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

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

Значит тема такая. Хочу достать хак. Желательно на халяву. Вывод коротких новостей со всеми прелестями навигации, но посредством своего SQL запроса. Чтобы я мог вставить код в одно-два места в движке и он заработал.

DLE 8.0

overauto.ru

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

На 4dle.ru читал вашу просьбу, так и не понял, что вам нужно... Здесь опять туман пишите, ну, хотя бы механизм бы описали что это и как должно работать, а то "хочу, а чего сказать не могу - сами придумайте" :) Сделайте скрин, чтоб понятно было, как этот хак вообще выглядеть должен, что именно подразумевается под "прелестями".

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

Ладно. Попробую на общепонятном языке - на языке 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 запросу. Вот что я хотел увидеть.

Изменено пользователем panacea
Ссылка на сообщение
Поделиться на других сайтах

Недавно делал вывод картинок одному заказчику для "похожих новостей", в стандартном варианте такого нет, вот и подправил ему запрос... А зачем вы так хотите - не понятно... Зачем менять запросы? - ну, разово написал хак, как нужно и всё, переделал диз - переделал тогда и хак. Зачем фигачить такую муть? Лучше бы не примеры вот такие привели, а смысл сего написали. Я лично не вижу этому никакого смысла, практического применения и удобства.

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

Недавно делал вывод картинок одному заказчику для "похожих новостей", в стандартном варианте такого нет, вот и подправил ему запрос... А зачем вы так хотите - не понятно... Зачем менять запросы? - ну, разово написал хак, как нужно и всё, переделал диз - переделал тогда и хак. Зачем фигачить такую муть? Лучше бы не примеры вот такие привели, а смысл сего написали. Я лично не вижу этому никакого смысла, практического применения и удобства.

Почему муть? Провоцирующий вопрос.:) Ну вот. К примеру на одной страничке хочу, чтоб были новости одного пользователя за определенный период, из определенной категории или страницу где будут одни фотки и т.д. и т.п.

А стандартные средства движка такие как custom очень ограничены. Другое дело когда ты знаешь SQL и можешь написать внятый и гибкий запрос и его вывести.

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

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

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

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

страницу где будут одни фотки

Есть масса галерей, как под ДЛЕ, так и отдельных CMS :)

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

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

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

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

гораздо легче написать готовый мод который подключается через {include file} в шаблонах чем вот так изгаляться над движком. зато при новой версии скрипта не придется все заново переписывать...

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

http://dle-news.ru/extras/online/modules_include.html

http://forum.dle-news.ru/index.php?showtopic=53420

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

"Начиная с версии DataLife Engine 8.3"

Это придется потратится на новую лицензию. У мя на 8 все закончилось. Да к тому же я не понял, это надо написать мод, который сторит SQL запрос по параметрам

{include file="engine/modules/mymod.php?param=value1&variable2=value2"}

или лучше мне плодить show.short.php с различными sql запросами на борту их будут 10ки а это дайте прикинуть 23К * 20 уже не хило получается для хостинга.

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

Во-первых; много запросов вы не сможете выполнить - сервер просто ляжет от нагрузки при стольких запросах и большой посещаемости.

Во-вторых; каждый запрос индивидуальный, т.е. какие-то можно закешировать, какие-то нет... где-то логику лучше в самом запросе обработать, сделав очень тяжелый запрос. а где-то гораздо проще и удобней обработать логику в php, хоть так и долго будет работать скрипт, зато его написание в разы проще. Ну нельзя индивидуальную задачу под свои нужды делать общей - просто нельзя :)

В-третьих; при редактировании движка нужно следить за его актуальностью, не дай бог Целсофт поменяет какие-то файлы, их расположение и название - знаете, какая каторга километр кода переписывать? А модуль просто скопировал (свой один файлик или папку) и всё - само автоматом встало и работает без всяких установок и прочего.

Ну и последнее... Как вам помочь - даже не знаю, ведь вы просто чего-то хотите, а чего, - это даже для вас является еще чем-то непознанным. Сформулируйте свою конкретную задачу. Вот, например, мне пишут такие задачи: "Хочу рейтинг пользователей", "хочу другую форму регистрации", "хочу..." - есть чёткая задача, есть что конкретно делать ;)

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

В грамотнопоставленном вопросе содержится 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]

Вроде как то так.

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

<?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&amp;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'; #Сим-салябим-ахалай-махалай появись-вротябись

?>

Вот, написал мега модуль. Но что то он не работает. Оцените опытным глазом, подскажите что не так. Я никогда не писал модули да и с языком тока знакомлюсь. Спасибо.

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

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

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

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

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

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

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

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

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

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