{"id":4180,"date":"2024-07-06T12:18:13","date_gmt":"2024-07-06T08:48:13","guid":{"rendered":"https:\/\/opencart.ir\/blog\/?p=4180"},"modified":"2024-07-09T14:04:01","modified_gmt":"2024-07-09T10:34:01","slug":"create-modules-in-opencart","status":"publish","type":"post","link":"https:\/\/opencart.ir\/blog\/create-modules-in-opencart\/","title":{"rendered":"\u0646\u0648\u0634\u062a\u0646 \u0645\u0627\u0698\u0648\u0644 \u0628\u0631\u0627\u06cc \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a"},"content":{"rendered":"<p style=\"text-align: justify;\">\u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 MVC\u060c \u0627\u0644\u06af\u0648\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc (Model-View-Controller)\u060c <a href=\"https:\/\/opencart.ir\/\">\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0633\u0627\u0632 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/a> \u0627\u0633\u062a \u06a9\u0647 \u067e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0645\u062c\u0632\u0627 \u0628\u0631\u0627\u06cc controller\u060c model\u060c view \u0648 language \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0646\u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u0645\u0627\u0698\u0648\u0644 \u062c\u062f\u06cc\u062f \u062f\u0631 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a\u060c \u0628\u0627\u06cc\u062f \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0644\u062a\u0641\u0631\u0645 \u0622\u0634\u0646\u0627 \u0628\u0627\u0634\u06cc\u062f. \u0627\u06cc\u0646 \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u0648 \u0645\u0634\u062e\u0635\u0627\u062a \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a \u0647\u0645\u062e\u0648\u0627\u0646\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0628\u0631\u0627\u06cc \u06a9\u0634\u0641 \u0645\u0628\u0627\u0646\u06cc \u0627\u06cc\u0646 \u067e\u0644\u062a\u0641\u0631\u0645\u060c \u0628\u0647 <a href=\"https:\/\/docs.opencart.com\/en-gb\/developer\/module\/\" target=\"_blank\" rel=\"noopener\">\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/a> \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f. <a href=\"https:\/\/docs.opencart.com\/en-gb\/introduction\/\" target=\"_blank\" rel=\"noopener\">\u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/a> \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0634\u062e\u0635\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0647\u0646\u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u0645\u0627\u0698\u0648\u0644 \u0628\u0647 \u0622\u0646 \u067e\u0627\u06cc\u0628\u0646\u062f \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u062a\u0648\u0633\u0639\u0647 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a\u060c \u0628\u0627\u06cc\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc\u06cc \u062f\u0631 \u067e\u0648\u0634\u0647 \u0645\u0627\u0698\u0648\u0644 controller\u060c language \u0648 view \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a \u062f\u0631 \u062c\u062f\u0648\u0644\u06cc (\u062a\u06cc\u0628\u0644) \u0628\u0647 \u0646\u0627\u0645 setting \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 model \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0622\u0646 \u0646\u062f\u0627\u0631\u06cc\u062f. \u0641\u0627\u06cc\u0644 admin-&gt;model-&gt;setting-&gt;setting.php \u0634\u0627\u0645\u0644 \u06a9\u0648\u0626\u0631\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0631 \u062c\u062f\u0648\u0644 setting \u0627\u0633\u062a.<\/p>\n<p style=\"text-align: justify;\"><strong>\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0639\u0645\u0648\u0645\u06cc<\/strong><\/p>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u062a\u0648\u0633\u0639\u0647 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 \u0646\u0633\u062e\u0647 7.3.0.3 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u06cc\u0645. \u0628\u062e\u0634 comment \u06a9\u062f\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062a\u0648\u0633\u0639\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u062f\u0631 \u067e\u0627\u0633\u062e \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a.<\/p>\n<h2 style=\"text-align: justify;\"><strong>\u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/strong><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0627\u06cc\u062f \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0648\u0634\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4181\" src=\"https:\/\/opencart.ir\/blog\/wp-content\/uploads\/opencart-folder-structure.png\" alt=\"\u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a\" width=\"1047\" height=\"490\" srcset=\"https:\/\/opencart.ir\/blog\/wp-content\/uploads\/opencart-folder-structure.png 1047w, https:\/\/opencart.ir\/blog\/wp-content\/uploads\/opencart-folder-structure-300x140.png 300w, https:\/\/opencart.ir\/blog\/wp-content\/uploads\/opencart-folder-structure-1024x479.png 1024w, https:\/\/opencart.ir\/blog\/wp-content\/uploads\/opencart-folder-structure-768x359.png 768w, https:\/\/opencart.ir\/blog\/wp-content\/uploads\/opencart-folder-structure-585x274.png 585w\" sizes=\"auto, (max-width: 1047px) 100vw, 1047px\" \/><\/p>\n<h3 style=\"text-align: justify;\"><strong>\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 <\/strong><strong>language<\/strong> <strong>\u0628\u0631\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/strong><\/h3>\n<p style=\"text-align: justify;\">\u0641\u0627\u06cc\u0644 language \u0628\u0631\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 &#8216;first_module.php&#8217;\u060c \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0648 \u062f\u0631 \u067e\u0648\u0634\u0647 admin-&gt;language-&gt;fa-ir-&gt;extension&gt;module \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u0628\u0631\u0627\u06cc \u0646\u0633\u062e\u0647 7.3.0.3 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0632\u0628\u0627\u0646\u200c\u0647\u0627 (\u0639\u0628\u0627\u0631\u0627\u062a \u0645\u062a\u0646\u06cc) \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u062a\u062e\u0635\u06cc\u0635 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0646\u0627\u0645 \u0627\u06cc\u0646 \u0622\u0631\u0627\u06cc\u0647 _$ \u0627\u0633\u062a\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0632\u0628\u0627\u0646 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<pre dir=\"ltr\" style=\"text-align: justify;\"><span style=\"color: #333333;\"><strong>&lt;?php\r\n\/**\r\n * Webkul Software.\r\n *\r\n * @category Webkul\r\n * @package Opencart Module Tutorial\r\n * @author Webkul\r\n * @copyright Copyright (c) Webkul Software Private Limited (https:\/\/webkul.com)\r\n * @license https:\/\/store.webkul.com\/license.html\r\n *\/\r\n\/\/ Heading\r\n$_['heading_title']\u00a0\u00a0\u00a0 = '\u0645\u0627\u0698\u0648\u0644 \u0627\u0648\u0644';\r\n$_['text_module']\u00a0\u00a0\u00a0\u00a0\u00a0 = '\u0645\u0627\u0698\u0648\u0644 \u0647\u0627';\r\n$_['text_success']\u00a0\u00a0\u00a0\u00a0 = '\u0645\u0627\u0698\u0648\u0644 \u0627\u0648\u0644\" \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062a\u063a\u06cc\u06cc\u0631 \u06cc\u0627\u0641\u062a\"';\r\n$_['text_edit']\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = '\u0645\u0627\u0698\u0648\u0644 \u0627\u0648\u0644\" \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0634\u062f\"';\r\n\/\/ Entry\r\n$_['entry_status']\u00a0\u00a0\u00a0\u00a0 = '\u0648\u0636\u0639\u06cc\u062a';\r\n\/\/ Error\r\n$_['error_permission'] = '\u0647\u0634\u062f\u0627\u0631: \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \"\u0645\u0627\u0698\u0648\u0644 \u0627\u0648\u0644\" \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f';<\/strong><\/span><\/pre>\n<h3 style=\"text-align: justify;\"><strong>\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 <\/strong><strong>controller<\/strong><strong> \u0628\u0631\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/strong><\/h3>\n<p style=\"text-align: justify;\">\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 language\u060c \u0628\u0647 \u0633\u0631\u0627\u063a controller \u0645\u06cc\u200c\u0631\u0648\u06cc\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u062f\u0631 \u067e\u0648\u0634\u0647 admin-&gt;controller-&gt;extension-&gt;module\u060c \u0641\u0627\u06cc\u0644\u06cc \u0628\u0627 \u0646\u0627\u0645 first_module.php \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u06a9\u062f controller \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 comment \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<pre dir=\"ltr\" style=\"text-align: justify;\"><span style=\"color: #333333;\"><strong>&lt;?php\r\n\/**\r\n * Webkul Software.\r\n *\r\n * @category Webkul\r\n * @package Opencart Module Tutorial\r\n * @author Webkul\r\n * @copyright Copyright (c) Webkul Software Private Limited (https:\/\/webkul.com)\r\n * @license https:\/\/store.webkul.com\/license.html\r\n *\/\r\n\/**\r\n * The controller class must extend the parent class i.e. Controller\r\n * The controller name must be like Controller + directory path (with first character of each folder in capital) + file name (with first character in capital)\r\n *\/\r\nclass ControllerExtensionModuleFirstModule extends Controller {\r\n \u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0 * property named $error is defined to put errors\r\n \u00a0\u00a0\u00a0 * @var array\r\n \u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0 private $error = array();\r\n \u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0 * Basic function of the controller. This can be called using route=module\/first_module\r\n \u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0 public function index() {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Loads the language file. Path of the file along with file name must be given\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;load-&gt;language('extension\/module\/first_module');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Sets the title to the html page\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;document-&gt;setTitle($this-&gt;language-&gt;get('heading_title'));\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Loads the model file. Path of the file to be given\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;load-&gt;model('setting\/setting');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Checks whether the request type is post. If yes, then calls the validate function.\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (($this-&gt;request-&gt;server['REQUEST_METHOD'] == 'POST') &amp;&amp; $this-&gt;validate()) {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0* The function named 'editSetting' of a model is called in this way\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * The first argument is the code of the module and the second argument contains all the post values\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * The code must be same as your file name\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;model_setting_setting-&gt;editSetting('module_first_module', $this-&gt;request-&gt;post);\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * The success message is kept in the session\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;session-&gt;data['success'] = $this-&gt;language-&gt;get('text_success');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * The redirection works in this way.\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * After insertion of data, it will redirect to extension\/module file along with the token\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * The success message will be shown there\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;response-&gt;redirect($this-&gt;url-&gt;link('extension\/module', 'user_token=' . $this-&gt;session-&gt;data['user_token'], true));\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Putting the language into the '$data' array\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * This is the way how you get the language from the language file\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['heading_title'] = $this-&gt;language-&gt;get('heading_title');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['text_edit'] = $this-&gt;language-&gt;get('text_edit');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['text_enabled'] = $this-&gt;language-&gt;get('text_enabled');\r\n \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0$data['text_disabled'] = $this-&gt;language-&gt;get('text_disabled');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['entry_status'] = $this-&gt;language-&gt;get('entry_status');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['button_save'] = $this-&gt;language-&gt;get('button_save');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['button_cancel'] = $this-&gt;language-&gt;get('button_cancel');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * If there is any warning in the private property '$error', then it will be put into '$data' array\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (isset($this-&gt;error['warning'])) {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['error_warning'] = $this-&gt;error['warning'];\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 } else {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['error_warning'] = '';\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Breadcrumbs are declared as array\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['breadcrumbs'] = array();\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Breadcrumbs are defined\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['breadcrumbs'][] = array(\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'text' =&gt; $this-&gt;language-&gt;get('text_home'),\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'href' =&gt; $this-&gt;url-&gt;link('common\/dashboard', 'user_token=' . $this-&gt;session-&gt;data['user_token'], true)\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 );\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['breadcrumbs'][] = array(\r\n \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'text' =&gt; $this-&gt;language-&gt;get('text_module'),\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'href' =&gt; $this-&gt;url-&gt;link('extension\/module', 'user_token=' . $this-&gt;session-&gt;data['user_token'], true)\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 );\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['breadcrumbs'][] = array(\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'text' =&gt; $this-&gt;language-&gt;get('heading_title'),\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'href' =&gt; $this-&gt;url-&gt;link('extenison\/module\/first_module', 'user_token=' . $this-&gt;session-&gt;data['user_token'], true)\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 );\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Form action url is created and defined to $data['action']\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0*\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['action'] = $this-&gt;url-&gt;link('extension\/module\/first_module', 'user_token=' . $this-&gt;session-&gt;data['user_token'], true);\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Cancel\/back button url which will lead you to module list\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['cancel'] = $this-&gt;url-&gt;link('extension\/module', 'user_token=' . $this-&gt;session-&gt;data['user_token'], true);\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * checks whether the value exists in the post request\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (isset($this-&gt;request-&gt;post['module_first_module_status'])) {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['module_first_module_status'] = $this-&gt;request-&gt;post['module_first_module_status'];\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 } else {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * if the value do not exists in the post request then value is taken from the config i.e. setting table\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['module_first_module_status'] = $this-&gt;config-&gt;get('module_first_module_status');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Header data is loaded\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['header'] = $this-&gt;load-&gt;controller('common\/header');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0* Column left part is loaded\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['column_left'] = $this-&gt;load-&gt;controller('common\/column_left');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Footer data is loaded\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data['footer'] = $this-&gt;load-&gt;controller('common\/footer');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Using this function tpl file is called and all the data of controller is passed through '$data' array\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * This is for Opencart 2.2.0.0 version. There will be minor changes as per the version.\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;response-&gt;setOutput($this-&gt;load-&gt;view('extension\/module\/first_module', $data));\r\n \u00a0\u00a0 }\r\n \u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0 * validate function validates the values of the post and also the permission\r\n \u00a0\u00a0\u00a0 * @return boolean return true if any of the index of $error contains value\r\n \u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0 protected function validate() {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/**\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Check whether the current user has the permissions to modify the settings of the module\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * The permissions are set in System-&gt;Users-&gt;User groups\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\/\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (!$this-&gt;user-&gt;hasPermission('modify', 'extension\/module\/first_module')) {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;error['warning'] = $this-&gt;language-&gt;get('error_permission');\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return !$this-&gt;error;\r\n \u00a0\u00a0 }\r\n}<\/strong><\/span><\/pre>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062f \u0641\u0648\u0642\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u062d\u0648\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc language\u200c\u0647\u0627\u060c model\u200c\u0647\u0627 \u0648 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631 \u0631\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3 style=\"text-align: justify;\"><strong>\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 <\/strong><strong>view<\/strong><strong> \u0628\u0631\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/strong><\/h3>\n<p style=\"text-align: justify;\">\u067e\u0633 \u0627\u0632 controller\u060c \u0628\u0627\u06cc\u062f \u0628\u0647 \u0633\u0631\u0627\u063a \u0641\u0627\u06cc\u0644 view \u0628\u0631\u0648\u06cc\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0641\u0627\u06cc\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 first_module.twig \u062f\u0631 \u067e\u0648\u0634\u0647 admin-&gt;view-&gt;template-&gt;extension-&gt;module \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u062f \u0641\u0627\u06cc\u0644 view \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<pre dir=\"ltr\" style=\"text-align: justify;\"><span style=\"color: #333333;\"><strong>&lt;!--\r\n\/**\r\n * Webkul Software.\r\n *\r\n * @category Webkul\r\n * @package Opencart Module Tutorial\r\n * @author Webkul\r\n * @copyright Copyright (c) Webkul Software Private Limited (https:\/\/webkul.com)\r\n * @license https:\/\/store.webkul.com\/license.html\r\n *\/\r\n --&gt;\r\n&lt;!-- merging the 'header' and 'column left' part with this template --&gt;\r\n{{ header }}{{ column_left }}\r\n&lt;div id=\"content\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"page-header\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"container-fluid\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"pull-right\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- Form submit button --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;button type=\"submit\" form=\"form-first-module\" data-toggle=\"tooltip\" title=\"{{ button_save }}\" class=\"btn btn-primary\"&gt;&lt;i class=\"fa fa-save\"&gt;&lt;\/i&gt;&lt;\/button&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0&lt;!-- Back button --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;a href=\"{{ cancel }}\" data-toggle=\"tooltip\" title=\"{{ button_cancel }}\" class=\"btn btn-default\"&gt;&lt;i class=\"fa fa-reply\"&gt;&lt;\/i&gt;&lt;\/a&gt;&lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- Heading is mentioned here --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h1&gt;{{ heading_title }}&lt;\/h1&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- Breadcrumbs are listed here --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;ul class=\"breadcrumb\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {% for breadcrumb in breadcrumbs %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;li&gt;&lt;a href=\"{{ breadcrumb.href }}\"&gt;{{ breadcrumb.text }}&lt;\/a&gt;&lt;\/li&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {% endfor %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/ul&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"container-fluid\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- if it contains a warning then it will be visible as an alert --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {% if error_warning %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"alert alert-danger\"&gt;&lt;i class=\"fa fa-exclamation-circle\"&gt;&lt;\/i&gt; {{ error_warning }}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;button type=\"button\" class=\"close\" data-dismiss=\"alert\"&gt;&amp;times;&lt;\/button&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {% endif %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"panel panel-default\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"panel-heading\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h3 class=\"panel-title\"&gt;&lt;i class=\"fa fa-pencil\"&gt;&lt;\/i&gt; {{ text_edit }}&lt;\/h3&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"panel-body\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- form starts here --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;form action=\"{{ action }}\" method=\"post\" enctype=\"multipart\/form-data\" id=\"form-first-module\" class=\"form-horizontal\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"form-group\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- Entry label is mentioned here --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;label class=\"col-sm-2 control-label\" for=\"input-status\"&gt;{{ entry_status }}&lt;\/label&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=\"col-sm-10\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- The name of the form inputs must start with the controller file name followed by a underscore\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 like in this case \"module_first_module_\" after that status is added --&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;select name=\"module_first_module_status\" id=\"input-status\" class=\"form-control\"&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {% if module_first_module_status %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;option value=\"1\" selected=\"selected\"&gt;{{ text_enabled }}&lt;\/option&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;option value=\"0\"&gt;{{ text_disabled }}&lt;\/option&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {% else %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"1\"&gt;{{ text_enabled }}&lt;\/option&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;option value=\"0\" selected=\"selected\"&gt;{{ text_disabled }}&lt;\/option&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{% endif %}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/select&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/form&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;!-- merges the footer with the template --&gt;\r\n{{ footer }}<\/strong><\/span><\/pre>\n<p style=\"text-align: justify;\">\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0628\u062e\u0634 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u06cc\u0645. \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627-&gt;\u0645\u0627\u0698\u0648\u0644 \u0647\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f &#8220;\u0645\u0627\u0698\u0648\u0644 \u0627\u0648\u0644&#8221; \u0631\u0627 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><strong>\u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0645\u0627\u0698\u0648\u0644 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a<\/strong><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0645\u0627\u0698\u0648\u0644 \u062c\u062f\u06cc\u062f\u06cc \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0633\u0627\u062e\u062a \u0622\u0646 \u0647\u0633\u062a\u06cc\u062f\u060c \u067e\u0633 \u0627\u0632 \u0627\u0641\u0632\u0648\u062f\u0646 \u0648 \u0627\u06cc\u062c\u0627\u062f \u0647\u0645\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u060c \u0628\u0627\u06cc\u062f \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\"><strong>\u0645\u0631\u062d\u0644\u0647 1:<\/strong> \u0644\u0637\u0641\u0627\u064b \u0627\u062c\u0627\u0632\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0628\u062f\u0647\u06cc\u062f. \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645-&gt;\u06a9\u0627\u0631\u0628\u0631\u0627\u0646-&gt;\u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc.<\/p>\n<p style=\"text-align: justify;\"><strong>\u0645\u0631\u062d\u0644\u0647 2:<\/strong> \u067e\u0633 \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0644\u0627\u0632\u0645 \u0628\u0647 \u0645\u0627\u0698\u0648\u0644\u060c \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0645\u0627\u0698\u0648\u0644 \u0628\u0631\u0648\u06cc\u062f. \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 \u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627-&gt;\u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627 \u0648 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u0646\u0648\u0627\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u0627\u0698\u0648\u0644.<\/p>\n<p style=\"text-align: justify;\"><strong>\u0645\u0631\u062d\u0644\u0647 3:<\/strong> \u067e\u0633 \u0627\u0632 \u062f\u06cc\u062f\u0646 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u060c \u0628\u0627\u06cc\u062f \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u0646\u0635\u0628\u060c \u0622\u0646 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\"><strong>\u0645\u0631\u062d\u0644\u0647 4:<\/strong> \u067e\u0633 \u0627\u0632 \u0646\u0635\u0628 \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0622\u0645\u06cc\u0632\u060c \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646\u062c\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u06cc\u0627\u0632\u0647\u0627 \u0631\u0627 \u0637\u0628\u0642 \u0639\u0644\u0627\u0642\u0647 \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 MVC\u060c \u0627\u0644\u06af\u0648\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc (Model-View-Controller)\u060c \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0633\u0627\u0632 \u0627\u067e\u0646 \u06a9\u0627\u0631\u062a \u0627\u0633\u062a \u06a9\u0647 \u067e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc&hellip;<\/p>\n","protected":false},"author":2,"featured_media":4182,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[45],"tags":[],"class_list":["post-4180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-specialized-opencart-tutorial"],"_links":{"self":[{"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/posts\/4180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/comments?post=4180"}],"version-history":[{"count":0,"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/posts\/4180\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/media\/4182"}],"wp:attachment":[{"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/media?parent=4180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/categories?post=4180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opencart.ir\/blog\/wp-json\/wp\/v2\/tags?post=4180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}