params= new JRegistry(); $this->params->loadString($plugin->params, 'JSON'); $this->_cacheEnabled = $this->params->get('cache_enabled'); if ($this->_cacheEnabled === null) $this->_cacheEnabled == 1; $this->_autoflush = $this->params->get('autoFlush'); if ($this->_autoflush === null) $this->_autoflush = 1; $this->_autoflush3rdParty = $this->params->get('autoFlush-ThirdParty'); if ($this->_autoflush3rdParty === null) $this->_autoflush3rdParty = 1; $this->_autoflushClientSide = $this->params->get('autoFlush-ClientSide'); if ($this->_autoflushClientSide === null) $this->_autoflushClientSide = 0; } /** * Heartbeat cache checking function. Will also monitor $_GET for the jSGCache parameter * (pressing the purge cache button in admin) * * * @access public * @return null */ public function onAfterInitialise() { if (!$this->_cacheEnabled || $this->_isBlacklisted($this->_applicationPath)) { JResponse::setHeader('X-Cache-Enabled','False',true); return; } if ($this->_cacheEnabled) { JResponse::setHeader('X-Cache-Enabled','True',true); } //Init the application url $this->_applicationPath = str_replace(array('administrator/index.php','index.php'),'',str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME'])); //Check for any admin action and proceed to flushMonitor and 3rd party plugins if ( isset($_POST['task']) || isset($_GET['task']) || isset($_GET['cart_virtuemart_product_id'])) { $this->_flushMonitor(); if ($this->_autoflush3rdParty) $this->_monitorThirdPartyPlugins(); } //Check if we have a logged in user and enable cache bypass cookie 'task' => string 'user.login' $user = JFactory::getUser(); if (!$user->guest || (isset($_POST['task']) && preg_match('/login/i', $_POST['task']))) { $_POST[JSession::getFormToken()] = 1; //Force the correct token, since the login box on the page is cached with the 1st visitors' token //Enable the cache bypass for logged users by setting a cache bypass cookie setcookie('jSGCacheBypass',1,time() + 6000,'/'); } if ($user->guest || (isset($_POST['task']) && $_POST['task'] == 'user.logout')) { //Remove the bypass cookie if not a logged user if (isset($_COOKIE['jSGCacheBypass'])) setcookie('jSGCacheBypass',0, time() - 3600,'/'); } // Handle purge button press when get has jSGCache=purge, but only in admin with a logged user if(isset($_GET['jSGCache']) && $_GET['jSGCache'] == 'purge' && JFactory::getApplication()->isAdmin() && !$user->guest ) $this->_purgeCache(true); } /** * Admin panel icon display * * @access public * @param string $context * @return array */ public function onGetIcons( $context ) { return array(array( 'link'=>'?jSGCache=purge', 'image'=>'header/icon-48-purge.png', 'text'=>JText::_('Purge jSGCache'), 'id'=>'jSGCache' )); } /** * Calls the cache server to purge the cache * * @access public * @param string|bool $message Message to be displayed if purge is successful. If this param is false no output would be done * @return null */ private function _purgeCache( $message = true ) { $purgeRequest = $this->_applicationPath . '(.*)'; // Check if caching server is varnish or nginx. $sgcache_ip = '/etc/sgcache_ip'; $hostname = $_SERVER['SERVER_ADDR']; $purge_method = "PURGE"; if (file_exists($sgcache_ip)) { $hostname = trim( file_get_contents( $sgcache_ip, true ) ); $purge_method = "BAN"; } $cacheServerSocket = fsockopen($hostname, 80, $errno, $errstr, 2); if(!$cacheServerSocket) { JError::raise(E_ERROR,500,JText::_('Connection to cache server failed!')); JError::raise(E_ERROR,500,JText::_($errstr ($errno))); return; } $request = "$purge_method {$purgeRequest} HTTP/1.0\r\nHost: {$_SERVER['SERVER_NAME']}\r\nConnection: Close\r\n\r\n"; if (preg_match('/^www\./',$_SERVER['SERVER_NAME'])) { $domain_no_www = preg_replace('/^www\./', '', $_SERVER['SERVER_NAME']); $request2 = "$purge_method {$purgeRequest} HTTP/1.0\r\nHost: {$domain_no_www}\r\nConnection: Close\r\n\r\n"; } else $request2 = "$purge_method {$purgeRequest} HTTP/1.0\r\nHost: www.{$_SERVER['SERVER_NAME']}\r\nConnection: Close\r\n\r\n"; fwrite($cacheServerSocket, $request); $response = fgets($cacheServerSocket); fclose($cacheServerSocket); $cacheServerSocket = fsockopen($hostname, 80, $errno, $errstr, 2); fwrite($cacheServerSocket, $request2); fclose($cacheServerSocket); if($message !== false) { if(preg_match('/200/',$response)) { if ($message === true) JFactory::getApplication()->enqueueMessage(JText::_('SG Cache Successfully Purged!')); else JFactory::getApplication()->enqueueMessage(JText::_( $message )); } else { JError::raise(E_NOTICE,501, JText::_('SG Cache: Purge was not successful!')); JError::raise(E_NOTICE,501, jText::_('Error: ' . $response)); } } } /** * Check if url is in caching blacklist * * @param string $applicationPath * * @return bool */ private function _isBlacklisted($applicationPath) { $blacklistArray = explode("\n",$this->params->get('blacklist')); $blacklistRegexArray = array(); $indexIsBlacklisted = false; foreach($blacklistArray as $key=>$row) { $row = trim($row); if ($row != '/' && $quoted = preg_quote($row,'/')) $blacklistRegexArray[$key] = $quoted; if ($row == '/') $indexIsBlacklisted = true; } if ($indexIsBlacklisted && $_SERVER['REQUEST_URI'] == $applicationPath) return true; if (empty($blacklistRegexArray)) return false; $blacklistRegex = '/('.implode('|',$blacklistRegexArray) . ')/i'; return preg_match($blacklistRegex, $_SERVER['REQUEST_URI']); } /** * 3rd party plugin monitor * * @access private * @return null */ private function _monitorThirdPartyPlugins() { // Kunena & K2 if ($this->params->get('autoFlush-ThirdParty') == 1 && isset($_POST['option']) && ($_POST['option']=='com_k2' || $_POST['option' ]== 'com_kunena')) { $this->_purgeCache(false); } // VirtueMart if ( (isset($_POST['option']) && $_POST['option'] == 'com_virtuemart') || ( isset($_GET['option']) && $_GET['option'] == 'com_virtuemart' ) || isset($_GET['cart_virtuemart_product_id']) ) { if($this->params->get('autoFlush-ThirdParty') == 1) $this->_purgeCache(false); } } /** * Action monitor * * @access private * @return null */ private function _flushMonitor() { $user = JFactory::getUser(); if ((!JFactory::getApplication()->isAdmin() && !$this->_autoflushClientSide) || $user->guest) return; $autoflush = $this->params->get('autoFlush'); if ($autoflush === null) $autoflush = 1; if (isset($_POST['task']) && $_POST['task'] && !in_array($_POST['task'],self::$_ignoreTasks) && $autoflush == 1) $this->_purgeCache(false); } } Όροι χρήσης

Όροι χρήσης

Βεβαιωθείτε ότι συμφωνείτε με τους κάτωθι όρους και προϋποθέσεις διότι η περαιτέρω χρήση και η περιήγηση σας στην άνω ιστοσελίδα www.quickfix.gr συνεπάγεται την ρητή και ανεπιφύλακτη συγκατάθεση και συναίνεση σας με αυτούς.

 

1. Η εταιρεία ΣΥΣΤΗΜΑΤΑ ΤΑΧΥΜΕΤΑΦΟΡΩΝ ΤΑΧΥΚΑΘΑΡΙΣΜΩΝ Α.Ε με διακριτικό τίτλο  SCC A.E  μέ έδρα την Πάτρα στην Ελλάδα και οδός Τριών Ναυάρχων 18 , ΤΚ 26222 διατηρεί το δικαίωμα να τροποποιεί μονομερώς ή να ανανεώνει τους παρόντες όρους και τις προϋποθέσεις των συναλλαγών, που γίνονται μέσω του ηλεκτρονικού της καταστήματος, σύμφωνα με τις ανάγκες της και τα συναλλακτικά ήθη.

 

2. H SCC A.E δεν δεσμεύεται ως προς την πληρότητα και την εγκυρότητα των πληροφοριών που παρατίθενται στην ιστοσελίδα της www.quickfix.gr, τόσο όσον αφορά την ύπαρξη των ουσιωδών χαρακτηριστικών που κατά περίπτωση  περιγράφονται για κάθε προϊόν που διαθέτει, όσο και για την ακρίβεια των στοιχείων που αφορούν τις παρεχόμενες.

 

3. H SCC A.E ουδεμία εγγύηση μπορεί να παράσχει για τη διαθεσιμότητα των προϊόντων, αλλά εγγυάται την έγκαιρη ενημέρωση των τελικών καταναλωτών περί της μη διαθεσιμότητας τους.

 

4. Οι χρήστες της ιστοσελίδας www.quickfix.gr  αποδέχονται ότι δεν θα χρησιμοποιούν αυτές και το ηλεκτρονικό κατάστημα της SCC A.E για αποστολή, δημοσίευση, αποστολή με e-mail ή μετάδοση με άλλους τρόπους οποιουδήποτε . Περιεχομένου είναι παράνομο, βλαβερό, απειλητικό, προσβλητικό, ενοχλητικό, συκοφαντικό, δυσφημιστικό, χυδαίο, άσεμνο, λιβελογραφικό, αποτελεί παραβίαση του απορρήτου κάποιου άλλου, δείχνει εμπάθεια, ή εκφράζει φυλετικές, εθνικές ή άλλες διακρίσεις, δύναται να προκαλέσει βλάβες σε ανήλικους με οποιονδήποτε τρόπο, δεν δικαιούται  να μεταδοθεί σύμφωνα με την νομοθεσία ή τις συμβατικές ή διαχειριστικές σχέσεις (όπως εσωτερικές πληροφορίες, ιδιοκτησιακές και εμπιστευτικές πληροφορίες που αποκτήθηκαν ή αποκαλύφθηκαν ως μέρος εργασιακών σχέσεων ή που καλύπτονται σε συμφωνίες εμπιστευτικότητας), παραβιάζει οποιαδήποτε ευρεσιτεχνία, εμπορικό σήμα, εμπορικό μυστικό, πνευματικά δικαιώματα ή άλλα ιδιοκτησιακά δικαιώματα τρίτων, περιέχει ιούς λογισμικού ή οποιουσδήποτε άλλους κώδικες, αρχεία ή προγράμματα, που έχουν σχεδιαστεί με σκοπό την διακοπή, την πρόκληση βλάβης, την καταστροφή ή παρεμπόδιση της λειτουργίας οποιουδήποτε λογισμικού ή υλικού υπολογιστών, ηθελημένα ή αθέλητα παραβαίνει την ισχύουσα ελληνική και κοινοτική νομοθεσία και των διατάξεων αυτής, δύναται να παρενοχλήσει τρίτους με οποιοδήποτε τρόπο και οποιοδήποτε περιεχόμενο χρησιμοποιείται για συλλογή ή αποθήκευση προσωπικών δεδομένων των χρηστών.

 

Πνευματικά  Δικαιώματα

 

Στην ιστοσελίδα www.quickfix.gr περιλαμβάνονται υλικό, trademarks, service marks, trade dress και άλλο περιεχόμενο που δεν ανήκει  στην SCC A.E  και προστατεύεται από το Νόμο. Όλα τα περιεχόμενα του site (συμπεριλαμβανομένων κειμένων, γραφικών, εικόνων, φωτογραφιών και λογισμικού) είναι πνευματικής ιδιοκτησία της SCC A.E και προστατεύονται από την Ελληνική και Διεθνή Νομοθεσία. Απαγορεύεται η οποιαδήποτε αντιγραφή, αναπαραγωγή και αναμετάδοση του υλικού, χωρίς έγγραφη άδεια της εταιρίας. Η εμφάνισή του στον διαδικτυακό τόπο δεν θα πρέπει κατά κανένα τρόπο να εκληφθεί ως μεταβίβαση ή εκχώρηση άδειας ή δικαιώματος χρήσης τους.