Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Crear un archivo PHP a partir de un código PHP

Estas en el tema de Crear un archivo PHP a partir de un código PHP en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro y agradecería ampliamente me brinden su ayuda para resolver mi problema en mi sitio web. Tengo este problema, estoy ...
  #1 (permalink)  
Antiguo 22/04/2014, 15:30
Avatar de gustavoghgx  
Fecha de Ingreso: abril-2014
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Crear un archivo PHP a partir de un código PHP

Hola, soy nuevo en el foro y agradecería ampliamente me brinden su ayuda para resolver mi problema en mi sitio web.

Tengo este problema, estoy realizando una página en Joomla con un componente para publicar anuncios clasificados, 'DJ-Classifieds'.

1. El componente tiene una página de registro con campos personalizados:
---> http://www.anquiroeventos.com/adicionar

2. Al llenar el formulario, se construye un anuncio automaticamente:
---> http://www.anquiroeventos.com/todos

Todo eso lo he personalizado y hasta el momento ha funcionado muy bien, pero dónde tengo la complicación es en lo siguiente:
Necesito que al llenar el formulario también se construya una página que presente el cupón del anuncio, hasta ahora lo he hecho de forma manual y en html, pero necesito acoplar una función que lo haga en automático, tomando algunos de los campos del formulario para construirlo. Este es un ejemplo del cupón que hago manualmente:
----> http://www.anquiroeventos.com/cupon/vigna.html


Les agradezco mucho su ayuda y sus respuestas
  #2 (permalink)  
Antiguo 23/04/2014, 03:55
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 3 meses
Puntos: 326
Respuesta: Crear un archivo PHP a partir de un código PHP

Supongo que los datos del formulario los guardas en la bbdd....

Sólo tienes que crear un cupon genérico, que obtenga los datos de la base de datos.

Por ejemplo: si creas el registro "vigina", que te aparezca ese al ingresar en "cupon/vigina", que te aparezca "fulanito" al ingresar en "cupon/fulanito", etc...

No deberias crear el html cada vez >_<
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 23/04/2014, 10:47
Avatar de gustavoghgx  
Fecha de Ingreso: abril-2014
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Respuesta: Crear un archivo PHP a partir de un código PHP

Gracias por tu respuesta Eleazan, soy algo nuevo en php, de hecho ya programe la parte del cupón y ya se crea automáticamente, lo que no se es como hacer que el registro aparte de generar el anuncio, genere una ventana nueva para el cupón.
Podrías indicarme por favor

Última edición por gustavoghgx; 23/04/2014 a las 19:06
  #4 (permalink)  
Antiguo 24/04/2014, 14:13
Avatar de gustavoghgx  
Fecha de Ingreso: abril-2014
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Respuesta: Crear un archivo PHP a partir de un código PHP

Esto es lo que estoy utilizando para crear mi archivo, el problema es que no se crea nada ni se guarda en el directorio que yo le asigno:

Código PHP:
<?php 
$archivoYExtension 
"<?php echo JURI::base().'cupones/'.$item->alias;?>.php";
$nuevoarchivo fopen($archivoYExtension "w+");
$contenido="<!DOCTYPE html 
    PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
    <head>
        <?php
            include_once(\"head.php\");
       ?>
    </head>
    <body>
        <div id=\"wrapper\"> 
            Esta es mi página creada automaticamente, debe de ir el contenido de mi página para el cupón.
          </div>
      </body>
</html>
"
;
fwrite($nuevoarchivo$contenido);
fclose($nuevoarchivo);?>
  #5 (permalink)  
Antiguo 24/04/2014, 15:04
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 2 meses
Puntos: 320
Respuesta: Crear un archivo PHP a partir de un código PHP

Cita:
el problema es que no se crea nada ni se guarda en el directorio que yo le asigno
si las rutas estan bien, es posible que no tengas permisos de escritura sobre el directorio, asegurate de que esten en 777.

De todas formas, lo que se te indico Eleazan (creo haber entendido bien) es que no guardes cupones en archivos separados como ahora, sino que hagas un unico archivo cupon.php que reciba como parametro un id, por ejemplo cupon.php?id=34, esa pagina, se conecta con la base de datos, obtiene la informacion del cupon y la muestra, dicho de otra forma, eso que tu guardas ahora en mucho archivos, deberia estar una unica vez en unico archivo cupon.php y segun el cupon que quieres mostrar es lo que pondras, por ejemplo:

cupon.php
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <?php
  5.             include_once("head.php");
  6.        ?>
  7.     </head>
  8.     <body>
  9.         <div id="wrapper">  
  10.   <?php
  11.        //... conexion con la base de datos en $db
  12.       $info = $db->query('SELECT * FROM cupones WHERE id='.$_GET['id']);
  13.       echo($info['wrapper']);
  14. ?>
  15.           </div>
  16.       </body>
  17. </html>

cuando das de alta un cupon solo haces un insert en la tabla cupones con los datos correspondientes
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 24/04/2014, 15:52
Avatar de gustavoghgx  
Fecha de Ingreso: abril-2014
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Respuesta: Crear un archivo PHP a partir de un código PHP

Gracias por tu respuesta NSD,
El directorio si cuenta con permisos 0777, lo que comentas de hacer un sólo archivo llamado cupón es una solución, pero me genera otro problema, porque lo que necesito es que al crearse el cupon, se pueda compartir por las redes sociales e imprimir como página independiente, si hago un único archivo no se podrían compartir porque si entiendo bien, se supone que se crearía una "página temporal" que se llena obteniendo la información de la base de datos según el anuncio que este abierto.

No se por qué no se esta creando mi nuevo archivo, este es el código modificado:
Código PHP:
$archivoYExtension = "<?php echo JURI::base().'cupones/'.$item->alias;?>.php";
$nuevoarchivo = fopen($archivoYExtension , "w+");
$contenido="<div><?php $images explode(";",htmlspecialchars($item->image_url));?>
<table width="100%" bgcolor="#C3d300">
<tr>
<td align="center">
<table align="center" width="200" style="margin:0 auto;">
<tbody>
<tr>
<td align="center"><a href="#" onclick="window.print();return false;"><p align="center"><img src="http://www.anquiroeventos.com/images/caratulas/imprimir.png" style="margin:0 auto;" alt=""></p></a>
</td>
<td align="center">
<a class="addthis_button_compact at300m" href="#"><p align="center"><img src="http://www.anquiroeventos.com/images/caratulas/share.png" style="margin:0 auto;" alt=""></p></a>
</td>
</tr>
</tbody>
</table>

<table width="500" style="margin: 0 auto 2%;" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
<img src="http://www.anquiroeventos.com/cupon/encabezado.jpg" alt="" style="width:100%; height:auto;" />
</td>
</tr>
                    <tr>
                        <td width="50%" bgcolor="#ffffff" style="background:#ffffff; vertical-align: top; border-width: 2px 0 2px 2px; border-style: dashed; border-color: #000000;"><img width="100%" alt="<?php echo $item->name?>" src="<?php echo JURI::base().'components/com_djclassifieds/images/'.$images[0];?>.thb.jpg" /><div 

style="position:relative; bottom:30px; left:0; z-index:9999; width:100%; height:auto; margin-bottom: -30px;"><img src="http://anquiroeventos.com/images/promocionespecialetiqueta.png" alt="" style="width:100%; height:auto;" /></div>
                        
                        </td>
                        <td width="50%" bgcolor="#FF8500" style="background:#FF8500; padding: 15px 5px 5px 15px; vertical-align: top; border-width: 2px 2px 2px 0; border-style: dashed; border-color: #000000;"><div><span style="font-size: 130%!important; font-family: delicious-bold, Trebuchet MS, Verdana, 

Arial, sans; color:#000000"><?php echo $item->name?></span></div>
                        <div><?php 
            
//echo '<pre>';print_r($this->fields);die();
            
            
foreach($this->fields as $f){                            
                
?>
                <p>
                    <span style="color:#000000">
                        <?php
                        
if($f->id==1){                            
                            echo 
'<span style="color:#ffffff;">Tel. '.$f->value.'</span>';
                        }
?>
                        <?php
                        
if($f->id==2){                            
                            echo 
'<span style="color:#ffffff;">Cel. '.$f->value.'</span>';
                        }
?>
                        <?php
                        
if($f->id==19){                            
                            echo 
'<span style="color:#ffffff; font-size:0.7em;">'.$f->value.'</span>';
                        }
?>
                        <?php
                        
if($f->id==31){                            
                            echo 
$f->value;                                
                        }
?>
                        <?php
                        
if($f->id==32){                            
                            echo 
$f->value;                                
                        }
?>
                        <?php
                        
if($f->id==36){                            
                            echo 
'<span style="color:#ffffff; font-size:0.8em;">V&aacute;lido antes del d&iacute;a '.$f->value_date.'</span>';
                        }
?>
                    </span></p>
            <?php
            
?></div>
                        </td>
                    </tr>
                </table>
                </td>
                </tr>
                </table></div>
";
fwrite($nuevoarchivo, $contenido);
fclose($nuevoarchivo);
Puedes ver que el cupón se crea en la siguiente dirección, hasta el final de la página, pero no cómo página independiente:

---> http://www.anquiroeventos.com/recuerdos/ad/personalizados-ripe,32#dj-classifieds
  #7 (permalink)  
Antiguo 25/04/2014, 01:04
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 3 meses
Puntos: 326
Respuesta: Crear un archivo PHP a partir de un código PHP

Cita:
Iniciado por gustavoghgx Ver Mensaje
lo que comentas de hacer un sólo archivo llamado cupón es una solución, pero me genera otro problema, porque lo que necesito es que al crearse el cupon, se pueda compartir por las redes sociales e imprimir como página independiente, si hago un único archivo no se podrían compartir porque si entiendo bien, se supone que se crearía una "página temporal" que se llena obteniendo la información de la base de datos según el anuncio que este abierto.
Sin meterme en el código....

Usabas Joomla, ¿no?

Te hago una pregunta. Supongo q tendrás una especie de posts / entradas.... ¿Crees que joomla crea un archivo para cada una de ellas? ¿Que pasa si compartes esas?

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 25/04/2014, 16:30
Avatar de gustavoghgx  
Fecha de Ingreso: abril-2014
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Crear un archivo PHP a partir de un código PHP

Gracias Eleazan,
Si cada vez que se envía una entrada, se guarda automaticamente en la base de datos con un ID que lo diferencía de los demás, y al compartirlo cada uno tiene una dirección propia:

http://www.anquiroeventos.com/recuerdos/ad/personalizados-ripe,32#dj-classifieds

Página
Categoría a la que pertenece
Alias
ID

De cualquier forma, ya lo "resolví", lo que hice fue programar todo mi cupon en un DIV obteninedo los datos que necesitaba para que se creara el cupón en la parte donde se abre el anuncio, y ese DIV lo oculte con "display:none", lo nombre con un ID y para abrirlo, mando llamar el DIV con un botón.

Gracias por su ayuda de cualquier forma, aunque si sería interesante saber como puedo crear archivos PHP independientes en un futuro, desde mi formulario de registro.

Etiquetas: cupon, funciones, joomla
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 09:32.