Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Como insertar codigo PHP en un cms block en magento?

Estas en el tema de Como insertar codigo PHP en un cms block en magento? en el foro de Sistemas de gestión de contenidos en Foros del Web. Buenas, Se que no se puede insertar codigo php en un cms bloque de mangeto. La cuestión es que quiero mostrar en un bloque de ...
  #1 (permalink)  
Antiguo 10/01/2013, 17:37
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Como insertar codigo PHP en un cms block en magento?

Buenas,

Se que no se puede insertar codigo php en un cms bloque de mangeto.

La cuestión es que quiero mostrar en un bloque de magento el numero de fans de una pagina de facebook en texto plano. He buscado y he encontrado un codigo php que lee de la pagina de facebook el numero de me gustas, y te le devuelve en una variable.

A ver si alguien me ayuda y me dá alguna solucion a mi propuesta, gracias.

dejo aquí el codigo php que lee el nº de fans de una fan page de facebook, por si lo necesitais:

<?php
$page_id = "Numero de ID de tu profile";
$xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&query=SEL ECT%20fan_count%20FROM%20page%20WHERE%20page_id=". $page_id."") or die ("a lot");
$fans = $xml->page->fan_count;
echo $fans;
?>

gracias!
  #2 (permalink)  
Antiguo 10/01/2013, 17:50
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Como insertar codigo PHP en un cms block en magento?

Primero, entre tantas extensiones que tiene Magento, no hay ninguna que te sirva ?, segundo, sino no hay un extensión que se adecue a tus necesidades puedes crear un custom block http://www.magentocommerce.com/board...98/P15/#t16474

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 10/01/2013, 17:51
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Como insertar codigo PHP en un cms block en magento?

Tema movido desde PHP a Aplicaciones prefabricadas.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 10/01/2013, 17:53
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como insertar codigo PHP en un cms block en magento?

gracias por la rápida respuesta. voy a intentar a crear un nuevo modulo con el manual que me indicas.
  #5 (permalink)  
Antiguo 10/01/2013, 18:25
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como insertar codigo PHP en un cms block en magento?

bueno ya he creado los dos archivos .xml como dice el manual, pero tengo una duda en el ultimo archivo, el archivo .php

Así es como lo he hecho:

<?php

class Fans_Facebook_Es_Block_megustas extends Mage_Core_Block_Abstract
{
protected function _toHtml()
{

$page_id = "Numero de ID de tu profile";
$xml = @simplexml_load_file( "http://api.facebook.com/restserver.php?method=facebook.fql.query&query=SEL ECT%20fan_count%20FROM%20page%20WHERE%20page_id=". $page_id."") or die ("a lot");
$fans = $xml->page->fan_count;
return $fans;

// put here your custom PHP code with output in $html;
// use arguments like $this->getMyParam1() , $this->getAnotherParam()


}
}

Estaría bien así?? no entiendo las dos lineas comentadas.

Bueno y después de estos tres archivos, crearía un nuevo cms block donde poniendo esta linea de código:

{{block type="Fans_Facebook_Es/megustas" my_param1="value 1" another_param="value 2"}}

bastaria para llamar a la funcion que he creado en el .php anterior. es correcto?

que tendria que poner en my_param1="value 1" ?

y como mostraría el nº de fans que me devuelve la función que he creado en el archivo php?

gracias otra vez.
  #6 (permalink)  
Antiguo 10/01/2013, 18:51
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Como insertar codigo PHP en un cms block en magento?

Las lineas comentadas son los parámetros que puede recibir el bloque, no es algo obligatorio aunque en tu caso podría ser interesante pasar el identificador del perfil y no hardcodearlo.
Como lo tienes ahora bastaría con hacer algo así:

Código HTML:
Ver original
  1. {{ block type="Fans_Facebook_Es/megustas" }}

y si quisieras pasar el identificador de perfil podria ser algo asi:

Código PHP:
Ver original
  1. protected function _toHtml()
  2. {
  3.     $page_id = $this->getPerfilId(); //obtiene el id del bloque
  4.     ...
  5. }

Código HTML:
Ver original
  1. {{ block type="Fans_Facebook_Es/megustas" perfil_id="my_perfil_id" }}

En relación a como lo muestra, tal cual lo tienes solo retorna un número, pero pudes generar el html que quieras:

Código PHP:
Ver original
  1. protected function _toHtml()
  2. {
  3.     $page_id = $this->getPerfilId(); //obtiene el id del bloque
  4.     ...
  5.     $fans = $xml->page->fan_count;
  6.     return '<div class="facebook_count">' . $fans . '</div>';
  7. }

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 10/01/2013, 20:18
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como insertar codigo PHP en un cms block en magento?

No se que estoy haciendo mal, pero no me muestra nada en pantalla.

lo he puesto todo ( nombre de fichero y estructuras ) como en el manual, pero no hay manera.

{{block type="mayerwin_custom/test"}} esta es la llamado que hago desde el bloque o desde una page y no hace nada.

no se que hacer, alguna sugerencia?

gracias
  #8 (permalink)  
Antiguo 11/01/2013, 19:20
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como insertar codigo PHP en un cms block en magento?

La verdad que estoy un poco perdido, no me funciona.

Algo estoy haciendo mal.

El modulo que he creado para este tema, ¿se puede mostrar en cualquier cms block o page de magento, o tiene que ser en el que creamos en los archivos anteriores?

yo estoy haciendo la llamada al modulo, desde un bloque que es donde tengo las redes sociales.

¿puede ser que ahí este el fallo?
gracias
  #9 (permalink)  
Antiguo 12/01/2013, 04:25
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Como insertar codigo PHP en un cms block en magento?

Sino funciona tiene que ver con el nombre y path de los ficheros, podrías describir la estructura que has generado ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 12/01/2013, 11:14
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como insertar codigo PHP en un cms block en magento?

Pues al principio lo hice con nombres personalizados, pero al ver que no funcionaba lo que hice fue poner los mismos nombres de ficheros y carpertas que venian en el manual.

/httpdocs/app/etc/modules/Mayerwin.xml

/httpdocs/app/code/local/Mayerwin/Custom/etc/config.xml

/httpdocs/app/code/local/Mayerwin/Custom/Block/Test.php


archivo Mayerwin.xml

Código:
<?xml version="1.0"?>
<config>
  <modules>
    <Mayerwin_Custom>
      <active>true</active>
      <codePool>local</codePool>
    </Mayerwin_Custom>
  </modules>
</config>
archivo config.xml

Código:
<?xml version="1.0"?>
<config>
  <global>
    <blocks>
      <mayerwin_custom>
        <class>Mayerwin_Custom_Block</class>
      </mayerwin_custom>
    </blocks>
  </global>
</config>
archivo Test.php

Código PHP:
<?php

class Mayerwin_Custom_Block_Test extends Mage_Core_Block_Abstract
{
  protected function 
_toHtml()
  {
     
$page_id "ejemplo11111111111";
    
$xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&query=SEL ECT%20fan_count%20FROM%20page%20WHERE%20page_id="$page_id."") or die ("a lot");
    
$fans $xml->page->fan_count;
     return 
$fans;

     
// put here your custom PHP code with output in $html;
     // use arguments like $this->getMyParam1() , $this->getAnotherParam()
  
}
}
La llamada que utilizo desde el bloque:

Código HTML:
 {{block type="mayerwin_custom/test"}}
Así es como lo tengo,
Gracias
  #11 (permalink)  
Antiguo 14/01/2013, 10:38
 
Fecha de Ingreso: noviembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como insertar codigo PHP en un cms block en magento?

Alguien que me ayude???
graciassss

Etiquetas: block, cms, facebook, magento, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:01.