├── Block
└── Index.php
├── Controller
└── Index
│ └── Index.php
├── Model
├── Faq.php
└── ResourceModel
│ ├── Faq.php
│ └── Faq
│ └── Collection.php
├── README.md
├── Setup
└── InstallSchema.php
├── etc
├── acl.xml
├── adminhtml
│ ├── menu.xml
│ └── system.xml
├── config.xml
├── frontend
│ └── routes.xml
└── module.xml
├── registration.php
└── view
└── frontend
├── layout
└── magefan_faq_index_index.xml
└── templates
└── index.phtml
/Block/Index.php:
--------------------------------------------------------------------------------
1 | _view->loadLayout();
23 | $this->_view->renderLayout();
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/Model/Faq.php:
--------------------------------------------------------------------------------
1 | _init('Magefan\Faq\Model\ResourceModel\Faq');
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Model/ResourceModel/Faq.php:
--------------------------------------------------------------------------------
1 | _init('magefan_faq', 'faq_id');
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Model/ResourceModel/Faq/Collection.php:
--------------------------------------------------------------------------------
1 | _init(
26 | 'Magefan\Faq\Model\Faq',
27 | 'Magefan\Faq\Model\ResourceModel\Faq'
28 | );
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # module-faq
2 | Training course
3 |
--------------------------------------------------------------------------------
/Setup/InstallSchema.php:
--------------------------------------------------------------------------------
1 | startSetup();
30 |
31 | /**
32 | * Create table 'magefan_faq'
33 | */
34 | $table = $installer->getConnection()->newTable(
35 | $installer->getTable('magefan_faq')
36 | )->addColumn(
37 | 'faq_id',
38 | \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
39 | null,
40 | ['identity' => true, 'nullable' => false, 'primary' => true],
41 | 'FAQ ID'
42 | )->addColumn(
43 | 'title',
44 | \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
45 | 255,
46 | ['nullable' => true],
47 | 'FAQ Title'
48 | )->addColumn(
49 | 'meta_keywords',
50 | \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
51 | '64k',
52 | ['nullable' => true],
53 | 'FAQ Meta Keywords'
54 | )->addColumn(
55 | 'meta_description',
56 | \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
57 | '64k',
58 | ['nullable' => true],
59 | 'FAQ Meta Description'
60 | )->addColumn(
61 | 'identifier',
62 | \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
63 | 100,
64 | ['nullable' => true, 'default' => null],
65 | 'FAQ String Identifier'
66 | )->addColumn(
67 | 'content_heading',
68 | \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
69 | 255,
70 | ['nullable' => true],
71 | 'FAQ Content Heading'
72 | )->addColumn(
73 | 'content',
74 | \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
75 | '2M',
76 | [],
77 | 'FAQ Content'
78 | )->addColumn(
79 | 'creation_time',
80 | \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
81 | null,
82 | [],
83 | 'FAQ Creation Time'
84 | )->addColumn(
85 | 'update_time',
86 | \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
87 | null,
88 | [],
89 | 'FAQ Modification Time'
90 | )->addColumn(
91 | 'is_active',
92 | \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
93 | null,
94 | ['nullable' => false, 'default' => '1'],
95 | 'Is FAQ Active'
96 | )->addIndex(
97 | $installer->getIdxName('magefan_faq', ['identifier']),
98 | ['identifier']
99 | )->setComment(
100 | 'Magefan FAQ Table'
101 | );
102 | $installer->getConnection()->createTable($table);
103 |
104 | /**
105 | * Create table 'magefan_faq_store'
106 | */
107 | $table = $installer->getConnection()->newTable(
108 | $installer->getTable('magefan_faq_store')
109 | )->addColumn(
110 | 'faq_id',
111 | \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
112 | null,
113 | ['nullable' => false, 'primary' => true],
114 | 'FAQ ID'
115 | )->addColumn(
116 | 'store_id',
117 | \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
118 | null,
119 | ['unsigned' => true, 'nullable' => false, 'primary' => true],
120 | 'Store ID'
121 | )->addIndex(
122 | $installer->getIdxName('magefan_faq_store', ['store_id']),
123 | ['store_id']
124 | )->addForeignKey(
125 | $installer->getFkName('magefan_faq_store', 'faq_id', 'magefan_faq', 'faq_id'),
126 | 'faq_id',
127 | $installer->getTable('magefan_faq'),
128 | 'faq_id',
129 | \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
130 | )->addForeignKey(
131 | $installer->getFkName('magefan_faq_store', 'store_id', 'store', 'store_id'),
132 | 'store_id',
133 | $installer->getTable('store'),
134 | 'store_id',
135 | \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
136 | )->setComment(
137 | 'Magefan FAQ To Store Linkage Table'
138 | );
139 | $installer->getConnection()->createTable($table);
140 |
141 |
142 | $installer->endSetup();
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/etc/acl.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |