Magento: Access Denied errors after installing SUPEE-6285 or since Magento 1.9.2.1 – ACL Error – Solution

13. August 2015 at 15:06

If you use restricted admin accounts, some menus of third party extensions might not work anymore for them. The reason is that the default return value of Mage_Adminhtml_Controller_Action::_isAllowed() has been changed from true to Mage::getSingleton(‚admin/session‘)->isAllowed(‚admin‘). Extensions that do not override this method in their admin controllers because they don’t use the ACL, now need the „ALL“ privilege.

The only solution is to patch the extensions and add this method to all their admin controllers:

protected function _isAllowed()
{
  return true;
}

Or if they actually have an ACL resource defined in etc/adminhtml.xml:

protected function _isAllowed()
{
  return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE'); //e.g. 'admin/sales/productreturn'</pre>
} 

 

Please share this article von facebook & google plus or where you want, thank you!

Magento Warenkorb Daten im Header / Warenkorb auslesen – Magento: get cart data

6. Januar 2015 at 14:58
Den Warenkorb von Magento kann man wie folgt auslesen:
<?php
      $_countHelper = $this->helper('checkout/cart')->getSummaryCount();  //get total items in cart
      $_totalHelper = $this->helper('checkout/cart')->getQuote()->getGrandTotal(); //get total price
      if($count==0)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(0 ITEMS)</a>',$count);
      }
      if($count==1)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(1 ITEM)</a>',$count);
      }
      if($count>1)
      {
        echo $this->__('<a href="/checkout/cart" class="cartgo">(%s ITMES)</a>',$count);
      }
      echo $this->__('', $this->helper('core')->formatPrice($total, false));
    ?>

Please share this article von facebook & google plus or where you want, thank you!

Wie deaktiviert man korrekt Observer-Funktionen OHNE die Core-Module zu verändern?

6. Mai 2014 at 13:14

Schreibt ein eigenes Module, dort in der etc/config.xml ist es möglich über z.b. folgende Zeilen den Aufruf der Methode „initByRequest“ durch das Event controller_action_predispatch zu deaktivieren.

Wichtig dabei folgende Zeile zum deaktivieren des Events: <type>disabled</type>

    <frontend>
        <events>
            <controller_action_predispatch>
                <observers>
                    <log>
                        <class>log/visitor</class>
                        <method>initByRequest</method>
                        <type>disabled</type>
                    </log>
                </observers>
            </controller_action_predispatch>
		</events>
	</frontend>

Warum nicht direkt im core?

Durch saubere Trennung zwischen eigenem (veränderten) und core-code, ist eure Magento-Version weiterhin wartbar,
daher Updates (vor allem Security-Fixes) lassen sich einfacher einspielen.

Mit jeder direkten Änderung am core-code, verschlechtert sich die Wartbarkeit der Magento-Suite.

Wenn euch der Tipp geholfen hat, bitte diesen Artikel auch bei Google+ und Facebook teilen, danke für euren Support!

SEO: meta-tags & title ohne double encode

19. Dezember 2013 at 14:56

Werden die Daten für die meta-tags sowie dem title aus einem cms ausgelesen, so kann es passieren das Sonderzeichen (special chars) enthalten sind. Diese sind natürlich nicht erwünscht, z.b. das doppelte Hochkomma („) kann so gar den html-tag „zerstören“.

Die Lösung ist selbstverständlich in php die Funktion htmlspecialchars() .

Doch wird diese nicht mit entsprechenden Parametern ausgeführt, so werden ggf. doppelte encodings vorgenommen so wird aus einem

$einString = „‚Honey‘ & s&uuml;&szlig;e \“Schokolade\““;

ein

&#039;Honey&#039; &amp; s&amp;uuml;&amp;szlig;e &quot;Schokolade&quot;

Das ist nicht unbedingt erwünscht. Daher lieber wie folgt aufrufen

echo htmlspecialchars($string, ENT_QUOTES, "UTF-8", false)";

und ihr erhaltet als Ausgabe

&#039;honey&#039; &amp; s&uuml;&szlig;e &quot;Schokolade&quot;<br>

Wenn euch der Tipp geholfen hat, bitte diesen Artikel auch bei Google+ und Facebook teilen, danke für euren Support!

Get Price from Database

6. November 2013 at 17:34
  1. eav_entity_type ——> See catalog_product’s Id (10)
  2. SELECT * FROM `eav_attribute` WHERE `attribute_code` = ‘price’
  3. Get attribute_id where entity_type_id=’10’ (69)
  4. SELECT * FROM `catalog_product_entity_decimal` WHERE `attribute_id` = ‘69’
  5. The value you get is the Price of the Product Whose Id correspond entity_id

Magento: Change Attribute Type – Select to Multiselect

13. September 2013 at 17:51

Ihr möchtet den Attribute Type von Select auf Multiselect ändern?

so geht’s

$installer = $this;
$this->startSetup();
//$installer->updateAttribute('catalog_product', 'attributename', array('type' => 'varchar', 'input' => 'multiselect'));
$entityTypeId = $installer->getEntityTypeId('catalog_product', 'attributename');
$idAttributeOldSelect = $this->getAttribute($entityTypeId, 'attributename', 'attribute_id');
$installer->updateAttribute($entityTypeId, $idAttributeOldSelect, array(
    'frontend_input' => 'multiselect',
    'backend_type' => 'varchar'
));
$this->endSetup();

Magento: Liste aller Events der aktuell geladenen Seite in eine Log-File ausgeben.

28. Mai 2013 at 14:34

magento ecommerce logo

Bei der Entwicklung bzw. der Erweiterung bestehender Methoden, ist es oft hilfreich eine Übersicht aller aktuell geladenen Events einer bestimmten Seite zu erhalten.

So erhaltet ihr eine Liste der Events der aktuell geladenen Seite

In der Funktion public static function dispatchEvent($name, array $data = array())“ in der Datei“/app/Mage.php“ fügt ihr folgenden Code ein:

file_put_contents('var/log/magento-events.log'
 , date('Y-m-d H:i:s', time()) . ' - '
 . (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'CLI') . ' - '
 . (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_FILENAME']) . ' - '
 . $name . chr(10),
 FILE_APPEND);

Nach dem neuladen der Seite findet ihr eine entsprechende Auflistung in der Datei var/log/magento-events.log .

War der Tipp für euch hilfreich?
Dann gibt ihn doch ein +1 oder like bzw. teilt diesen Artikel bei Google+ oder Facebook!

Danke für euren Support!

Magento: Funktion zur Erzeugung der „markup for multilingual content“-Link-Tags

22. Januar 2013 at 17:53

Die folgende Funktion erzeugt euch für die einzelnen Stores bei Mehrsprachigkeit dieser ein Array mit den Markup-Links für Multilingual content:

public function countryStoresAlternateLinks()
{
/*      e.g.
<link rel="alternate" hreflang="es" href="http://www.example.com/" />
<link rel="alternate" hreflang="es-ES" href="http://es-es.example.com/" />
<link rel="alternate" hreflang="es-MX" href="http://es-mx.example.com/" />
<link rel="alternate" hreflang="en" href="http://en.example.com/" />
*/
$stores = Mage::app()->getStores(false);
if (!$stores) {
return false;
}
$countryAlternateLinks = '';
foreach($stores as $store) {
$countryAlternateLinks[] = '<link rel="alternate" hreflang="' . substr(Mage::getStoreConfig('general/locale/code', $store->getId()), 0, 2) . (Mage::getStoreConfig('general/country/default', $store->getId()) != '' ?  "-" . Mage::getStoreConfig('general/country/default', $store->getId()) : '') .  '" href="' . $store->getBaseUrl() . '" />' . "\n";
}
return $countryAlternateLinks;
}

Die erzeugte Liste könnt ihr dann entsprechend im Template verarbeiten/ausgeben.

Idealerweise solltet ihr die Funktion in eine erweiterte Klasse der Mage_Page_Block_Html_Head packen.

Firebug / FirePHP über PHP ansprechen

19. November 2009 at 15:45

firebug

Firebug mit FirePHPCore-Library ansprechen

Mit der folgenden Funktion könnt ihr Firebug mit Hilfe der FirePHPCore ansprechen, dazu ggf. den entsprechenden Pfad zur Library anpassen (bei path to library):

function firebug($array=array(), $error_reporting=true)
{
  if($error_reporting)
error_reporting(E_ALL);
// path to library
require_once PFAD_RELATIV . "/class/Firebug/FirePHP.class.php";
$firephp = FirePHP::getInstance(true);
require_once (PFAD_RELATIV."/class/Firebug/fb.php");
//$firephp->group('Debug Group');
$firephp->dump('dump', $array);
//$firephp->fb($array, 'dump', FirePHP::DUMP);
$firephp->fb($array, 'dump', FirePHP::INFO);
//$firephp->groupEnd();
}

Firebug in ZendFramework ansprechen

Mit der folgenden Funktion könnt ihr Firebug direkt im ZendFramework ansprechen

function firebug($value= '')
{
 $writer = new Zend_Log_Writer_Firebug();
 $logger = new Zend_Log($writer);
 $request = new Zend_Controller_Request_Http();
 $response = new Zend_Controller_Response_Http();
 $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance();
 $channel->setRequest($request);
 $channel->setResponse($response);
 // Start output buffering
 ob_start();
 // Now you can make calls to the logger
 $logger->log($value, Zend_Log::INFO);
 // Flush log data to browser
 $channel->flush();
 $response->sendHeaders();
}

Debug Log Ausgabe in Firebug

<?php
FB::log('Log message');
FB::info('Info message');
FB::warn('Warn message');
FB::error('Error message');
?>

Log Debug Ausgabe in Firebug aus JavaScript

Stack traces

console.trace();

Object Inspection

console.dir(object);

XML Object inspection

console.dirxml(element);

Current Events on the Page

console.dir(window);

With Objects

console.log("The %d item has a value of: %d", fifth, myvalue);

Firebug with Ajax developement

how-to-integrate-firephp-for-ajax-development

Weiter führende Links

Stack traces
console.trace(); 

Object Inspection
console.dir(object)

XML Object inspection
console.dirxml(element)

Online CMS, Blog, Foren, Groupware, Portale und weitere Systeme vergleichen ohne Installation

16. November 2009 at 11:47

php-opensourcecms-comKostenlose Open-Source Content-Management- (CMS), Blog-, Foren-, Groupware-, Portal- oder andere Systeme gibt es mittlerweile wie Sand am Meer. Den Überblick zu behalten ist eine Sache, jeweils eine Demo-Installation aufzusetzen um die Funktionalitäten des Systems im Detail zu analysieren, eine andere. Wer nicht gerade sein Urlaub oder andere kostbare Zeit damit verbringen möchte, dem empfehlen wir die  Seite opensourcecms welche fertige Demo-Installationen von über 200 fertig installierten Scripts vorweisen kann, auch der Zugriff auf das Admin-Backend ist möglich.

Ein Klasse Service den wir gerne weiter empfehlen und nicht mehr missen wollen!

Sie Benötigen Unterstützung bei der Installation oder Anpassung von OpenSource-Scripte?

Fly2Mars-Media unterstützt Sie bei diesem und vielen anderen Themen rund um Internet & IT . Für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.