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

Как реализовать отдельный short story на определенное время?


     15.04.2015    Общие вопросы по вёрстке, Шаблоны (TPL), Стили (CSS)    3442

вопрос
Всем привет!

Ребят, подскажите, как можно реализовать такую вещь:

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

Может есть подобный хак или модуль, или ещё какие методы реализации?!
Буду очень благодарен, если кто подскажет.


Заранее спасибо.

Ответил: D0Gmatist


Подурачился чуть больше чем вам требуется ))
http://jsfiddle.net/D0Gmatist/gcjyc0u3/

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

vitnet
PHP-developer

vitnet - 15 апреля 2015 20:31 -

Новость фиксированная?

Moreno
Юзер

Moreno - 15 апреля 2015 20:40 -


vitnet, нет, обычная, как все. Вот пример.

aios
Гости

aios - 15 апреля 2015 21:11 -



UPD* Не прокатит.... ибо подгрузка тпл идет раньше цикла где можно выдрать ID

ПафНутиЙ
Админ

ПафНутиЙ - 15 апреля 2015 21:12 -

Попробуйте вот этот хак

Каков вопрос - таков и ответ. Просто помните об этом.

aios
Гости

aios - 15 апреля 2015 21:18 -

ПафНутиЙ,
Если только если второй стиль просто оставить скрытым в shortstory.tpl и открывать его по значению поля - но тогда можно обойтись и xfgiven.

Moreno
Юзер

Moreno - 15 апреля 2015 21:24 -

Спасибо за данный хак, пригодится в копилочку) Но как открывать стиль, я там увидел и понял....а вот как его закрыть и в 0:00 автоматически вернуть прежний-стандартный shortstory не понятно((

ПафНутиЙ
Админ

ПафНутиЙ - 15 апреля 2015 21:36 -

Ну тогда остаётся только js

Каков вопрос - таков и ответ. Просто помните об этом.

Moreno
Юзер

Moreno - 15 апреля 2015 21:41 -

ПафНутиЙ, а Вы не смогли бы это реализовать на js? :) Не бесплатно конечно)

ПафНутиЙ
Админ

ПафНутиЙ - 15 апреля 2015 21:44 -

Я не принимаю заказы.

Каков вопрос - таков и ответ. Просто помните об этом.

Moreno
Юзер

Moreno - 15 апреля 2015 21:52 -

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

LazyDev
PHP-developer

LazyDev - 15 апреля 2015 21:50 -

Moreno, проще простого. Простой скрит на jq который пишется за 5 минут

Мой блог: LazyDev.pro

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

Moreno
Юзер

Moreno - 15 апреля 2015 22:04 -

Gameer, жду в скайпе)

LazyDev
PHP-developer

LazyDev - 16 апреля 2015 10:13 -

Как то так, нет ?
[xfgiven_class]

<script>
$(function(){
var $date = new Date();
var $set_date = $date.getFullYear() +'.'+ eval($date.getMonth()+1) +'.'+ $date.getDate();
if($set_date != '{date=Y.m.d}') {
$( "#menu" ).removeClass( "my_class" )
}
});
</script>

[/xfgiven_class]

Мой блог: LazyDev.pro

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

aios
Гости

aios - 16 апреля 2015 11:02 -

Gameer,
Чет ты намудрил, причем тут меню если человеку нужен новый стиль новости.

Сам постараюсь поваять

LazyDev
PHP-developer

LazyDev - 16 апреля 2015 11:05 -

aios, лол што ? Ты хоть понял работу скрипта ? Я привел пример, по истечению этого дня класс который прописывается в [xfvalue_class] будет убираться. Просто данные под себя подставить.

У меня такое ощущение, что ты вообще во всем этом не разбираешься.

Мой блог: LazyDev.pro

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

aios
Гости

aios - 16 апреля 2015 11:51 -

Ну во первых - кто тебя научил писать переменные со знаком $ - это чистой воды иудаизм. Разработчик прям из 90-х.

Боже что это?

$set_date = $date.getFullYear() +'.'+ eval($date.getMonth()+1) +'.'+ $date.getDate();


Неужели так было бы не изящнее?

var $date = new Date();
var $set_date = new Date('{date=Y.m.d}');


А теперь расскажи мне что это за логика такая - которая прибавляет 1 месяц. К дате которую только что получил?
И смысл этой твоей переменной - если ты дату получаешь одинаковую в обоих случаях и в JS и в DLE - Где здесь определяется что день закончился? Или {date=Y.m.d} у тебя как то по другому работает?

D0Gmatist
Юзер

D0Gmatist - 16 апреля 2015 11:58 -

Цитата: aios
А теперь расскажи мне что это за логика такая - которая прибавляет 1 месяц. К дате которую только что получил?
Ни хрена что в JS месяца исчисление идёт с нуля
и если PHP даст сегодняшнюю дату 2015-4-16
то JS 2015-3-16

LazyDev
PHP-developer

LazyDev - 16 апреля 2015 12:03 -

D0Gmatist, да что ему объяснять то ? Видишь человек ничего не знает, и что-то хочет доказать этим. Нет смысла ему даже код расписывать ибо он не может понять что к чему.

Мой блог: LazyDev.pro

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

aios
Гости

aios - 16 апреля 2015 12:06 -

Все хорошо угомонитесь - реально пару моментов упустил. Спасибо что разъяснили.

LazyDev
PHP-developer

LazyDev - 16 апреля 2015 11:59 -

aios, ты действительно ничерта не знаешь. Супер мега-кодеру объясняю суть работы моего скрипта.
Здесь берем текущую дату :
var $date = new Date();

Здесь мы берем из поточной даты год, месяц и день.
var $set_date = $date.getFullYear() +'.'+ eval($date.getMonth()+1) +'.'+ $date.getDate();

Здесь проверка на сегодняшнюю дату и дату самой новости. (ОНИ ОТЛИЧАЮТСЯ)
if($set_date != '{date=Y.m.d}') {
$( "#menu" ).removeClass( "my_class" )
}


Теперь уяснил, кодерщик ? И да, не учи меня как мне писать переменные, для начала сам бы подучился чем других учить.

Мой блог: LazyDev.pro

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

aios
Гости

aios - 16 апреля 2015 12:05 -

Мде.. этот момент я упустил. Я работал долго с Фреймворками и для меня запись {date=Y.m.d} автоматически означала текущее время. В DLE же оно оказывается отражает дату новости.

так что извиняюсь в дискуссии был не прав.

D0Gmatist
Юзер

D0Gmatist - 16 апреля 2015 11:46 -

Веялку не сломай

aios
Гости

aios - 16 апреля 2015 11:59 -

Бог сарказма.

D0Gmatist
Юзер

D0Gmatist - 16 апреля 2015 12:01 -

Бог правды

scaver
Юзер

scaver - 16 апреля 2015 11:04 -

http://prowebber.ru/dle/hacks/15508-smena-kategorii-po-nastupleniyu-daty.html
создайте категорию, укажите short-story
по наступлении даты меняйте категорию

Moreno
Юзер

Moreno - 17 апреля 2015 22:44 -

scaver, ахинею не пиши

scaver
Юзер

scaver - 17 апреля 2015 23:06 -

В чем ахинея?
я предложил создать категорию с названием эксклюзив, указав свой tpl для short-story.
А с помощью хака (правда не знаю работает или нет), пускай при наступлении даты меняется категория на нужную

Moreno
Юзер

Moreno - 18 апреля 2015 00:10 -

scaver, а в том, что если у меня новости уже в категории НОВОСТИ и они больше никакой категории не принадлежат? Куда я их тогда буду перемещать?

scaver
Юзер

scaver - 18 апреля 2015 00:19 -

ну давайте так, без удара палкой все равно работать не будет, так как дле ест стандартный шаблон short-story в главной категории (не доглядел), а задумка была в том, что изначально новость постилась бы в категорию "Эксклюзив", а после наступлении даты перемещалась в ту категорию которую вы укажете.

Moreno
Юзер

Moreno - 18 апреля 2015 00:25 -

ну сейчас же всё прекрасно работает, благодаря D0Gmatist...без всяких ударов палкой....так что....

scaver
Юзер

scaver - 18 апреля 2015 00:26 -

:-) очень хорошо

Moreno
Юзер

Moreno - 17 апреля 2015 22:44 -

D0Gmatist, спасибо огромное, всё получилось)) респект тебе Dog)))

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

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

наверх