programar en yii como sacar de las urls el index.php?r=

1)
en protected/config/main.php habilitar el urlManager

'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
  'showScriptName'=>false,
    ),
 
2)
 en la raiz de la aplicación el archivo .htaccess debe ser asi

RewriteEngine on

    # if a directory or a file exists, use it directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php)

    # otherwise forward it to index.php
    RewriteRule ^(.+)$ index.php?$1 [PT,L,QSA]

Programar en Yii 1 Bootstrap

1)
descargar la extension yiistrap desde aqui
http://www.yiiframework.com/extension/yiistrap/

(la version a descargar es yiistrap-1.1.1.zip)

2)
crear la carpeta "bootstrap"
protected/extensions/bootstrap

y copiar ahi el contenido de la carpeta de-zipeada de yiistrap

3)
editar el archivo de configuración protected/config/main.php

<?php
// main configuration
return array(
 ...
    // path aliases
    'aliases' => array(
        ...
        'bootstrap' => realpath(__DIR__ . '/../extensions/bootstrap'), // change this if necessary
    ),
    // import paths
    'import' => array(
        ...
        'bootstrap.helpers.TbHtml',
    ),
    // application modules
    'modules' => array(
        ...
        'gii' => array(
            'generatorPaths' => array('bootstrap.gii'),
        ),
    ),
    // application components
    'components' => array(
        ...
        'bootstrap' => array(
            'class' => 'bootstrap.components.TbApi',   
        ),
    ),
);
 
4) agregar la siguiente linea en la sección de head de protected/views/layouts/main.php
 
<?php Yii::app()->bootstrap->register(); ?> 
 
5) para ver los distintos elementos de bootstrap leer
 
http://www.getyiistrap.com/site/basics
  
 

programar en yii 1.1 - behavior auditoria

se busca que al crearse un nuevo usuario
o se modifique, se guarden automaticamente los campos de fecha de creacion y modificación.

1) crear la carpeta protected/behaviors

2) crear el archivo Timestampbehavior.php en la carpeta creada.

 class Timestampbehavior extends CActiveRecordBehavior
    {
        public function beforeSave($event){
            $currenttime=new CDbExpression('NOW()');
            if($this->owner->isNewRecord){
                    $this->owner->created=$currenttime;
            }
                    $this->owner->modified=$currenttime;       
            return true;
        }
    }

3) en el modelo Usuarios.php agregar la siguiente funcion:

 public function behaviors(){
       return array(
            'Timestampbehavior'=>array(
                   'class'=>'application.behaviors.Timestampbehavior',
                   ),
       );  
    }

programar en yii 1.1 - modelo, base de datos, crud

crear la sgt tabla:

CREATE TABLE usuarios (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
apellido VARCHAR(30) NOT NULL,
email VARCHAR(50),
created date not null,
modified date not null
)

en /protected/config/main.php

descomentar

/*
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'Enter Your Password Here',
'ipFilters'=>array('127.0.0.1','::1'),
),
*/
 
en /protected/config/database.php
descomentar la parte de mysql colocar los datos de tu conexion y comentar la parte de sqlite
 
 //'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
    // uncomment the following lines to use a MySQL database
  
    'connectionString' => 'mysql:host=localhost;dbname=bibliotekbd',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
 
 
abrir la sgt url:
http://localhost/bibliotek/index.php?r=gii
 
-crear el modelo basado en la tabla Usuarios
-crear el CRUD basado en el modelo Usuarios creado en el paso anterior
 

programar en yii 1.1

la ultima versión estable es la 1.1.17

1) descargarla de http://www.yiiframework.com/download/#yii1
2) descomprimirla y copiar la carpeta de yii en xampp/htdocs
3) abrir una consola y crear mediante la sgt linea de comandos tu primera aplicación

c:/xampp/php/php.exe c:/xampp/htdocs/yii-1.1.17/framework/yiic.php webapp c:/xampp/htdocs/bibliotek

4) levantar el apache desde le panel de control de xampp
5) abrir un browser y escribir la sgt url: http://localhost/bibliotek














Si trabajas con Eclipse

1) click derecho New PHP project
y continuar como indica la figura

instalar memcache y memcached en xampp 1.7.3 php 5.3.1

EDITAR C:/xampp/php/php.ini AGREGAR LAS SIGUIENTES LINEAS extension=php_memcache.dll [Memcache] memcache.allow_failover = 1 memcache.max_failover_attempts=20 memcache.chunk_size =8192 memcache.default_port = 11211 Download php_memecache.dll php_memcache-cvs-20090703-5.3-VC6-x86 (buscar esa version pues php fue compilada con vc6) Unzip el archivo tomar el php_memcache.dll y pegarlo en el folder ext .C:/xampp/php/ext/ Download memcached for windows unzip en c:/memcached/ Abrir consola rn modo Administrator Instalar el memcache service c:\memcached\memcached.exe -d install iniciaR MEMCACHED c:\memcached\memcached.exe -d start Restart Xampp Apache

Aplicacion web CRUD en Spring Boot JPA Hibernate y Thymeleaf

1) Crear una aplicación maven.

click derecho -> new -> project -> Maven Project

2) Configurar el Build Path del Proyecto

click derecho sobre el proyecto -> Build path -> Configure  Build path

asignar el JRE correcto.

asignar el Server correcto.

3) Agregar las dependencias necesarias en el archivo pom.xml 
[code] <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cmd.cc</groupId> <artifactId>mailingwebapp</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>mailingwebapp Maven Webapp</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.4.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>bootstrap</artifactId> <version>3.3.4</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>2.1.4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> [/code]


luego de salvar estos cambios, posiblemente te salga el siguiente error:

esto se soluciona facilmente
click derecho sobre el proyecto -> maven -> Update project
click en [OK]

4) Crear los modelos con los que se trabajará

en src/main/java creamos el package com.cmd.cc.domain
y en él crear el modelo MailingFilter.java

[code]
package com.cmd.cc.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class MailingFilter {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;
 private String name;
 private String description;

 public String getDescription() {
 return description;
 }

 public void setDescription(String description) {
 this.description = description;
 }

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public Integer getId() {
 return id;
 }

 public void setId(Integer id) {
 this.id = id;
 }

}
[/code]

5) Spring Data JPA Repository

Creamos el package com.cmd.cc.repositories
y en el la interface MailingFilterRepository.java

[code] package com.cmd.cc.repositories; import org.springframework.data.repository.CrudRepository; import com.cmd.cc.domain.MailingFilter; public interface MailingFilterRepository extends CrudRepository<MailingFilter, Integer>{ } [/code]
6) Implementar Spring Facade service.

Creamos un servicio que será quien interactue con la capa de persistencia.

en src/main/java creamos el package com.cmd.cc.services

y en él creamos primero una interface llamada MailingFilterService.java


[code] package com.cmd.cc.services; import com.cmd.cc.domain.MailingFilter; public interface MailingFilterService { Iterable<MailingFilter> listAllMailingFilters(); MailingFilter getMailingFilterById(Integer id); MailingFilter saveMailingFilter(MailingFilter mailingFilter); void deleteMailingFilter(Integer id); } [/code]

en ese mismo package crear la clase que implementa la interface la llamamos MailingFilterServiceImpl.java

[code] package com.cmd.cc.services; import org.springframework.beans.factory.annotation.Autowired; import com.cmd.cc.domain.MailingFilter; import com.cmd.cc.repositories.MailingFilterRepository; public class MailingFilterServiceImpl implements MailingFilterService { private MailingFilterRepository mailingfilterRepository; @Autowired public void setMailingFilterRepository(MailingFilterRepository mailingfilterRepository) { this.mailingfilterRepository = mailingfilterRepository; } @Override public Iterable<MailingFilter> listAllMailingFilters() { // TODO Auto-generated method stub return mailingfilterRepository.findAll(); } @Override public MailingFilter getMailingFilterById(Integer id) { // TODO Auto-generated method stub return mailingfilterRepository.findOne(id); } @Override public MailingFilter saveMailingFilter(MailingFilter mailingFilter) { // TODO Auto-generated method stub return mailingfilterRepository.save(mailingFilter); } @Override public void deleteMailingFilter(Integer id) { // TODO Auto-generated method stub mailingfilterRepository.delete(id); } } [/code]

linux ubuntu mint actualizar chrome

 desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable