Jump to content

Recommended Posts

Hi all,

 

I have this problem with an echo I have this code, what is working only not all of it, it request a database (ID) TID which is a catorgy. Now I need to TID to be in a place but can't to seem to get it. Here is the code:

<?php defined('_JEXEC') or die('Restricted access'); // no direct access ?>
<script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=false"> 
</script> 
<script type="text/javascript"> 
/*
function changeActiveCategory(id,show)
{
var a_categoryname = "a_category"+id;
if(show){
document.getElementById(a_categoryname).className = "active"+id;	
}else{
document.getElementById(a_categoryname).className = "";
}
}
*/	

function changeActiveType(id,show)
{
var a_typename = "a_type"+id;
if(show){
document.getElementById(a_typename).className = "active"+id;	
}else{
document.getElementById(a_typename).className = "";
}
}




var markerGroups = { "1": [], "2": [], "3": [], "4": [], "5": []};

function toggleGroup(type) {
      for (var i = 0; i < markerGroups[type].length; i++) {
        var marker = markerGroups[type][i];
        if (marker.getVisible()) {
          marker.setVisible(false);
	  changeActiveType(type,false);		  
        } else {
          marker.setVisible(true);
	  changeActiveType(type,true);		  
        }	

      } 
    }

function changeActiveButton(id)
{
document.getElementById("idmap").className = "map";
document.getElementById("idsatellite").className = "satellite";
document.getElementById("idterrain").className = "terrain";
var dividname = "id"+id;
document.getElementById(dividname).className = id+" "+id+"active";	
}

var map;
var goHome = new google.maps.LatLng(<?php echo $DefaultLat;?>, <?php echo $DefaultLng;?>);

function HomeControl(controlDiv, map) {

  controlDiv.style.padding = '0px 5px';

var controlUI = document.createElement('DIV');  
  controlUI.style.cursor = 'pointer';  
  controlUI.setAttribute("class","mapType");
  controlDiv.appendChild(controlUI);
  
var controlMap = document.createElement('DIV');
if(map.getMapTypeId()=='roadmap'){
controlMap.setAttribute("class","map mapactive");
}else{
controlMap.setAttribute("class","map");	
}	
controlMap.setAttribute("id","idmap");
controlUI.appendChild(controlMap);

  
var controlsatellite = document.createElement('DIV');
if(map.getMapTypeId()=='satellite'){
controlsatellite.setAttribute("class","satellite satelliteactive");
}else{
controlsatellite.setAttribute("class","satellite");
}	
controlsatellite.setAttribute("id","idsatellite");
controlUI.appendChild(controlsatellite);

var controlterrain = document.createElement('DIV');
if(map.getMapTypeId()=='hybrid'){
controlterrain.setAttribute("class","terrain terrainactive");
}else{
controlterrain.setAttribute("class","terrain");
}		
controlterrain.setAttribute("id","idterrain");	
controlUI.appendChild(controlterrain);	


  google.maps.event.addDomListener(controlUI, 'click', function() {
    /*map.setCenter(goHome);*/
  });
  
  google.maps.event.addDomListener(controlMap, 'click', function() {
   map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
   changeActiveButton('map');
   
  });
  
  google.maps.event.addDomListener(controlsatellite, 'click', function() {    
map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
changeActiveButton('satellite');

  });
  
  google.maps.event.addDomListener(controlterrain, 'click', function() {
   map.setMapTypeId(google.maps.MapTypeId.HYBRID);
   changeActiveButton('terrain');
/*map.setMapTypeId(google.maps.MapTypeId.TERRAIN);*/	
  });
  
}

  function initialize() {    
    var latlng = new google.maps.LatLng(<?php echo $DefaultLat;?>, <?php echo $DefaultLng;?>);
    var myOptions = {
      zoom: <?php echo $MapDistance;?>,
      center: latlng,
  navigationControl:true,
  scaleControl:true,
  mapTypeControl: false,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);		

var homeControlDiv = document.createElement('DIV');
var homeControl = new HomeControl(homeControlDiv, map);
homeControlDiv.index = 1;
map.controls[google.maps.ControlPosition.RIGHT].push(homeControlDiv);

var gmarkers = [];
var htmls = [];

<?php
echo 'var ptooltip=new Array();';
echo 'var showhtml=new Array();';
if($items)
{
$p=0;
foreach ($items as $item) 
{ 
$link = LinkHelper::getLink('properties','showproperty','',$item->CYslug,$item->Sslug,$item->Lslug,$item->Tslug,$item->Pslug);
$item->name=str_replace("'","\'",$item->name);
echo "\n"."ptooltip[".$p."]=new Array( '".$item->id."','".$item->ref."','".$item->tid."','".$item->name."','".$link."');"."\n";

/*property details*/
if($item->imagename!=NULL){ $img=$item->imagename;}else{$img='noimage.jpg';}
$myHtml='';
$myHtml.='<div id="propertydetail"><div class="title"><a href="'. $link.'" title="'.str_replace('"',' ',$item->name).'">'.$item->name.'</a></div><div class="image"><img src="images/properties/images/thumbs/'.$item->id.'/'.$img.'" alt="'.str_replace('"',' ',$item->name).'" width="100" height="75"></div><div class="text">';	
if ($item->name_type) { 
$myHtml.=JText::_($item->name_type).'<br />';
} 
if ($item->address) {
$myHtml.=JText::_($item->address).'<br />';
}
$myHtml.='</div>';
$myHtml.='<div class="property_button">';
$myHtml.='<a class="BottomlnkDetail" href="'.$link.'" title="'.$item->id.'">Lees meer...</a>';
$myHtml.='</div>';
$myHtml.='</div>';


echo "\n"."showhtml[".$p."]='".$myHtml."';"."\n";
$myHtml='';
/*end property details*/
$p++;
}
}
?>
var base_Icon=new Array();
base_Icon = '<?php echo JURI::base();?>modules/mod_prop_googlemap/img/beer.png';	

<?php	
if($items)
{
$x=0;	
foreach ($items as $item) { 	
?>

var myLatlng = new google.maps.LatLng(<?php echo $item->lat;?>,<?php echo $item->lng;?>);
var marker = new google.maps.Marker({
      position: myLatlng, 
      map: map,	
  icon: base_Icon	  
  });	
  /*alert (marker.number);*/
  marker.setTitle('Klik voor meer info.');
  attachSecretMessage(marker, <?php echo $x;?>);
  markerGroups[HIER MOET TID KOMEN].push(marker);
  
<?php	
$x++;
}	
}	
?>	 

function attachSecretMessage(marker, number) {
  
  var infowindow = new google.maps.InfoWindow(
      { content: showhtml[number],
 /* disableAutoPan: true,*/
        size: new google.maps.Size(50,50)
      });
  google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
/*showInContentWindow(showhtml[number]);*/
  });
  
  google.maps.event.addListener(infowindow, 'closeclick', function() {
    /*infowindow.close(map,marker);
showInContentWindow('');
closeInContentWindow();*/
  });
  
  /*
  google.maps.event.addDomListener(controlterrain, 'click', function() {
   map.setMapTypeId(google.maps.MapTypeId.HYBRID);
   changeActiveButton('terrain');

  });
  */
  
    
}

function showInContentWindow(text) {
    var sidediv = document.getElementById('content_window');
sidediv.style.visibility = "visible";
    sidediv.innerHTML = text;
  }
function closeInContentWindow() {
var sidediv = document.getElementById('content_window');
sidediv.style.visibility = "hidden";
  }
  }
  </script> 
<div class="prop_googlemap" style="width:960px; height:510px"> 
<div class="first"> 
    	<div class="second"> 
        	<div class="third"> 

<div id="map_canvas" style="width: 950px; height: 500px"></div> 
<div id="prop_googlemap_categories_all"> 
<div id="prop_googlemap_categories">     
    <ul class="categorys"> 
      <li><a id="a_type1" class="active1" href="javascript:void(0)" onclick="toggleGroup('1');">Kroeg</a></li> 
      <li><a id="a_type2" class="active2" href="javascript:void(0)" onclick="toggleGroup('2');">Discotheek</a></li>  
      <li><a id="a_type3" class="active3" href="javascript:void(0)" onclick="toggleGroup('3');">Zaal</a></li> 
      <li><a id="a_type4" class="active4" href="javascript:void(0)" onclick="toggleGroup('4');">test</a></li> 
</ul>        
    
               
</div> 
<div style="clear:both"></div>  
<div class="prop_googlemap_categories_bottom"></div> 
</div> 
<div id="content_window"></div> 
<div id="side_bar"></div> 
		</div> 
	</div> 
</div> 
</div> 
<script type="text/javascript">  initialize(); </script>                
<div style="clear:both"></div>

 

 

As you can see here:

markerGroups[THIS IS WHERE THE TID SHOULD COME].push(marker);

where now it says: "THIS IS WHERE THE TID SHOULD COME" there needs to be a number ( 1 stands for a bar, 2 stands for a disco, 3 for something else.

 

Now this is where I ask for the TID:

echo "\n"."ptooltip[".$p."]=new Array( '".$item->id."','".$item->ref."','".$item->tid."','".$item->name."','".$link."');"."\n";

 

But it can be me, but can't seem to get it working.... Can't seem to get the right code for "THIS IS WHERE THE TID SHOULD COME" anyone that could help me? Thanks!

Link to comment
https://forums.phpfreaks.com/topic/236027-php-echo-problem/
Share on other sites

@nivong: I see that you are writing Joomla code but not obeying the rule of Joomla. Writing JS like this will break the W3C validation for the page. Please see http://docs.joomla.org/Adding_JavaScript_and_CSS_to_the_page and stick to the standards of Joomla. You will stand apart from the others. Thanks!

Link to comment
https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1217493
Share on other sites

JavaScript breaks the validation because the parser tries to interpret the code as HTML, when obviously it's not. All that's needed to get around this problem is CDATA tags:

 

<script type="text/javascript">
// <![CDATA[
    ...
// ]]>
</script>

 

Ugh.  The validation parser should be updated to ignore code within <script></script> tags.  Doing the CDATA hack is so 2002.

Link to comment
https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1218826
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.