Friday, 28 November 2014

password to be more secure , that includes minimum one capital latter ,one numeric character , minimum 8 characters in magento



For that i have change in Validation.js of magento

please find this code


['validate-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
                var pass=v.strip(); /*strip leading and trailing spaces*/
                return !(pass.length>0 && pass.length < 6);
            }],

and replace it with below code


['validate-password', 'Please enter 8 or more characters.Password should contain one numeric character, one capital letter

. Leading or trailing spaces will be ignored.', function(v) {
                var pass=v.strip(); /*strip leading and trailing spaces*/
if (!(/[a-z]/i.test(v)) || !(/[0-9]/.test(v)) || !(/[A-Z]/.test(v))) {
                    return false;
                }

                return !(pass.length>0 && pass.length < 8);
            }],

Wednesday, 5 November 2014

Magento 1.8.0 and 1.8.1 issue with special price

I have fond a bug on Magento CE 1.8.0 and 1.8.1 that is related to special price.

If I set some special price on product and save that change, magento sets current date for Set Product as New from Date (news_from_date), Special Price From Date (special_from_date).

I have solved this issue.

for this issue take standard.php file in your local set up  file is in \app\code\local\Mage\Catalog\Model\Product\Attribute\Backend\standard.php



find the function  _getValueForSave($object)  and add this line,
 $object->setData('news_from_date', FALSE);

 after  if ($startDate == '' && $object->getSpecialPrice()) {

 it means
 if ($startDate == '' && $object->getSpecialPrice()) {
  $object->setData('news_from_date', FALSE);
            $startDate = Mage::app()->getLocale()->date();
        }
 . That's it . Now check.

Tuesday, 21 October 2014

MAGENTO : ONEPAGE CHECKOUT SCROLLING ISSUE.

Here i found good fix of this issue.
Open opcheckout.js and find gotoSection function and replace this function as follow.

gotoSection: function(section)
{
    var sectionElement = $('opc-'+section);
    sectionElement.addClassName('allow');
    this.accordion.openSection('opc-'+section);
    this.reloadProgressBlock(section);
    jQuery("html, body").delay(10).animate({scrollTop: jQuery("#opc-"+section).offset().top }, 1000);
},

Friday, 30 May 2014

Set user permission & role in Custom module in magento

For set user permission & role in your custom module, you have to change your custom module's ect/config.xml file
 remove these type of code
        <acl>
          <resources>
            <all>
              <title>Allow Everything</title>
            </all>
            <admin>
              <children>
                <Namespace_Contactsdetail>
                  <title>Contactsdetail Module</title>
                  <sort_order>10</sort_order>
                </Namespace_Contactsdetail>
              </children>
            </admin>
          </resources>
        </acl>
Add below Code instead of it.

        <acl>
          <resources>
            <all>
              <title>Allow Everything</title>
            </all>
            <admin>
              <children>
                <system>
                  <children>
                    <config>
                      <children>
                        <contactsdetail translate="title" module="contactsdetail">
                          <title>Contactsdetail</title>
                        </contactsdetail>
                      </children>
                    </config>
                  </children>
                </system>
                <contactsdetail>
                  <title>contactsdetail Module</title>
                  <sort_order>10</sort_order>
                  <children>
                    <items>
                      <title>Contactsdetail</title>
                      <sort_order>3</sort_order>
                    </items>
                  </children>
                </contactsdetail>
              </children>
            </admin>
          </resources>
        </acl>

Monday, 28 October 2013

Add gift options in invoice pdf in Magento

for Add gift message to Magento’s PDF packingslip you have to modified invoice.php file in (\app\code\local\Mage\Sales\Model\Order\Pdf\Invoice.php)
it is a core file ao you have to move this file in local directory
 then find getPdf($invoices = array()) function in it

before   $this->_afterGetPdf();  this line add below code in it.

/*    Draw gift options*/
                $message = Mage::getModel('giftmessage/message');
                   $oid= $item->getOrderItemId();
                  $sales =  Mage::getModel('sales/order_item')->load($oid);
           
        $gift_message_id = $sales->getGiftMessageId();
        if(!is_null($gift_message_id)) {
              $message->load((int)$gift_message_id);
              $gift_sender = $message->getData('sender');
              $gift_recipient = $message->getData('recipient');
              $gift_message = $message->getData('message');

              $page->drawText(Mage::helper('sales')->__('Message from:'), 55, $this->y, 'UTF-8');
              $page->drawText(Mage::helper('sales')->__($gift_sender), 120, $this->y, 'UTF-8');
             $this->y -=10;
              $page->drawText(Mage::helper('sales')->__('Message to:'), 55, $this->y, 'UTF-8');
              $page->drawText(Mage::helper('sales')->__($gift_recipient), 120, $this->y, 'UTF-8');
             $this->y -=15;
              $page->drawText(Mage::helper('sales')->__('Message:'), 55, $this->y, 'UTF-8');
              $page->drawText(Mage::helper('sales')->__($gift_message), 120, $this->y, 'UTF-8');
             
             // $gift_message = wordwrap($gift_message, 140, "\n", false);
              /*$token = strtok($gift_message, "\n");
              $y = 740;
              while ($token != false) {
              if ($y < 60) {
              $pdf->pages[] = ($page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4));
              $page->setStyle($style);
              }
              else {
              $page->drawText($token, 40, $this->y);
              $this->y-=10;
              }
              $token = strtok("\n");
              }*/

            }
                  /*    Draw gift options end*/

Wednesday, 2 October 2013

delete existing order from invoice,shipment,credit memo.

http://www.magentocommerce.com/magento-connect/orders-eraser.html using of this extension you may delete order from sales > order> grid ,but if you want to delete same existing order id from invoice, shipment, creditmemo grid you have to customize little more in this extension.

For this you may change in function _erase2($orderId) in(\app\code\community\Wyomind\Orderseraser\Model\Orderseraser.php)
add below code:

$tablesfig = $resource->getTableName('sales_flat_invoice_grid');
$tablesfsg = $resource->getTableName('sales_flat_shipment_grid');
$tablesfcg = $resource->getTableName('sales_flat_creditmemo_grid');


$sql = "DELETE FROM " . $tablesfig . " WHERE order_id     = " . $orderId . ";";
$delete->query($sql);
$sql = "DELETE FROM " . $tablesfsg . " WHERE order_id     = " . $orderId . ";";
$delete->query($sql);
$sql = "DELETE FROM " . $tablesfcg . " WHERE order_id     = " . $orderId . ";";
$delete->query($sql);
      

magento summary rating of customers review in review list

put this code in(deault/default\template\review\product\view/list.phtml)
         <tbody>
                    <?php
                     $_percent = 0;
                    foreach ($_review->getRatingVotes() as $_vote){
                    $_percent = $_percent + $_vote->getPercent();
                    }
                      $_percent = $_percent / count($_review->getRatingVotes());?>
                    <tr>
                        <th class="label"><?php //echo $this->escapeHtml($_vote->getRatingCode()) ?>Aggregate rating:</th>
                        <td class="value">
                            <div class="rating-box">
                                <div class="rating" style="width:<?php echo  $_percent  ?>%;"></div>
                            </div>
                        </td>
                    </tr>
                    <?php //endforeach; ?>
                </tbody>


instead of

            <tbody>
                        <?php foreach ($_votes as $_vote): ?>
                        <tr>
                            <th><?php echo $this->escapeHtml($_vote->getRatingCode()) ?></th>
                            <td>
                                <div class="rating-box">
                                    <div class="rating" style="width:<?php echo $_vote->getPercent() ?>%;"></div>
                                </div>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>