cotonti.com : Тег cotonti в php код который на tpl странице https://www.cotonti.com Последние сообщения в теме Cotonti en Thu, 09 Oct 2025 01:35:38 -0000 Kort Добавил возможность настройки вывода через ресурсную строку, финальный вариант

]]>
пт, 26 апр 2024 05:51:40 -0000
vpktz #47992 Kort:

Тестируй. В projects.list.tpt в блоке PRJ_ROWS используй тег {PRJ_ROW_PTE_TO_EXPIRE}

По идее, в projects.tpl будет работать {PRJ_PTE_TO_EXPIRE}

 

Пришли к тому что сделали плагин.  СПАСИБО, это красиво

в projects.tpl тоже работает но где будет 1 проект там можно релиазовать и  скрипт с id.  что бы тикали секунды, уж больно это оживляет и одинамичивает страницу (нравится)

]]>
чт, 25 апр 2024 10:25:18 -0000
Kort Тестируй. В projects.list.tpt в блоке PRJ_ROWS используй тег {PRJ_ROW_PTE_TO_EXPIRE}

По идее, в projects.tpl будет работать {PRJ_PTE_TO_EXPIRE}

]]>
чт, 25 апр 2024 06:37:43 -0000
vpktz #47990 Kopusha:

А можно не нагружать браузер интересной только разрабам функциональностью. И просто написать "Осталось ХХХ"
- осталось 1 час 20 минут
- осталось 3 дня

- осталось больше месяца

и тд

Такой бы вариант был бы хорош как раз для листа с проектами в projects.list.tpl

Есть стандартный тег из плагина 

{PRJ_ROW_EXPIRED_DAYS}

но он показывает только дни почему то 

 

 

В плагине файл expiredprojects.projectstags.main.php

<?php defined('COT_CODE') or die('Wrong URL');
/* ====================
[BEGIN_COT_EXT]
Hooks=projectstags.main
Tags=projects.list.tpl:{PRJ_ROW_EXPIRED},{PRJ_ROW_EXPIRED_DAYS},{PRJ_ROW_EXPIRED_TITLE};projects.tpl:{PRJ_EXPIRED},{PRJ_EXPIRED_DAYS},{PRJ_EXPIRED_TITLE}
[END_COT_EXT]
==================== */

require_once cot_langfile('expiredprojects', 'plug');
$datatoexp = ($item_data['item_update']) ? $item_data['item_update'] : $item_data['item_date'] ;
$temp_array["EXPIRED"] = $datatoexp + $item_data['item_expired'];
$temp_array["EXPIRED_DAYS"] = round(($datatoexp + $item_data['item_expired'] - $sys['now'])/ 86400);
$temp_array["EXPIRED_TITLE"] = $L['expiredprojects_tags_title'];

может можно как то дописать плагин, у него видимо только сутки прописаны судя по 86400 а часов , минут нет

]]>
ср, 24 апр 2024 20:31:07 -0000
Kopusha А можно не нагружать браузер интересной только разрабам функциональностью. И просто написать "Осталось ХХХ"
- осталось 1 час 20 минут
- осталось 3 дня

- осталось больше месяца

и тд

]]>
ср, 24 апр 2024 19:19:59 -0000
vpktz #47988 Kort:
#47987 vpktz:

Есть еще одна проблема, таймер срабатывает только в первом проекте если например брать лист в projects.list.tpl видимо скрипт срабатывает только один раз

Это и понятно. Надо переходить с id на классы и всю эту историю применять в цикле. Или найти готовый jQuery плагин. Тогда уже поискать что-то, где реализуется локализация и разбор на падежи слова "день". Ну и формат даты чтобы локализовался, хотя это совершенно не критично.

 

Вообщем получается нужно " Надо переходить с id на классы и всю эту историю применять в цикле.

Или "найти готовый jQuery плагин."

 

]]>
ср, 24 апр 2024 19:12:31 -0000
Kort #47987 vpktz:

Есть еще одна проблема, таймер срабатывает только в первом проекте если например брать лист в projects.list.tpl видимо скрипт срабатывает только один раз

Это и понятно. Надо переходить с id на классы и всю эту историю применять в цикле. Или найти готовый jQuery плагин. Тогда уже поискать что-то, где реализуется локализация и разбор на падежи слова "день". Ну и формат даты чтобы локализовался, хотя это совершенно не критично.

]]>
ср, 24 апр 2024 05:06:44 -0000
vpktz #47985 Dayver:
#47984 vpktz:
...PIRED|cot_date('m/d/Y H:i +0300', $his)}" в место обычны....

... {PRJ_ROW_EXPIRED|cot_date('d.m.Yг H:i', $this)}  он выводит корректную дату....

...OW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)} выдает не корре....

$this .... может просто не нужно делать синтаксических ошибок при копипасте?

Есть такое , заработало)) 

Добавлено 3 минуты спустя:

#47983 Kort:

https://jsfiddle.net/Rackne/2x1rdgzy/14/

Это волшебно, на сколько же живее, красивее и ентереснее теперь смотриться это все blush

 

Есть еще одна проблема, таймер срабатывает только в первом проекте если например брать лист в projects.list.tpl видимо скрипт срабатывает только один раз

]]>
вт, 23 апр 2024 07:54:28 -0000
Kort #47985 Dayver:

Моя плохой)

]]>
вт, 23 апр 2024 05:24:58 -0000
Dayver #47984 vpktz:
...PIRED|cot_date('m/d/Y H:i +0300', $his)}" в место обычны....

... {PRJ_ROW_EXPIRED|cot_date('d.m.Yг H:i', $this)}  он выводит корректную дату....

...OW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)} выдает не корре....

$this .... может просто не нужно делать синтаксических ошибок при копипасте?

]]>
пн, 22 апр 2024 23:15:05 -0000
vpktz #47983 Kort:

https://jsfiddle.net/Rackne/2x1rdgzy/14/

 

Если вставлять тег в 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 и вот я опять пишу новый пост о помощи.... indecision

]]>
пн, 22 апр 2024 20:10:23 -0000
Kort https://jsfiddle.net/Rackne/2x1rdgzy/14/

]]>
пн, 22 апр 2024 19:21:44 -0000
vpktz #47980 Kort:

Тебе же готовый скрипт дан. Сформируй дату завершения проекта, добавь ее в кастомный атрибут тега чтобы можно было считать его javascript и все.

Примерно так:

<div id="clock" data-expires="{PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)}"></div>

https://jsfiddle.net/Rackne/2x1rdgzy/3/

Добавлено 1 минута спустя:

#47978 Kopusha:

Смутило "конечно". Обычно оставляю единичные не используемые более нигде скрипты в теле. Вынести всегда успею. Особенно при разработке в теле норм.

А ты не смущайся. Кто как хочет, конечно, но в итоге все же желательно убирать все в js.

 

 

Не работает.

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)} не влияет..

 

 

 

 

 

]]>
пн, 22 апр 2024 19:09:55 -0000
Kopusha #47979 vpktz:

Хочется что бы он показывал не так грубо ( в днях), а до минуты например (осталось 4 дня, 7 часов, 56 минут)

 

Тебе надо что бы на стр было написано - До 12:15 3 марта 2025
просто {PRJ_ROW_EXPIRED|cot_date('m/d/Y H:i +0300', $his)}
Или "До конца проекта осталось 11 месяцев три дня и 15 минут"
Тогда как Корт советует

]]>
вс, 21 апр 2024 17:24:35 -0000
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.

]]>
вс, 21 апр 2024 13:42:27 -0000
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 минут)

 

]]>
вс, 21 апр 2024 13:23:15 -0000
Kopusha Смутило "конечно". Обычно оставляю единичные не используемые более нигде скрипты в теле. Вынести всегда успею. Особенно при разработке в теле норм.

]]>
вс, 21 апр 2024 12:13:04 -0000
Kort #47976 Kopusha:
#47974 Kort:

Скрипт, конечно убираем в отдельный файл.

А смысл?

Ну это кто как хочет)

]]>
вс, 21 апр 2024 10:35:58 -0000
Kopusha #47974 Kort:

Скрипт, конечно убираем в отдельный файл.

А смысл?

]]>
вс, 21 апр 2024 10:24:59 -0000
Kabak Нужно писать код на JS чтобы на странице шёл обратный отсчёт в реальном времени

]]>
вс, 21 апр 2024 08:36:35 -0000
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>

Скрипт, конечно убираем в отдельный файл.

]]>
вс, 21 апр 2024 05:37:15 -0000
Kopusha Не правильный путь задать вопрос так что я дважды прочитав не понял что спрашивали.

]]>
вс, 21 апр 2024 04:31:34 -0000
vpktz Подразумевается что на одно из страниц projects.list.tpl будет есть тег с датой

{PRJ_ROW_EXPIRED|cot_date('d.m.Yг H:i', $this)}

Это дата до которой действует заказ. 

Можно ли как то этот тег интегрировать в маленький php код который будет прямо на странице, который обращаясь к этой дате будет отсчитывать сколько осталось дней/часов/минут/секунд?

Или просто подскажите есть ли варианты вписывать теги cotonti прямо  в php код который будет прямо на странице tpl? Хочу по эксперементировать.

Я понимаю что это не правльный путь и проще дописать этот самый плагин который выдает дату до которой идет отсчет.  Но  все же интересно, возможно ли теги вставлять в php код

]]>
сб, 20 апр 2024 14:55:26 -0000