Skip to main content

Posts

Showing posts from 2012

PHP, Magic_Quotes. Getting rid of magic quotes issues

This is how i get rid of magic quotes issues on my PHP projects. function array_map_r( $func, $arr ) { $newArr = array(); foreach( $arr as $key => $value ) { $newArr[ $key ] = ( is_array( $value ) ? array_map_r( $func, $value ) : ( is_array($func) ? call_user_func_array($func, $value) : $func( $value ) ) ); } return $newArr; } if (get_magic_quotes_gpc()) { // Yes? Strip the added slashes $_REQUEST = array_map_r('stripslashes', $_REQUEST); $_GET = array_map_r('stripslashes', $_GET); $_POST = array_map_r('stripslashes', $_POST); $_COOKIE = array_map_r('stripslashes', $_COOKIE); } else { $_REQUEST = array_map_r('addslashes', $_REQUEST); $_GET = array_map_r('addslashes', $_GET); $_POST = array_map_r('addslashes', $_POST); $_COOKIE = array_map_r('addslashes', $_COOKIE); }

PHP, Simple export to csv tutorial for magento

Here is a very simple code you can use to generate your csv file : unlink("upload.csv"); $handle_out = fopen("upload.csv", "a"); $fields_put=array('sku', 'name', 'price', 'short_description', 'description', 'attribute_set', 'type', 'status', 'visibility', 'tax_class_id', 'category_ids', 'weight'); fputcsv($handle_out, $fields_put, '|' ,'"'); while ($row = mysql_fetch_array($result)) { $description=ereg_replace( "\r\n", "", $row['short_description']); $description=ereg_replace( "\r\t", "", $description); $description=ereg_replace( "\r", "", $description); $description=ereg_replace( "\t", "", $description); $description=ereg_replace( "\n", "",

PHP remove hidden characters from text

PHP remove hidden character like line breaks and tabs and hidden character like following: $description=ereg_replace( "\r\n", "", $row['short_description']); $description=ereg_replace( "\r\t", "", $description); $description=ereg_replace( "\r", "", $description); $description=ereg_replace( "\t", "", $description); $description=ereg_replace( "\n", "", $description); $description=ereg_replace( "\xA0", "", $description); $description=ereg_replace( "\x0B", "", $description); $description=ereg_replace( '"', '""', $description);  This really helps when you are creating a CSV file which has line breaks. Some softwares like magento doesn't import the csv file properly if you have line breaks or hidden characters in your text. It counts each hidden character as new line.

MySQL and UTF-8

Notes Good support from 4.1 utf-8  is  utf8  in MySQL. A collation defines the sort order for the data, it may be case sensitive or not To find out your current setup: SHOW VARIABLES LIKE 'character_set_database'; SHOW VARIABLES LIKE 'character_set_client'; To see available character sets and collations on your database: SHOW CHARACTER SET; SHOW COLLATION LIKE 'utf8%'; Character set and collation can be set per server, database, table, connection; Server ( /etc/my.cnf ): [mysqld] ... default-character-set=utf8 default-collation=utf8_general_ci Database: (CREATE | ALTER) DATABASE ... DEFAULT CHARACTER SET utf8 Table: (CREATE | ALTER) TABLE ... DEFAULT CHARACTER SET utf8 Connection: SET NAMES 'utf8'; A  PHP  mysql connection ( not totally confirmed , but see tests below) defaults to a latin1 connection, so, your first query after connection should be: mysql_query("SET NAMES 'utf8'"); In php versio

Yii, how to add current date or time or timestamp in DB field automatically

To add current date or time or timestamp in DB field automatically Using Rules in model use it like below : <?php /** * @return array validation rules for model attributes. */ public function rules () { return array ( array ( 'title' , 'length' , 'max' => 255 ), array ( 'title, created, modified' , 'required' ), array ( 'modified' , 'default' , 'value' => new CDbExpression( 'NOW()' ), 'setOnEmpty' => false , 'on' => 'update' ), array ( 'created,modified' , 'default' , 'value' => new CDbExpression( 'NOW()' ), 'setOnEmpty' => false , 'on' => 'insert' ) ); } ?>

YII, How to get current controller name and action name

To get current controller name use this code : <?php $controllerId = Yii :: app () -> controller -> id ; //or $controllerId = $this -> getId (); ?> To get current action name/id being executed, if you are inside beforeAction() or afterAction(), use the received CAction argument <?php //inside beforeAction or afterAction public function beforeAction ( $action ) { $actionId = $action -> id ; ... ?> or just elsewhere inside your controller <?php $actionId = $this -> getAction () -> getId (); ?> To get name of currently called controller action anywhere in the code you can use : <?php print CController :: getAction () -> id ; ?>

Yii, return to previous url after login or logout

If you want to return to your previous url after login or logout try this : <?php $this -> redirect (Yii :: app () -> request -> urlReferrer ); ?> To set the return url to be the url that was before the login page or registeration page was called you can put following code in views/layouts/main.php file : <?php //this checks id the controller action is not 'login' then it keeps the current url in returnUrl if (CController :: getAction () -> id != 'login' ) { Yii :: app () -> user -> setReturnUrl (Yii :: app () -> request -> getUrl ()); } ?>

yii, form, create drop down with values from a model

yii, form, create drop down and populate it with values from any model : Use code below in the view file inside the form: <? php echo $form -> dropDownList ( $model , 'item_type_id' , CHtml :: listData ( ItemType :: model ()-> findAll (), 'id' , 'type' ), array ( 'empty' => 'select Type' )); ?>

yii, handling image uploads

In Model file function rules() : <?php array ( 'product_image_1, product_image_2, product_image_3' , 'file' , 'types' => 'jpg, gif, png' , 'allowEmpty' => true ), ?> In View file set form like this : <div class="form"> <?php $form = $this -> beginWidget ( 'CActiveForm' , array ( 'id' => 'products-form' , 'enableAjaxValidation' => false , 'htmlOptions' => array ( 'enctype' => 'multipart/form-data' ) )); ?> <p class="note">Fields with <span class="required">*</span> are required.</p> <?php echo $form -> errorSummary ( $model ); ?> <div class="row"> <?php echo $form -> labelEx ( $model , 'product_name' ); ?> <?php echo $form -> textField ( $model , 'product_name' , array ( 'size' => 60 , 'ma