Модуль счетчика сбережений для DotNetNuke? - PullRequest
0 голосов
/ 28 октября 2010

Я искал долго и упорно модуль, который будет показывать Savings клиента ($$).Есть два способа, которыми я хотел бы реализовать это.


Метод первый:
Клиент вводит «базовую» сумму в $$, дату начала и возрастающее значение за период времени
Пример: База =$ 1000000;Начало: 1/1/2010;Приращение = $ 100;Период времени = Минута
Это будет стоить 1 432 000 долларов США ровно через 3 дня (3 дня * 24 часа * 60 минут * 100 долларов США = 432 000 долларов США с 01.01.2010)
Каждый раз, когда пользователь обновляет страницу, сохраненная сумма рассчитывается нао разнице во времени между датой начала и текущей датой и отображается для пользователя.

Метод второй: (IDEAL)
Та же настройка, что и выше, но сбережения будут обновляться каждую секунду (и, возможно, скакой-то счетчик, похожий на одометр, который постоянно переворачивается).

Кто-нибудь видел или слышал о каком-либо модуле, подобном этому?Я искал высоко и низко, и единственные «счетчики», которые я могу найти, - это счетчики посещений и тому подобное.Если никто не знает о каких-либо ранее существующих модулях, как это можно закодировать в модуль DotNetNuke?Я еще не углубился в мир кодирования пользовательских модулей.Я только настроил другие модули, чтобы они работали так, как мне нужно.
Любая помощь очень ценится!
ОБНОВЛЕНИЕ:
Вот мой окончательный код.В разделе «нижний колонтитул» (в разделе «Настройки») HTML-модуля DNN: $ (document) .ready (function () {
setTimeout('countit()',1); //1 makes it display the value quickly after loading    
});

function countit()
{
  var amountperyear=4000000; //THIS IS THE ONLY NUMBER TO EDIT EACH YEAR

  var msperyear=31536000000; //milliseconds per year

  var today=new Date();
  var startdate=new Date(today.getYear(),0,00);  //January 1, of the current year at midnight?
  var diff=Math.ceil((today.getTime()-startdate.getTime())); //Time difference in milliseconds
  var newvalue=(diff*(amountperyear/msperyear)); // (# of ms) * (amount/ms)
  var displayvalue=newvalue.toLocaleString(); //Convert to currency formatting
  $("#mycounter").html("$"+displayvalue);
  setTimeout('countit()',500); //Have it update twice per second
}

</script>

В разделе «Содержимое» HTML-модуля DNN:

<center>
This year, we've saved our customers:
<b><div id="mycounter"><i>Loading...</i></div></b>
</center>


НОВЫЙ ВЫПУСК:
Этот скрипт работает только в Internet Explorer. В Chrome и Firefox результат отключен более чем на миллиард. Я не совсем уверен, чтовызывая проблему, но я полагаю, что это связано с датой математики или .toLocaleString (), возможно? Любой, кто мог столкнуться с этой проблемой раньше? Любое понимание или ссылки будет принята с благодарностью! На данный момент, я просто, но в некоторыхусловные комментарии, но это не может быть постоянным исправлением!
<![if !IE]>You must use IE to view this<![endif]-->

1 Ответ

2 голосов
/ 04 ноября 2010

Создайте HTML-файл на вашем локальном жестком диске и поместите его в него.Затем откройте его в своем веб-браузере.Это начнет увеличивать число.То, что вы ищете, не существует в DNN, но это можно сделать с помощью простого Javascript.Это должно начать вас.

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">

var count=5;

$(document).ready(function(){

setTimeout('countit()',1000);

});



function countit()
{
  var startmoney = 10;

  var today=new Date();
  var startdate=new Date(2010, 10, 01);  //this is actually 11-1-2010 the 10 is 0 based so actually month 11
  var one_day=1000*60*60*24;
  var diff=Math.ceil((today.getTime()-startdate.getTime())/(one_day));
       //diff is the main factor which is the difference in days between startdate & today

   count=count*2;
   var newvalue=startmoney*count*diff;

  $("#mycounter").html(newvalue);

   setTimeout('countit()',1000);
}

</script>
</head>
<body
<div id="mycounter"></div>
</body>
</html>
...