Set

6

Joomla PDF problema no visor IE7 Fix

6 de setembro de 2008 |

Se você estiver usando Joomla! 1,5 e testado no IE7 ele, você pode encontrar qualquer problema em que o PDF arquivo PDF falhar para exibir corretamente no IE7. O sintoma é usual que a janela pop-up está vazia.

Existem 2 etapas:

1. Creata um novo arquivo chamado browser_detection.php e faça o upload para o seu Joomla! site.
2. Editar icon.php em 2 lugares e faça o upload para o seu Joomla! site.


ETAPA 1
Crie um arquivo chamado browser_detection.php php. Você pode fazê-lo em qualquer editor de texto ou Dreamweaver. Copiar, colar e salvar o seguinte no seu novo arquivo:


  <? php 

  / * 
  Nome do script: Simples' se 'Navegador detecção PHP 
  Autor: Harald Esperança, Website: http://TechPatterns.com/ 
  Script URI Fonte: http://TechPatterns.com/downloads/php_browser_detection.php 
  Versão 2.0.2 
  Copyright (C) 29 junho 2007 

  Modificado 22 de abril de 2008 Jon Czerwinski 
  Adicionada detecção versão IE 7 

  Este programa é software livre, você pode redistribuí-lo e / ou modificá-lo sob 
  os termos da GNU General Public License como publicada pela Free Software 
  Fundação; tanto a versão 3 da Licença, ou (por sua opção) qualquer versão posterior. 

  Este programa é distribuído na esperança de que seja útil, mas SEM 
  QUALQUER GARANTIA; mesmo sem a garantia implícita de comercialização ou adequação 
  PARA UM DETERMINADO PROPÓSITO.  Consulte a Licença Pública Geral GNU para maiores detalhes. 

  Obter o texto completo da GPL aqui: http://www.gnu.org/licenses/gpl.txt 

  Convenções de codificação: 
 http://cvs.sourceforge.net/viewcvs.py/phpbb/phpBB2/docs/codingstandards.htm?rev=1.3 
  * / 

  / * 
  a ordem é importante, já que a ópera tem de ser testado em primeiro lugar, e testado para antes ou seja, ie4 geral 
  mesmo para o konqueror e, em seguida, safári, em seguida, gecko, desde safari navegador agente usuário com id's "gecko" na seqüência. 
  $ dom_browser nota que está previsto, para todos os navegadores modernos dom, isto dá-lhe um padrão de uso, infelizmente nós 
  não ter descoberto uma forma de fazer isto com o atual método de ensaio, o que seria muito melhor e confiável. 

  Atenção: você tem que chamar a função, a fim de obter o acesso às variáveis, você chamá-lo por isto: 

  browser_detection ( 'browser'); 

  em seguida, colocar o código que você pretende utilizar com as variáveis depois disso. 

  * / 

  função browser_detection ($ which_test) ( 

	  / / Inicializa as variáveis 
	  $ navegador =''; 
	  $ dom_browser =''; 

	  / / Conjunto de minúsculas para evitar erros, verifique se está configurado HTTP_USER_AGENT 
	  navigator_user_agent $ = (isset ($ _SERVER [ 'HTTP_USER_AGENT']))?  strtolower ($ _SERVER [ 'HTTP_USER_AGENT']):''; 

	  / / Executado através do browser principal possibilidades, atribuir-lhes que a principal variável $ browser 
	  if (stristr ($ navigator_user_agent, "Ópera")) 
	  ( 
		  $ browser = 'ópera'; 
		  dom_browser $ = true; 
	  ) 

  / * 
  Teste para o IE 7 acrescentado 
  22 de abril de 2008 
  Jon Czerwinski 
  * / 
	  elseif (stristr ($ navigator_user_agent, "MSIE 7")) 
	  ( 
		  $ browser = 'msie7'; 
		  dom_browser $ = false; 
	  ) 

	  elseif (stristr ($ navigator_user_agent, "MSIE 4")) 
	  ( 
		  $ browser = 'msie4'; 
		  dom_browser $ = false; 
	  ) 

	  elseif (stristr ($ navigator_user_agent, "MSIE")) 
	  ( 
		  $ browser = 'MSIE'; 
		  dom_browser $ = true; 
	  ) 

	  elseif ((stristr ($ navigator_user_agent, "konqueror")) | | (stristr ($ navigator_user_agent, "safari"))) 
	  ( 
		  = $ browser 'Safari'; 
		  dom_browser $ = true; 
	  ) 

	  elseif (stristr ($ navigator_user_agent, "gecko")) 
	  ( 
		  $ browser = 'mozilla'; 
		  dom_browser $ = true; 
	  ) 

	  elseif (stristr ($ navigator_user_agent, "mozilla / 4")) 
	  ( 
		  $ browser = 'ns4'; 
		  dom_browser $ = false; 
	  ) 

	  diferente 
	  ( 
		  dom_browser $ = false; 
		  $ navegador = false; 
	  ) 

	  / / Retorna o resultado do teste que você quer 
	  if ($ which_test == 'browser') 
	  ( 
		  return $ navegador; 
	  ) 
	  elseif ($ which_test == 'dom') 
	  ( 
		  dom_browser $ retorno; 
		  / / Nota: $ booleanos dom_browser é um valor, verdadeiro / falso, assim você pode testar apenas se 
		  / / É verdade ou não. 
	  ) 
  ) 

  / * 
  você poderia chamá-lo desta forma: 

  user_browser $ = browser_detection ( 'browser'); 

  if ($ user_browser == 'ópera') 
  ( 
	  fazer algo; 
  ) 

  ou menos assim: 

  if (browser_detection ( 'dom')) 
  ( 
	  executar o código para navegadores dom 
  ) 
  diferente 
  ( 
	  executar o código para os não navegadores DOM 
  ) 

  e assim por diante ....... 

  * / 
 ?> 

Browser_detection.php upload para a pasta Bibliotecas / joomla / utilidades / em seu site.

ETAPA 2
Encontre o arquivo na pasta icon.php componentes / com_content / ajudantes /. Nota: Faça uma cópia deste arquivo para que você possa restaurá-lo se necessário.

Sob a

  require_once ( "bibliotecas / joomla / utilidades / browser_detection.php"); 

Substitua esta linha de código na linha 58
[código fonte lanuage = "php"] $ attribs [ 'onclick'] = "window.open (this.href, 'win2','".$ estado ."'); retornar false ;";[/ código fonte]

com o seguinte código:

  user_browser $ = browser_detection ( 'browser'); 
            if ($ user_browser == 'msie7') ( 
               $ attribs [ 'target'] = "_blank"; 
            Else () 
               $ attribs [ 'onclick'] = 
      "window.open (this.href, 'win2','".$ estado ."'); regresso 
      false; "; 
            ) 

Salve o arquivo e faça upload para componentes / com_content / ajudantes /.

Nota: O cache do navegador pode necessitar de ser limpo antes que você possa ver o trabalho PDF.

Digg Facebook Google Newsvine Reddit Slashdot Technorati Windows Live Yahoo del.icio.us



Similar Posts

Comentários

Nome (obrigatório)

E-mail (obrigatório)

Website

Diga a sua opinião

4 Comentários até agora

  1. Rudy Pandu em 8 de setembro de 2008 3:13 am

    "Muito obrigado por isso. Espero que seja resolvido o meu problema. Precisa de um tempo a experimentá-lo.

  2. Rob Pousios em 30 de setembro de 2008 7:25 am

    Eu consegui trabalhar, mas tinha um par de questões:

    1. Eu tinha que colocar o browser_detection função dentro icon.php - não localizar automaticamente o arquivo enviado.

    2. O código que substitui o trecho "window.open" na linha icon.php ensaios para um tipo de navegador "msie7". Esta nunca valor é fixado pela browser_detection função. Mudou "msie7" para "MSIE" e tudo funcionou.

    Obrigado por uma grande correção.

  3. admin em setembro 30, 2008 9:33 am

    Obrigado! Rob. pela sua grande contribuição. :)

  4. Desmond em 22 de outubro de 2008 12:56 am

    Alguém pode me ajudar a obter esta a trabalhar em prol de um componente? Preciso de um botão em PDF componente eu tenho a minha escrita. Estou muito nova a desenvolver no Joomla. Seu bastante urgente. Estou escrevendo um portal para uma companhia aérea local integrando-se à programação de um sistema baseado Oracle.

Patrocinadores




Links