コード例 #1
0
ファイル: helper.php プロジェクト: optimosolution/marhk
    /** show online count
     * 
     * @param $module
     * @param $params
     */
    function getOutput(&$module, &$params)
    {
        // import Joomla! date utility
        jimport('joomla.utilities.date');
        // store module parameters
        $cache = $params->get('cache');
        $compress = $params->get('compress');
        $moduleclass_sfx = $params->get('moduleclass_sfx');
        $showtime = $params->get('showtime');
        $showdate = $params->get('showdate');
        $pretext = $params->get('pretext');
        $posttext = $params->get('posttext');
        $method = $params->get('method');
        $predate = $params->get('predate');
        $postdate = $params->get('postdate');
        $pretime = $params->get('pretime');
        $posttime = $params->get('posttime');
        $order = $params->get('order');
        $seplines = $params->get('seplines');
        $align = $params->get('align');
        $dateorder = $params->get('dateorder', "w,d,m,y");
        $suffixes = $params->get('suffixes');
        $suntext = $params->get('suntext');
        $montext = $params->get('montext');
        $tuetext = $params->get('tuetext');
        $wedtext = $params->get('wedtext');
        $thutext = $params->get('thutext');
        $fritext = $params->get('fritext');
        $sattext = $params->get('sattext');
        $monthformat = $params->get('monthformat');
        $jantext = $params->get('jantext');
        $febtext = $params->get('febtext');
        $martext = $params->get('martext');
        $aprtext = $params->get('aprtext');
        $maytext = $params->get('maytext');
        $juntext = $params->get('juntext');
        $jultext = $params->get('jultext');
        $augtext = $params->get('augtext');
        $septext = $params->get('septext');
        $octtext = $params->get('octtext');
        $novtext = $params->get('novtext');
        $dectext = $params->get('dectext');
        $dst = $params->get('dst');
        $ISO8601 = $params->get('ISO8601');
        $useuserzone = $params->get('useuserzone');
        $zone = $params->get('zone');
        $phpzone = $params->get('phpzone');
        $dston = $params->get('dston');
        $dstoff = $params->get('dstoff');
        $military = $params->get('military');
        $hours = $params->get('hours');
        $minutes = $params->get('minutes');
        $seconds = $params->get('seconds');
        $ampm = $params->get('ampm');
        $amtext = $params->get('amtext');
        $pmtext = $params->get('pmtext');
        $d1 = $params->get('d1');
        $d2 = $params->get('d2');
        $d3 = $params->get('d3');
        $d4 = $params->get('d4');
        $d5 = $params->get('d5');
        $d6 = $params->get('d6');
        $d7 = $params->get('d7');
        $d8 = $params->get('d8');
        $d9 = $params->get('d9');
        $d10 = $params->get('d10');
        $d11 = $params->get('d11');
        $d12 = $params->get('d12');
        $d13 = $params->get('d13');
        $d14 = $params->get('d14');
        $d15 = $params->get('d15');
        $d16 = $params->get('d16');
        $d17 = $params->get('d17');
        $d18 = $params->get('d18');
        $d19 = $params->get('d19');
        $d20 = $params->get('d20');
        $d21 = $params->get('d21');
        $d22 = $params->get('d22');
        $d23 = $params->get('d23');
        $d24 = $params->get('d24');
        $d25 = $params->get('d25');
        $d26 = $params->get('d26');
        $d27 = $params->get('d27');
        $d28 = $params->get('d28');
        $d29 = $params->get('d29');
        $d30 = $params->get('d30');
        $d31 = $params->get('d31');
        $yearformat = $params->get('yearformat');
        $y0 = $params->get('y0');
        $y1 = $params->get('y1');
        $y2 = $params->get('y2');
        $y3 = $params->get('y3');
        $y4 = $params->get('y4');
        $y5 = $params->get('y5');
        $y6 = $params->get('y6');
        $y7 = $params->get('y7');
        $y8 = $params->get('y8');
        $y9 = $params->get('y9');
        $script_out = "";
        $script_out .= "\t\t\tDate.prototype.stdTimezoneOffset = function() {\n\t\t\t\tvar jan = new Date(this.getFullYear(), 0, 1);\n\t\t\t\tvar jul = new Date(this.getFullYear(), 6, 1);\n\t\t\t\treturn Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());\n\t\t\t};\n\t\t\tDate.prototype.dst = function() {\n\t\t\t\treturn this.getTimezoneOffset() < this.stdTimezoneOffset();\n\t\t\t};\n";
        // get user time zone
        if ($useuserzone == "1") {
            $user =& JFactory::getUser();
            $userzone = $user->getParam('timezone');
            if (isset($userzone)) {
                $zone = $userzone;
                $phpzone = $userzone;
            }
        }
        // set alignment
        if ($align == "1") {
            $alignment = "left";
        }
        if ($align == "2") {
            $alignment = "center";
        }
        if ($align == "3") {
            $alignment = "right";
        }
        // pre alignment output
        $align_out = array();
        if ($align != "0") {
            $align_out[] = '<div style="margin:0px auto;width:auto;text-align:' . $alignment . ';">';
        }
        // variables to clean up the strings a bit
        $stripthis = array("\"\"", "++++", "+++", "++", "�");
        $addthis = array("", "+", "+", "+", " ");
        // javascript method
        if ($method == 0) {
            // include javascript in head tag
            $document =& JFactory::getDocument();
            $scriptpath = JURI::base() . 'modules' . DS . 'mod_date2' . DS . 'ty2udate.js';
            $document->addScript($scriptpath);
            $theDate = "";
            // compile javascript date based on desired date order
            if ($showdate == 0) {
                // explode date order
                $exorder = explode(',', $dateorder);
                for ($i = 0; $i <= 3; $i++) {
                    // check variable to prevent php notice - thanks to jonusc
                    if (!isset($exorder[$i])) {
                        break;
                    }
                    switch ($exorder[$i]) {
                        case 'w':
                            // make weekday with prefix and suffix
                            if ($i > 0) {
                                if ($exorder[$i - 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            $theDate .= "\"" . modDate2Helper::getSeparator('sepweek1', $params) . "\"+arday" . $module->id . "[myday" . $module->id . "]+\"" . modDate2Helper::getSeparator('sepweek2', $params) . "\"";
                            if (count($exorder) < $i + 1) {
                                if ($exorder[$i + 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            break;
                        case 'd':
                            // make day with prefix and suffix
                            if ($i > 0) {
                                if ($exorder[$i - 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            if ($suffixes == 0) {
                                $theDate .= "\"" . modDate2Helper::getSeparator('sepday1', $params) . "\"+ardate" . $module->id . "[myweekday" . $module->id . "]+\"" . modDate2Helper::getSeparator('sepday2', $params) . "\"";
                            } else {
                                $theDate .= "\"" . modDate2Helper::getSeparator('sepday1', $params) . "\"+myweekday" . $module->id . "+\"" . modDate2Helper::getSeparator('sepday2', $params) . "\"";
                            }
                            if (count($exorder) < $i + 1) {
                                if ($exorder[$i + 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            break;
                        case 'm':
                            // make month with prefix and suffix
                            if ($i > 0) {
                                if ($exorder[$i - 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            if ($monthformat == 0) {
                                $theDate .= '"' . modDate2Helper::getSeparator('sepmonth1', $params) . '"+armonth' . $module->id . '[mymonth' . $module->id . ']+"' . modDate2Helper::getSeparator('sepmonth2', $params) . '"';
                            } else {
                                $theDate .= '"' . modDate2Helper::getSeparator('sepmonth1', $params) . '"+mymonth' . $module->id . '+"' . modDate2Helper::getSeparator('sepmonth2', $params) . '"';
                            }
                            if (count($exorder) < $i + 1) {
                                if ($exorder[$i + 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            break;
                        case 'y':
                            // make year with prefix and suffix
                            if ($i > 0) {
                                if ($exorder[$i - 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            if ($yearformat == 0) {
                                // javascript function to check year for replacements
                                $string = '
			function checkYear(matchedSubstring, Index, OriginalString) {

				switch(matchedSubstring) {
				case "0":
					return "_y0_";
					break;
				case "1":
					return "_y1_";
					break;
				case "2":
					return "_y2_";
					break;
				case "3":
					return "_y3_";
					break;
				case "4":
					return "_y4_";
					break;
				case "5":
					return "_y5_";
					break;
				case "6":
					return "_y6_";
					break;
				case "7":
					return "_y7_";
					break;
				case "8":
					return "_y8_";
					break;
				case "9":
					return "_y9_";
					break;
				default:
					return matchedSubstring;
					break;
				};
			};
							';
                                $patterns = array();
                                $patterns[0] = '/_y0_/';
                                $patterns[1] = '/_y1_/';
                                $patterns[2] = '/_y2_/';
                                $patterns[3] = '/_y3_/';
                                $patterns[4] = '/_y4_/';
                                $patterns[5] = '/_y5_/';
                                $patterns[6] = '/_y6_/';
                                $patterns[7] = '/_y7_/';
                                $patterns[8] = '/_y8_/';
                                $patterns[9] = '/_y9_/';
                                $replacements = array();
                                $replacements[0] = $y0;
                                $replacements[1] = $y1;
                                $replacements[2] = $y2;
                                $replacements[3] = $y3;
                                $replacements[4] = $y4;
                                $replacements[5] = $y5;
                                $replacements[6] = $y6;
                                $replacements[7] = $y7;
                                $replacements[8] = $y8;
                                $replacements[9] = $y9;
                                $script_out .= preg_replace($patterns, $replacements, $string);
                                $theDate .= "\"" . modDate2Helper::getSeparator('sepyear1', $params) . "\"+year" . $module->id . "+\"" . modDate2Helper::getSeparator('sepyear2', $params) . "\"";
                            } else {
                                $theDate .= "\"" . modDate2Helper::getSeparator('sepyear1', $params) . "\"+year" . $module->id . "+\"" . modDate2Helper::getSeparator('sepyear2', $params) . "\"";
                            }
                            if (count($exorder) < $i + 1) {
                                if ($exorder[$i + 1] != "") {
                                    $theDate .= "+";
                                }
                            }
                            break;
                        default:
                            $theDate .= "\"\"";
                    }
                }
                // clean up strings
                $theDate = str_replace($stripthis, $addthis, $theDate);
                $theDate = trim($theDate, "+");
                // add suffix
                $theDate = $theDate . "+\"" . $postdate . "\"";
            }
            $theTime = "";
            // compile javascript time based on paramaters
            if ($showtime == 0) {
                if ($hours == 0) {
                    $theTime .= "\"" . modDate2Helper::getSeparator('sephour1', $params) . "\"+myhours" . $module->id . "+\"" . modDate2Helper::getSeparator('sephour2', $params) . "\"";
                }
                if ($minutes == 0) {
                    $theTime .= "\"" . modDate2Helper::getSeparator('sepminute1', $params) . "\"+mytime" . $module->id . "+\"" . modDate2Helper::getSeparator('sepminute2', $params) . "\"";
                }
                if ($seconds == 0) {
                    $theTime .= "\"" . modDate2Helper::getSeparator('$sepsecond2', $params) . "\"+myseconds" . $module->id . "+\"" . modDate2Helper::getSeparator('sepsecond2', $params) . "\"";
                }
                if ($ampm == 0 && $military == 1) {
                    $theTime .= "\"" . modDate2Helper::getSeparator('sepampm1', $params) . "\"+mm" . $module->id . "+\"" . modDate2Helper::getSeparator('sepampm2', $params) . "\"";
                }
                // clean up strings
                $theTime = str_replace($stripthis, $addthis, $theTime);
                $theTime = trim($theTime, "+");
                // add suffix
                $theTime = $theTime . "+\"" . $posttime . "\"";
            }
            $string = '
			function ISO8601Local_MODULE_ID_(date) {
			// handles years from 0000 to 9999 only
				var offset_MODULE_ID_ = date.getTimezoneOffset();
				var offsetSign_MODULE_ID_ = "-";
				if (offset_MODULE_ID_ <= 0) {
					offsetSign_MODULE_ID_ = "+";
					offset_MODULE_ID_ = -offset_MODULE_ID_;
				};
				var offsetHours_MODULE_ID_ = Math.floor(offset_MODULE_ID_ / 60);
				var offsetMinutes_MODULE_ID_ = offset_MODULE_ID_ - offsetHours_MODULE_ID_ * 60;
				return ("000" + date.getFullYear()).slice(-4) +
				"-" + ("0" + (date.getMonth() + 1)).slice(-2) +
				"-" + ("0" + date.getDate()).slice(-2) +
				"T" + ("0" + date.getHours()).slice(-2) +
				":" + ("0" + date.getMinutes()).slice(-2) +
				":" + ("0" + date.getSeconds()).slice(-2) +
				"," + ("00" + date.getMilliseconds()).slice(-3) +
				offsetSign_MODULE_ID_ + ("0" + offsetHours_MODULE_ID_).slice(-2) +
				":" + ("0" + offsetMinutes_MODULE_ID_).slice(-2);
			};
		
			var ISO8601_MODULE_ID_ = "_ISO8601_";
		
			function clock_MODULE_ID_() {
				var newdate_MODULE_ID_ = new Date();
		
				if(ISO8601_MODULE_ID_ == "1") {
		
					var time_MODULE_ID_ = ISO8601Local_MODULE_ID_(newdate_MODULE_ID_);
		
				} else {
		
					var day_MODULE_ID_="";
					var month_MODULE_ID_="";
					var myweekday_MODULE_ID_="";
					var year_MODULE_ID_="";
					var mydate_MODULE_ID_ = new Date();
					var dston_MODULE_ID_  = new Date("_dston_");
					var dstoff_MODULE_ID_ = new Date("/_dstoff_");
					dston_MODULE_ID_.setFullYear(newdate_MODULE_ID_.getFullYear());
					dstoff_MODULE_ID_.setFullYear(newdate_MODULE_ID_.getFullYear());
		
					var dst_MODULE_ID_ = "_dst_";
					var myzone_MODULE_ID_ = newdate_MODULE_ID_.getTimezoneOffset();
		
					var zone_MODULE_ID_ = parseInt(_zone_);
					
					// zone is negative so convert to positive to do calculations
					if (zone_MODULE_ID_ <= 0) {
						zoneb_MODULE_ID_ = -zone_MODULE_ID_;
					} else {
						zoneb_MODULE_ID_ = zone_MODULE_ID_;
					};
					if (mydate_MODULE_ID_ > dston_MODULE_ID_ && mydate_MODULE_ID_ < dstoff_MODULE_ID_ && dst_MODULE_ID_ == "1") {
					//date is between dst dates and dst adjust is on.
						zonea_MODULE_ID_ = zoneb_MODULE_ID_ - 1;
						var houradjust_MODULE_ID_ = 0;
					} else {
						zonea_MODULE_ID_ = zoneb_MODULE_ID_;
						var houradjust_MODULE_ID_ = -1;
					};
		
					newtime_MODULE_ID_=newdate_MODULE_ID_.getTime();
		
					var newzone_MODULE_ID_ =  (zonea_MODULE_ID_*60*60*1000);
		
					// convert zone back to negative if it was negative originally
					if (zone_MODULE_ID_ <= 0) {
						newzone_MODULE_ID_ = -newzone_MODULE_ID_;
					};
					newtimea_MODULE_ID_ = newtime_MODULE_ID_+(myzone_MODULE_ID_*60*1000)+newzone_MODULE_ID_;
		
					mydate_MODULE_ID_.setTime(newtimea_MODULE_ID_);
					myday_MODULE_ID_ = mydate_MODULE_ID_.getDay();
					mymonth_MODULE_ID_ = mydate_MODULE_ID_.getMonth();
					myweekday_MODULE_ID_= mydate_MODULE_ID_.getDate();
					myyear_MODULE_ID_= mydate_MODULE_ID_.getYear();
					year_MODULE_ID_ = myyear_MODULE_ID_;
		
					if (year_MODULE_ID_ < 2000) year_MODULE_ID_ = year_MODULE_ID_ + 1900;
					myhours_MODULE_ID_ = mydate_MODULE_ID_.getHours();
';
            // immediate replace variables
            $patterns = array();
            $patterns[0] = '/_MODULE_ID_/';
            $patterns[1] = '/_ISO8601_/';
            $patterns[2] = '/_dston_/';
            $patterns[3] = '/_dstoff_/';
            $patterns[4] = '/_dst_/';
            $patterns[5] = '/_zone_/';
            $replacements = array();
            $replacements[0] = $module->id;
            $replacements[1] = $ISO8601;
            $replacements[2] = $dston;
            $replacements[3] = $dstoff;
            $replacements[4] = $dst;
            $replacements[5] = modDate2Helper::getZoneOffset($zone);
            $script_out .= preg_replace($patterns, $replacements, $string);
            // not using military time
            if ($military == "1") {
                $string = '
					var mm_MODULE_ID_ = "_amtext_";
					if (myhours_MODULE_ID_ > 12 + houradjust_MODULE_ID_)
						mm_MODULE_ID_ = "_pmtext_";
					if (myhours_MODULE_ID_ > 12 + houradjust_MODULE_ID_)
						myhours_MODULE_ID_ -= 12;
					if (myhours_MODULE_ID_ == 0) myhours_MODULE_ID_ = 12;
';
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $patterns[1] = '/_amtext_/';
                $patterns[2] = '/_pmtext_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $replacements[1] = $amtext;
                $replacements[2] = $pmtext;
                $script_out .= preg_replace($patterns, $replacements, $string);
                // using military time
            } else {
                $string = '
						if (myhours_MODULE_ID_ < 10) {
							myhours_MODULE_ID_ = "0" + myhours_MODULE_ID_;
						} else {
							myhours_MODULE_ID_ = "" + myhours_MODULE_ID_;
						};
';
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $script_out .= preg_replace($patterns, $replacements, $string);
            }
            $string = '
					myminutes_MODULE_ID_ = mydate_MODULE_ID_.getMinutes();
		
					if (myminutes_MODULE_ID_ < 10) {
						mytime_MODULE_ID_ = "0" + myminutes_MODULE_ID_;
					} else {
						mytime_MODULE_ID_ = "" + myminutes_MODULE_ID_;
					};
		
					myseconds_MODULE_ID_ = mydate_MODULE_ID_.getSeconds();
		
					if (myseconds_MODULE_ID_ < 10) {
						myseconds_MODULE_ID_ = "0" + myseconds_MODULE_ID_;
					} else {
						myseconds_MODULE_ID_ = "" + myseconds_MODULE_ID_;
					};
		
					arday_MODULE_ID_ = new Array("_suntext_","_montext_","_tuetext_","_wedtext_","_thutext_","_fritext_","_sattext_");
					armonth_MODULE_ID_ = new Array("_jantext_","_febtext_","_martext_","_aprtext_","_maytext_","_juntext_","_jultext_","_augtext_","_septext_", "_octtext_","_novtext_","_dectext_");
					ardate_MODULE_ID_ = new Array("0th","_d1_","_d2_","_d3_","_d4_","_d5_","_d6_","_d7_","_d8_","_d9_","_d10_","_d11_","_d12_","_d13_","_d14_","_d15_","_d16_","_d17_","_d18_","_d19_","_d20_","_d21_","_d22_","_d23_","_d24_","_d25_","_d26_","_d27_","_d28_","_d29_","_d30_","_d31_");
					';
            $patterns = array();
            $patterns[0] = '/_MODULE_ID_/';
            $patterns[1] = '/_suntext_/';
            $patterns[2] = '/_montext_/';
            $patterns[3] = '/_tuetext_/';
            $patterns[4] = '/_wedtext_/';
            $patterns[5] = '/_thutext_/';
            $patterns[6] = '/_fritext_/';
            $patterns[7] = '/_sattext_/';
            $patterns[8] = '/_jantext_/';
            $patterns[9] = '/_febtext_/';
            $patterns[10] = '/_martext_/';
            $patterns[11] = '/_aprtext_/';
            $patterns[12] = '/_maytext_/';
            $patterns[13] = '/_juntext_/';
            $patterns[14] = '/_jultext_/';
            $patterns[15] = '/_augtext_/';
            $patterns[16] = '/_septext_/';
            $patterns[17] = '/_octtext_/';
            $patterns[18] = '/_novtext_/';
            $patterns[19] = '/_dectext_/';
            $patterns[20] = '/_d1_/';
            $patterns[21] = '/_d2_/';
            $patterns[22] = '/_d3_/';
            $patterns[23] = '/_d4_/';
            $patterns[24] = '/_d5_/';
            $patterns[25] = '/_d6_/';
            $patterns[26] = '/_d7_/';
            $patterns[27] = '/_d8_/';
            $patterns[28] = '/_d9_/';
            $patterns[29] = '/_d10_/';
            $patterns[30] = '/_d11_/';
            $patterns[31] = '/_d12_/';
            $patterns[32] = '/_d13_/';
            $patterns[33] = '/_d14_/';
            $patterns[34] = '/_d15_/';
            $patterns[35] = '/_d16_/';
            $patterns[36] = '/_d17_/';
            $patterns[37] = '/_d18_/';
            $patterns[38] = '/_d19_/';
            $patterns[39] = '/_d20_/';
            $patterns[40] = '/_d21_/';
            $patterns[41] = '/_d22_/';
            $patterns[42] = '/_d23_/';
            $patterns[43] = '/_d24_/';
            $patterns[44] = '/_d25_/';
            $patterns[45] = '/_d26_/';
            $patterns[46] = '/_d27_/';
            $patterns[47] = '/_d28_/';
            $patterns[48] = '/_d29_/';
            $patterns[49] = '/_d30_/';
            $patterns[50] = '/_d31_/';
            $replacements = array();
            $replacements[0] = $module->id;
            $replacements[1] = $suntext;
            $replacements[2] = $montext;
            $replacements[3] = $tuetext;
            $replacements[4] = $wedtext;
            $replacements[5] = $thutext;
            $replacements[6] = $fritext;
            $replacements[7] = $sattext;
            $replacements[8] = $jantext;
            $replacements[9] = $febtext;
            $replacements[10] = $martext;
            $replacements[11] = $aprtext;
            $replacements[12] = $maytext;
            $replacements[13] = $juntext;
            $replacements[14] = $jultext;
            $replacements[15] = $augtext;
            $replacements[16] = $septext;
            $replacements[17] = $octtext;
            $replacements[18] = $novtext;
            $replacements[19] = $dectext;
            $replacements[20] = $d1;
            $replacements[21] = $d2;
            $replacements[22] = $d3;
            $replacements[23] = $d4;
            $replacements[24] = $d5;
            $replacements[25] = $d6;
            $replacements[26] = $d7;
            $replacements[27] = $d8;
            $replacements[28] = $d9;
            $replacements[29] = $d10;
            $replacements[30] = $d11;
            $replacements[31] = $d12;
            $replacements[32] = $d13;
            $replacements[33] = $d14;
            $replacements[34] = $d15;
            $replacements[35] = $d16;
            $replacements[36] = $d17;
            $replacements[37] = $d18;
            $replacements[38] = $d19;
            $replacements[39] = $d20;
            $replacements[40] = $d21;
            $replacements[41] = $d22;
            $replacements[42] = $d23;
            $replacements[43] = $d24;
            $replacements[44] = $d25;
            $replacements[45] = $d26;
            $replacements[46] = $d27;
            $replacements[47] = $d28;
            $replacements[48] = $d29;
            $replacements[49] = $d30;
            $replacements[50] = $d31;
            $script_out .= preg_replace($patterns, $replacements, $string);
            // add prefixes and a line break if they are wanted
            if ($showdate == 0 && !empty($dateorder)) {
                $datebreak = "";
                if ($seplines == 0 && $order == 1) {
                    $datebreak = "<br />";
                }
                $predate = "\"" . $datebreak . $predate . "\"+";
            } else {
                $predate = "";
            }
            if ($showtime == 0) {
                $timebreak = "";
                if ($seplines == 0 && $order == 0) {
                    $timebreak = "<br />";
                }
                $pretime = "\"" . $timebreak . $pretime . "\"+";
            } else {
                $pretime = "";
            }
            // adjust some date values if required
            if ($suffixes == 1) {
                $string = '
				myweekday_MODULE_ID_ = parseInt(myweekday_MODULE_ID_);';
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $script_out .= preg_replace($patterns, $replacements, $string);
            }
            if ($monthformat == 1) {
                $string = '
				mymonth_MODULE_ID_ = parseInt(mymonth_MODULE_ID_)+1;';
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $script_out .= preg_replace($patterns, $replacements, $string);
            }
            // check the year if using text display
            if ($yearformat == 0) {
                $string = '
				var replaceyear = String(year_MODULE_ID_);
				year_MODULE_ID_ = replaceyear.replace(/\\d/g, checkYear);
				';
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $script_out .= preg_replace($patterns, $replacements, $string);
            }
            // date should be shown first
            if ($order == 0 && ($showdate == 0 || $showtime == 0)) {
                if (!empty($theTime) && $showdate == 0) {
                    $theDate .= "+";
                }
                $string = '
				var time_MODULE_ID_ = (_predate__theDate__pretime__theTime_);';
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $patterns[1] = '/_predate_/';
                $patterns[2] = '/_theDate_/';
                $patterns[3] = '/_pretime_/';
                $patterns[4] = '/_theTime_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $replacements[1] = $predate;
                $replacements[2] = $theDate;
                $replacements[3] = $pretime;
                $replacements[4] = $theTime;
                $script_out .= preg_replace($patterns, $replacements, $string);
                // time should be shown first
            } elseif ($order == 1 && ($showdate == 0 || $showtime == 0)) {
                if (!empty($theDate) && $showtime == 0) {
                    $theTime .= "+";
                }
                $string = "\n\t\t\t\t\t\t\t\t\tvar time_MODULE_ID_ = (_pretime__theTime__predate__theDate_);";
                $patterns = array();
                $patterns[0] = '/_MODULE_ID_/';
                $patterns[1] = '/_predate_/';
                $patterns[2] = '/_theDate_/';
                $patterns[3] = '/_pretime_/';
                $patterns[4] = '/_theTime_/';
                $replacements = array();
                $replacements[0] = $module->id;
                $replacements[1] = $predate;
                $replacements[2] = $theDate;
                $replacements[3] = $pretime;
                $replacements[4] = $theTime;
                $script_out .= preg_replace($patterns, $replacements, $string);
            }
            $string = '
					};
					
					document.getElementById("ty2udate_MODULE_ID_").innerHTML  = time_MODULE_ID_;
		
					setTimeout("clock_MODULE_ID_()", 1000);
		
			};
			listen("load", window, clock_MODULE_ID_);
';
            $patterns = array();
            $patterns[0] = '/_MODULE_ID_/';
            $replacements = array();
            $replacements[0] = $module->id;
            $script_out .= preg_replace($patterns, $replacements, $string);
        }
        // PHP method
        // reset params
        $predate = $params->get('predate');
        $postdate = $params->get('postdate');
        $pretime = $params->get('pretime');
        $posttime = $params->get('posttime');
        // ISO 8601 format
        if ($ISO8601 == 1) {
            if ($phpzone < 0) {
                $time = date("c", strtotime($phpzone . " hours"));
            } else {
                if ($phpzone > 0) {
                    $time = date("c", strtotime("+" . $phpzone . " hours"));
                } else {
                    if ($phpzone == 0) {
                        $time = date("c");
                    }
                }
            }
        } else {
            // user defined format
            // adjust for DST
            if (date("I") && $dst == "1") {
                $phpzone++;
            }
            /* TODO fix this thing
            if (date_default_timezone_get()) {
                echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
            }
            
            if (ini_get('date.timezone')) {
                echo 'date.timezone: ' . ini_get('date.timezone');
            }
            
            date_default_timezone_set('America/Toronto');
            
            $script_tz = date_default_timezone_get();
            
            if (strcmp($script_tz, ini_get('date.timezone'))){
                echo 'Script timezone differs from ini-set timezone.';
            } else {
                echo 'Script timezone and ini-set timezone match.';
            }
            
            $localtime = localtime();
            $localtime_assoc = localtime(time(), true);
            print_r($localtime);
            print_r($localtime_assoc);
            			jexit();
            */
            // time adjustment
            if ($phpzone < 0) {
                if ($military == "1") {
                    $parts = date("w,j,m,Y,g,i,s", strtotime($phpzone . " hours"));
                } else {
                    $parts = date("w,j,m,Y,H,i,s", strtotime($phpzone . " hours"));
                }
            } else {
                if ($phpzone > 0) {
                    if ($military == "1") {
                        $parts = date("w,j,m,Y,g,i,s", strtotime("+" . $phpzone . " hours"));
                    } else {
                        $parts = date("w,j,m,Y,H,i,s", strtotime("+" . $phpzone . " hours"));
                    }
                } else {
                    if ($phpzone == 0) {
                        if ($military == "1") {
                            $parts = date("w,j,m,Y,g,i,s");
                        } else {
                            $parts = date("w,j,m,Y,H,i,s");
                        }
                    }
                }
            }
            // explode parts after adjustments
            $parts = explode(",", $parts);
            $weekday = $parts[0];
            $day = $parts[1];
            $month = $parts[2];
            $year = $parts[3];
            $hour = $parts[4];
            $minute = $parts[5];
            $second = $parts[6];
            // text arrays
            $daytext = array($suntext, $montext, $tuetext, $wedtext, $thutext, $fritext, $sattext);
            $suffixtext = array("0th", $d1, $d2, $d3, $d4, $d5, $d6, $d7, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15, $d16, $d17, $d18, $d19, $d20, $d21, $d22, $d23, $d24, $d25, $d26, $d27, $d28, $d29, $d30, $d31);
            $monthtext = array($jantext, $febtext, $martext, $aprtext, $maytext, $juntext, $jultext, $augtext, $septext, $octtext, $novtext, $dectext);
            $yeartext = array($y0, $y1, $y2, $y3, $y4, $y5, $y6, $y7, $y8, $y9);
            // add prefixes and a line break if they are wanted
            if ($showdate == 0 && !empty($dateorder)) {
                $datebreak = "";
                if ($seplines == 0 && $order == 1) {
                    $datebreak = "<br />";
                }
                $predate = $datebreak . $predate;
            } else {
                $predate = "";
            }
            if ($showtime == 0) {
                $timebreak = "";
                if ($seplines == 0 && $order == 0) {
                    $timebreak = "<br />";
                }
                $pretime = $timebreak . $pretime;
            } else {
                $pretime = "";
            }
            // adjust month if using text
            if ($monthformat == 0) {
                $month = intval($month) - 1;
            }
            // compile php date based on desired date order
            $theDate = "";
            if ($showdate == 0) {
                // explode date order
                $exorder = explode(",", $dateorder);
                for ($i = 0; $i <= 3; $i++) {
                    switch ($exorder[$i]) {
                        case 'w':
                            // make weekday with prefix and suffix
                            $theDate .= modDate2Helper::getSeparator('sepweek1', $params) . $daytext[$weekday] . modDate2Helper::getSeparator('sepweek2', $params);
                            break;
                        case 'd':
                            // make day with prefix and suffix
                            if ($suffixes == 0) {
                                $theDate .= modDate2Helper::getSeparator('sepday1', $params) . $suffixtext[$day] . modDate2Helper::getSeparator('sepday2', $params);
                            } else {
                                $theDate .= modDate2Helper::getSeparator('sepday1', $params) . $day . modDate2Helper::getSeparator('sepday2', $params);
                            }
                            break;
                        case 'm':
                            // make month with prefix and suffix
                            if ($monthformat == 0) {
                                $theDate .= modDate2Helper::getSeparator('sepmonth1', $params) . $monthtext[$month] . modDate2Helper::getSeparator('sepmonth2', $params);
                            } else {
                                $theDate .= modDate2Helper::getSeparator('sepmonth1', $params) . $month . modDate2Helper::getSeparator('sepmonth2', $params);
                            }
                            break;
                        case 'y':
                            // make year with prefix and suffix
                            if ($yearformat == 0) {
                                $patterns = array();
                                $patterns[0] = '/0/';
                                $patterns[1] = '/1/';
                                $patterns[2] = '/2/';
                                $patterns[3] = '/3/';
                                $patterns[4] = '/4/';
                                $patterns[5] = '/5/';
                                $patterns[6] = '/6/';
                                $patterns[7] = '/7/';
                                $patterns[8] = '/8/';
                                $patterns[9] = '/9/';
                                $replacements = array();
                                $replacements[0] = $y0;
                                $replacements[1] = $y1;
                                $replacements[2] = $y2;
                                $replacements[3] = $y3;
                                $replacements[4] = $y4;
                                $replacements[5] = $y5;
                                $replacements[6] = $y6;
                                $replacements[7] = $y7;
                                $replacements[8] = $y8;
                                $replacements[9] = $y9;
                                $year_out = preg_replace($patterns, $replacements, $year);
                                $theDate .= modDate2Helper::getSeparator('sepyear1', $params);
                                $theDate .= $year_out;
                                $theDate .= modDate2Helper::getSeparator('sepyear2', $params);
                            } else {
                                $theDate .= modDate2Helper::getSeparator('sepyear1', $params) . $year . modDate2Helper::getSeparator('sepyear2', $params);
                            }
                            break;
                        default:
                            $theDate .= "";
                    }
                }
            }
            $theTime = "";
            // compile php time based on paramaters
            if ($showtime == 0) {
                if ($hours == 0) {
                    $theTime .= modDate2Helper::getSeparator('sephour1', $params) . $hour . modDate2Helper::getSeparator('sephour2', $params);
                }
                if ($minutes == 0) {
                    $theTime .= modDate2Helper::getSeparator('sepminute1', $params) . $minute . modDate2Helper::getSeparator('sepminute2', $params);
                }
                if ($seconds == 0) {
                    $theTime .= modDate2Helper::getSeparator('$sepsecond2', $params) . $second . modDate2Helper::getSeparator('sepsecond2', $params);
                }
                if ($ampm == 0 && $military == 1) {
                    if (date("a") == "am") {
                        $theTime .= modDate2Helper::getSeparator('sepampm1', $params) . $amtext . modDate2Helper::getSeparator('sepampm2', $params);
                    } else {
                        $theTime .= modDate2Helper::getSeparator('sepampm1', $params) . $pmtext . modDate2Helper::getSeparator('sepampm2', $params);
                    }
                }
            }
            $time = "";
            // date should be shown first
            if ($order == 0) {
                if (!empty($theDate)) {
                    $theDate .= "";
                }
                if ($showdate == 0) {
                    $time .= $predate . $theDate . $postdate;
                }
                if ($showtime == 0) {
                    $time .= $pretime . $theTime . $posttime;
                }
                // time should be shown first
            } else {
                if (!empty($theTime)) {
                    $theTime .= "";
                }
                if ($showtime == 0) {
                    $time .= $pretime . $theTime . $posttime;
                }
                if ($showdate == 0) {
                    $time .= $predate . $theDate . $postdate;
                }
            }
        }
        // clean up strings
        $time = str_replace($stripthis, $addthis, $time);
        $time = trim($time, "+");
        $php_output = $time;
        // post alignment output
        if ($align != "0") {
            $align_out[] = "</div>";
        }
        // output javascript - javascript method
        if (isset($script_out)) {
            // compress javascript output
            if ($compress > 0) {
                // compress javascript output
                require_once dirname(__FILE__) . DS . 'class.JavaScriptPacker.php';
                $packer = new JavaScriptPacker($script_out, $compress, false, false);
                $script_out = $packer->pack();
            }
            // if caching is on don't do anything and output script on the spot
            // also check if Joomla cache is enabled in global config
            $conf = JFactory::getConfig();
            if ($cache == "1" && $conf->get('caching') >= 1) {
                echo '<script type="text/javascript">' . $script_out . '</script>';
            } else {
                // caching is disabled so put javascript in head tag
                $document =& JFactory::getDocument();
                $document->addScriptDeclaration($script_out);
            }
        }
        // return PHP output so we can fall back to something if Javascript is disabled
        // check for alignment
        if ($align != "0") {
            $php_output = $align_out[0] . $php_output . $align_out[1];
        }
        return $php_output;
    }
コード例 #2
0
ファイル: mod_date2.php プロジェクト: optimosolution/marhk
 *
 *		Date and Time Module for Joomla!
 *		Displays the current time and date any way you want it.
 * 
 *		For help please visit http://www.ty2u.com/date-and-time
 *
 *		Please post any bugs, feature requests, support requests to:
 *		http://www.ty2u.com/forum
 */
// no direct access
defined('_JEXEC') or die('Restricted access');
// get helper
require_once dirname(__FILE__) . DS . 'helper.php';
// get some params
$showtime = $params->get('showtime');
$showdate = $params->get('showdate');
$pretext = $params->get('pretext');
$posttext = $params->get('posttext');
$styles = $params->get('styles');
// get output
if ($showtime == 0 || $showdate == 0) {
    $output = modDate2Helper::getOutput($module, $params);
    if (isset($output)) {
        // add styles
        $doc =& JFactory::getDocument();
        $style = '#ty2udate' . $module->id . ' {' . $styles . '}';
        $doc->addStyleDeclaration($style);
    }
}
// output
require JModuleHelper::getLayoutPath('mod_date2');