Я не могу разработать самый простой модуль по инструкции

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 bear64
  • Группа: Пользователь
  • Сообщений: 12
  • Регистрация: 29.11.2012

05.12.2012 19:41

Инструкция: Magento: пишем самый простой модуль
http://uvelirplaza.ru/?hello

в админке модуль появился, включил отображение вывода,
проверил пути, очистил кеш,
не работает.
в чем еще может быть дело?

#2 Фымышонок
  • Группа: Пользователь
  • Сообщений: 17
  • Регистрация: 22.02.2012

05.12.2012 20:47

Посмотрите на Alan Storm уроки.
В кратце
Как написать самим модуль.
1. Самое минимальное содержимое модуля:
app
    etc
	    modules
	        Alanstormdotcom_Weblog.xml    
    code 
        local
		     Alanstormdotcom
			     Helloworld
				     Block
                     controllers
                     etc
                     Helper
                     Model
                     sql
	design/frontend/default/modern
	                           template
				       helloworld
                                           helloworld.phtml								  
	                           layout
                                       local.xml

app/code/local/Alanstormdotcom/Helloworld/etc/config.xml
<?xml version="1.0"?>
<config>    
    <modules>
        <Alanstormdotcom_Helloworld>
            <version>0.1.0</version>
        </Alanstormdotcom_Helloworld>
    </modules>
</config>

app/etc/modules/Alanstormdotcom_Helloworld.xml
<?xml version="1.0"?>
<<config>
    <modules>
        <Alanstormdotcom_Helloworld>
            <active>true</active>
            <codePool>local</codePool>
        </Alanstormdotcom_Helloworld>
    </modules>
</config>


2. Рефреш весь кэш даже если все стоит на disable.
3. Смотрим, что модуль появляется в System -> Configuration -> Advanced ->
Disable Module Output
4. Если устанавливаем сторонние модули файл за файлом, то сначала устанавливаем
эти файлы и смотрим что модуль появился в Advanced -> Disable Module Output
------------------------------------------------------------------------
Усложняем модуль: позволяем доступится к нему через
http://My_site/helloworld

5. Cоздаем контроллер
app/code/local/Alanstormdotcom/Helloworld/controllers/IndexController.php

class Alanstormdotcom_Helloworld_IndexController extends Mage_Core_Controller_Front_Action {        
    public function indexAction() {
        echo 'Hello Index!';
    }
}

6. В app/code/local/Alanstormdotcom/Helloworld/etc/config.xml
добавляем
    <frontend>
        <routers>
            <helloworld>
                <use>standard</use>
                <args>
                    <module>Alanstormdotcom_Helloworld</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>  
    </frontend>

где <module>Alanstormdotcom_Helloworld</module> указывает мадженто как доступится к контролеру модуля
<frontend> все относящиеся к франтэнду (в отличии от админ области)

7. <frontName> в мадженто url представлен в виде

http://example.com/frontName/actionControllerName/actionMethod/


то есть к нашему модулю который имеет контроллер IndexController.php
и акшен public function indexAction()

мы можем доступиться через
http://My_site/helloworld

http://My_site/helloworld/index

http://My_site/helloworld/index/index


8. Еще пример url
http://exmaple.com/checkout/cart/add


контроллер расположен в app/code/core/Mage/Checkout/controllers/cartController.php
и акшен public function addAction()

-----------------------------------------------------------------------------------
Подключаем .phtml к модулю через блок
8. Создаю helloworld.phtml
Например
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled</title>
    <meta name="generator" content="BBEdit 9.2" />
    <style type="text/css"></style>
</head>
<body>
bla-bla-bla
</body>
</html>


9. Вызываю это .phtml через блок в
app/design/frontend/default/modeкn/layout/helloworld.xml
пока app/design/frontend/default/modern/layout/local.xml

дескриптор <helloworld_index_index> означает, что
<frontName> helloworld
controller IndexContreller.php
action public function indexAction()
<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
    </default>
    <helloworld_index_index>
        <reference name="content">
            <block type="core/template" name="helloworld" template="helloworld/helloworld.phtml" />
        </reference>
    </helloworld_index_index>
</layout> 


#3 Фымышонок
  • Группа: Пользователь
  • Сообщений: 17
  • Регистрация: 22.02.2012

05.12.2012 20:57

Модуль будет доступен только если вы находитесь в теме Modern

#4 bear64
  • Группа: Пользователь
  • Сообщений: 12
  • Регистрация: 29.11.2012

06.12.2012 09:24

Спасибо.
Не понял только одно: что значит находиться в теме Modern?

#5 bear64
  • Группа: Пользователь
  • Сообщений: 12
  • Регистрация: 29.11.2012

06.12.2012 09:45

еще один вопрос по config.xml:
как правильно добавить блок <frontend> ?

так правильно:
<?xml version="1.0"?>
<config>    
    <modules>
        <Alanstormdotcom_Helloworld>
            <version>0.1.0</version>
        </Alanstormdotcom_Helloworld>
    </modules>
    <frontend>
        <routers>
            <helloworld>
                <use>standard</use>
                <args>
                    <module>Alanstormdotcom_Helloworld</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>  
    </frontend>
</config>

?

#6 bear64
  • Группа: Пользователь
  • Сообщений: 12
  • Регистрация: 29.11.2012

06.12.2012 09:51

модуль так и не появился в System -> Configuration -> Advanced -> Disable Module Output
:(

#7 bear64
  • Группа: Пользователь
  • Сообщений: 12
  • Регистрация: 29.11.2012

06.12.2012 11:04

У Вас опечатка
app/etc/modules/Alanstormdotcom_Helloworld.xml
<?xml version="1.0"?>
<<config>
^^


#8 bear64
  • Группа: Пользователь
  • Сообщений: 12
  • Регистрация: 29.11.2012

06.12.2012 15:26

Разобрался с примером, спасибо.
А как теперь добавить работу с базой?

#9 Фымышонок
  • Группа: Пользователь
  • Сообщений: 17
  • Регистрация: 22.02.2012

06.12.2012 17:25

Дальше лучше купить учебник - лучший из всех который я знаю

http://store.pulsestorm.net/products/no-frills-magento-layout


#10 Фымышонок
  • Группа: Пользователь
  • Сообщений: 17
  • Регистрация: 22.02.2012

06.12.2012 17:34

Cоздайте модуль с помощью module creater и поймите как в нем добавляют базу данных
http://magento-forum.ru/topic/867/

Поделиться темой: