vpktz |
|
---|---|
Подразумевается что на одно из страниц projects.list.tpl будет есть тег с датой {PRJ_ROW_EXPIRED|cot_date('d.m.Yг H:i', $this)} Это дата до которой действует заказ. Можно ли как то этот тег интегрировать в маленький php код который будет прямо на странице, который обращаясь к этой дате будет отсчитывать сколько осталось дней/часов/минут/секунд? Или просто подскажите есть ли варианты вписывать теги cotonti прямо в php код который будет прямо на странице tpl? Хочу по эксперементировать. Я понимаю что это не правльный путь и проще дописать этот самый плагин который выдает дату до которой идет отсчет. Но все же интересно, возможно ли теги вставлять в php код |
Kopusha |
|
---|---|
Не правильный путь задать вопрос так что я дважды прочитав не понял что спрашивали. |
Kort |
|
---|---|
Смешались в кучу кони, люди... Если надо просто статично вывести время до окончания проекта, то это будет php. Про теги и Котонти тоже ничего не понял. Если надо чтобы "тикало", то javascript. Самый простой вариант: <html> <head> <title>Multiple Countdown Clocks</title> </head> <body> <div id="clock"></div> </body> <script language="JavaScript"> StartCountDown("clock","4/21/2024 19:00 +0300") /* Author: Robert Hashemian (http://www.hashemian.com/) Modified by: Munsifali Rashid (http://www.munit.co.uk/) Modified by: Tilesh Khatri */ function StartCountDown(myDiv,myTargetDate) { var dthen = new Date(myTargetDate); var dnow = new Date(); ddiff = new Date(dthen-dnow); gsecs = Math.floor(ddiff.valueOf()/1000); CountBack(myDiv,gsecs); } function Calcage(secs, num1, num2) { s = ((Math.floor(secs/num1))%num2).toString(); if (s.length < 2) { s = "0" + s; } return (s); } function CountBack(myDiv, secs) { var DisplayStr; var DisplayFormat = "%%D%% Days %%H%%:%%M%%:%%S%%"; DisplayStr = DisplayFormat.replace(/%%D%%/g, Calcage(secs,86400,100000)); DisplayStr = DisplayStr.replace(/%%H%%/g, Calcage(secs,3600,24)); DisplayStr = DisplayStr.replace(/%%M%%/g, Calcage(secs,60,60)); DisplayStr = DisplayStr.replace(/%%S%%/g, Calcage(secs,1,60)); if (secs > 0) { document.getElementById(myDiv).innerHTML = DisplayStr; setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990); } else { document.getElementById(myDiv).innerHTML = "Auction Over"; } } </script> </html> Скрипт, конечно убираем в отдельный файл. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
|
This post was edited by Kort (2024-04-21 06:07, 6 months ago) |
Kabak |
|
---|---|
Нужно писать код на JS чтобы на странице шёл обратный отсчёт в реальном времени |
Kopusha |
|
---|---|
#47974 Kort: А смысл? |
Kort |
|
---|---|
Kopusha |
|
---|---|
Смутило "конечно". Обычно оставляю единичные не используемые более нигде скрипты в теле. Вынести всегда успею. Особенно при разработке в теле норм. |
vpktz |
|
---|---|
Начал интересоваться про php и хотел по эксперементировать, но сейчас понял что php не воспроизводитьсяся на tpl страницах в целях безопасности. Ладно отпустим этот php)))
Вопрос. Для модуля projects есть плагин expiredprojects который обозначает время до которого проект "годен". Тег указывает дату пример (до 03.05.2024г 18:14). {PRJ_ROW_EXPIRED|cot_date('d.m.Yг H:i', $this)}
Тег указывает сколько дней есталось пример (осталось 4 дня) {PRJ_ROW_EXPIRED_DAYS|cot_date('d.m.Y H:i:s', $this)}
Хочется что бы он показывал не так грубо ( в днях), а до минуты например (осталось 4 дня, 7 часов, 56 минут)
|
Kort |
|
---|---|
Тебе же готовый скрипт дан. Сформируй дату завершения проекта, добавь ее в кастомный атрибут тега чтобы можно было считать его javascript и все. Примерно так: <div id="clock" data-expires="{PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $this)}"></div> https://jsfiddle.net/Rackne/2x1rdgzy/3/ Добавлено 1 минута спустя: #47978 Kopusha: А ты не смущайся. Кто как хочет, конечно, но в итоге все же желательно убирать все в js. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
|
This post was edited by Kort (2024-04-23 05:22, 6 months ago) |
Kopusha |
|
---|---|
#47979 vpktz: Тебе надо что бы на стр было написано - До 12:15 3 марта 2025 |
vpktz |
|
---|---|
#47980 Kort:
Не работает. 1) Я не понимаю как скрипт будет работать если у него по дефолту прописанны параметры
<script type="text/javascript">
StartCountDown("clock","4/25/2024 19:00 +0300")
function StartCountDown(myDiv,myTargetDate) {
var dthen = new Date(myTargetDate);
var dnow = new Date();
ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf()/1000);
CountBack(myDiv,gsecs);
}
function Calcage(secs, num1, num2) {
s = ((Math.floor(secs/num1))%num2).toString();
if (s.length < 2) {
s = "0" + s;
}
return (s);
}
function CountBack(myDiv, secs) {
var DisplayStr;
var DisplayFormat = "%%D%% Days %%H%%:%%M%%:%%S%%";
DisplayStr = DisplayFormat.replace(/%%D%%/g, Calcage(secs,86400,100000));
DisplayStr = DisplayStr.replace(/%%H%%/g, Calcage(secs,3600,24));
DisplayStr = DisplayStr.replace(/%%M%%/g, Calcage(secs,60,60));
DisplayStr = DisplayStr.replace(/%%S%%/g, Calcage(secs,1,60));
if (secs > 0) {
document.getElementById(myDiv).innerHTML = DisplayStr;
setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990);
} else {
document.getElementById(myDiv).innerHTML = "Auction Over";
}
}
</script>
Соответственно при вводе <div id="clock" data-expires="{PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)}"></div> он выводит эти дефолтные значения, то есть отсчет начинается от 4/25/2024 19:00 +0300 и даже {PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)} не влияет..
|
Kort |
|
---|---|
SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
vpktz |
|
---|---|
#47983 Kort:
Если вставлять тег в data-expires="{PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)}" в место обычных цифр то не отрабатывает и выводит Auction Over Еще заметил что по стандарту идет тег {PRJ_ROW_EXPIRED|cot_date('d.m.Yг H:i', $this)} он выводит корректную дату А модифицированный тег {PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)} выдает не корректно 01/01/1970 02:00 +0300 Следовательно подумал что менять местами значения в стандартном теге нельзя, и хотел поменять местами значения в скрипте. Бегло осмотрел код, ничего подобного m/d/Y H:i не увидел, понял что js это что то другое от php и вот я опять пишу новый пост о помощи.... |
Dayver |
|
---|---|
#47984 vpktz: ...PIRED|cot_date('m/d/Y H:i +0300', $his)}" в место обычны.... $this .... может просто не нужно делать синтаксических ошибок при копипасте? Pavlo Tkachenko aka Dayver
|
Kort |
|
---|---|
#47985 Dayver: Моя плохой) SED.by - создание сайтов, разработка плагинов и тем для Котонти
|