From 0a4fe2d80feadc91b8296bc610ca400d07b75a51 Mon Sep 17 00:00:00 2001
From: "@ChristelLoftus" <christel@bob.co.za>
Date: Fri, 30 Aug 2024 15:00:54 +0200
Subject: [PATCH] start implementation

---
 Block/TrackOrder.php                          | 18 ++++++++++
 Controller/Test/Index.php                     | 20 +++++++++++
 Controller/TrackOrder/Index.php               | 33 +++++++++++++++++++
 etc/adminhtml/system.xml                      |  6 ++++
 etc/frontend/routes.xml                       |  7 ++++
 .../layout/bobgo_trackorder_index.xml         | 14 ++++++++
 view/frontend/layout/customer_account.xml     | 20 +++++++++++
 .../frontend/templates/TrackOrder/index.phtml |  5 +++
 8 files changed, 123 insertions(+)
 create mode 100644 Block/TrackOrder.php
 create mode 100644 Controller/Test/Index.php
 create mode 100644 Controller/TrackOrder/Index.php
 create mode 100644 etc/frontend/routes.xml
 create mode 100644 view/frontend/layout/bobgo_trackorder_index.xml
 create mode 100644 view/frontend/layout/customer_account.xml
 create mode 100644 view/frontend/templates/TrackOrder/index.phtml

diff --git a/Block/TrackOrder.php b/Block/TrackOrder.php
new file mode 100644
index 0000000..49983f6
--- /dev/null
+++ b/Block/TrackOrder.php
@@ -0,0 +1,18 @@
+<?php
+namespace BobGroup\BobGo\Block;
+class TrackOrder extends \Magento\Framework\View\Element\Template
+{
+    public function __construct(
+        \Magento\Backend\Block\Template\Context $context,
+        array $data = []
+    )
+    {
+        parent::__construct($context, $data);
+    }
+
+    public function getHelloWorld()
+    {
+        return 'Hello World';
+    }
+
+}
diff --git a/Controller/Test/Index.php b/Controller/Test/Index.php
new file mode 100644
index 0000000..115b950
--- /dev/null
+++ b/Controller/Test/Index.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace BobGroup\BobGo\Controller\Test;
+
+use Magento\Framework\App\Action\Action;
+use Magento\Framework\App\Action\Context;
+
+class Index extends Action
+{
+    public function __construct(Context $context)
+    {
+        parent::__construct($context);
+    }
+
+    public function execute()
+    {
+        echo "Test controller works!";
+        exit;
+    }
+}
diff --git a/Controller/TrackOrder/Index.php b/Controller/TrackOrder/Index.php
new file mode 100644
index 0000000..0810484
--- /dev/null
+++ b/Controller/TrackOrder/Index.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace BobGroup\BobGo\Controller\TrackOrder;
+
+class Index extends \Magento\Framework\App\Action\Action
+{
+    /**
+     * @var \Magento\Framework\View\Result\PageFactory
+     */
+    protected $resultPageFactory;
+
+    /**
+     * @param \Magento\Framework\App\Action\Context $context
+     * @param \Magento\Framework\View\Result\PageFactory resultPageFactory
+     */
+    public function __construct(
+        \Magento\Framework\App\Action\Context $context,
+        \Magento\Framework\View\Result\PageFactory $resultPageFactory
+    )
+    {
+        $this->resultPageFactory = $resultPageFactory;
+        parent::__construct($context);
+    }
+    /**
+     * Default customer account page
+     *
+     * @return void
+     */
+    public function execute()
+    {
+        return $this->resultPageFactory->create();
+    }
+}
diff --git a/etc/adminhtml/system.xml b/etc/adminhtml/system.xml
index 410c2c2..263bc8b 100644
--- a/etc/adminhtml/system.xml
+++ b/etc/adminhtml/system.xml
@@ -28,7 +28,13 @@
                     <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                     <comment>Displays the delivery timeframe and additional service level description, as configured on Bob Go.</comment>
                 </field>
+                    <field id="enable_track_order" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
+                        <label>Enable Track My Order</label>
+                        <comment>When this setting is enabled, your customers will be presented with a page to track orders.</comment>
+                        <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
+                    </field>
             </group>
         </section>
+
     </system>
 </config>
diff --git a/etc/frontend/routes.xml b/etc/frontend/routes.xml
new file mode 100644
index 0000000..e0d84f8
--- /dev/null
+++ b/etc/frontend/routes.xml
@@ -0,0 +1,7 @@
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
+    <router id="standard">
+        <route id="trackorder" frontName="trackorder">
+            <module name="BobGroup_BobGo" />
+        </route>
+    </router>
+</config>
diff --git a/view/frontend/layout/bobgo_trackorder_index.xml b/view/frontend/layout/bobgo_trackorder_index.xml
new file mode 100644
index 0000000..91e4a80
--- /dev/null
+++ b/view/frontend/layout/bobgo_trackorder_index.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
+<update handle="customer_account"/>
+<head>
+    <title>
+        Your First Link
+    </title>
+</head>
+<body>
+    <referenceContainer name="content">
+        <block class="BobGroup\BobGo\Block\TrackOrder" name="bobgo.trackorder.index" template="BobGroup_BobGo::trackorder/index.phtml" cacheable="false" />
+    </referenceContainer>
+</body>
+</page>
diff --git a/view/frontend/layout/customer_account.xml b/view/frontend/layout/customer_account.xml
new file mode 100644
index 0000000..50bb287
--- /dev/null
+++ b/view/frontend/layout/customer_account.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
+    <body>
+        <referenceBlock name="customer_account_navigation">
+            <!-- Add menu to the end of the sidebar -->
+            <block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-account-navigation-your-first-link">
+                <arguments>
+                    <argument name="path" xsi:type="string">BobGo/TrackOrder/index</argument>
+                    <argument name="label" xsi:type="string">Your First Link</argument>
+                </arguments>
+            </block>
+            <block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-account-navigation-your-second-link">
+                <arguments>
+                    <argument name="path" xsi:type="string">BobGo/TrackOrder/index</argument>
+                    <argument name="label" xsi:type="string">Your Second Link</argument>
+                </arguments>
+            </block>
+        </referenceBlock>
+    </body>
+</page>
diff --git a/view/frontend/templates/TrackOrder/index.phtml b/view/frontend/templates/TrackOrder/index.phtml
new file mode 100644
index 0000000..8c81e6b
--- /dev/null
+++ b/view/frontend/templates/TrackOrder/index.phtml
@@ -0,0 +1,5 @@
+<h2>
+    <?php echo $block->getHelloWorld(); ?>
+</h2>
+
+echo 'My First Link Page';
-- 
GitLab