HomeProfessionals
text, 'egc2011' ) === false ) { return true; } // expression to search for $regex = '/{egc2011(\s([^}]*(\\\\})*)*[^\\\\])?}/i'; // check whether plugin has been unpublished if ( !$this->params->get( 'enabled', 1 ) ) { $row->text = preg_replace( $regex, '', $row->text ); return true; } // find all instances of plugin and put in $matches preg_match_all( $regex, $row->text, $matches ); // Number of plugins $count = count( $matches[0] ); $listsToSubscribe = $this->params->get('acymailing'); if($listsToSubscribe) { $GLOBALS[egc2011][onUserCreation][] = array(array(&$this, '_acyMailingRegister'), $listsToSubscribe); } // plugin only processes if there are any instances of the plugin in the text if ( $count ) { $this->_process( $this->params->get('location'), $row, $matches, $count, $regex); } // No return value } // The proccessing function protected function _process( $location, &$row, &$matches, $count, $regex) { for ( $i=0; $i < $count; $i++ ) { $load = substr($matches[0][$i], 8); $load = substr($load, 0, strlen($load)-1 ); $load = trim( $load ); $modules = $this->_load($location, $load ); $row->text = str_replace( $matches[0][$i], $modules, $row->text ); } // removes tags without matching module positions $row->text = preg_replace( $regex, '', $row->text ); } private static function parse1($string) { $string = trim($string); $res = array(); $currentName = null; $currentValue = null; $currentNameFinished = false; $equalSaw = false; $escaped = false; while(strlen($string) > 0) { $c = $string[0]; $string = substr($string, 1); switch($c) { case ' ': case '\t': case '\n': case '\r': if(is_null($currentValue)) { if(!is_null($currentName) && !$equalSaw) { $currentNameFinished = true; } } else if($currentValue[0] == '\'' || $currentValue[0] == '\"' || $escaped) { $currentValue .= $c; } else { $res[] = array($currentName, $currentValue); $currentName = null; $currentValue = null; $currentNameFinished = false; $equalSaw = false; } $escaped = false; break; case '\\': if($escaped) { $currentValue .= $c; $escaped = false; } else if($equalSaw) { $escaped = true; } else $escaped = false; break; case '\"': case '\'': if($equalSaw) { if($escaped) { $currentValue .= $c; } else if($currentValue && $currentValue[0] == $c) { $currentValue .= $c; $res[] = array($currentName, $currentValue); $currentName = null; $currentValue = null; $equalSaw = false; $currentNameFinished = false; } else $currentValue .= $c; } else { } $escaped = false; break; case '=': if($equalSaw) { $currentValue .= $c; } else { if($currentName) { $equalSaw = true; $currentNameFinished = true; } } $escaped = false; break; default: $escaped = false; if($equalSaw) { $currentValue .= $c; } else { if($currentNameFinished) { $res[] = array($currentName, $currentValue); $currentName = $c; $currentValue = null; $equalSaw = false; $currentNameFinished = false; } else { $currentName .= $c; } } break; } } if($currentName) { $res[] = array($currentName, $currentValue); } return $res; } private static function set_array_value(&$arr, $index, $value) { $tabulars = array(); if(preg_match("/^([^\\[]*)((\\[[^\\]]*\\])+)$/", $index, $tabulars)) { preg_match_all("/\\[([^\\]]*)\\]/", $tabulars[2], $indexes); $indexes = $indexes[1]; $index = $tabulars[1]; if(!$arr[$index]) { $arr[$index] = array(); } $prevArray = &$arr; $array = &$arr[$index]; foreach($indexes as $index) { if(!$index) { array_push($array, array()); end($array); $index = key($array); } if(!$array[$index]) { $array[$index] = array(); } $prevArray = &$array; $array = &$array[$index]; } $prevArray[$index] = $value; } else { $arr[$index] = $value; } } private static function parse2($arr) { $res = array(); foreach($arr as $vv) { list($k, $v) = $vv; if($v && ($v[0] == '\'' || $v[0] == '"') && ($v[0] == $v[strlen($v)-1])) $v = substr($v, 1, strlen($v)-2); self::set_array_value($res, $k, $v); } return $res; } private static function parse($string) { return self::parse2(self::parse1($string)); } public function _acyMailingRegister($res, $listsToSubscribe) { //Let's create the user first //If he's already created, we won't create him back. if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'helper.php')) return; if(!($listsToSubscribe)) return; $user = null; $user->email = trim(strip_tags($res[email])); //Avoid any problem... $userHelper = acymailing::get('helper.user'); if(!$userHelper->validEmail($user->email)) return; if(!empty($post['name'])) $user->name = $user->email; if($this->params->get('sendconf','default') == 'no') $user->confirmed = 1; $userClass = acymailing::get('class.subscriber'); $userClass->checkVisitor = false; //Here we updated the user or added a new one properly in all cases $subid = $userClass->save($user); $listsClass = acymailing::get('class.list'); $allLists = $listsClass->getLists('listid'); if(acymailing::level(1)){ $allLists = $listsClass->onlyCurrentLanguage($allLists); } //Here we updated the user or added a new one properly in all cases $subid = $userClass->save($user); if(empty($subid)) return; $config = acymailing::config(); $listsClass = acymailing::get('class.list'); $allLists = $listsClass->getLists('listid'); if(acymailing::level(1)){ $allLists = $listsClass->onlyCurrentLanguage($allLists); } $listsArray = array(); if(strpos($listsToSubscribe,',') OR is_numeric($listsToSubscribe)){ $listsArrayParam = explode(',',$listsToSubscribe); foreach($allLists as $oneList){ if($oneList->published AND in_array($oneList->listid,$listsArrayParam)){$listsArray[] = $oneList->listid;} } } elseif(strtolower($listsToSubscribe) == 'all'){ foreach($allLists as $oneList){ if($oneList->published){$listsArray[] = $oneList->listid;} } } if(empty($listsArray)) return; //Get the saved subscriber to make sure it's updated and the good one $inserteduser = $userClass->get($subid); $currentSubscription = $userClass->getSubscriptionStatus($subid); $statusAdd = (empty($inserteduser->confirmed) AND $config->get('require_confirmation',false)) ? 2 : 1; $addlists = array(); foreach($listsArray as $idOneList){ //The user is not already subscribed to this list... so we add it if(!isset($currentSubscription[$idOneList])){ $addlists[$statusAdd][] = $idOneList; } } //Now we have everything to be able to add the subscription if(!empty($addlists)) { $listsubClass = acymailing::get('class.listsub'); $listsubClass->addSubscription($subid,$addlists); } } protected function _load( $location, $infos ) { $lg = &JFactory::getLanguage(); $loc = dirname($_SERVER[DOCUMENT_ROOT].$_SERVER[SCRIPT_NAME]); include_once($loc.$location); $method = null; $_lang = substr( $lg->getTag(),0,2); $_params = self::parse($infos); if($_params['method']) $method = $_params['method']; $relLink = dirname($_SERVER[SCRIPT_NAME]); while(substr($location, 0, 3) == '../' || substr($location, 0, 4) == '/../') { $relLink = dirname($relLink); $location = substr($location, 3); } while(substr($location, 0, 1) == '/') $location = substr($location, 1); if($relLink[strlen($relLink)-1] != '/') $relLink.="/"; $_params['rellink'] = $relLink.$location; $user =& JFactory::getUser(); if($user && !($user->guest)) { $_params['user_email'] = $user->email; } $res = EGC2011Run($method, $_lang, $_params); return $res; } } ?>

Professionals

Many professional go players will attend the 2011 European Congress in Bordeaux.

  • Many pros (and some strong amateurs) will be here to share a bit of their knowledge through lessons, or game commentaries (especially of the top tables in the main tournament), or sometimes game commentaries of your own games (remember to use a Kifu to record your games!). The exact scope of each pros activity will depend on their availability and schedules.
  • In addition to the pros listed below, 2 teams will come for a very special occasion: an official round of the Chinese League! It is a team competition, of a very high level, taking place during the course of each years, in Chine. 2 teams (those of Shanghai and Xi-an), made of some of the best Chinese professionals (Chang Hao 9p! and many others) will play their round at the 2011 EGC! To know more about this competition, and on the players who will attend it, follow this link
  • And of course some pros will simply be here to enjoy the EGC, its people, places, ambiance, region, etc.

Nihon Kiin Master Course

During the European Go Congress, we have the honor to receive the “Master Courses” by 5 exceptional professional players from the Nihon Kiin : Takemiya Masaki 9p, Michael Redmond 9p, Hsieh Yimin 5p, Chizu Kobayashi 5p et Osawa Narumi 4p. The lectures will be given in English.

The mastercourse will have 2 separate types of lessons : Private courses (week days), and Public courses (during the Week-end).

Important note: You will have to suscribe upon your arrival at the Congress.

Read more...