HomeGetting there
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; } } ?>

Getting there

日本語 flagjp

Getting to Bordeaux


Whatever your travel option may be, Bordeaux is easy to reach. You can fly to the Bordeaux-Mérignac airport. Or by car, Bordeaux is easily accessible; all of the major motorways around Bordeaux link up with the ring road. There is good train service to main station, Gare Saint Jean. By a TGV train, the journey from Paris is only 3 hours long.

Bordeaux and its suburbs have an excellent tram service and bus system. It's easy to get about both in the centre of Bordeaux and in the outskirts. There are also electric shuttle buses in the centre of town. A single bus or tram ticket costs €1.40, but there are other cards which can work out to be cheaper.

The trip to the congress site will take about an hour from the airport and half an hour from the railway station. There is a special shuttle bus between the airport and the town centre, but it is a little slow and costs around €7. It's a better idea to use other public transport services. Detailed itineraries are available at the bottom of this page.

If you would like to go the campus by taxi, it should cost between €30 and €35 from the airport and between €12 and €20 from the train station.

The University campus : Bordeaux I

The campus is south-west of Bordeaux, in the suburb of Talence (see the map).

The tram line B runs along the campus and two stops ("Peixotto" and "Béthanie") are each less than 5 minutes away from the campus entrance. Many other bus routes also stop at these two tram stops, so the campus is well linked up to the town centre and the surrounding suburbs.

Bordeaux has a new self-service bicycle rental service called V3 (pronounce "Vé-cube"). Bikes can be rented at many stops near the campus. A V3 bike can be used to travel all around the Bordeaux and the suburbs, which are together known as the CUB (Communauté Urbaine de Bordeaux). You just need to park the V3 at a self-service station at the end of your journey. It's a very convenient way of getting around!


The tram service

Useful tips :

A variety of different public transport tickets, known as "tickartes", are available:

  • A ticket valid for a single journey costs €1.40, and can be bought from the driver when you get on a bus.
  • A ticket valid for 5 or 10 trips costs from €5 to €10. These tickets can be used by several people at the same time – remember to punch the ticket several times if you use it when traveling in a group. There are reduced rates for children, students and the elderly.
  • A 7-day unlimited travel pass only costs €10.
  • An evening pass costs €2, and gives unlimited access to bus and tram services between 7pm and 5 am.

All public transport is free for children under 5.

Only single-journey tickets can be bought from a bus driver. For all other tickets, and journeys on trams, remember to buy your tickets before getting on! There are ticket machines at each tram stop, which accept both cash and bank cards. You can also buy tickets from tobacconists, and in "TBC" shops, either opposite Gare Saint Jean or in the Place des Quinconces.

Warning: to avoid getting into trouble with ticket inspectors, don't forget to punch your ticket each time you get on a bus or a tram.

If you use V3 bicycle, there is a €5 weekly fee. Each time you rent a bike, the first half hour is free. Each hour of further usage then costs €2.

Advised routes :

Railway station => campus

  • Take the number 10 bus at the Gare Saint Jean bus stop, opposite the train station, going towards "Gradignan Beausoleil". Leave the bus at the stop "Peixotto". Approximate time: 15 minutes.
  • Tram stop "Gare St Jean", tram line C going towards"les Aubiers". Change at the stop "Quinconces". Take tram line B going to "Pessac centre" and get off at the stop "Béthanie". Takes approximately half an hour.

Airport => campus

  • take bus line 1 going towards "Quinconces". Change at "Mérignac Soleil" and take line 34 going towards "Bègles Rives d'Arcins". Get off at the stop "Arts et Métiers". Takes approximately one hour.
  • Take bus line 1 going towards "Quinconces" change at the stop "Mérignac centre". Take the bus number 35 going towards "Talence Peixotto" and get off at the terminus. Takes approximately one hour.
  • Take bus line 1 going towards "Quinconces" change at the terminus. Take tram line B going towards "Pessac centre" and get off at the stop "Béthanie". Takes approximately one and a half hours.

Campus => Bordeaux town center

  • Take tram line B going to "Claveau – Bassin à flots", get off at any stop from "La Victoire" onwards according to the place you wish to visit. A few examples:
    • Get off at the "Victoire" to see the Place de la Victoire, a pedestrian area with several shops. A typical Bordeaux district, "Saint Michel", is a few minutes' walk away.
    • Get off at "Hôtel de ville" to see the Bordeaux cathedral in the Place Pey Berland, and the main shopping area: rue Sainte Catherine, a pedestrian area.
    • From "Grand Théâtre", you can go to the shopping area (rue Sainte Catherine), or visit the Grand Théâtre, the Place des Quiconces and the Quais de la Garonne, all just a few minutes' walk away.

For more information about the CUB travel system: http://www.infotbc.com/