Помогите решить проблем с табами. Есть сайт с каталогом sobi, на нем по координатам отображаются карты Яндекса. Но карты находятся в табе и соответственно если при загрузке страницы таб не активен то и вмест карты серый прямоугольник.
Помогите куда и как правильно мне вставить код с map.redraw(), что б карта обновлялась при клике на таб.
Код с функцией:
P.S то, что написано GoogleMaps не имеет значение.
function showGoogleMaps($mySobi, $config)
{
if( !$config->useGoogleMaps || !isset( $config->googleMapsApiKey ) ) {
return null;
}
$map_url = "http://api-maps.yandex.ru";
$map_api_version = "1.0";
$title = $config->jsAddSlashes( $mySobi->title );
$GeoPos = $config->getGeoPosition( $mySobi->id );
if( $GeoPos['lat'] && $GeoPos['long'] &&
is_numeric( $GeoPos['lat'] ) && is_numeric( $GeoPos['lat'] ) ) {
?>
<script src="<?php echo
$map_url?>/<?php echo $map_api_version?>/index.xml?key=<?php
echo $config->googleMapsApiKey ?>"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
window.onload = function init () {
var map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(<?php echo $GeoPos['lat']; ?>,
<?php echo $GeoPos['long']; ?>), <?php echo
$config->googleMapsZoom; ?>);
var placemark=new
YMaps.Placemark(new YMaps.GeoPoint(<?php echo $GeoPos['lat']; ?>,
<?php echo $GeoPos['long']; ?>));
map.addOverlay(placemark);
placemark.openBalloon('<div style="text-align:center; width: 200px;
"><strong><?php echo $title;
?></strong></div>');
map.addControl(new YMaps.SmallZoom());
};
//]]>
</script>
<div style="width: <?php echo $config->googleMapsWidth;
?>px; height: <?php echo $config->googleMapsHeight; ?>px;"
id="YMapsID"></div>
<?php
}
elseif ( ( strlen( trim($GeoPos['lat'] ) ) && strlen( trim(
$GeoPos['long'] ) ) ) && !is_numeric( $GeoPos['lat'] ) ||
!is_numeric( $GeoPos['lat'] ) ) {
trigger_error("HTML_SOBI::showGoogleMaps(): Given cooordinates
({$GeoPos['lat']}, {$GeoPos['long']}) are not correct. Please enter
float values");
}
}
и код вставки в шаблон вместе с табами. Таб с картами третий - YaMapTab
<?php $myTabs = new sobiTabs (true);?>
<?php $myTabs->startPane("myOwnPane");?>
<?php $myTabs->startTab("Фото","FirstTab");?>
<?php echo $plugins["gallery"]; ?>
<? $myTabs->endTab();?>
<?php $myTabs->startTab("Ваши мнения и оценки","SecondTab");?>
<table style="width:98%;">
<tr><td width="50%">
<?php echo $plugins['reviews']; ?>
</td></tr>
</table>
<? $myTabs->endTab();?>
<?php $myTabs->startTab("Показать на карте","YaMapTab");?>
<table style="width:98%;">
<tr><td>
<center><?php HTML_SOBI::showGoogleMaps($mySobi, $config); ?></center>
</td></tr>
</table>
<?php $myTabs->endTab(); ?>
<?php $myTabs->endPane();?>
Ссылка с примером - http://bonus.lg.ua/catalo