Sub Menu
Links Menu
Online Users

In total there are 322 users online :: 1 registered, 0 hidden and 321 guests

Most users ever online was 1091 on Wed Aug 16, 2023 5:27 pm

Registered users: Google [Bot] based on users active over the past 60 minutes

[FIX] event date translation in posting...

Support for IntegraMOD 140

Moderator: Integra Moderator

[FIX] event date translation in posting...

PostAuthor: evolver » Sun Jul 23, 2006 3:36 pm

[size=99px][/u][/size]
It simply wasn't possible to translate the eventdates in a posting...
Translations were only possible after send, but then problems would occur after re-edit...

[size=99px][/u][/size]
With the function strtotime(), these date/time-strings are transformed from string to time within the code for further processing...
strtotime() will only recognize english...it can't cope with translations...

[size=99px][/u][/size]
Translated date/time-strings have to be translated back to english before letting strtotime() transform them to dates/times.

[size=99px][/u][/size]
To fix this, a new function to translate back to english is needed.
I have created one by the name transback()


[size=99px][/u][/size]
[size=99px]
Code: Select all
 // translate a date for displayfunction date_dsp($format, $date){

BEFORE ADD]
Code: Select all
 function transback(&$datestring){     global $board_config, $lang;     static $translate;       if ( empty($translate) && $board_config['default_lang'] != 'english' )     {                 @reset($lang['datetime']);         while ( list($match, $replace) = @each($lang['datetime']) )         {             $datestring = str_replace($lang['datetime'][$match], $match, $datestring);         }     $datestring = ( !empty($translate) ) ? strtr($datestring, $translate) ](this function is much like [color=blue]date_dsp()[/color], but it does the reverse translation instead...



OK, we have the function...
Now, let's add it before every [color=green]date/time-string[/color]-transformation]In [color=blue][b]posting.php[/b][/color]px]
- for [u]an event[/u]]FIND:[/b]
[code]$topic_calendar_time = strtotime($calendar_event);[/code]
[b]BEFORE ADD]
[code]transback($calendar_event);[/code]
- for [u]the duration of an event[/u]]FIND:[/b]
[code]$topic_calendar_duration = strtotime($calendar_duration) - $topic_calendar_time;[/code]
[b]BEFORE ADD]
[code]transback($calendar_duration);[/code]
- for [u]a delayed topic[/u]
[b]FIND]
[code]$forcetime = strtotime($HTTP_POST_VARS['forcetime']);[/code]
[b]BEFORE ADD]
[code]transback($HTTP_POST_VARS['forcetime']);


[align=center][size=99px]
You can do further translation on calendar.js in [b]languagelang_whateverlanguage

(but not in templates, because that's for default-english only!!)

[hr][align=center:1mfbtsfc]This problem has been around for too long...
I have fixed this in less than 24 hours... <img>[/align:1mfbtsfc]
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

PostAuthor: Michaelo » Tue Jul 25, 2006 8:36 am

You might add this comment somewhere in code

// translate to English for processing by strtotime()

Nice job <img> no reason why it shouldnt work I 141
Last edited by Michaelo on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
Kiss Portal Engine phpbbireland (status: Released)
User avatar
Michaelo
Administrator
Administrator
 
Posts: 1646
Likes: 0 post
Liked in: 0 post
Joined: Sat Mar 11, 2006 5:14 pm
Cash on hand: 0.00
Location: Dublin, Ireland

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Wed Jul 26, 2006 8:07 am

Thanks Michaelo :wink:
A way to change it this preference in the ACP would be much nicer...
The best way would be by user profile timeformat...
And not with an additional field...but recognized by the full timeformat to keep it simple...
But I don't know if it's possible, I'm looking for a way...
It's not that simple, it's not only PHP but javascript as well...
Last edited by evolver on Wed Jul 26, 2006 6:23 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: Juppertje » Wed Jul 26, 2006 2:16 pm

i have done all the changes only 1 part i can not edit and do and that is this part:

Code: Select all
 1. Change the preference in [color=blue]calendar.js[/color] for the javascript box...[b]FIND][code]param_default("timeFormat", "12");[/code][b]CHANGE [color=red]12[/color] to [color=green]24[/color]][code]param_default("timeFormat", "24"); [/code]


I can not find that part ]param_default("timeFormat", "12");[/size]

[code]/*  Copyright Mihai Bazon, 2002, 2003  |  httppx];     this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];     this.isPopup = true;     this.weekNumbers = true;     this.firstDayOfWeek = firstDayOfWeek; // 0 for Sunday, 1 for Monday, etc.     this.showsOtherMonths = false;     this.dateStr = dateStr;     this.ar_days = null;     this.showsTime = false;     this.time24 = true;     this.yearStep = 2;     // HTML elements     this.table = null;     this.element = null;     this.tbody = null;     this.firstdayname = null;     // Combo boxes     this.monthsCombo = null;     this.yearsCombo = null;     this.hilitedMonth = null;     this.activeMonth = null;     this.hilitedYear = null;     this.activeYear = null;     // Information     this.dateClicked = false;       // one-time initializations     if (typeof Calendar._SDN == "undefined") {         // table of short day names         if (typeof Calendar._SDN_len == "undefined")             Calendar._SDN_len = 3;         var ar = new Array();         for (var i = 8; i > 0;) {             ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);         }         Calendar._SDN = ar;         // table of short month names         if (typeof Calendar._SMN_len == "undefined")             Calendar._SMN_len = 3;         ar = new Array();         for (var i = 12; i > 0;) {             ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);         }         Calendar._SMN = ar;     }};  // ** constants  /// "static", needed for event handlers.Calendar._C = null;  /// detect a special case of "web browser"Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&            !/opera/i.test(navigator.userAgent) );  Calendar.is_ie5 = ( Calendar.is_ie && /msie 5.0/i.test(navigator.userAgent) );  /// detect Opera browserCalendar.is_opera = /opera/i.test(navigator.userAgent);  /// detect KHTML-based browsersCalendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);  // BEGIN] != className) {             ar[ar.length] = cls[i];         }     }     el.className = ar.join(" ");};  Calendar.addClass = function(el, className) {     Calendar.removeClass(el, className);     el.className += " " + className;};  Calendar.getElement = function(ev) {     if (Calendar.is_ie) {         return window.event.srcElement;     } else {         return ev.currentTarget;     }};  Calendar.getTargetElement = function(ev) {     if (Calendar.is_ie) {         return window.event.srcElement;     } else {         return ev.target;     }};  Calendar.stopEvent = function(ev) {     ev || (ev = window.event);     if (Calendar.is_ie) {         ev.cancelBubble = true;         ev.returnValue = false;     } else {         ev.preventDefault();         ev.stopPropagation();     }     return false;};  Calendar.addEvent = function(el, evname, func) {     if (el.attachEvent) { // IE         el.attachEvent("on" + evname, func);     } else if (el.addEventListener) { // Gecko / W3C         el.addEventListener(evname, func, true);     } else {         el["on" + evname] = func;     }};  Calendar.removeEvent = function(el, evname, func) {     if (el.detachEvent) { // IE         el.detachEvent("on" + evname, func);     } else if (el.removeEventListener) { // Gecko / W3C         el.removeEventListener(evname, func, true);     } else {         el["on" + evname] = null;     }};  Calendar.createElement = function(type, parent) {     var el = null;     if (document.createElementNS) {         // use the XHTML namespace; IE won't normally get here unless         // _they_ "fix" the DOM2 implementation.         el = document.createElementNS("http://www.w3.org/1999/xhtml", type);     } else {         el = document.createElement(type);     }     if (typeof parent != "undefined") {         parent.appendChild(el);     }     return el;};  // END: UTILITY FUNCTIONS  // BEGIN: CALENDAR STATIC FUNCTIONS  /** Internal -- adds a set of events to make some element behave like a button. */Calendar._add_evs = function(el) {     with (Calendar) {         addEvent(el, "mouseover", dayMouseOver);         addEvent(el, "mousedown", dayMouseDown);         addEvent(el, "mouseout", dayMouseOut);         if (is_ie) {             addEvent(el, "dblclick", dayMouseDblClick);             el.setAttribute("unselectable", true);         }     }};  Calendar.findMonth = function(el) {     if (typeof el.month != "undefined") {         return el;     } else if (typeof el.parentNode.month != "undefined") {         return el.parentNode;     }     return null;};  Calendar.findYear = function(el) {     if (typeof el.year != "undefined") {         return el;     } else if (typeof el.parentNode.year != "undefined") {         return el.parentNode;     }     return null;};  Calendar.showMonthsCombo = function () {     var cal = Calendar._C;     if (!cal) {         return false;     }     var cal = cal;     var cd = cal.activeDiv;     var mc = cal.monthsCombo;     if (cal.hilitedMonth) {         Calendar.removeClass(cal.hilitedMonth, "hilite");     }     if (cal.activeMonth) {         Calendar.removeClass(cal.activeMonth, "active");     }     var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];     Calendar.addClass(mon, "active");     cal.activeMonth = mon;     var s = mc.style;     s.display = "block";     if (cd.navtype <0> 0; --i) {         if (Y >= cal.minYear && Y <= cal.maxYear) {             yr.firstChild.data = Y;             yr.year = Y;             yr.style.display = "block";             show = true;         } else {             yr.style.display = "none";         }         yr = yr.nextSibling;         Y += fwd ? cal.yearStep : -cal.yearStep;     }     if (show) {         var s = yc.style;         s.display = "block";         if (cd.navtype <0> 2)))             Calendar.removeClass(el, "active");         Calendar.removeClass(el, "hilite");         Calendar.removeClass(el.parentNode, "rowhilite");     }     ev || (ev = window.event);     if (el.navtype == 50 && target != el) {         var pos = Calendar.getAbsolutePos(el);         var w = el.offsetWidth;         var x = ev.clientX;         var dx;         var decrease = true;         if (x > pos.x + w) {             dx = x - pos.x - w;             decrease = false;         } else             dx = pos.x - x;           if (dx <0>= 0;)             if (range[i] == current)                 break;         while (count-- > 0)             if (decrease) {                 if (--i <0>= range.length )                 i = 0;         var newval = range[i];         el.firstChild.data = newval;           cal.onUpdateTime();     }     var mon = Calendar.findMonth(target);     if (mon) {         if (mon.month != cal.date.getMonth()) {             if (cal.hilitedMonth) {                 Calendar.removeClass(cal.hilitedMonth, "hilite");             }             Calendar.addClass(mon, "hilite");             cal.hilitedMonth = mon;         } else if (cal.hilitedMonth) {             Calendar.removeClass(cal.hilitedMonth, "hilite");         }     } else {         if (cal.hilitedMonth) {             Calendar.removeClass(cal.hilitedMonth, "hilite");         }         var year = Calendar.findYear(target);         if (year) {             if (year.year != cal.date.getFullYear()) {                 if (cal.hilitedYear) {                     Calendar.removeClass(cal.hilitedYear, "hilite");                 }                 Calendar.addClass(year, "hilite");                 cal.hilitedYear = year;             } else if (cal.hilitedYear) {                 Calendar.removeClass(cal.hilitedYear, "hilite");             }         } else if (cal.hilitedYear) {             Calendar.removeClass(cal.hilitedYear, "hilite");         }     }     return Calendar.stopEvent(ev);};  Calendar.tableMouseDown = function (ev) {     if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {         return Calendar.stopEvent(ev);     }};  Calendar.calDragIt = function (ev) {     var cal = Calendar._C;     if (!(cal && cal.dragging)) {         return false;     }     var posX;     var posY;     if (Calendar.is_ie) {         posY = window.event.clientY + document.body.scrollTop;         posX = window.event.clientX + document.body.scrollLeft;     } else {         posX = ev.pageX;         posY = ev.pageY;     }     cal.hideShowCovered();     var st = cal.element.style;     st.left = (posX - cal.xOffs) + "px";     st.top = (posY - cal.yOffs) + "px";     return Calendar.stopEvent(ev);};  Calendar.calDragEnd = function (ev) {     var cal = Calendar._C;     if (!cal) {         return false;     }     cal.dragging = false;     with (Calendar) {         removeEvent(document, "mousemove", calDragIt);         removeEvent(document, "mouseup", calDragEnd);         tableMouseUp(ev);     }     cal.hideShowCovered();};  Calendar.dayMouseDown = function(ev) {     var el = Calendar.getElement(ev);     if (el.disabled) {         return false;     }     var cal = el.calendar;     cal.activeDiv = el;     Calendar._C = cal;     if (el.navtype != 300) with (Calendar) {         if (el.navtype == 50) {             el._current = el.firstChild.data;             addEvent(document, "mousemove", tableMouseOver);         } else             addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);         addClass(el, "hilite active");         addEvent(document, "mouseup", tableMouseUp);     } else if (cal.isPopup) {         cal._dragStart(ev);     }     if (el.navtype == -1 || el.navtype == 1) {         if (cal.timeout) clearTimeout(cal.timeout);         cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);     } else if (el.navtype == -2 || el.navtype == 2) {         if (cal.timeout) clearTimeout(cal.timeout);         cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);     } else {         cal.timeout = null;     }     return Calendar.stopEvent(ev);};  Calendar.dayMouseDblClick = function(ev) {     Calendar.cellClick(Calendar.getElement(ev), ev || window.event);     if (Calendar.is_ie) {         document.selection.empty();     }};  Calendar.dayMouseOver = function(ev) {     var el = Calendar.getElement(ev);     if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {         return false;     }     if (el.ttip) {         if (el.ttip.substr(0, 1) == "_") {             el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);         }         el.calendar.tooltips.firstChild.data = el.ttip;     }     if (el.navtype != 300) {         Calendar.addClass(el, "hilite");         if (el.caldate) {             Calendar.addClass(el.parentNode, "rowhilite");         }     }     return Calendar.stopEvent(ev);};  Calendar.dayMouseOut = function(ev) {     with (Calendar) {         var el = getElement(ev);         if (isRelated(el, ev) || _C || el.disabled) {             return false;         }         removeClass(el, "hilite");         if (el.caldate) {             removeClass(el.parentNode, "rowhilite");         }         el.calendar.tooltips.firstChild.data = _TT["SEL_DATE"];         return stopEvent(ev);     }};  /**  *  A generic "click" handler :) handles all types of buttons defined in this  *  calendar.  */Calendar.cellClick = function(el, ev) {     var cal = el.calendar;     var closing = false;     var newdate = false;     var date = null;     if (typeof el.navtype == "undefined") {         Calendar.removeClass(cal.currentDateEl, "selected");         Calendar.addClass(el, "selected");         closing = (cal.currentDateEl == el);         if (!closing) {             cal.currentDateEl = el;         }         cal.date = new Date(el.caldate);         date = cal.date;         newdate = true;         // a date was clicked         if (!(cal.dateClicked = !el.otherMonth))             cal._init(cal.firstDayOfWeek, date);     } else {         if (el.navtype == 200) {             Calendar.removeClass(el, "hilite");             cal.callCloseHandler();             return;         }         date = (el.navtype == 0) ? new Date() : new Date(cal.date);         // unless "today" was clicked, we assume no date was clicked so         // the selected handler will know not to close the calenar when         // in single-click mode.         // cal.dateClicked = (el.navtype == 0);         cal.dateClicked = false;         var year = date.getFullYear();         var mon = date.getMonth();         function setMonth(m) {             var day = date.getDate();             var max = date.getMonthDays(m);             if (day > max) {                 date.setDate(max);             }             date.setMonth(m);         };         switch (el.navtype) {             case 400:             Calendar.removeClass(el, "hilite");             var text = Calendar._TT["ABOUT"];             if (typeof text != "undefined") {                 text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";             } else {                 // FIXME: this should be removed as soon as lang files get updated!                 text = "Help and about box text is not translated into this language.n" +                     "If you know this language and you feel generous please updaten" +                     "the corresponding file in "lang" subdir to match calendar-en.jsn" +                     "and send it back to <mishoo> to get it into the distribution  ;-)nn" +                     "Thank you!n" +                     "http://dynarch.com/mishoo/calendar.epln";             }             alert(text);             return;             case -2:             if (year > cal.minYear) {                 date.setFullYear(year - 1);             }             break;             case -1:             if (mon > 0) {                 setMonth(mon - 1);             } else if (year-- > cal.minYear) {                 date.setFullYear(year);                 setMonth(11);             }             break;             case 1:             if (mon < 11) {                 setMonth(mon + 1);             } else if (year < cal.maxYear) {                 date.setFullYear(year + 1);                 setMonth(0);             }             break;             case 2:             if (year <cal>= 0;)                 if (range[i] == current)                     break;             if (ev && ev.shiftKey) {                 if (--i <0>= range.length )                 i = 0;             var newval = range[i];             el.firstChild.data = newval;             cal.onUpdateTime();             return;             case 0:             // TODAY will bring us here             if ((typeof cal.getDateStatus == "function") && cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {                 // remember, "date" was previously set to new                 // Date() if TODAY was clicked; thus, it                 // contains today date.                 return false;             }             break;         }         if (!date.equalsTo(cal.date)) {             cal.setDate(date);             newdate = true;         }     }     if (newdate) {         cal.callHandler();     }     if (closing) {         Calendar.removeClass(el, "hilite");         cal.callCloseHandler();     }};  // END: CALENDAR STATIC FUNCTIONS  // BEGIN: CALENDAR OBJECT FUNCTIONS  /**  *  This function creates the calendar inside the given parent.  If _par is  *  null than it creates a popup calendar inside the BODY element.  If _par is  *  an element, be it BODY, then it creates a non-popup calendar (still  *  hidden).  Some properties need to be set before calling this function.  */Calendar.prototype.create = function (_par) {     var parent = null;     if (! _par) {         // default parent is the document body, in which case we create         // a popup calendar.         parent = document.getElementsByTagName("body")[0];         this.isPopup = true;     } else {         parent = _par;         this.isPopup = false;     }     this.date = this.dateStr ? new Date(this.dateStr) : new Date();       var table = Calendar.createElement("table");     this.table = table;     table.cellSpacing = 0;     table.cellPadding = 0;     table.calendar = this;     Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);       var div = Calendar.createElement("div");     this.element = div;     div.className = "calendar";     if (this.isPopup) {         div.style.position = "absolute";         div.style.display = "none";     }     div.appendChild(table);       var thead = Calendar.createElement("thead", table);     var cell = null;     var row = null;       var cal = this;     var hh = function (text, cs, navtype) {         cell = Calendar.createElement("td", row);         cell.colSpan = cs;         cell.className = "button";         if (navtype != 0 && Math.abs(navtype) <2> 0; --i) {         cell = Calendar.createElement("td", row);         cell.appendChild(document.createTextNode(""));         if (!i) {             cell.navtype = 100;             cell.calendar = this;             Calendar._add_evs(cell);         }     }     this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;     this._displayWeekdays();       var tbody = Calendar.createElement("tbody", table);     this.tbody = tbody;       for (i = 6; i > 0; --i) {         row = Calendar.createElement("tr", tbody);         if (this.weekNumbers) {             cell = Calendar.createElement("td", row);             cell.appendChild(document.createTextNode(""));         }         for (var j = 7; j > 0; --j) {             cell = Calendar.createElement("td", row);             cell.appendChild(document.createTextNode(""));             cell.calendar = this;             Calendar._add_evs(cell);         }     }       if (this.showsTime) {         row = Calendar.createElement("tr", tbody);         row.className = "time";           cell = Calendar.createElement("td", row);         cell.className = "time";         cell.colSpan = 2;         cell.innerHTML = Calendar._TT["TIME"] || " ";           cell = Calendar.createElement("td", row);         cell.className = "time";         cell.colSpan = this.weekNumbers ? 4 : 3;           (function(){             function makeTimePart(className, init, range_start, range_end) {                 var part = Calendar.createElement("span", cell);                 part.className = className;                 part.appendChild(document.createTextNode(init));                 part.calendar = cal;                 part.ttip = Calendar._TT["TIME_PART"];                 part.navtype = 50;                 part._range = [];                 if (typeof range_start != "number")                     part._range = range_start;                 else {                     for (var i = range_start; i <= range_end; ++i) {                         var txt;                         if (i <10>= 10) txt = '0' + i;                         else txt = '' + i;                         part._range[part._range.length] = txt;                     }                 }                 Calendar._add_evs(part);                 return part;             };             var hrs = cal.date.getHours();             var mins = cal.date.getMinutes();             var t12 = !cal.time24;             var pm = (hrs > 12);             if (t12 && pm) hrs -= 12;             var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);             var span = Calendar.createElement("span", cell);             span.appendChild(document.createTextNode(":"));             span.className = "colon";             var M = makeTimePart("minute", mins, 0, 59);             var AP = null;             cell = Calendar.createElement("td", row);             cell.className = "time";             cell.colSpan = 2;             if (t12)                 AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);             else                 cell.innerHTML = " ";               cal.onSetTime = function() {                 var hrs = this.date.getHours();                 var mins = this.date.getMinutes();                 var pm = (hrs > 12);                 if (pm && t12) hrs -= 12;                 H.firstChild.data = (hrs < 10) ? ("0" + hrs) : hrs;                 M.firstChild.data = (mins < 10) ? ("0" + mins) : mins;                 if (t12)                     AP.firstChild.data = pm ? "pm" : "am";             };               cal.onUpdateTime = function() {                 var date = this.date;                 var h = parseInt(H.firstChild.data, 10);                 if (t12) {                     if (/pm/i.test(AP.firstChild.data) && h < 12)                         h += 12;                     else if (/am/i.test(AP.firstChild.data) && h == 12)                         h = 0;                 }                 var d = date.getDate();                 var m = date.getMonth();                 var y = date.getFullYear();                 date.setHours(h);                 date.setMinutes(parseInt(M.firstChild.data, 10));                 date.setFullYear(y);                 date.setMonth(m);                 date.setDate(d);                 this.dateClicked = false;                 this.callHandler();             };         })();     } else {         this.onSetTime = this.onUpdateTime = function() {};     }       var tfoot = Calendar.createElement("tfoot", table);       row = Calendar.createElement("tr", tfoot);     row.className = "footrow";       cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);     cell.className = "ttip";     if (this.isPopup) {         cell.ttip = Calendar._TT["DRAG_TO_MOVE"];         cell.style.cursor = "move";     }     this.tooltips = cell;       div = Calendar.createElement("div", this.element);     this.monthsCombo = div;     div.className = "combo";     for (i = 0; i <Calendar> 0; --i) {         var yr = Calendar.createElement("div");         yr.className = Calendar.is_ie ? "label-IEfix" : "label";         yr.appendChild(document.createTextNode(""));         div.appendChild(yr);     }       this._init(this.firstDayOfWeek, this.date);     parent.appendChild(this.element);};  /** keyboard navigation, only for popup calendars */Calendar._keyEvent = function(ev) {     if (!window.calendar) {         return false;     }     (Calendar.is_ie) && (ev = window.event);     var cal = window.calendar;     var act = (Calendar.is_ie || ev.type == "keypress");     if (ev.ctrlKey) {         switch (ev.keyCode) {             case 37: // KEY left             act && Calendar.cellClick(cal._nav_pm);             break;             case 38: // KEY up             act && Calendar.cellClick(cal._nav_py);             break;             case 39: // KEY right             act && Calendar.cellClick(cal._nav_nm);             break;             case 40: // KEY down             act && Calendar.cellClick(cal._nav_ny);             break;             default:             return false;         }     } else switch (ev.keyCode) {         case 32: // KEY space (now)         Calendar.cellClick(cal._nav_now);         break;         case 27: // KEY esc         act && cal.callCloseHandler();         break;         case 37: // KEY left         case 38: // KEY up         case 39: // KEY right         case 40: // KEY down         if (act) {             var date = cal.date.getDate() - 1;             var el = cal.currentDateEl;             var ne = null;             var prev = (ev.keyCode == 37) || (ev.keyCode == 38);             switch (ev.keyCode) {                 case 37: // KEY left                 (--date >= 0) && (ne = cal.ar_days[date]);                 break;                 case 38: // KEY up                 date -= 7;                 (date >= 0) && (ne = cal.ar_days[date]);                 break;                 case 39: // KEY right                 (++date < cal.ar_days.length) && (ne = cal.ar_days[date]);                 break;                 case 40: // KEY down                 date += 7;                 (date < cal.ar_days.length) && (ne = cal.ar_days[date]);                 break;             }             if (!ne) {                 if (prev) {                     Calendar.cellClick(cal._nav_pm);                 } else {                     Calendar.cellClick(cal._nav_nm);                 }                 date = (prev) ? cal.date.getMonthDays() : 1;                 el = cal.currentDateEl;                 ne = cal.ar_days[date - 1];             }             Calendar.removeClass(el, "selected");             Calendar.addClass(ne, "selected");             cal.date = new Date(ne.caldate);             cal.callHandler();             cal.currentDateEl = ne;         }         break;         case 13: // KEY enter         if (act) {             cal.callHandler();             cal.hide();         }         break;         default:         return false;     }     return Calendar.stopEvent(ev);};  /**  *  (RE)Initializes the calendar to the given date and firstDayOfWeek  */Calendar.prototype._init = function (firstDayOfWeek, date) {     var today = new Date();     this.table.style.visibility = "hidden";     var year = date.getFullYear();     if (year <this> this.maxYear) {         year = this.maxYear;         date.setFullYear(year);     }     this.firstDayOfWeek = firstDayOfWeek;     this.date = new Date(date);     var month = date.getMonth();     var mday = date.getDate();     var no_days = date.getMonthDays();       // calendar voodoo for computing the first day that would actually be     // displayed in the calendar, even if it's from the previous month.     // WARNING: this is magic. ;-)     date.setDate(1);     var day1 = (date.getDay() - this.firstDayOfWeek) % 7;     if (day1 < 0)         day1 += 7;     date.setDate(-day1);     date.setDate(date.getDate() + 1);       var row = this.tbody.firstChild;     var MN = Calendar._SMN[month];     var ar_days = new Array();     var weekend = Calendar._TT["WEEKEND"];     for (var i = 0; i < 6; ++i, row = row.nextSibling) {         var cell = row.firstChild;         if (this.weekNumbers) {             cell.className = "day wn";             cell.firstChild.data = date.getWeekNumber();             cell = cell.nextSibling;         }         row.className = "daysrow";         var hasdays = false;         for (var j = 0; j <7> 0;) {         var row = rows[--i];         Calendar.removeClass(row, "rowhilite");         var cells = row.getElementsByTagName("td");         for (var j = cells.length; j > 0;) {             var cell = cells[--j];             Calendar.removeClass(cell, "hilite");             Calendar.removeClass(cell, "active");         }     }     this.element.style.display = "block";     this.hidden = false;     if (this.isPopup) {         window.calendar = this;         Calendar.addEvent(document, "keydown", Calendar._keyEvent);         Calendar.addEvent(document, "keypress", Calendar._keyEvent);         Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);     }     this.hideShowCovered();};  /**  *  Hides the calendar.  Also removes any "hilite" from the class of any TD  *  element.  */Calendar.prototype.hide = function () {     if (this.isPopup) {         Calendar.removeEvent(document, "keydown", Calendar._keyEvent);         Calendar.removeEvent(document, "keypress", Calendar._keyEvent);         Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);     }     this.element.style.display = "none";     this.hidden = true;     this.hideShowCovered();};  /**  *  Shows the calendar at a given absolute position (beware that, depending on  *  the calendar element style -- position property -- this might be relative  *  to the parent's containing rectangle).  */Calendar.prototype.showAt = function (x, y) {     var s = this.element.style;     s.left = x + "px";     s.top = y + "px";     this.show();};  /** Shows the calendar near a given element. */Calendar.prototype.showAtElement = function (el, opts) {     var self = this;     var p = Calendar.getAbsolutePos(el);     if (!opts || typeof opts != "string") {         this.showAt(p.x, p.y + el.offsetHeight);         return true;     }     function fixPosition(box) {         if (box.x < 0)             box.x = 0;         if (box.y <0> 0) box.x -= tmp;         tmp = box.y + box.height - br.y;         if (tmp > 0) box.y -= tmp;     };     this.element.style.display = "block";     Calendar.continuation_for_the_fucking_khtml_browser = function() {         var w = self.element.offsetWidth;         var h = self.element.offsetHeight;         self.element.style.display = "none";         var valign = opts.substr(0, 1);         var halign = "l";         if (opts.length > 1) {             halign = opts.substr(1, 1);         }         // vertical alignment         switch (valign) {             case "T": p.y -= h; break;             case "B": p.y += el.offsetHeight; break;             case "C": p.y += (el.offsetHeight - h) / 2; break;             case "t": p.y += el.offsetHeight - h; break;             case "b": break; // already there         }         // horizontal alignment         switch (halign) {             case "L": p.x -= w; break;             case "R": p.x += el.offsetWidth; break;             case "C": p.x += (el.offsetWidth - w) / 2; break;             case "r": p.x += el.offsetWidth - w; break;             case "l": break; // already there         }         p.width = w;         p.height = h + 40;         self.monthsCombo.style.display = "none";         fixPosition(p);         self.showAt(p.x, p.y);     };     if (Calendar.is_khtml)         setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);     else         Calendar.continuation_for_the_fucking_khtml_browser();};  /** Customizes the date format. */Calendar.prototype.setDateFormat = function (str) {     this.dateFormat = str;};  /** Customizes the tooltip date format. */Calendar.prototype.setTtDateFormat = function (str) {     this.ttDateFormat = str;};  /**  *  Tries to identify the date represented in a string.  If successful it also  *  calls this.setDate which moves the calendar to the given date.  */Calendar.prototype.parseDate = function (str, fmt) {     var y = 0;     var m = -1;     var d = 0;     var a = str.split(/W+/);     if (!fmt) {         fmt = this.dateFormat;     }     var b = fmt.match(/%./g);     var i = 0, j = 0;     var hr = 0;     var min = 0;     for (i = 0; i < a.length; ++i) {         if (!a[i])             continue;         switch (b[i]) {             case "%d":             case "%e":             d = parseInt(a[i], 10);             break;               case "%m":             m = parseInt(a[i], 10) - 1;             break;               case "%Y":             case "%y":             y = parseInt(a[i], 10);             (y <100> 29) ? 1900 : 2000);             break;               case "%b":             case "%B":             for (j = 0; j < 12; ++j) {                 if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }             }             break;               case "%H":             case "%I":             case "%k":             case "%l":             hr = parseInt(a[i], 10);             break;               case "%P":             case "%p":             if (/pm/i.test(a[i]) && hr < 12)                 hr += 12;             break;               case "%M":             min = parseInt(a[i], 10);             break;         }     }     if (y != 0 && m != -1 && d != 0) {         this.setDate(new Date(y, m, d, hr, min, 0));         return;     }     y = 0; m = -1; d = 0;     for (i = 0; i < a.length; ++i) {         if (a[i].search(/[a-zA-Z]+/) != -1) {             var t = -1;             for (j = 0; j < 12; ++j) {                 if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }             }             if (t != -1) {                 if (m != -1) {                     d = m+1;                 }                 m = t;             }         } else if (parseInt(a[i], 10) <12> 31 && y == 0) {             y = parseInt(a[i], 10);             (y <100> 29) ? 1900 : 2000);         } else if (d == 0) {             d = a[i];         }     }     if (y == 0) {         var today = new Date();         y = today.getFullYear();     }     if (m != -1 && d != 0) {         this.setDate(new Date(y, m, d, hr, min, 0));     }};  Calendar.prototype.hideShowCovered = function () {     var self = this;     Calendar.continuation_for_the_fucking_khtml_browser = function() {         function getVisib(obj){             var value = obj.style.visibility;             if (!value) {                 if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C                     if (!Calendar.is_khtml)                         value = document.defaultView.                             getComputedStyle(obj, "").getPropertyValue("visibility");                     else                         value = '';                 } else if (obj.currentStyle) { // IE                     value = obj.currentStyle.visibility;                 } else                     value = '';             }             return value;         };           var tags = new Array("applet", "iframe", "select");         var el = self.element;           var p = Calendar.getAbsolutePos(el);         var EX1 = p.x;         var EX2 = el.offsetWidth + EX1;         var EY1 = p.y;         var EY2 = el.offsetHeight + EY1;           for (var k = tags.length; k > 0; ) {             var ar = document.getElementsByTagName(tags[--k]);             var cc = null;               for (var i = ar.length; i > 0;) {                 cc = ar[--i];                   p = Calendar.getAbsolutePos(cc);                 var CX1 = p.x;                 var CX2 = cc.offsetWidth + CX1;                 var CY1 = p.y;                 var CY2 = cc.offsetHeight + CY1;                   if (self.hidden || (CX1 > EX2) || (CX2 <EX1> EY2) || (CY2 < EY1)) {                     if (!cc.__msh_save_visibility) {                         cc.__msh_save_visibility = getVisib(cc);                     }                     cc.style.visibility = cc.__msh_save_visibility;                 } else {                     if (!cc.__msh_save_visibility) {                         cc.__msh_save_visibility = getVisib(cc);                     }                     cc.style.visibility = "hidden";                 }             }         }     };     if (Calendar.is_khtml)         setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);     else         Calendar.continuation_for_the_fucking_khtml_browser();};  /** Internal function; it displays the bar with the names of the weekday. */Calendar.prototype._displayWeekdays = function () {     var fdow = this.firstDayOfWeek;     var cell = this.firstdayname;     var weekend = Calendar._TT["WEEKEND"];     for (var i = 0; i < 7; ++i) {         cell.className = "day name";         var realday = (i + fdow) % 7;         if (i) {             cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", C
Last edited by Juppertje on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.

Juppertje
Integra Member
Integra Member
 
Posts: 113
Likes: 0 post
Liked in: 0 post
Joined: Sat May 20, 2006 12:12 pm
Cash on hand: 0.00

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Wed Jul 26, 2006 6:19 pm

Sorry, my mistake...typo :wink:
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Wed Jul 26, 2006 6:25 pm

"evolver";p="12447" wrote:A way to change it this preference in the ACP would be much nicer...
The best way would be by user profile timeformat...
And not with an additional field...but recognized by the full timeformat to keep it simple...
But I don't know if it's possible, I'm looking for a way...
It's not that simple, it's not only PHP but javascript as well...

I'm working on that :)
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: Juppertje » Thu Jul 27, 2006 3:47 am

[quote=""evolver";p="12476""]Sorry, my mistake...typo ;)


but stil i see AM and PM in forum like in a post :

Van 30 Jul 2006 08:00 am tot 30 Jul 2006 06:59 pm (inclusief)

and when sombody writes a new topic:

Geplaatst: 06 Apr 2006 05:27 pm Onderwerp: we gaan ervoor

etc is that a future options that everything is in 24h mode?

do i have to change somthing in ACP configuration?

theire i have now D d M Y, G:i in time format

i love to have everything in 24h mode instead of am and pm <img>
Last edited by Juppertje on Thu Jul 27, 2006 4:40 am, edited 1 time in total.

Juppertje
Integra Member
Integra Member
 
Posts: 113
Likes: 0 post
Liked in: 0 post
Joined: Sat May 20, 2006 12:12 pm
Cash on hand: 0.00

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Thu Jul 27, 2006 4:29 am

"Juppertje";p="12499" wrote:but stil i see AM and PM in forum like in a post :

Van 30 Jul 2006 08:00 am tot 30 Jul 2006 06:59 pm (inclusief)
and when sombody writes a new topic:
Geplaatst: 06 Apr 2006 05:27 pm Onderwerp: we gaan ervoor

etc is that a future options that everything is in 24h mode?


Euh...
I think that you misunderstood...
These modifications are for the events and delayed topics in postings ONLY...

[align=right:364mlmdr]In dutch:
Deze aanpassingen zijn enkel voor de evenementen-invoervelden en het uitgesteldonderwerp-invoerveld...tijdens het opstellen van berichten[/align:364mlmdr]

...while you are talking about all the rest...
OK then, here is how you can change the rest:
In order to change these, you have to change the dateformat in ACP.
Once in configuration and once in configuration+
But don't forget...
Everybody who has registered before you change configuration+, will have to change this in their own profile as well (including yourself as admin)...
Change the dateformat to [b]D d M Y, G] there, and there will be no more AM-PM <img>
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: Juppertje » Thu Jul 27, 2006 4:46 am

"evolver";p="12503" wrote:
"Juppertje";p="12499" wrote:but stil i see AM and PM in forum like in a post :

Van 30 Jul 2006 08:00 am tot 30 Jul 2006 06:59 pm (inclusief)
and when sombody writes a new topic:
Geplaatst: 06 Apr 2006 05:27 pm Onderwerp: we gaan ervoor

etc is that a future options that everything is in 24h mode?


Euh...
I think that you misunderstood...
These modifications are for the events and delayed topics in postings ONLY...

[align=right:vl8tcsps]In dutch:
Deze aanpassingen zijn enkel voor de evenementen-invoervelden en het uitgesteldonderwerp-invoerveld...tijdens het opstellen van berichten[/align:vl8tcsps]

...while you are talking about all the rest...
OK then, here is how you can change the rest:
In order to change these, you have to change the dateformat in ACP.
Once in configuration and once in configuration+
But don't forget...
Everybody who has registered before you change configuration+, will have to change this in their own profile as well (including yourself as admin)...
Change the dateformat to [color=blue]D d M Y, G] there, and there will be no more AM-PM ;)

sorry my english writting is terrible <img>


was happy to soon lol still i see Het is nu 27 Jul 2006 03:03 pm
Last edited by Juppertje on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.

Juppertje
Integra Member
Integra Member
 
Posts: 113
Likes: 0 post
Liked in: 0 post
Joined: Sat May 20, 2006 12:12 pm
Cash on hand: 0.00

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Thu Jul 27, 2006 5:19 am

You can even compose it the way you like...

G:i 14:32
Gui 14u32

Days in full: l (lowercase 'L')
Months in full: F

<img> For a full list: see http://be2.php.net/manual/en/function.date.php
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Fri Aug 04, 2006 2:10 pm

"Juppertje";p="12506" wrote:was happy to soon lol still i see Het is nu 27 Jul 2006 03:03 pm

Read again:
"evolver";p="12503" wrote:In order to change these, you have to change the dateformat in ACP.
Once in configuration and once in configuration+

I think you adjusted config+, not config...
It has to be done on both <img>
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: Juppertje » Sat Aug 05, 2006 12:17 am

I already changed it in ACP/configuration +/ profile options/ and theire i forced all users to use time code D d M Y, G:i they do not have a option now to choose a nother time notification.
but i still see Het is nu 27 Jul 2006 03:03 pm
Last edited by Juppertje on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.

Juppertje
Integra Member
Integra Member
 
Posts: 113
Likes: 0 post
Liked in: 0 post
Joined: Sat May 20, 2006 12:12 pm
Cash on hand: 0.00

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Sat Aug 05, 2006 4:08 pm

"Juppertje";p="13088" wrote:I already changed it in ACP/configuration +/ profile options/ and theire i forced all users to use time code D d M Y, G:i they do not have a option now to choose a nother time notification.
but i still see Het is nu 27 Jul 2006 03:03 pm


OK, Configuration+ is done...
But I still don't see you talking about Configuration (without the +)...
Did you change it there as well?
Last edited by evolver on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Re: [FIX] event date translation in posting...

PostAuthor: Juppertje » Sun Aug 06, 2006 12:28 am

"Juppertje";p="12506" wrote:
"evolver";p="12503" wrote:
"Juppertje";p="12499" wrote:but stil i see AM and PM in forum like in a post :

Van 30 Jul 2006 08:00 am tot 30 Jul 2006 06:59 pm (inclusief)
and when sombody writes a new topic:
Geplaatst: 06 Apr 2006 05:27 pm Onderwerp: we gaan ervoor

etc is that a future options that everything is in 24h mode?


Euh...
I think that you misunderstood...
These modifications are for the events and delayed topics in postings ONLY...

[align=right:3m4cxn0c]In dutch:
Deze aanpassingen zijn enkel voor de evenementen-invoervelden en het uitgesteldonderwerp-invoerveld...tijdens het opstellen van berichten[/align:3m4cxn0c]

...while you are talking about all the rest...
OK then, here is how you can change the rest:
In order to change these, you have to change the dateformat in ACP.
Once in configuration and once in configuration+
But don't forget...
Everybody who has registered before you change configuration+, will have to change this in their own profile as well (including yourself as admin)...
Change the dateformat to [color=blue]D d M Y, G] there, and there will be no more AM-PM ;)

sorry my english writting is terrible ;)
Last edited by Juppertje on Wed Dec 31, 1969 4:00 pm, edited 1 time in total.

Juppertje
Integra Member
Integra Member
 
Posts: 113
Likes: 0 post
Liked in: 0 post
Joined: Sat May 20, 2006 12:12 pm
Cash on hand: 0.00

Re: [FIX] event date translation in posting...

PostAuthor: evolver » Sun Aug 06, 2006 2:38 pm

"Juppertje";p="12506" wrote:I changed also in ACP/configuration +/ profile options/ and theire i forced all users to use time code D d M Y, G:i they do not have a option now to choose a nother time notification so i think it has to be fixed <img>

was happy to soon lol still i see Het is nu 27 Jul 2006 03:03 pm

I'm still not convinced...
I read configuration + and profile options...

It's really the setting in configuration that causes:
Het is nu 27 Jul 2006 03:03 pm

So I'm still not sure who is not understanding who...
So here's a screenshot to make absolutely sure that you aren't the one not understanding:

[flash=,:h0yiamin]http://www.stelplaats.be/Brugge/files/configtime_886.jpg[/flash:h0yiamin]

And if you think that you did this change, please check it again to make sure it's right...
Last edited by evolver on Sun Aug 06, 2006 2:50 pm, edited 1 time in total.
ImageAlways remember you're unique, just like everyone else.
We are born naked, wet and hungry. Then things get worse.
Don't take life too seriously, you won't get out alive.
User avatar
evolver
Sr Integra Member
Sr Integra Member
 
Posts: 420
Likes: 0 post
Liked in: 0 post
Joined: Mon Mar 27, 2006 12:46 pm
Cash on hand: 0.00
Location: Oostende

Next

Return to IntegraMOD 140

Who is online

Registered users: Google [Bot]

cron