Skip to content
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
10ca120
Finder: Add debug features for indexing
Hackwar Jan 19, 2022
8fa1e7f
Reverting accidental deletion
Hackwar Jan 20, 2022
498a636
Update administrator/components/com_finder/forms/indexer.xml
Hackwar Jan 20, 2022
43bf104
Merge branch '4.1-dev' into 4.2-finder-debug
Hackwar Jan 20, 2022
6e0e454
Codestyle
Hackwar Jan 20, 2022
7b3f4e5
Update administrator/components/com_finder/src/Indexer/Debugadapter.php
Hackwar Jan 20, 2022
6d970b0
Update administrator/components/com_finder/src/Indexer/Debugadapter.php
Hackwar Jan 20, 2022
5645a1d
Update administrator/components/com_finder/src/Indexer/Debugadapter.php
Hackwar Jan 20, 2022
95e8931
Update administrator/components/com_finder/src/Model/ItemModel.php
Hackwar Jan 20, 2022
70e9b2a
Update administrator/components/com_finder/src/View/Indexer/HtmlView.php
Hackwar Jan 20, 2022
e8d865b
Update build/media_source/com_finder/js/debug.es6.js
Hackwar Jan 20, 2022
4eb331f
Update administrator/components/com_finder/src/View/Indexer/HtmlView.php
Hackwar Jan 20, 2022
161313d
Merge branch '4.1-dev' into 4.2-finder-debug
Hackwar Jan 24, 2022
e650618
Merge branch '4.2-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar Jan 27, 2022
9a5b229
Update administrator/components/com_finder/src/Model/IndexerModel.php
Hackwar Jan 27, 2022
36f066a
Merge branch '4.2-dev' into 4.2-finder-debug
richard67 Feb 1, 2022
1bf1824
Merge branch '4.2-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar Feb 3, 2022
3f88d22
Adding accessibility tags to tables
Hackwar Feb 3, 2022
01943da
Merge branch '4.2-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar May 17, 2022
3022a97
Fixing HTML of item debug output to be more accessible
Hackwar May 17, 2022
5b737a3
Adding captions to tables
Hackwar May 17, 2022
9d823ce
Fixing width of object dump
Hackwar May 18, 2022
d75a9a9
Merge branch '4.2-dev' into 4.2-finder-debug
Hackwar May 18, 2022
7b82aea
Fix the toolbar
brianteeman May 18, 2022
64bd633
Merge pull request #53 from brianteeman/patch-7
Hackwar May 18, 2022
ce457af
Merge branch '4.2-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar May 18, 2022
9202101
Using prepared statements
Hackwar May 18, 2022
321fd4b
Update administrator/components/com_finder/src/Model/ItemModel.php
Hackwar May 19, 2022
4ed8f39
Update administrator/components/com_finder/src/Model/ItemModel.php
Hackwar May 19, 2022
d536be1
Update administrator/components/com_finder/src/Model/ItemModel.php
Hackwar May 19, 2022
1d2bde5
Update administrator/components/com_finder/src/Model/ItemModel.php
Hackwar May 19, 2022
ca3a3ed
Merge branch '4.2-dev' into 4.2-finder-debug
Hackwar May 19, 2022
f2bd6dd
Merge branch '4.2-dev' into 4.2-finder-debug
Hackwar Jun 5, 2022
6914645
Merge branch '4.2-dev' into 4.2-finder-debug
Hackwar Jun 21, 2022
1288bb1
Injecting database object
Hackwar Jun 21, 2022
37c3483
Using injected database object
Hackwar Jun 21, 2022
f1cfee4
Use injected database object
Hackwar Jun 21, 2022
0e96a2e
Merge tag 'psr12anchor' into psr12/merge/36753
joomla-bot Jun 27, 2022
8a13582
Phase 1 convert BRANCH to PSR-12
joomla-bot Jun 27, 2022
f3f58c0
Phase 2 convert BRANCH to PSR-12
joomla-bot Jun 27, 2022
188b743
Merge tag 'psr12final' into psr12/merge/36753
joomla-bot Jun 27, 2022
0c9d48d
Merge branch '4.2-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar Jul 4, 2022
44a8618
Improving for autoloading
Hackwar Jul 4, 2022
e1d0e9a
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Aug 30, 2022
913c655
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Oct 21, 2022
90edc8e
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Oct 21, 2022
1002982
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Oct 27, 2022
5de8fe7
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Nov 9, 2022
5e9fed4
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Jan 30, 2023
988a9c5
Merge branch '4.3-dev' into 4.2-finder-debug
Hackwar Mar 8, 2023
6e48e0a
Merge branch '5.0-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar Mar 28, 2023
264fda5
Merge branch '5.0-dev' of https://github.com/joomla/joomla-cms into 4…
Hackwar Apr 3, 2023
1b11717
Codestyle
Hackwar Apr 3, 2023
fe14d99
Merge branch '5.0-dev' into 4.2-finder-debug
HLeithner Apr 7, 2023
3bdc702
Update administrator/components/com_finder/src/Indexer/DebugIndexer.php
Hackwar Apr 17, 2023
d3da6bd
Update administrator/components/com_finder/src/Indexer/DebugAdapter.php
Hackwar Apr 17, 2023
07965ac
Update administrator/components/com_finder/src/Controller/IndexerCont…
Hackwar Apr 17, 2023
7e585b4
Merge branch '5.0-dev' into 4.2-finder-debug
Hackwar Apr 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions administrator/components/com_finder/forms/indexer.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset name="form">
<field
name="plugin"
type="plugins"
label="COM_FINDER_FIELD_FINDER_PLUGIN_LABEL"
folder="finder"
required="true"
/>

<field
name="id"
type="text"
label="JGLOBAL_FIELD_ID_LABEL"
required="true"
/>
</fieldset>
</form>
133 changes: 117 additions & 16 deletions administrator/components/com_finder/src/Controller/IndexerController.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use Joomla\CMS\MVC\Controller\BaseController;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Session\Session;
use Joomla\Component\Finder\Administrator\Indexer\Debugindexer;
use Joomla\Component\Finder\Administrator\Indexer\Indexer;
use Joomla\Component\Finder\Administrator\Response\Response;

Expand Down Expand Up @@ -158,22 +159,6 @@ public function batch()
// Import the finder plugins.
PluginHelper::importPlugin('finder');

/*
* We are going to swap out the raw document object with an HTML document
* in order to work around some plugins that don't do proper environment
* checks before trying to use HTML document functions.
*/
$lang = Factory::getLanguage();

// Get the document properties.
$attributes = array (
'charset' => 'utf-8',
'lineend' => 'unix',
'tab' => ' ',
'language' => $lang->getTag(),
'direction' => $lang->isRtl() ? 'rtl' : 'ltr'
);

// Start the indexer.
try
{
Expand Down Expand Up @@ -310,4 +295,120 @@ public static function sendResponse($data = null)
// Send the JSON response.
echo json_encode($response);
}

/**
* Method to call a specific indexing plugin and return debug info
*
* @return void
*
* @since __DEPLOY_VERSION__
*/
public function debug()
{
// Check for a valid token. If invalid, send a 403 with the error message.
if (!Session::checkToken('request'))
{
static::sendResponse(new \Exception(Text::_('JINVALID_TOKEN_NOTICE'), 403));

return;
}

// We don't want this form to be cached.
$this->app->allowCache(false);

// Put in a buffer to silence noise.
ob_start();

// Remove the script time limit.
@set_time_limit(0);

// Get the indexer state.
Indexer::resetState();
$state = Indexer::getState();

// Reset the batch offset.
$state->batchOffset = 0;

// Update the indexer state.
Indexer::setState($state);

// Start the indexer.
try
{
// Import the finder plugins.
require_once JPATH_ADMINISTRATOR . '/components/com_finder/src/Indexer/Debugadapter.php';
$plugin = Factory::getApplication()->bootPlugin($this->app->input->get('plugin'), 'finder');
$plugin->setIndexer(new Debugindexer);
$plugin->debug($this->app->input->get('id'));

$output = '';

// Create list of attributes
$output .= '<fieldset><legend>' . Text::_('COM_FINDER_INDEXER_FIELDSET_ATTRIBUTES') . '</legend>';
$output .= '<dl class="row">';

foreach (Debugindexer::$item as $key => $value)
{
$output .= '<dt class="col-sm-2">' . $key . '</dt><dd class="col-sm-10">' . $value . '</dd>';
}

$output .= '</dl>';
$output .= '</fieldset>';

$output .= '<fieldset><legend>' . Text::_('COM_FINDER_INDEXER_FIELDSET_ELEMENTS') . '</legend>';
$output .= '<dl class="row">';

foreach (Debugindexer::$item->getElements() as $key => $element)
{
$output .= '<dt class="col-sm-2">' . $key . '</dt><dd class="col-sm-10">' . $element . '</dd>';
}

$output .= '</dl>';
$output .= '</fieldset>';

$output .= '<fieldset><legend>' . Text::_('COM_FINDER_INDEXER_FIELDSET_INSTRUCTIONS') . '</legend>';
$output .= '<dl class="row">';
$contexts = [
1 => 'Title context',
2 => 'Text context',
3 => 'Meta context',
4 => 'Path context',
5 => 'Misc context'
];

foreach (Debugindexer::$item->getInstructions() as $key => $element)
{
$output .= '<dt class="col-sm-2">' . $contexts[$key] . '</dt><dd class="col-sm-10">' . json_encode($element) . '</dd>';
}

$output .= '</dl>';
$output .= '</fieldset>';

$output .= '<fieldset><legend>' . Text::_('COM_FINDER_INDEXER_FIELDSET_TAXONOMIES') . '</legend>';
$output .= '<dl class="row">';

foreach (Debugindexer::$item->getTaxonomy() as $key => $element)
{
$output .= '<dt class="col-sm-2">' . $key . '</dt><dd class="col-sm-10">' . json_encode($element) . '</dd>';
}

$output .= '</dl>';
$output .= '</fieldset>';

// Get the indexer state.
$state = Indexer::getState();
$state->start = 0;
$state->complete = 0;
$state->rendered = $output;

echo json_encode($state);
}

// Catch an exception and return the response.
catch (\Exception $e)
{
// Send the response.
static::sendResponse($e);
}
}
}
Loading