Archive for June, 2009

Insert into / add element to array at specific position (PHP)

Wednesday, June 17th, 2009

Usually, we can search and identify PHP function just by looking at it’s name which denotes what a function does. For example array_pop(), array_push(), array_search(), array_reverse(), etc. But how about inserting an element into the middle of an array?

array_splice(array &$input, int $offset [, int $length= 0 [, mixed $replacement]] ) is the function that you are looking for. Format to use this function to add new element at certain position in an array is array_splice($array, $insert_position, 0, $element_to_insert);. See below for an example of how this function behaves.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")
 
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")
 
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")
 
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green", "blue", "black", "maroon")
 
$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green", "blue", "purple", "yellow");
?>

Magento Layout Error after changing Base URL {{base_url}}

Sunday, June 14th, 2009

When I first login to admin menu on my Magento, I was bothered by this message at the top of my admin interface.

{{base_url}} is not recommended to use in a production environment to declare the Base Unsecure Url / Base Secure Url. It is highly recommended to change this value in your Magento configuration.

Well, most likely you will stumble upon this message on localhost installation. Please do not change this to uncorrect value or elseā€¦ your Magento site will just break down. If you did it anyway, follow these steps:

  1. Go to your Magento database (you can use phpmyadmin) and open core_config_data table. Then find a row which has path = ‘web/unsecure/base_url’ and change the value back to {{base_url}}.
  2. Finally, to make it works you need to clear out any cache. Go to your magento installation, and open var folder, then delete the session folder (in other word, delete /magento/var/session).

Now, if you still want to update {{base_url}}, read this article http://www.magentocommerce.com/blog/comments/security-update-for-magento-base-url-configuration-value/. Well, in my opinion, Magento is premature product, so it is still fragile. You have to think twice before implement it on your production site.