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

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


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

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

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

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

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


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

Ответил: D0Gmatist


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

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

vitnet
Эксперт

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 -

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

PunPun
Эксперт

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

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

well​

Moreno
Юзер

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

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

PunPun
Эксперт

PunPun - 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]

well​

aios
Эксперт

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

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

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

PunPun
Эксперт

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

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

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

well​

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

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

PunPun
Эксперт

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

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

well​

aios
Эксперт

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

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

PunPun
Эксперт

PunPun - 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" )
}


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

well​

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)))

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

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

наверх