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
|
||||
|
||||
current_date=$(date +'%B %Y')
|
||||
|
||||
current_year=$(date +'%Y')
|
||||
# Check if JOOMLA_USER is set, otherwise prompt for it
|
||||
if [ -z "$JOOMLA_USER" ]; then
|
||||
read -p "Enter the Joomla user: " JOOMLA_USER
|
||||
@ -15,29 +15,34 @@ fi
|
||||
cat <<EOM > ${name}.xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="component" method="upgrade">
|
||||
<name>com_${name}</name>
|
||||
<name>${name}</name>
|
||||
<creationDate>${current_date}</creationDate>
|
||||
<author>${JOOMLA_USER}</author>
|
||||
<authorEmail>${EMAIL}</authorEmail>
|
||||
<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>
|
||||
|
||||
<!-- The version string is recorded in the components table -->
|
||||
<version>0.0.1</version>
|
||||
|
||||
<!-- The description is optional and defaults to the name -->
|
||||
<description>COM_${name^^}_DESCRIPTION</description>
|
||||
|
||||
<namespace path="src">harvst\Component\com_${name}</namespace>
|
||||
<namespace path="src/">harvst\Component\\${name}</namespace>
|
||||
|
||||
<administration>
|
||||
<!-- The link that will appear in the Admin panel's "Components" menu -->
|
||||
<menu link="index.php?option=com_${name}">${name}</menu>
|
||||
<files folder="admin">
|
||||
<folder>language</folder>
|
||||
<folder>services</folder>
|
||||
<folder>src</folder>
|
||||
<folder>tmpl</folder>
|
||||
</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>
|
||||
</extension>
|
||||
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
|
||||
cd "$component_dir" || exit
|
||||
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 "$script_dir/component_parts/manifest.sh"
|
||||
source "$script_dir/component_parts/language.sh"
|
||||
# source "$script_dir/component_parts/admin_controller.sh"
|
||||
# source "$script_dir/component_parts/site_controller.sh"
|
||||
# source "$script_dir/component_parts/site_controller_base.sh"
|
||||
# source "$script_dir/component_parts/admin_controller_base.sh"
|
||||
source "$script_dir/component_parts/provider.sh"
|
||||
source "$script_dir/component_parts/displaycontroller.sh"
|
||||
source "$script_dir/component_parts/view.sh"
|
||||
source "$script_dir/component_parts/defaultview.sh"
|
||||
|
||||
|
||||
echo "Component framework generated successfully!"
|
||||
echo "You should manually edit the manifest file before checkin"
|
||||
|
||||
|
@ -22,7 +22,7 @@ services:
|
||||
- joomla-db:/var/lib/mysql
|
||||
|
||||
joomla:
|
||||
image: joomla:4.3.1 # https://hub.docker.com/_/joomla
|
||||
image: joomla:4.3.2 # https://hub.docker.com/_/joomla
|
||||
restart: always
|
||||
environment:
|
||||
JOOMLA_DB_HOST: mariadb
|
||||
|
Reference in New Issue
Block a user