still not working
This commit is contained in:
		
							parent
							
								
									985514c51b
								
							
						
					
					
						commit
						cca1cc8751
					
				@ -1,16 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat <<EOM
 | 
					 | 
				
			||||||
<?php
 | 
					 | 
				
			||||||
defined('_JEXEC') or die;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Joomla\CMS\MVC\Controller\AdminController;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class ${name^}Controller extends AdminController
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public function __construct(\$config = array())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        parent::__construct(\$config);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
EOM
 | 
					 | 
				
			||||||
@ -1,16 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat <<EOM > admin_controller_base.php
 | 
					 | 
				
			||||||
<?php
 | 
					 | 
				
			||||||
defined('_JEXEC') or die;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Joomla\CMS\MVC\Controller\Controller;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class ${name^}Controller extends Controller
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public function __construct(\$config = array())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        parent::__construct(\$config);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
EOM
 | 
					 | 
				
			||||||
							
								
								
									
										14
									
								
								bin/component_parts/defaultview.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								bin/component_parts/defaultview.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if $name is set
 | 
				
			||||||
 | 
					if [[ -z "${name}" ]]; then
 | 
				
			||||||
 | 
					  echo "Error: Variable \$name is not set. Exiting (displaycontroller.sh)."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat <<EOM > admin/src/View/${name}/html/default.php
 | 
				
			||||||
 | 
					<?php defined('_JEXEC') or die('Restricted Access'); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2>Hello ${name}!</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EOM
 | 
				
			||||||
							
								
								
									
										29
									
								
								bin/component_parts/displaycontroller.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								bin/component_parts/displaycontroller.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if $name is set
 | 
				
			||||||
 | 
					if [[ -z "${name}" ]]; then
 | 
				
			||||||
 | 
					  echo "Error: Variable \$name is not set. Exiting (displaycontroller.sh)."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat <<EOM > admin/src/Controller/DisplayController.php
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					namespace harvst\\Component\\${name}\\Administrator\\Controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					defined('_JEXEC') or die;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Joomla\CMS\MVC\Controller\BaseController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class DisplayController extends BaseController {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    protected \$default_view = '${name}';
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public function display(\$cachable = false, \$urlparams = array()) {
 | 
				
			||||||
 | 
					        parent::display();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EOM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
current_date=$(date +'%B %Y')
 | 
					current_date=$(date +'%B %Y')
 | 
				
			||||||
 | 
					current_year=$(date +'%Y')
 | 
				
			||||||
# Check if JOOMLA_USER is set, otherwise prompt for it
 | 
					# Check if JOOMLA_USER is set, otherwise prompt for it
 | 
				
			||||||
if [ -z "$JOOMLA_USER" ]; then
 | 
					if [ -z "$JOOMLA_USER" ]; then
 | 
				
			||||||
    read -p "Enter the Joomla user: " JOOMLA_USER
 | 
					    read -p "Enter the Joomla user: " JOOMLA_USER
 | 
				
			||||||
@ -15,29 +15,34 @@ fi
 | 
				
			|||||||
cat <<EOM > ${name}.xml
 | 
					cat <<EOM > ${name}.xml
 | 
				
			||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<extension type="component" method="upgrade">
 | 
					<extension type="component" method="upgrade">
 | 
				
			||||||
	<name>com_${name}</name>
 | 
						<name>${name}</name>
 | 
				
			||||||
	<creationDate>${current_date}</creationDate>
 | 
						<creationDate>${current_date}</creationDate>
 | 
				
			||||||
	<author>${JOOMLA_USER}</author>
 | 
						<author>${JOOMLA_USER}</author>
 | 
				
			||||||
	<authorEmail>${EMAIL}</authorEmail>
 | 
						<authorEmail>${EMAIL}</authorEmail>
 | 
				
			||||||
	<authorUrl>https://www.example.com/</authorUrl>
 | 
						<authorUrl>https://www.example.com/</authorUrl>
 | 
				
			||||||
	<copyright>Copyright (C) 2023 ${JOOMLA_USER}, All rights reserved.</copyright>
 | 
						<copyright>Copyright (C) ${current_year} ${JOOMLA_USER}, All rights reserved.</copyright>
 | 
				
			||||||
	<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
 | 
						<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<!--  The version string is recorded in the components table -->
 | 
					 | 
				
			||||||
	<version>0.0.1</version>
 | 
						<version>0.0.1</version>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<!-- The description is optional and defaults to the name -->
 | 
						<!-- The description is optional and defaults to the name -->
 | 
				
			||||||
	<description>COM_${name^^}_DESCRIPTION</description>
 | 
						<description>COM_${name^^}_DESCRIPTION</description>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<namespace path="src">harvst\Component\com_${name}</namespace>
 | 
						<namespace path="src/">harvst\Component\\${name}</namespace>
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	<administration>
 | 
						<administration>
 | 
				
			||||||
		<!-- The link that will appear in the Admin panel's "Components" menu -->
 | 
							<!-- The link that will appear in the Admin panel's "Components" menu -->
 | 
				
			||||||
        <menu link="index.php?option=com_${name}">${name}</menu>
 | 
					        <menu link="index.php?option=com_${name}">${name}</menu>
 | 
				
			||||||
		<files folder="admin">
 | 
							<files folder="admin">
 | 
				
			||||||
			<folder>language</folder>
 | 
								<folder>language</folder>
 | 
				
			||||||
 | 
								<folder>services</folder>
 | 
				
			||||||
 | 
								<folder>src</folder>
 | 
				
			||||||
 | 
								<folder>tmpl</folder>
 | 
				
			||||||
		</files>
 | 
							</files>
 | 
				
			||||||
		
 | 
							<languages folder="admin">
 | 
				
			||||||
 | 
							<!-- TODO: It's there but not working -->
 | 
				
			||||||
 | 
								<language tag="en-GB">language/en-GB/en-GB.com_${name}.ini</language>
 | 
				
			||||||
 | 
							</languages>
 | 
				
			||||||
	</administration>
 | 
						</administration>
 | 
				
			||||||
</extension>
 | 
					</extension>
 | 
				
			||||||
EOM
 | 
					EOM
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										35
									
								
								bin/component_parts/provider.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								bin/component_parts/provider.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat <<EOM > admin/services/provider.php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<?php defined('_JEXEC') or die;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
 | 
				
			||||||
 | 
					use Joomla\CMS\Extension\ComponentInterface;
 | 
				
			||||||
 | 
					use Joomla\CMS\Extension\MVCComponent;
 | 
				
			||||||
 | 
					use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
 | 
				
			||||||
 | 
					use Joomla\CMS\Extension\Service\Provider\MVCFactory;
 | 
				
			||||||
 | 
					use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
 | 
				
			||||||
 | 
					use Joomla\DI\Container;
 | 
				
			||||||
 | 
					use Joomla\DI\ServiceProviderInterface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return new class implements ServiceProviderInterface {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public function register(Container \$container): void {
 | 
				
			||||||
 | 
					        \$container->registerServiceProvider(new MVCFactory('\\harvst\\Component\\${name}'));
 | 
				
			||||||
 | 
					        \$container->registerServiceProvider(new ComponentDispatcherFactory('\\harvst\\Component\\${name}'));
 | 
				
			||||||
 | 
					        \$container->set(
 | 
				
			||||||
 | 
					            ComponentInterface::class,
 | 
				
			||||||
 | 
					            function (Container \$container) {
 | 
				
			||||||
 | 
					                \$component = new MVCComponent(\$container->get(ComponentDispatcherFactoryInterface::class));
 | 
				
			||||||
 | 
					                \$component->setMVCFactory(\$container->get(MVCFactoryInterface::class));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                return \$component;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EOM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
@ -1,16 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat <<EOM
 | 
					 | 
				
			||||||
<?php
 | 
					 | 
				
			||||||
defined('_JEXEC') or die;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Joomla\CMS\MVC\Controller\BaseController;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class ${name^}Controller extends BaseController
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public function __construct(\$config = array())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        parent::__construct(\$config);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
EOM
 | 
					 | 
				
			||||||
@ -1,16 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat <<EOM
 | 
					 | 
				
			||||||
<?php
 | 
					 | 
				
			||||||
defined('_JEXEC') or die;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Joomla\CMS\MVC\Controller\Controller;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class ${name^}Controller extends Controller
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public function __construct(\$config = array())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        parent::__construct(\$config);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
EOM
 | 
					 | 
				
			||||||
							
								
								
									
										26
									
								
								bin/component_parts/view.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								bin/component_parts/view.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if $name is set
 | 
				
			||||||
 | 
					if [[ -z "${name}" ]]; then
 | 
				
			||||||
 | 
					  echo "Error: Variable \$name is not set. Exiting (displaycontroller.sh)."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat <<EOM > admin/src/View/${name}/HtmlView.php
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace harvst\\Component\\${name}\\Administrator\\Controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					defined('_JEXEC') or die;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class HtmlView extends BaseHtmlView {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    function display(\$tpl = null) {
 | 
				
			||||||
 | 
					        parent::display(\$tpl);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EOM
 | 
				
			||||||
@ -56,17 +56,17 @@ mkdir -p "$component_dir"
 | 
				
			|||||||
# Create the main component files
 | 
					# Create the main component files
 | 
				
			||||||
cd "$component_dir" || exit
 | 
					cd "$component_dir" || exit
 | 
				
			||||||
mkdir -p site
 | 
					mkdir -p site
 | 
				
			||||||
mkdir -p admin/language/en-GB
 | 
					mkdir -p admin/language/en-GB admin/services 
 | 
				
			||||||
 | 
					mkdir -p admin/src/View/${name} admin/tmpl/${name}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Source the files for generating component files
 | 
					# Source the files for generating component files
 | 
				
			||||||
source "$script_dir/component_parts/manifest.sh"
 | 
					source "$script_dir/component_parts/manifest.sh"
 | 
				
			||||||
source "$script_dir/component_parts/language.sh"
 | 
					source "$script_dir/component_parts/language.sh"
 | 
				
			||||||
# source "$script_dir/component_parts/admin_controller.sh"
 | 
					source "$script_dir/component_parts/provider.sh"
 | 
				
			||||||
# source "$script_dir/component_parts/site_controller.sh"
 | 
					source "$script_dir/component_parts/displaycontroller.sh"
 | 
				
			||||||
# source "$script_dir/component_parts/site_controller_base.sh"
 | 
					source "$script_dir/component_parts/view.sh"
 | 
				
			||||||
# source "$script_dir/component_parts/admin_controller_base.sh"
 | 
					source "$script_dir/component_parts/defaultview.sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Component framework generated successfully!"
 | 
					echo "Component framework generated successfully!"
 | 
				
			||||||
echo "You should manually edit the manifest file before checkin"
 | 
					echo "You should manually edit the manifest file before checkin"
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ services:
 | 
				
			|||||||
      - joomla-db:/var/lib/mysql
 | 
					      - joomla-db:/var/lib/mysql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  joomla:
 | 
					  joomla:
 | 
				
			||||||
    image: joomla:4.3.1 # https://hub.docker.com/_/joomla
 | 
					    image: joomla:4.3.2 # https://hub.docker.com/_/joomla
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      JOOMLA_DB_HOST: mariadb
 | 
					      JOOMLA_DB_HOST: mariadb
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user