Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Что мешает выводу картинок в случайной новости?

Что мешает выводу картинок в случайной новости?


     04.03.2019    Общие вопросы, Модули, Хаки    1243

вопрос
Пожалуйста, помогите, не могу разобраться, текстом всё на ура выводит, но почему не видит изображения, у меня они реализованы как на кино-сайтах через дополнительные поля:
[xfgiven_amf-img][xfvalue_amf-img][/xfgiven_amf-img]

Сразу скажу, что custom не нужен, он нормально не кэширует, новость не меняется толком.

Те кому не трудно помогите, ниже код хака:


Спасибо.

Ответил: LazyDev


1. В вашем хаке нет вообще кэширования.
2. Кэш в custom работает нормально.
3.
<?php
/**
 * Вывод случайной новости
 *
 * @copyright 2019 LazyDev
 * @link      https://lazydev.pro
 */

if (!defined('DATALIFEENGINE')) {
	die('see ya.');
}

$newsQuery = "SELECT 
    p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p 
JOIN (
    SELECT rand() * (SELECT MAX(id) FROM " . PREFIX . "_post) AS max_id
) AS r 
LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) 
WHERE p.id >= r.max_id 
ORDER BY p.id ASC 
LIMIT 1";

$sql_result = $db->query($newsQuery);

$tpl->load_template('random.tpl');
include(DLEPlugins::Check(ENGINE_DIR . '/modules/show.custom.php'));
if ($config['files_allow'] && strpos($tpl->result['content'], '[attachment=') !== false) {
    $tpl->result['content'] = show_attach($tpl->result['content'], $attachments);
}

echo $tpl->result['content'];
?>

1. Делаете файл в /engine/modules/ с названием random.php
2. Создайте файл random.tpl в своем шаблоне, он будет отвечать за оформление рандомной новости.
3. Подключаете в нужном месте вывод рандомной новости
{include file="engine/modules/random.php"}

4. В tpl файле доступны все те же самые теги что и в КРАТКОЙ новости.

23 комментария

OuteerMan
Юзер

OuteerMan - 5 марта 2019 01:36 -

Думаете перефразировав вопрос и создав новый, даст результаты ?

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

И зачем получать количество новостей если можно в одном запросе это сделать.
SELECT * FROM ".PREFIX ."_post ORDER BY RAND() LIMIT 1


Регулярное выражение на получение картинок можно и желательно посмотреть в файлах отвечающие за вывод новостей. Это show short, full и custom php файлы.

Какую роль играет тег [xfgiven] в src img объекта ? Я не могу понять.

Ответ на вопрос Что мешает выводу картинок в случайной новости?
Отсутствия понимания.

LazyDev
PHP-developer

LazyDev - 5 марта 2019 02:48 -

OuteerMan, сейчас бы использовать ORDER BY RAND... Мммм, совсем не затратно по ресурсам.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

OuteerMan
Юзер

OuteerMan - 5 марта 2019 04:59 -

Я уж думал пропали куда. Вот интересно, а ответили бы Вы если бы Я не написал )
А так, то там можно было и из другого места получить это количество, но не суть. Главное, что Вы спасли положение ) Я не гонюсь за идеальным вариантом (А так то можно и извернуться и более грамотные запросы сделать, кэш, ротацию смены через определённое время, настроечки всякие и кнопочки с менюшочкой переключения категории, которая запоминается и при обновке странички на том положении и остаётся, и вот много чего можно если не лениться) однако за пол минуты в качестве ответа такой функционал пользователю не подарить, но я рад, что вы не упускаете возможности позлорадствовать :D

Я надеюсь Вы не пытаетесь сейчас вот в очередной раз превосходством засиять, потому как я

LazyDev
PHP-developer

LazyDev - 5 марта 2019 05:33 -

OuteerMan, любая помощь не всегда является помощью, по-этому давать плохие советы не стоит.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

OuteerMan
Юзер

OuteerMan - 5 марта 2019 07:34 -

Ну я рад Вашему рвению помочь с первого ответа и сразу готовым решением, пусть и таким простым и без функций. Но я как Вы помните не спешу помогать, сперва отвечаю на вопросы, задаю свои вопросы. А там видно будет. Может и вовсе человек окажется самостоятельным и ему хватило бы наводки на то как сделать, и он бы сам опа и сделал бы не хуже. И я бы даже рад этому был ) Ведь сам я это делать ну не хочу, мне данный вопрос не интересен. Обратил внимание на него только из за того, что это второй вопрос и буквально недавно автор создавал новость с вопросом. И не похоже, чтобы Вы ответили :D

LazyDev
PHP-developer

LazyDev - 5 марта 2019 07:41 -

OuteerMan, как всегда, много текста а толку 0. Жду вашего решения, не такое простое и с полным набором функций. Ах, да, вы же ничего не можете, а только трепать своим языком.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Screensnap
Юзер

Screensnap - 5 марта 2019 15:56 -

А лично Вам огромное спасибо, что не прошли мимо и хотя бы попытались объяснить мне, что да как, спасибо!

OuteerMan
Юзер

OuteerMan - 5 марта 2019 19:28 -

Для многих людей и 'война и мир' бестолковое чтиво вы один из них ? . Ждите, я повторюсь, я не заинтересован в этом функционале. Заинтересуйте меня я сделаю для вас лично с полным набором.А ваш хак проще пареной репы, его даже школьник сделать сможет. Исправили близ один sql запрос и сразу героем себя возомнили. И подписали авторство и контакты (которые отнюдь лишние на одну правочку)

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



OuteerMan
Юзер

OuteerMan - 6 марта 2019 13:21 -

***Комментарий удален***

Screensnap
Юзер

Screensnap - 6 марта 2019 13:29 -

***Комментарий удален***

Screensnap
Юзер

Screensnap - 5 марта 2019 07:45 -

Давайте так, во-первых: если бы я был способен писать скрипты я бы тут вопросы не задавал, во-вторых: дайте ссылку на тот вопрос который я не смог найти в поиске из-за своей тупизны (Вы же на это намекаете), в-третьих: мне не нужны кнопочки, файлики и так далее, мне нужно, чтобы при обновлении страницы так же менялась случайная новость, а не висла как через custom до ишачей Пасхи, мне просто нужен скрипт без наворотов, кликабельная картинка со сменой новости при обновлении страницы, всё, больше ничего не надо, а Вы тут устроили дискуссию, ромашку, если бы я был бы вашего уровня в познании построении скриптов и им подобным, я бы не набивал себе цену, а просто бы либо помог либо нет!

dj-avtosh
PHP-developer

dj-avtosh - 5 марта 2019 14:58 -

держите дистанцию в выражениях.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Screensnap
Юзер

Screensnap - 5 марта 2019 15:29 -

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

dj-avtosh
PHP-developer

dj-avtosh - 5 марта 2019 15:31 -

Если бы я хотел вступать в дискуссию - я бы продолжил эту тему. Предлагаю закрыть ее. Благодарю.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Screensnap
Юзер

Screensnap - 5 марта 2019 15:33 -

Для меня тема ещё пару часов назад была закрыта!

OuteerMan
Юзер

OuteerMan - 5 марта 2019 20:00 -

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

И тем не менее в хаке используется вывод через custom и как можете увидеть ничего до пасхи не остаётся.
И дискуссию устроил не я, а мистер Lazy. Если бы не его желание мне написать, я бы не отвечал.

Помощь я тут понял это когда в ответ пишут, всё остальное обсуждение вопроса. И не должно подвергаться критики. На то оно и обсуждение.

Вы задали конкретный вопрос "Что мешает выводу картинок в случайной новости?" И ответ на ваш вопрос без лишней бурды будет указание на ошибки. А не готовый вариант. Я и ответил Вам на то, что мешает. И ответ "Да" или "Нет" в вашем случае не подходит.

Если бы вы поставили вопрос иначе "Как сделать вывод рандомной новости" то и ответом получили бы совсем другой или даже готовый хак без лишний заумной херни и вопросов.

Какой вопрос такой ответ. Обижайтесь на себя, в этом случае. Я тут даже не строил из себя умного даже среднего не строил. Просто спросил уточняющий вопрос и сказал, что у вас не работает хак указав на то чего он не работает и сказав в каких местах. Согласно поставленному вашему вопросу. Вы не просили сделать вам готовое решение.

Screensnap
Юзер

Screensnap - 5 марта 2019 21:26 -

Уважаемый OuteerMan, я не настолько наглый, чтобы просить готовое решение, ну и потом, если Вы не поняли мой вопрос, так это не мои проблемы а Ваши, Вы могли пройти мимо. А так, по серьезному, мир Вам, жизнь слишком коротка чтобы тратить её на ругань и ссоры, и что касается мистера Lazy, так это Ваши с ним проблемы, я туда лезть не хочу, но, каждый человек ищет виноватых, Вы его нашли, вот и всё.
А теперь, я бы хотел узнать, Вы сказали, цитирую: "Вы не просили сделать вам готовое решение", у меня есть второй вопрос, я его ранее задавал до этого вопроса, и если Вы будете столь благосклонный, не могли бы Вы, решить данный вопрос, потому, что я до сих пор не нашел на него решение!

OuteerMan
Юзер

OuteerMan - 5 марта 2019 20:01 -

- Стёрто -

Screensnap
Юзер

Screensnap - 5 марта 2019 21:30 -

Вот собственно вопрос, и тут, если Вы хотите это услышать, то я прошу готовое решение, потому, что я далек от этого, и до сих пор не нашел решение.
https://dle-faq.ru/faq/common/25644-kak-vyvesti-klikabelnuyu-kartinku-novosti-v-module-top-attachment.html 

OuteerMan
Юзер

OuteerMan - 5 марта 2019 20:04 -

- Стёрто -

dj-avtosh
PHP-developer

dj-avtosh - 5 марта 2019 15:02 -

Можно подсчитать количество элементов при помощи mySQL-запроса методом COUNT(), на php рандомизировать, и полученную цифру (или ряд цифр) использовать в LIMIT n-1, n

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Screensnap
Юзер

Screensnap - 5 марта 2019 15:08 -

Уже решено, благодарю.

Screensnap
Юзер

Screensnap - 5 марта 2019 03:44 -

Хак древний как мамонт))) но всё равно спасибо.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 06.03.2014 vip.boss  Общие вопросы
наверх