Category Archives: Magento
Magento Custom Collection Sorting | Magento sort collection Item
Magento Custom Collection Sorting | Magento sort collection Item
function sortMagentoCollection(Varien_Data_Collection $collection, callable $sorter) {
$collectionReflectionMirror = new ReflectionObject($collection);
$itemsPropertyReflection = $collectionReflectionMirror->getProperty(‘_items’);
$itemsPropertyReflection->setAccessible(true);
$collectionItems = $itemsPropertyReflection->getValue($collection);
usort($collectionItems, $this->sorterCmp($sorter));
$itemsPropertyReflection->setValue($collection, $collectionItems);
$itemsPropertyReflection->setAccessible(false);
return $collection;
}
function sorterCmp($key) {
return function ($a, $b) use ($key) {
return strnatcmp($a[$key], $b[$key]);
};
}
example :
just call the method : sortMagentoCollection($collection,$sorter);
where $collection which you want to sort
$sorter : key name to sort , it may me column name on the basis of which you want to sort.
Magento get current controller ,current module , current action and route name
Magento get current controller ,current module , current action and route name :
Sometimes we need to get current Controller, Module , action & route name in magento :
its very easy to get the current name :
1 . controller name
Mage::app()->getRequest()->getControllerName();
// will return controller name
2. action name
Mage::app()->getRequest()->getActionName();
//will return action name
2. module name
Mage::app()->getRequest()->getModuleName();
// will return module name
2. routes name
Mage::app()->getRequest()->getRouteName();
//will return routes name
Increase Decrease Quantity Button
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Increase Decrease Button </title> <script type="text/javascript"> function incre(){ document.getElementById("qty").value++; } function decre(){ var ckVal = document.getElementById("qty").value; if(ckVal > '0') { document.getElementById("qty").value--; } } </script> </head> <body> <form name="DemoForm"> <input type='button' class="pull-left" name='incre' onclick='incre();' value='+'/> <input type='text' name='qty' value="1" id='qty' style="width:65px;" size="3" class="pull-left" /> <input type='button' class="pull-left" name='decre' onclick='decre();' value='-'/> </form> </body> </html>
Magento core_email_template setup | Base table or view not found: 1146 Table ‘core_email_template’ doesn’t exist
Run the following Query to create magento core email template
DROP TABLE IF EXISTS `core_email_template`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `core_email_template` (
`template_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘Template Id’,
`template_code` varchar(150) NOT NULL COMMENT ‘Template Name’,
`template_text` text NOT NULL COMMENT ‘Template Content’,
`template_styles` text COMMENT ‘Templste Styles’,
`template_type` int(10) unsigned DEFAULT NULL COMMENT ‘Template Type’,
`template_subject` varchar(200) NOT NULL COMMENT ‘Template Subject’,
`template_sender_name` varchar(200) DEFAULT NULL COMMENT ‘Template Sender Name’,
`template_sender_email` varchar(200) DEFAULT NULL COMMENT ‘Template Sender Email’,
`added_at` timestamp NULL DEFAULT NULL COMMENT ‘Date of Template Creation’,
`modified_at` timestamp NULL DEFAULT NULL COMMENT ‘Date of Template Modification’,
`orig_template_code` varchar(200) DEFAULT NULL COMMENT ‘Original Template Code’,
`orig_template_variables` text COMMENT ‘Original Template Variables’,
PRIMARY KEY (`template_id`),
UNIQUE KEY `UNQ_CORE_EMAIL_TEMPLATE_TEMPLATE_CODE` (`template_code`),
KEY `IDX_CORE_EMAIL_TEMPLATE_ADDED_AT` (`added_at`),
KEY `IDX_CORE_EMAIL_TEMPLATE_MODIFIED_AT` (`modified_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’Email Templates’;
/*!40101 SET character_set_client = @saved_cs_client */;
Could not resolve host: magento-community
Problem with using Beta Magento versions
use this in front of the extension key name:
http://connect20.magentocommerce.com/community/
instead of
http://connect20.magentocommerce.com/ magento-community/EM_Quickshop
example:
http://connect20.magentocommerce.com/community/EM_Quickshop
Base table or view already exists: 1050 Table ‘core_email_queue’ already exists, query was: CREATE TABLE `core_email_queue` in magento 1.9
Magento install error base table or view already exists or
if you get error” Base table or view already exists: 1050 Table ‘core_email_queue’ already exists, query was: CREATE TABLE `core_email_queue` ”
Solution is very simple go to database
select the table core_resource
search for the code core_resource
update the values in column version & data_version from 1.6.05 to 1.6.06
Magento Error when flushing or deleting cache in magento 1.9 | magento error after flushing cache
magento error after flushing cache
if you get following error in magento –
a:5:{i:0;s:1145:”Error in file: “app\code\core\Mage\Core\sql\core_setup\upgrade-1.6.0.5-1.6.0.6.php” – SQLSTATE[23000]: Integrity constraint violation: 1022 Can’t write; duplicate key in table ‘core_email_queue_recipients’, query was: CREATE TABLE `core_email_queue_recipients` (
`recipient_id` int UNSIGNED NOT NULL auto_increment COMMENT ‘Recipient Id’ ,
`message_id` int UNSIGNED NOT NULL COMMENT ‘Message ID’ ,
`recipient_email` varchar(128) NOT NULL COMMENT ‘Recipient Email’ ,
`recipient_name` varchar(255) NOT NULL COMMENT ‘Recipient Name’ ,
`email_type` smallint NOT NULL default ‘0’ COMMENT ‘Email Type’ ,
PRIMARY KEY (`recipient_id`),
INDEX `IDX_CORE_EMAIL_QUEUE_RECIPIENTS_RECIPIENT_EMAIL` (`recipient_email`),
INDEX `IDX_CORE_EMAIL_QUEUE_RECIPIENTS_EMAIL_TYPE` (`email_type`),
UNIQUE `19BDB9C5FE4BD685FCF992A71E976CD0` (`message_id`, `recipient_email`, `email_type`),
CONSTRAINT `FK_6F4948F3ABF97DE12127EF14B140802A` FOREIGN KEY (`message_id`) REFERENCES `core_email_queue` (`message_id`) ON DELETE CASCADE ON UPDATE CASCADE
) COMMENT=’Email Queue’ ENGINE=INNODB charset=utf8 COLLATE=utf8_general_ci”;i:1;s:1018:”#0
Solution is very simple go to database
select the table core_resource
search for the code core_resource
update the values in column version & data_version from 1.6.05 to 1.6.06
Magento create admin user mysql query
LOCK TABLES admin_role WRITE , admin_user WRITE; SET @SALTEM = "rp"; SET @PASSWORD = CONCAT(MD5(CONCAT( @SALTEM , "123456") ), CONCAT(":", @SALTEM )); SELECT @EXT := MAX(extra) FROM admin_user WHERE extra IS NOT NULL; INSERT INTO admin_user (firstname,lastname,email,username,password,created,lognum,reload_acl_flag,is_active,extra,rp_token_created_at) VALUES ('John','Doe','admin@email.com','admin',@PASSWORD,NOW(),0,0,1,@EXT,NOW()); INSERT INTO admin_role(parent_id,tree_level,sort_order,role_type,user_id,role_name) VALUES (1,2,0,'U',(SELECT user_id FROM admin_user WHERE username = 'admin'),'John'); UNLOCK TABLES;
How to get customer data by id in magento
$id =5;
$customer = Mage::getModel(‘customer/customer’)->load($id);
$customer->getFirstname();
$customer->getEmail();