Release of v5.1.2-alpha1

Fix the template and layout linker for packages.
This commit is contained in:
2025-07-15 08:05:13 +00:00
parent e097540a7d
commit 45453f7330
25 changed files with 222 additions and 73 deletions

View File

@@ -3702,6 +3702,13 @@ class Interpretation extends Fields
. "\$db->setQuery(\$query);";
$main .= PHP_EOL . Indent::_(2)
. "\$items = \$db->loadObjectList();";
$main .= PHP_EOL . PHP_EOL . Indent::_(2)
. "if (empty(\$items))";
$main .= PHP_EOL . Indent::_(2) . "{";
$main .= PHP_EOL . Indent::_(3) . "return false;";
$main .= PHP_EOL . Indent::_(2) . "}";
// SITE_GET_ITEMS <<<DYNAMIC>>>
$main .= $this->setCustomViewGetItems($view, $view->code);
// set after items php
if (isset($view->add_php_after_getitems)
&& $view->add_php_after_getitems == 1
@@ -3714,13 +3721,6 @@ class Interpretation extends Fields
$view->php_after_getitems
);
}
$main .= PHP_EOL . PHP_EOL . Indent::_(2)
. "if (empty(\$items))";
$main .= PHP_EOL . Indent::_(2) . "{";
$main .= PHP_EOL . Indent::_(3) . "return false;";
$main .= PHP_EOL . Indent::_(2) . "}";
// SITE_GET_ITEMS <<<DYNAMIC>>>
$main .= $this->setCustomViewGetItems($view, $view->code);
$main .= PHP_EOL . Indent::_(2) . "//" . Line::_(
__LINE__,__CLASS__
) . " return items";

View File

@@ -17,6 +17,8 @@ use VDM\Joomla\Componentbuilder\Utilities\Normalize;
use VDM\Joomla\Interfaces\Registryinterface as Tracker;
use VDM\Joomla\Componentbuilder\Power\Interfaces\TableInterface as Table;
use VDM\Joomla\Interfaces\Database\LoadInterface as Load;
use VDM\Joomla\Interfaces\Data\ItemsInterface as Items;
use VDM\Joomla\Data\Guid;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper;
@@ -30,6 +32,13 @@ use VDM\Joomla\Interfaces\Remote\Dependency\ResolverInterface;
*/
final class Resolver implements ResolverInterface
{
/**
* The Globally Unique Identifier.
*
* @since 5.1.2
*/
use Guid;
/**
* The Config Class.
*
@@ -70,6 +79,14 @@ final class Resolver implements ResolverInterface
*/
protected Load $load;
/**
* The Items Class.
*
* @var Items
* @since 5.1.2
*/
protected Items $items;
/**
* The parents fields.
*
@@ -142,6 +159,14 @@ final class Resolver implements ResolverInterface
*/
protected array $alias_map = [];
/**
* The Target Table name.
*
* @var string
* @since 5.1.2
*/
protected string $table_name;
/**
* The current item dependencies map.
*
@@ -158,21 +183,38 @@ final class Resolver implements ResolverInterface
* @param Tracker $tracker The Tracker Class.
* @param Table $table The Table Class.
* @param Load $load The Load Class.
* @param Items $items The Items Class.
*
* @since 5.1.1
*/
public function __construct(Config $config, Normalize $normalize,
Tracker $tracker, Table $table, Load $load)
Tracker $tracker, Table $table, Load $load, Items $items)
{
$this->config = $config;
$this->normalize = $normalize;
$this->tracker = $tracker;
$this->table = $table;
$this->load = $load;
$this->items = $items;
$this->init();
}
/**
* Set the current active table
*
* @param string $table The table that should be active
*
* @return self
* @since 5.1.2
*/
public function table(string $table): self
{
$this->table_name = $table;
return $this;
}
/**
* Inspect an item and extract all the dependencies
*
@@ -577,7 +619,7 @@ final class Resolver implements ResolverInterface
$templates = [];
$temp1 = GetHelper::allBetween($value, "\$this->load" . "Template('", "')");
$temp2 = GetHelper::allBetween($value, '$this->load" . "Template("', '")');
$temp2 = GetHelper::allBetween($value, '$this->load' . 'Template("', '")');
if (!empty($temp1))
{
@@ -598,6 +640,7 @@ final class Resolver implements ResolverInterface
$guids[$guid] = $guid;
}
}
return array_values($guids);
}
@@ -614,10 +657,10 @@ final class Resolver implements ResolverInterface
$layouts = [];
$patterns = [
["Layout" . "Helper::render('", "',"],
['Layout' . 'Helper::render("', '",'],
["Joomla__" . "_7ab82272_0b3d_4bb1_af35_e63a096cfe0b___Power::render('", "',"],
['Joomla__' . '_7ab82272_0b3d_4bb1_af35_e63a096cfe0b___Power::render("', '",'],
["Layout" . "Helper::render('", "'"],
['Layout' . 'Helper::render("', '"'],
["Joomla__" . "_7ab82272_0b3d_4bb1_af35_e63a096cfe0b___Power::render('", "'"],
['Joomla__' . '_7ab82272_0b3d_4bb1_af35_e63a096cfe0b___Power::render("', '"'],
];
foreach ($patterns as [$start, $end])
@@ -1106,12 +1149,22 @@ final class Resolver implements ResolverInterface
// now check if key is found
foreach(['template', 'layout'] as $table)
{
$items = $this->load->items(['guid', 'alias'], [$table]);
$items = $this->load->items(['id', 'guid', 'alias'], [$table]);
if ($items !== null)
{
$this->alias_map[$table] = [];
foreach ($items as $item)
{
if (empty($item->alias))
{
continue;
}
if (empty($item->guid) || !$this->validateGuid($item->guid))
{
$item->guid = $this->setGuid($item->id, $table);
}
// build the key
$k_ey = StringHelper::safe($item->alias);
$key = preg_replace("/[^A-Za-z]/", '', (string) $k_ey);
@@ -1123,6 +1176,35 @@ final class Resolver implements ResolverInterface
}
}
}
}
/**
* Set GUID for an item.
*
* @param int $id
* @param string $table
*
* @return string The guid that was set
* @since 5.1.2
*/
private function setGuid($id, $table): string
{
$guid = $this->table($table)->getGuid('guid');
$this->items->table($table)->set([['id' => $id, 'guid' => $guid]], 'id');
return $guid;
}
/**
* Get the current active table
*
* @return string
* @since 5.1.2
*/
private function getTable(): string
{
return $this->table_name;
}
}

View File

@@ -128,7 +128,8 @@ class AdminView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -252,7 +253,8 @@ class AdminView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -348,7 +350,8 @@ class AdminView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -444,7 +447,8 @@ class AdminView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -540,7 +544,8 @@ class AdminView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -184,7 +184,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -308,7 +309,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -404,7 +406,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -500,7 +503,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -596,7 +600,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -692,7 +697,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -788,7 +794,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -884,7 +891,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -980,7 +988,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -1076,7 +1085,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -1172,7 +1182,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -1268,7 +1279,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -1364,7 +1376,8 @@ class Component implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -98,7 +98,8 @@ class CustomAdminView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -98,7 +98,8 @@ class CustomCode implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -165,7 +165,8 @@ class Dependencies implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -261,7 +262,8 @@ class Dependencies implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -357,7 +359,8 @@ class Dependencies implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -453,7 +456,8 @@ class Dependencies implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -549,7 +553,8 @@ class Dependencies implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -646,7 +651,8 @@ class Dependencies implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -98,7 +98,8 @@ class DynamicGet implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -98,7 +98,8 @@ class Field implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -114,7 +114,8 @@ class JoomlaModule implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -238,7 +239,8 @@ class JoomlaModule implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -334,7 +336,8 @@ class JoomlaModule implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -121,7 +121,8 @@ class JoomlaPlugin implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -245,7 +246,8 @@ class JoomlaPlugin implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -341,7 +343,8 @@ class JoomlaPlugin implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -437,7 +440,8 @@ class JoomlaPlugin implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -98,7 +98,8 @@ class Layout implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -114,7 +114,8 @@ class Library implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -238,7 +239,8 @@ class Library implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -334,7 +336,8 @@ class Library implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -98,7 +98,8 @@ class SiteView implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -79,7 +79,8 @@ class Template implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -128,7 +128,8 @@ class Repository implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}

View File

@@ -156,7 +156,8 @@ class Snippet implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}
@@ -325,7 +326,8 @@ class Snippet implements ServiceProviderInterface
$container->get('Utilities.Normalize'),
$container->get('Power.Tracker'),
$container->get('Power.Table'),
$container->get('Load')
$container->get('Load'),
$container->get('Data.Items')
);
}