2

フロントエンドのアイテムのリストを表示する次のコードがありますが、これらのリンクを新しいポップアップウィンドウで開く必要があります。これを行う方法はありますか?ありがとうございました。

echo '<div class="item_row_header">';

    for($i=0;$i<count($this->fields);$i++)  {
        echo '<div class="item_cell jdheader'.$this->fields[$i]->cssclass.'">';

        //to display the header with/without sorting option

        if(in_array($this->fields[$i]->type, array(10,11,12,13)))

            echo $this->fields[$i]->name;

        else

            echo JHTML::_('jdgrid.sort', $this->fields[$i]->name, 'field_'.$this->fields[$i]->id, @$this->cparams->filter_order_Dir, @$this->cparams->filter_order );

        echo '</div>';

    }

    echo '<div class="clr"></div></div>';

    }

echo '<div class="itemlist itemlist_type'.$this->type->id.'">';

if(count($this->items)) {

    //all the item list part display here

    for($i=0;$i<count($this->items);$i++)   {

        $item =  $this->items[$i];

        require(dirname(__FILE__).DS.'default_item.php');

    }

上記のコードでフロントエンドに表示されるものは次のとおりです。

 <div class="item_row_header">
  <div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_70 desc' title="Clique para ordenar por coluna">Título</a></div>
  <div class="item_cell jdheader">Fotos</div>
  <div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_63 desc' title="Clique para ordenar por coluna">Cidade</a></div>
  <div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_64 desc' title="Clique para ordenar por coluna">Estado</a></div>
  <div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_60 desc' title="Clique para ordenar por coluna">Tipo do Imóvel</a></div>
  <div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_67 desc' title="Clique para ordenar por coluna">Valor R$</a></div>
  <div class="clr"></div>
</div>
<div class="itemlist itemlist_type15">
  <div class="item_row_bg featured itemrow_type15">
    <div class="item_content">
      <div class="item_cell "><a href="/joomla/temporada/imoveis/itens/ver/temporada-destaque">Temporada Destaque</a></div>
      <div class="item_cell "><img src="http://mysite.com.br/joomla/images/joomd/thumbs/1350654862temporada-destaque.jpg" alt="Fotos" /></div>
      <div class="item_cell ">Exemplo de Cidade</div>
      <div class="item_cell ">São Paulo</div>
      <div class="item_cell ">Casa</div>
      <div class="item_cell ">600</div>
      <div class="clr"></div>
    </div>
  </div>
  <div class="item_row itemrow_type15">
    <div class="item_content">
      <div class="item_cell "><a href="/joomla/temporada/imoveis/itens/ver/temporada">Temporada</a></div>
      <div class="item_cell "><img src="http://mysite.com.br/joomla/images/joomd/thumbs/1350654792temporada.jpg" alt="Fotos" /></div>
      <div class="item_cell ">Exemplo de Cidade</div>
      <div class="item_cell ">São Paulo</div>
      <div class="item_cell ">Casa</div>
      <div class="item_cell ">800</div>
      <div class="clr"></div>
    </div>
  </div>
</div>

これが私がそれを解決した方法です:

default_item.phpを開いて、これを見つけました:

if($j==0)   {

echo '<a href="'.JRoute::_('index.php?option=com_joomd&view=item&layout=detail&typeid='.$item->typeid.'&id='.$item->id).'">';

echo $this->field->displayfieldvalue($item->id, $this->fields[$j]->id, true);

echo '</a>';

}

次に、jQuery[http://swip.codylindley.com/popupWindowDemo.html][1]を使用してポップアップを呼び出すことができます。

これが私の作業コードが今どのように見えるかです:

echo '<a class="propriedade" href="'.JRoute::_('index.php?option=com_joomd&view=item&layout=detail&typeid='.$item->typeid.'&id='.$item->id).'">';

助けてくれてありがとう。

4

2 に答える 2

3

アレックスが指摘したように、これはPHPだけでは不可能です。PHPは、ページが読み込まれる前に発生するサーバー側の言語です。これは、HTMLとJavaScriptを使用して実現できます。

open()正確な幅/高さとURLを指定して新しいウィンドウを開くことができるJavaScript関数を調べる必要があります。

open()について詳しくはこちらをご覧ください

サンプルコード:

myWindow=window.open('http://google.com','','width=200,height=200')

これにより、200x200ピクセルのサイズの新しいウィンドウでGoogleが開きます

このコードを使用するには、<script>タグまたは外部JavaScriptファイルのいずれかにこれを挿入する必要があります。私はこれを次のような関数として使用することをお勧めします:

function newWindow(url, width, height)
{
    myWindow=window.open(url,'','width=' + width + ',height=' + height);
}

次に、これを次のように呼び出すことができます。

newWindow('http://google.com', 200, 200)

onCLick次の属性を使用して、コードにこれを実装できます。

<a href="#" onclick="newWindow('http://google.com', 200, 200)">Click Me</a>

HTMLとJavaScriptを使用した関数のデモ

この関数を提案する理由はtarget="_blank"、一部のブラウザーで属性を使用すると、新しいタブが開くだけで、それを使用できるためですが、まったく新しいウィンドウが必要だと思いました

質問にコードを追加したので、リストアイテムがたくさんあることがわかります。アンカータグを追加するだけで、関数を機能させることができます。例:

<div class="item_cell "><img src="http://alii.com.br/joomla/images/joomd/thumbs/1350654792temporada.jpg" alt="Fotos" /></div>
<div class="item_cell ">Exemplo de Cidade</div>
<div class="item_cell ">São Paulo</div>
<div class="item_cell ">Casa</div>
<div class="item_cell ">800</div>

次のようになります:

<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)"><img src="http://alii.com.br/joomla/images/joomd/thumbs/1350654792temporada.jpg" alt="Fotos" /></a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">Exemplo de Cidade</a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">São Paulo</a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">Casa</a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">800</a></div>
于 2012-10-26T20:30:24.500 に答える
0

ツアータグにtarget="_ blank"を追加するか、window.openメソッドを使用します。

e.g.: 
<a href="http://google.com" target="_blank">Google</a>
or
<script>window.open('http://google.com','','width=200,height=200'); </script>
于 2012-10-26T20:29:07.797 に答える