Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Joomla! forum. Joomla! Questions and Answers.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
The Razor
Δημοσιεύσεις: 1940
Εγγραφή: 10 Φεβ 2007 12:37
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από The Razor » 22 Απρ 2009 15:26

Eχω ενα module στο joomla που δείχνει την τελευταία ανανέωση του site.
Μαλλον αυτό πάει με την ωρα UTC του γκρινουιτς που δείχνει 3 ώρες πριν?
Mπορεί κάποιος να με βοηθήσει να το αλλάξω?

helper.php

Κώδικας: Επιλογή όλων

<?php
/*
&#40;c&#41; Tushev S.A, 2009. All rights reserved
*/

// no direct access
defined&#40;'_JEXEC'&#41; or die&#40;'Restricted access'&#41;;

require_once &#40;JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php'&#41;;

class modLastUpdateHelper
&#123;
	function getUpdateTime&#40;&$params&#41; &#123;
					
	
		$dateformat		= trim&#40; $params->get&#40;'dateformat'&#41; &#41;;
		$cacheresults	= trim&#40; $params->get&#40;'cacheresults'&#41; &#41;;
		$cachetime		= &#40;int&#41; $params->get&#40;'cachetime', 3600&#41;;
		
		$modLastUpdateCacheFileName 	= dirname&#40;__FILE__&#41;.DS.'lastupdate';
		
			function saveTimeToFile&#40;$timestring, $fileName&#41; &#123;
				
				$f=fopen&#40;$fileName, 'w'&#41;;
				fwrite&#40;$f, $timestring&#41;;
				fclose&#40;$f&#41;;
				
			
			&#125;
			
			
			
			function getCacheIfFresh&#40;$caching_time, $fileName&#41; &#123;
				/*	 Checks, whether it's possible to use the cache
					Returns false if it's necessary to update it, formatted string with concrete value if cache is up-to-date
				*/	
				
				//no cache exist
				if&#40;!&#40;$cacheModified = filemtime&#40;$fileName&#41;&#41;&#41; return false;

				//cache is up-to-date
				if&#40; &#40;time&#40;&#41; - $cacheModified&#41; < $caching_time &#41; return file_get_contents&#40;$fileName&#41;;
				else return false;
			
			&#125;
			
			function getTimeFromDB&#40;$datefmt&#41; &#123;
			//RETURNS formatted string
			
				global $mainframe;

				$db			=& JFactory&#58;&#58;getDBO&#40;&#41;;
				$user		=& JFactory&#58;&#58;getUser&#40;&#41;;
		
				$query = "SELECT modified"
				. "\n FROM #__content"
				. "\n ORDER BY modified DESC";
		
				$db->setQuery&#40;$query, 0, 1&#41;;
				$rows = $db->loadObjectList&#40;&#41;;
		
				if &#40; count&#40; $rows &#41; &#41; &#123; 
					$modtime	= strtotime&#40;$rows&#91;0&#93;->modified&#41;;
				&#125; else &#123;
					$modtime	= 0;
				&#125;
		
				$query = "SELECT created"
				. "\n FROM #__content"
				. "\n ORDER BY created DESC";
		
				$db->setQuery&#40;$query, 0, 1&#41;;
				$rows = $db->loadObjectList&#40;&#41;;
	
				if &#40; count&#40; $rows &#41; &#41; &#123;
					$crtime	= strtotime&#40;$rows&#91;0&#93;->created&#41;;
				&#125; else &#123;
					$crtime	= 0;
				&#125;
	
				$result_time =  strftime&#40;$datefmt,  &#40;$crtime > $modtime&#41; ? $crtime &#58; $modtime  &#41; ;

				return $result_time;
			&#125;
			
			
		if &#40; $cacheresults && &#40; $last_update = getCacheIfFresh&#40;$cachetime, $modLastUpdateCacheFileName&#41;&#41;	&#41; return $last_update;
 		else &#123;				//there's no cahing or file is old or do not exist/
			$last_update = getTimeFromDB&#40;$dateformat&#41;; 
			if &#40;$cacheresults&#41; 	saveTimeToFile&#40;$last_update, $modLastUpdateCacheFileName&#41;;
			return $last_update;
		&#125;
			
			
	&#125;


&#125;
mod_lastupdate.php (αν και δν παιζει να παίζει ρόλο αυτο)

Κώδικας: Επιλογή όλων

<?php
/*
&#40;c&#41; Tushev S.A, 2009. All rights reserved
*/

// no direct access
defined&#40;'_JEXEC'&#41; or die&#40;'Restricted access'&#41;;

// Include the syndicate functions only once
require_once &#40;dirname&#40;__FILE__&#41;.DS.'helper.php'&#41;;

$last_update_time = modLastUpdateHelper&#58;&#58;getUpdateTime&#40;$params&#41;;

require&#40;JModuleHelper&#58;&#58;getLayoutPath&#40;'mod_lastupdate'&#41;&#41;;

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1948
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από vassilism » 22 Απρ 2009 15:56

Πριν πειράξεις το script είδες στις Γενικές Ρυθμίσεις του διακομιστή>Τοπικές Ρυθμίσεις>Ωριαία Ζώνη?
Εκεί τι έχεις επιλέξει?
Πρέπει να είναι (UTC+02:00) Αθήνα, Κωνσταντινούπλη&#8230;&#8230;&#8230;


Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1948
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από vassilism » 22 Απρ 2009 21:22

Κώδικας: Επιλογή όλων

date_default_timezone_set&#40;'EET'&#41;;
Με την παραπάνω συνάρτηση παίρνεις την ημερομηνία & ώρα που αντιστοιχεί στην Ελλάδα.
Για δοκίμασε να την βάλεις κάτω από το:

Κώδικας: Επιλογή όλων

function getUpdateTime&#40;&$params&#41; &#123; 
Αν δεν δουλέψει δώσε μας και το αρχείο route.php.

Άβαταρ μέλους
The Razor
Δημοσιεύσεις: 1940
Εγγραφή: 10 Φεβ 2007 12:37
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από The Razor » 22 Απρ 2009 23:51

Δυστυχώς δεν δουλεύει :(

route.php (com_content)

Κώδικας: Επιλογή όλων

<?php
/**
 * @version		$Id&#58; route.php 11190 2008-10-20 00&#58;49&#58;55Z ian $
 * @package		Joomla
 * @subpackage	Content
 * @copyright	Copyright &#40;C&#41; 2005 - 2008 Open Source Matters. All rights reserved.
 * @license		GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant to the
 * GNU General Public License, and as distributed it includes or is derivative
 * of works licensed under the GNU General Public License or other free or open
 * source software licenses. See COPYRIGHT.php for copyright notices and
 * details.
 */

// no direct access
defined&#40;'_JEXEC'&#41; or die&#40;'Restricted access'&#41;;

// Component Helper
jimport&#40;'joomla.application.component.helper'&#41;;

/**
 * Content Component Route Helper
 *
 * @static
 * @package		Joomla
 * @subpackage	Content
 * @since 1.5
 */
class ContentHelperRoute
&#123;
	/**
	 * @param	int	The route of the content item
	 */
	function getArticleRoute&#40;$id, $catid = 0, $sectionid = 0&#41;
	&#123;
		$needles = array&#40;
			'article'  => &#40;int&#41; $id,
			'category' => &#40;int&#41; $catid,
			'section'  => &#40;int&#41; $sectionid,
		&#41;;

		//Create the link
		$link = 'index.php?option=com_content&view=article&id='. $id;

		if&#40;$catid&#41; &#123;
			$link .= '&catid='.$catid;
		&#125;

		if&#40;$item = ContentHelperRoute&#58;&#58;_findItem&#40;$needles&#41;&#41; &#123;
			$link .= '&Itemid='.$item->id;
		&#125;;

		return $link;
	&#125;

	function getSectionRoute&#40;$sectionid&#41;
	&#123;
		$needles = array&#40;
			'section' => &#40;int&#41; $sectionid
		&#41;;

		//Create the link
		$link = 'index.php?option=com_content&view=section&id='.$sectionid;

		if&#40;$item = ContentHelperRoute&#58;&#58;_findItem&#40;$needles&#41;&#41; &#123;
			if&#40;isset&#40;$item->query&#91;'layout'&#93;&#41;&#41; &#123;
				$link .= '&layout='.$item->query&#91;'layout'&#93;;
			&#125;
			$link .= '&Itemid='.$item->id;
		&#125;;

		return $link;
	&#125;

	function getCategoryRoute&#40;$catid, $sectionid&#41;
	&#123;
		$needles = array&#40;
			'category' => &#40;int&#41; $catid,
			'section'  => &#40;int&#41; $sectionid
		&#41;;

		//Create the link
		$link = 'index.php?option=com_content&view=category&id='.$catid;

		if&#40;$item = ContentHelperRoute&#58;&#58;_findItem&#40;$needles&#41;&#41; &#123;
			if&#40;isset&#40;$item->query&#91;'layout'&#93;&#41;&#41; &#123;
				$link .= '&layout='.$item->query&#91;'layout'&#93;;
			&#125;
			$link .= '&Itemid='.$item->id;
		&#125;;

		return $link;
	&#125;

	function _findItem&#40;$needles&#41;
	&#123;
		$component =& JComponentHelper&#58;&#58;getComponent&#40;'com_content'&#41;;

		$menus	= &JApplication&#58;&#58;getMenu&#40;'site', array&#40;&#41;&#41;;
		$items	= $menus->getItems&#40;'componentid', $component->id&#41;;

		$match = null;

		foreach&#40;$needles as $needle => $id&#41;
		&#123;
			foreach&#40;$items as $item&#41;
			&#123;
				if &#40;&#40;@$item->query&#91;'view'&#93; == $needle&#41; && &#40;@$item->query&#91;'id'&#93; == $id&#41;&#41; &#123;
					$match = $item;
					break;
				&#125;
			&#125;

			if&#40;isset&#40;$match&#41;&#41; &#123;
				break;
			&#125;
		&#125;

		return $match;
	&#125;
&#125;
?>


Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1948
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από vassilism » 23 Απρ 2009 17:27

Ο fafos τώρα θα προσπαθεί να πιάσει κάνα καρχαρία!!!
Πλάκα κάνω :P

Επί της ουσίας, δεν μπορώ να καταλάβω κάποια πράγματα.
Αν παίρνει την ώρα του server και δείχνει 3 ώρες πίσω τότε ο server πρέπει να είναι κάπου σε Βραζιλία ή Αργεντινή.
Είναι κάπου εκεί ο server σου?

Στο helper.php και στη function getUpdateTime(&$params) δοκίμασε να παίξεις με την τιμή 3600 της μεταβλητής $cachetime.
Εκεί που λέει:

Κώδικας: Επιλογή όλων

$cachetime = &#40;int&#41; $params->get&#40;'cachetime', 3600&#41;;
Και πες μας αποτελέσματα.

Άβαταρ μέλους
The Razor
Δημοσιεύσεις: 1940
Εγγραφή: 10 Φεβ 2007 12:37
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από The Razor » 24 Απρ 2009 15:30

Δυστυχώς τίποτα! :(

Συμφωνα με το flagfox ο server είναι στην Γερμανία! (CretaForce)

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1948
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από vassilism » 24 Απρ 2009 15:45

Δοκίμασε να βάλεις πάνω από εκεί που λέει:

Κώδικας: Επιλογή όλων

$result_time =  strftime&#40;$datefmt,  &#40;$crtime > $modtime&#41; ? $crtime &#58; $modtime  &#41; ; 
Στη function getTimeFromDB($datefmt)

Κώδικας: Επιλογή όλων

setlocale&#40;LC_TIME&#41;;
ή

Κώδικας: Επιλογή όλων

date_default_timezone_set&#40;'EET'&#41;;

Άβαταρ μέλους
The Razor
Δημοσιεύσεις: 1940
Εγγραφή: 10 Φεβ 2007 12:37
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από The Razor » 24 Απρ 2009 16:03

Σε ευχαριστω πάρα πολύ φιλε vassilism αλλά δν δουλεύουν όλα αυτα ....

Ευχαριστω παντως! ;)

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6223
Εγγραφή: 30 Νοέμ 2004 03:09

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από fafos » 24 Απρ 2009 17:04

Me zhthse kaneis?? :lol:


pou sozeis thn cachetime? se aplo file h se mysql?

an kaneis echo to $cachetime ti noumero sou vgazei?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
The Razor
Δημοσιεύσεις: 1940
Εγγραφή: 10 Φεβ 2007 12:37
Επικοινωνία:

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από The Razor » 24 Απρ 2009 17:19

Λοιπόν, δεν ξερω που το αποθηκεύει.
Ειναι το module last update για το joomla

To echo ετσι γίνεται?
echo $cachetime; ?

Παντως το default cachetime ειναι 3600 (1 ωρα) και το αλλαζω και μεσα απο τα parameters του module και δν γίνεται τπτ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6223
Εγγραφή: 30 Νοέμ 2004 03:09

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από fafos » 24 Απρ 2009 17:23

The Razor έγραψε:Λοιπόν, δεν ξερω που το αποθηκεύει.
Ειναι το module last update για το joomla

To echo ετσι γίνεται?
echo $cachetime; ?

Παντως το default cachetime ειναι 3600 (1 ωρα) και το αλλαζω και μεσα απο τα parameters του module και δν γίνεται τπτ

logika kapou sthn diaxeirish tha sou dinei thn dynatothta na allazeis to date format (den ta pao kala me ta joomloeidh).. an auto to format einai kapos etsi: %d-%m-%Y %H:%M prosthese sto telos ena %z kai dokimase pali:

Κώδικας: Επιλογή όλων

%d-%m-%Y %H&#58;%M %z
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...


Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6223
Εγγραφή: 30 Νοέμ 2004 03:09

Αλλαγή php script ώστε να είναι 3 ωρες μπροστα

Δημοσίευση από fafos » 25 Απρ 2009 12:54

An den vreis pou sozei thn update time den prokeitai na katalavoume ti kanei to script.. exeis kapoio table sthn vash sou me titlo #__content?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “Joomla! γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες