sábado, 23 de febrero de 2013
Borrando los comentarios de forma masiva
Aquí les dejo en esta oportunidad, un script que me hes de mucha utilidad.
Como medida de seguridad y eficiencia, antes de subir mis páginas a los servidores de producción, borro todo lo que son comentarios y lineas en blanco de mi código fuente.
#!/bin/bash
#Busca el patron // en los archivos indicados y la sustituye por otra
# Para ejecutar ./comentario.sh *.s
#(trabaja con todos los archivos con extension s)
#Adicionalmente borra los enter y todas la lineas contenidas entre /* */
patron='//'
for i in $*
do
linea=`grep -n $patron $i`
if [ -z "$linea" ]
then
echo "No se encontró la cadena en el archivo $i"
else
#El primero borra las lineas //
#El segundo los enter
#Y el tercero lo contenido entre /* */
sed '/^\/\//d' $i | sed '/^$/d' | sed '/\/\*/,/\*\//d' > $i.tmp
mv $i $i.backup
mv $i.tmp $i
fi
done
echo "Finalizado"
Espero que les sea de utilidad.
lunes, 4 de febrero de 2013
Codeigniter: Enviando email
Despues de un tiempo desaparecido por trabajo y vacaciones, vuelvo con este post, enviando email desde un formulario hecho en Codeigniter.
Aqui les pongo el codigo del controlador:
public function formEmail($exito = ""){
$datos['titulo'] = "Envio de mensaje"; // titulo de la pagina
if($exito != "")
$datos['exito'] = "Mensaje enviado satisfactoriamente";
$this->load->view('email_view',$datos);
}
public function sendEmail(){
$this->load->library('email');
$datos['titulo'] = "Envio de mensaje";
$config = array(
array(
'field' => 'txtpara',
'label' => 'Para',
'rules' => 'required|trim|valid_emails'),
array(
'field' => 'txtasunto',
'label' => 'Asunto',
'rules' => 'required|trim|alpha'),
array(
'field' => 'txtmensaje',
'label' => 'Mensaje',
'rules' => 'required|trim')
);
$this->form_validation->set_rules($config);
if($this->form_validation->run() == FALSE){
$this->load->view('email_view',$datos);
}else{
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
//esto en caso de que quieran enviar desde un servidor
//$config['smtp_host'] = 'servidor';
//$config['smtp_user'] = 'usuario';
//$config['smtp_pass'] = 'clave';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from('usuario_envia@servidor','nombre_del_que_envia');
$this->email->to($this->input->post('txtpara'));
$this->email->subject($this->input->post('txtasunto'));
$this->email->message($this->input->post('txtmensaje'));
if(! $this->email->send()){
$datos['error'] = "El mensaje no pudo ser enviado";
$this->load->view('email_view',$datos);
}else{
$exito = "Mensaje enviado satisfactoriamente";
$post = $this->input->post();
foreach ($post as $k => $a){
$post[$k] = "";
}
$this->formEmail($exito);
}
}
}
Y este es el codigo de la vista email_view.php
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<title><?php echo $titulo;?></title>
<link rel="stylesheet" href="../../application/views/css/estilos.css" type="text/css" media="screen">
</head>
<body>
<div id="formulario">
<?php
$attributes = array('class' => 'form', 'id' => 'email');
echo validation_errors('<div id="error">','</div>');
if(isset($exito))
echo "<div id=\"exito\">" . $exito . "</div>";
if(isset($error))
echo "<div id=\"error\">" . $error . "</div>";
echo form_open('prueba/sendEmail', $attributes);
echo "<div>";
echo form_label("Para: ");
$attributes = array('id' => 'txtpara', 'size' => '20','name' => 'txtpara', 'maxlength' => '20', 'value' => set_value('txtpara') );
echo form_input($attributes);
echo "</div>";
echo "<div>";
echo form_label("Asunto: ");
$attributes = array('id' => 'txtasunto', 'size' => '20','name' => 'txtasunto', 'maxlength' => '20', 'value' => set_value('txtasunto') );
echo form_input($attributes);
echo "</div>";
echo "<div>";
echo form_label("Mensaje: ");
$attributes = array('id' => 'txtmensaje', 'rows' => '10','name' => 'txtmensaje', 'cols' => '25', 'value' => set_value('txtmensaje') );
echo form_textarea($attributes);
echo "</div>";
echo "<div>";
$attributes = array('id' => 'sbEnviar','name' => 'sbEnviar', 'class' => 'boton');
echo form_submit($attributes,'Enviar');
echo "</div>";
echo form_close();
?>
</div>
</body>
</html>
Cuando hago referencia a "prueba/sendEmail" en la creacion del formulario, se refiere a la función sendEmail que se encuentra en mi controlador prueba (prueba.php)
El estilo al que hago referencia es el siguiente
@CHARSET "UTF-8";
body{
font-family: serif;
font-size: 12px;
}
#formulario{
border: 2px solid olive;
border-radius: 7px;
-moz-border-radius:7px;
width: 300px;
margin-left: 20px;
padding: 10px;
}
#formulario div label {
width: 20%;
float: left;
}
/* Estilo para elementos de formulario */
label{
color:#3a454d;
margin:15px 10px 0 0;
display:block;
float:left;
font-weight: bold;
}
input {
border:1px solid #899caa;
border-radius:6px;
-moz-border-radius:6px;
box-shadow: 1px 1px 3px #bbb;
-webkit-box-shadow: 1px 1px 3px #bbb;
-moz-box-shadow: 1px 1px 3px #bbb;
padding:8px;
font-size:12px;
color:#3a454d;
font-weight:bold;
float:none;
margin-top: 5px;
}
.boton {
margin-top: 10px;
margin-left: 35%;
border-radius : 8px;
-moz-border-radius: 8px;
}
/* ---------------- */
#error{
color:red;
border-color: #e74476;
}
/* Estilo usado en el archivo de mensajes */
#exito{
color:green;
border-color: #30d252;
font-size: 15px;
margin-top: 10px;
}
Es importante que cargen la libreria form_validation, ya que hago uso de la misma.
Espero que les sea de utilidad.
Aqui les pongo el codigo del controlador:
public function formEmail($exito = ""){
$datos['titulo'] = "Envio de mensaje"; // titulo de la pagina
if($exito != "")
$datos['exito'] = "Mensaje enviado satisfactoriamente";
$this->load->view('email_view',$datos);
}
public function sendEmail(){
$this->load->library('email');
$datos['titulo'] = "Envio de mensaje";
$config = array(
array(
'field' => 'txtpara',
'label' => 'Para',
'rules' => 'required|trim|valid_emails'),
array(
'field' => 'txtasunto',
'label' => 'Asunto',
'rules' => 'required|trim|alpha'),
array(
'field' => 'txtmensaje',
'label' => 'Mensaje',
'rules' => 'required|trim')
);
$this->form_validation->set_rules($config);
if($this->form_validation->run() == FALSE){
$this->load->view('email_view',$datos);
}else{
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
//esto en caso de que quieran enviar desde un servidor
//$config['smtp_host'] = 'servidor';
//$config['smtp_user'] = 'usuario';
//$config['smtp_pass'] = 'clave';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from('usuario_envia@servidor','nombre_del_que_envia');
$this->email->to($this->input->post('txtpara'));
$this->email->subject($this->input->post('txtasunto'));
$this->email->message($this->input->post('txtmensaje'));
if(! $this->email->send()){
$datos['error'] = "El mensaje no pudo ser enviado";
$this->load->view('email_view',$datos);
}else{
$exito = "Mensaje enviado satisfactoriamente";
$post = $this->input->post();
foreach ($post as $k => $a){
$post[$k] = "";
}
$this->formEmail($exito);
}
}
}
Y este es el codigo de la vista email_view.php
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<title><?php echo $titulo;?></title>
<link rel="stylesheet" href="../../application/views/css/estilos.css" type="text/css" media="screen">
</head>
<body>
<div id="formulario">
<?php
$attributes = array('class' => 'form', 'id' => 'email');
echo validation_errors('<div id="error">','</div>');
if(isset($exito))
echo "<div id=\"exito\">" . $exito . "</div>";
if(isset($error))
echo "<div id=\"error\">" . $error . "</div>";
echo form_open('prueba/sendEmail', $attributes);
echo "<div>";
echo form_label("Para: ");
$attributes = array('id' => 'txtpara', 'size' => '20','name' => 'txtpara', 'maxlength' => '20', 'value' => set_value('txtpara') );
echo form_input($attributes);
echo "</div>";
echo "<div>";
echo form_label("Asunto: ");
$attributes = array('id' => 'txtasunto', 'size' => '20','name' => 'txtasunto', 'maxlength' => '20', 'value' => set_value('txtasunto') );
echo form_input($attributes);
echo "</div>";
echo "<div>";
echo form_label("Mensaje: ");
$attributes = array('id' => 'txtmensaje', 'rows' => '10','name' => 'txtmensaje', 'cols' => '25', 'value' => set_value('txtmensaje') );
echo form_textarea($attributes);
echo "</div>";
echo "<div>";
$attributes = array('id' => 'sbEnviar','name' => 'sbEnviar', 'class' => 'boton');
echo form_submit($attributes,'Enviar');
echo "</div>";
echo form_close();
?>
</div>
</body>
</html>
Cuando hago referencia a "prueba/sendEmail" en la creacion del formulario, se refiere a la función sendEmail que se encuentra en mi controlador prueba (prueba.php)
El estilo al que hago referencia es el siguiente
@CHARSET "UTF-8";
body{
font-family: serif;
font-size: 12px;
}
#formulario{
border: 2px solid olive;
border-radius: 7px;
-moz-border-radius:7px;
width: 300px;
margin-left: 20px;
padding: 10px;
}
#formulario div label {
width: 20%;
float: left;
}
/* Estilo para elementos de formulario */
label{
color:#3a454d;
margin:15px 10px 0 0;
display:block;
float:left;
font-weight: bold;
}
input {
border:1px solid #899caa;
border-radius:6px;
-moz-border-radius:6px;
box-shadow: 1px 1px 3px #bbb;
-webkit-box-shadow: 1px 1px 3px #bbb;
-moz-box-shadow: 1px 1px 3px #bbb;
padding:8px;
font-size:12px;
color:#3a454d;
font-weight:bold;
float:none;
margin-top: 5px;
}
.boton {
margin-top: 10px;
margin-left: 35%;
border-radius : 8px;
-moz-border-radius: 8px;
}
/* ---------------- */
#error{
color:red;
border-color: #e74476;
}
/* Estilo usado en el archivo de mensajes */
#exito{
color:green;
border-color: #30d252;
font-size: 15px;
margin-top: 10px;
}
Es importante que cargen la libreria form_validation, ya que hago uso de la misma.
Espero que les sea de utilidad.
Suscribirse a:
Entradas (Atom)