где я могу объявить свои пользовательские функции в magento - PullRequest
3 голосов
/ 10 октября 2011

Я хочу объявить некоторые функции php, и я хотел бы вызывать эти функции в разных местах magento. Обычно в своих основных проектах php я объявляю функции php в functions.php, и я включаю этот файл во все страницы. Я не знаком со структурой MVC. Где я могу объявить такого рода функции.

Спасибо

Редактировать: -

Mango_Myfunc.xml (приложение / etc / modules)

<?xml version="1.0"?>
<config>
    <modules>
        <Mango_Myfunc>
            <active>true</active>
            <codePool>local</codePool>
        </Mango_Myfunc>
    </modules>
</config>

Config.xml (приложение / код / ​​местные / Mango / MyFunc / и т.д. / configure.xml)

<?xml version="1.0"?>
<config>
    <modules>
        <Mango_Myfunc>
            <version>0.1.0</version>
        </Mango_Myfunc>
    </modules>
    <global>
        <helpers>
            <Myfunc>
                <class>Mango_Myfunc_Helper</class>
            </Myfunc>
        </helpers>
    </global>
</config>

Data.php (приложение / код / ​​местные / Mango / MyFunc / помощник / Data.php)

class Mango_Myfunc_Helper_Data extends Mage_Core_Helper_Abstract
{

public function short_str ($str, $len, $suf = '...') {
    if (strlen($str) > $len)
        return substr($str, 0, $len - strlen($suf) ) . $suf;

    return $str;
}

}

Это то, что я добавил

Я использовал приведенный ниже для вызова функции в list.phtml

echo $this->helper('Myfunc/Data')->short_str("test","3"); got the error

Неустранимая ошибка: класс 'Mage_Myfunc_Helper_Data' не найден

1 Ответ

6 голосов
/ 10 октября 2011

Magento имеет вспомогательные классы для таких методов. Так что сделайте свои расширения и добавьте ваши методы, и вы сможете позже вызывать их следующим образом

Mage::helper('yourextension/yourhelper')->yourMethod(); 

Или вы можете сделать библиотечный класс из ваших общих методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...