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); } } Expecting in 2020
banner1 banner10 banner11 banner12 banner13 banner14 banner15 banner16 banner17 banner18 banner19 banner2 banner20 banner21 banner22 banner3 banner4 banner5 banner6 banner7 banner8 banner9

Contact us

How many legs does a horse have?*


Follow us on facebook

Portfolio samples

Contact information
This email address is being protected from spambots. You need JavaScript enabled to view it.

mobile: 354-8453832

What else is there to do in this stormy winter than to look forward to the summer and what comes with it. If all goes as planned we are expecting 11 foals next summer. Like usually the excitement has arrived way to early..  
The foals are sired by three stallions: 8 are by Skálmar frá Nýjabæ (who was covering at our farm last summer), 2 are by Strákur frá Vatnsleysu and 1 is by Kvistur frá Skagaströnd. 


midja kvistur

Miðja was covered by Kvistur frá Skagaströnd, and there is a 50% possibility of the foal being a splashed white. Besides that we are expecting a real gæðingur with a long mane. 
Miðja is a daughter of Strákur frá Vatnsleysu and a daughter of Orion frá Litla-Bergi. She has had one foal when she was younger (Leiftur), so this will be her second offspring.


stjarna skalmar

The Moli frá Skriðu daughter, Stjarna frá Runnum was covered by Skálmar frá Nýjabæ. This is her first offspring and we are super excited about it. It will have a rather strong Hornafjörður-bloodline. We miss having Stjarna in training, she was such a fun ride. Hopefully she will pass on that quality to her offsprings. 


hetja skalmar

Hetja was covered by Skálmar frá Nýjabæ. She is pure bred from the old Hindisvík-bloodline and has one very fun daughter (Hildur) sired by Skálmars father (Aðall frá Nýjabæ). 


hanny skalmar

Hanný frá Þúfu was covered by Skálmar frá Nýjabæ. This will be her second offspring. Hanný is inbred from Gustur frá Grund, and his father Flosi frá Brunnum. She has a strong Hornafjörður-Bloodline and high movements and temper.


hanna skalmar

Hanna was covered by Skálmar frá Nýjabæ and if we are very lucky we will get our first ever buckskin foal. That would only be a bonus ! and we are pretty sure that the offspring will be exceptionally beautiful like the parents. The foal will have a quite strong Hornafjörður pedigree.


haera skalmar

Hæra was covered by Skálmar frá Nýjabæ. This will be her third offspring. She has had two beautiful foals sired by Akkur frá Vatnsleysu. Hæra is one of the most pure bred Hornafjörður mares in the world. She is from our breeding, like her father (Skuggi frá Dyjanda). Her mother is Kolbrá frá Miðfelli, a daughter of Flosi frá Brunnum and has the same mother as Dimma frá Miðfelli (mother of Díva frá Álfhólum, who got 10 for tölt). 


fimma skalmar

Fimma was covered by Skálmar frá Nýjabæ. This will be her second foal + from the Hornafjörður bloodline. Fimma is like Hæra, a daughter of Skuggi frá Dynjanda and her mother is a daughter of Gustur frá Grund and a Flosi daughter. Fimma has the same mother as Hanný frá Þúfu and Þrándur frá Brunnum


edda skalmar

Edda was also covered by Skálmar frá Nýjabæ and this will be her first foal born into our breeding. Edda has a strong Hornafjörður bloodline. Her father is Byr frá Mykjunesi and her mother is pure bred from the old Árnanes line. 


2017 glenna

Glenna was covered by Strákur frá Vatnsleysu. They have already had three offsprings together that we like a lot. Because they both are splashed white it is certain that the offspring will be too. 


2017 grima

Gríma was again covered by Strákur frá Vatnsleysu. They have had 7 offsprings together and that mix has prooven to be a good one. This will though be their last, because Strákur has left the country. They are both splashed white, so the offspring will be too. We hope strongly that those two last Strákur offsprings will be mares, because we have so few strákur-daughters. 


If all goes well this will be a very exciting summer for our breeding, and even more exciting in a few years when those youngsters can be trained. So hard to wait !