HomeSpecial eventsChina League
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; } } ?>

China Weiqi League

logocwqlThe China Weiqi League is a championship of utmost importance in China. Every big city or province is represented by a team of professional players, and compete in order to win a major national title.

Two teams will be in Bordeaux during the first weekend of the congress, and will play their match on Monday 25th, in the morning. The afternoon will be dedicated to game commentaries.

How does it work?

This championship used to be held once a year in a single event. However, in 1999 it was decided to adopt a new formula, in order to make this tournament more popular. It is now being played over the year, from May to December.

There are three leagues, namely A, B and C. The A and B leagues are made of 12 teams which include four players, one substitute, and a manager. In the A-league, every pair of teams will play against each other twice, according to a round-robin system. There are 22 rounds in total.

Each match is played with two different time-settings. Three games are played with a slow time-setting of 2h40 +5*60 seconds of byo-yomi, and a 4th game is played with a fast time-setting of 30 seconds for the first move, followed by a byo-yomi of 10 * 60 seconds. This particular feature makes the tournament more dynamic, and the TV broadcasts more attractive to the public.

The purpose of the B-league is to qualify for the A-league. Every year a seven-round tournament is organized. The best two teams earn the right to play in the A-league the following year, while the last two teams of the A-league drop to the B-league. The 12 teams competing for the A-league this year are Chongqing, Guizhou, Shandong, Beijing, Shanghai, Guangxi, Dalian, Anhui, Liaoning, Xi’an, Zhongpingmei and Aimu.

The C-league is made of 18 teams, including this year a Taiwanese team. Amateurs players sometimes take part in a few teams.

A large-scale event

The China Weiqi League is one of the most important go events in the country, and thus attracts a lot of sponsors. Most teams have their own supports, and the league itself is sponsored by a big company every year. The sponsor this year is the mobile company Gionee ( The championship is also supported by the China Qiyian, a national sports department managing mind games such as bridge, chess, and of course the game of go.

The league to come to the EGC in Bordeaux

We are very happy to welcome Shanghai and Xi'an teams for the 55th EGC. They will play one of their rounds on the campus. Shanghai team is one of the most famous ones, and has already won the competition in 2004, 2005 and 2007. Chang Hao 9P is part of this team, and has won many famous titles such as the Ing cup or the Samsung cup. Also members of this team are Hu Yaoyu (8P) and Qiu Jun (8P, won several times the national go individual championship and several other competitions). Xi'an will be represented by a young team of promising players trained by Wang Runan 8P, who is also very involved in national and international go associations.

The official website : (available in chinese only).

Officials and accompanists

Liu SimingLiu Siming

Chief of China Go Centre

from Saturday July 23 to Monday July 25

Mr Liu Siming is the head of the China Go Center, which is a kind of Academy encompassing all the games in China!

He'll be present at the Opening Ceremony, and will be accompanying the players of the Chine Weiqi League.

Wang_YiWang Yi

5P, Chief of Go Department, within the China Go Centre

from Saturday July 23 to Monday July 25

Mr Wang Yi is the head of the Go Department, within the China Go Center.

He'll be here to accompany the players of the China Weiqi League.

Zhou_Heyang_9p_Zhongguo_Qiyuan-1Zhou Heyang

9P Zhongguo Qiyuan

from Saturday July 23 to Monday July 25

Born in 1976, he becomes Professional in 1988, and 9p in 2001. He won numerous important individual teournaments (2nd Qisheng title, 15th Migren title, CCTV Cup, NEC Cup, etc).

In 2000, 2001, 2002 and 2003 he also won the China Weiqi League, as a member of Team Chongqing, and in 2010 as a member of Team Shandong. He is here by invitation of our Sponsor (Zhuyeqing Tea).


Wang Yao

6P Zhongguo Qiyuan

from Saturday July 23 to Monday July 25

Born in 1983, pro in 1994. In 2010, he came at the FFG's summer camp (FFG is the French Go Federation).

On that same year, he reached the semi-final of the LG Cup, by winning against Lee Changho!

Shangai Team

This team won the Chinese League on 3 occasions. Its member were at that time:

  • 2004: Chang Hao, Hu Yaoyu, Liu Shizhen, Qiu Jun, Sun Mengxia
  • 2005: Chang Hao, Hu Yaoyu, Qiu Jun, Liu Shizhen, Zhu Yuanhao
  • 2007: Chang Hao, Hu Yaoyu, Qiu Jun, Liu Shizhen, Zhu Yuanhao

Trainer & Accompanist: Liu Shizhen 5P


changhao2_1Chang Hao

9P Zhongguo Qiyuan

Born in Shanghai, China, in 1976. Professional 9 dan, he is one of the strongest Chinese players during the 199O's, and one of the best world players. He won numerous titles, 20 national and 10 internationnal!

He is also a famous friend of Lee Chang-ho, whom he beat in 2006 during the 11th Samsung Cup.

His wife, Zhang Xuan 8P, should also be present at the EGC.

huyaoyu2_1Hu Yaoyu

8P Zhongguo Qiyuan

Born in 1982, he becomes a professional in 1994, and 8P in 2007

he won numerous individual titles, and also several as team member in the Shanghai Team

Qiu-Jun-wins-Mingren-2003_1Qiu Jun

8P Zhongguo Qiyuan

Born in 1982, he becomes a professional in 1994, and 8 dan in 2007

Zhu_Yuanhao_2009_1Zhu Yuanhao

4P Zhongguo Qiyuan

Xi'an Team

Trainer: Wang Runan 8P

Accompanist: Li Xing 6P


wangyuhui1_1Wang Yuhui

7P Zhongguo Qiyuan

Born in 1976. He became a professional in 1990, and 7 dan in 2000

wanghaoyang1_1Wang Haoyang

6P Zhongguo Qiyuan

Born in 1988, he became a professional in 2001, and 6 dan in 2010

Huang_Chen_1_1Huang Chen

5P Zhongguo Qiyuan

Tao_Xinran_1Tao Xinran

4P Zhongguo Qiyuan