# Troubleshooting

# Entries with No Promotion are shown in the Entries Explorer

About No Promotion state applied on entries, you have not defined a default Promotion or you have an issue updating XTDir's Index.

# Entries are shown ordered by name, why?

  • Firstly, please, check this slide (opens new window) to configure the section, Global Configuration / Template / Entry Settings / Order by = Position ascending. In this way, Position defined by Promotions are going to be applied.
  • In SobiPro, the main section is a special navigational case, that is not ruled by the previous definition. This case requires to redefine the default entry ordering at general or template level.
  • General entries ordering In file components/com_sobipro/etc/config.ini, in [list] area, add this line:
  • Template entries ordering In file components/com_sobipro/usr/templates/YOUR-TEMPLATE/config.ini, in [list] area, add these lines:

TIP

Other entries_ordering parameter definition may also affect entries order. For instance, category/view.ini may also have a parameter definition.

# Modules

# When I submit a search keyword in the module, SobiPro returns "No results", why?

The module submits a search query in the same way than the original SobiPro search form.

TIP

By default, all XTDir search modules produce the same search results than SobiPro. If you are looking to return all entries on an empty keyword search, click here (opens new window).

To test how it works:

  • Please, test a search case in SobiPro. For instance, search for * and a specific category to retrieve all matching entries in that category. For this test, SobiPro search item must be published in a Joomla! menu, with public access (verify SobiPro Access Control List / Rules, search.search).
  • Test the same search case in the module.

If there is any difference, please, check if there is any JavaScript Conflict in your page (check Concerning to Javascript Conflicts).

# Uninitialized map detected. Multiple instances?

The module is detecting that Google Maps has been initialized before. Google Maps can only be initialized once in a page.

For exampe, XTDir PromoGeoMap module should not be deplayed in "Add Entry" page, where a geomap field already is initialized to define the location.

# entry-container or spEntryContainer classes not found in SobiPro response

By default, SobiPro templates has spEntryContainer class for Bootstrap 2 styling or entry-container class for BS3 styling in the entries area. If you have customized your template, please restore the class to integrate the faceted search module.

The module loads search results directly from SobiPro, then the active template renders the results in the same way than the regular site natigation.

For example, SobiPro in default3 template has this source code, file components/com_sobipro/usr/templates/default3/common/entries.xsl, line 37:

Your template must have a similar spEntryContainer class declaration.

Even though, you submit your search query through XTDir search modules, SobiPro search feature must be enabled to users. If not, SobiPro shows the Unauthorized Access error.

Please, check SobiPro's Menu / Access Control List / Rules / Visitor / Section / use search function.

When I submit a search keyword in the module, SobiPro returns "Error 403 Unauthorized Access Task: search.search"?

# The module show the Chained Categories Control, but it shows all of them with no chaining, why?

The control works based on a Javascript routine, Chained Selects Plugin for jQuery and Zepto (opens new window). If there is any previous Javascript error or conflict, it does not link each category level and they are shown as plain selects.

Reference: Concerning to Javascript Conflicts

# I am trying to get the Search module working and it is displaying "No category search field.", why?

SobiPro v1.1 has introduced Category search, with a new field of type Category. If you have migrated from SobiPro v1.0 (or if you have manually removed the Category field), and the search module cannot find a Category field in the section configuration, then it is not possible to search filtering by category.

Please, add a new field of Category type into your section configuration, and enable it for search (Search Field Settings tab/Searchable=Yes).

# Faceted Search Modules is showing this error: ".entry-container not found in SobiPro response"

XTDir Faceted Search module works sending search queries to SobiPro, and showing the output in the module context. It expects a search result having an .entry-container class to signal the content. This is the SobiPro regular structure.

However, if the customization process has removed the original SobiPro classes, the module cannot process the output. Please, restore the entry-container class to signal the search results.

Please, check the default SobiPro template:

INFO

File location: components/com_sobipro/usr/templates/default2/common/entries.xsl

# I have defined a Menu item in the module configuration, but search results are still shown in the main Sobipro content, why?

SobiPro requires to define the parameters to be passed from the search query to the search results page. Please, add the Itemid into section config.ini:

components/com_sobipro/etc/config.ini, line 88

# Installation - Upgrade

# Tried upload and got this error message: Parse error: syntax error, unexpected T_FUNCTION

You are running an outdated version of PHP (not stable), which is not supported by the extension. Most hosting providers already offer to upgrade to PHP 7.4, PHP 8 or superior.

Please upgrade to PHP 7.4, PHP 8 or superior as soon as possible (previous PHP versions are not longer considered stable. They don't have Bug fixes, Patchs, or Security issues fixes).

# Live Update does not work, Update path does not exist

Joomla! shows this error message when you try to update to the extension latest version.

Live Update does not work, Update path does not exist

Joomla! cannot successfully download and install the file.

Have you assigned the Download ID? It is required to authorize downloads.

  1. Please, click here (opens new window) to access your Download ID.
  2. Copy and paste Download ID into component Options/Live update/Download ID field
  3. Save and update again the extension from Control Panel or "Extension Manager: Update"

If the problem persists, we have found a minor incompatibility in the latest Joomla! installer plugin, please manually download (opens new window) the extension and install it to update the installer plugin and the rest of the associated files. Next time, it will be updated with no errors.

# After updating to a new version my web page doesn't work ...

XTDir solution has a component, modules, plugins, SobiPro Apps, and SobiPro fields. XTDir component, modules, and plugins are updated by Joomla! Extensions installer. But, XTDir-SobiPro Apps and XTDir-SobiPro fields, which are manually installed from XTDir, must be manually updated from XTDir following the same procedure.

After a XTDir update, please, verify in SobiPro App Manager if XTDir-SobiPro Apps and XTDir-SobiPro fields are updated at the same version. If not, visit each associated XTDir configuration area and click the Update button for the app or field.

Tutorial: XTDir for SobiPro - Updates (opens new window)

# I got this error when I want update my index .. _xtdir_tmp_object_relations doesn't exist

XTDir creates a temporary table to process SobiPro entries and updates the new general index. This error is found when the indexation is not completed in time AND you have enabled the PageLoad mode.

The PageLoad mode is a simple way to automate the indexation. However, in a medium-big catalog, it can easily overload your server.

TIP

To optimize the catalog automation, please enable the Cron Job mode

Alternatively, if the problem persists and the index is not generated or updated at all, please, check this general MySQL issues:

  • MySQL user must have permissions to create this table
  • If you have enabled in_memory parameter (Configuration/Core Index of SobiPro Entries ), TEMPORARY tables must be allowed in the database

# General

# Deprecated notices in the extension output

  • Warning: "continue" targeting switch is equivalent to "break"
  • Deprecated: Function create_function() is deprecated in ...

# Understanding Extension Notices

Sometimes, when using certain extensions, you might encounter notices about specific elements being deprecated. It's important to understand what these notices mean and how they affect your website.

# What are Deprecation Notices?

In simpler terms, a deprecation notice is like a heads-up from the extension. It's letting you know that certain parts of its code are not going to be supported in future versions of PHP, particularly PHP 8. These notices are not errors; they're just reminders for developers to pay attention to potential changes.

# Our Ongoing Work

Rest assured, our development team is actively working on the next version of the extension. This upcoming release will seamlessly integrate with PHP 8 and won't support older PHP versions. So, while you may see these notices now, they will not affect your website's functionality in the future.

# Managing Notices

For the time being, you can safely ignore these notices. However, if they bother you or clutter your development environment, you have the option to adjust your site's error reporting settings. These notices typically appear when your site is in development mode or when maximum error reporting is enabled.

When your site is live and serving visitors, we recommend setting the "Error Reporting" to "None". This ensures a clean and tidy user experience without exposing internal information or distracting users with unnecessary notices. Importantly, this configuration won't impact the functionality of your installed extensions.

By following these guidelines, you can maintain a smooth and efficient website experience for both developers and end-users alike.

# XTDir is not showing all categories or entries

XTDir works on indexed categories and entries. By default, it is restricted to 1000. Please, try to increase and update it in Configuration/Core Index/Index Limit.

Once the limit is adjusted, you can automate the indexation operation.

# The module is still not showing all categories

The module shows indexed categories according to parameter definitions. For instance, if the module is not showing all of them, you can increase the Count (by default, 99) or show all categories even empty categories **.

Finally, if categories are still missing, the deafult index limit could have been reached.

# The module is showing empty categories

  • The module shows unpublished categories or entries

Even though you have enabled Hide Empty Categories, the module still shows empty categories. To confirm, please, enable Show Counter⁼Entries to verify the entries counter.

If there is a mismatch between the number of entries and counter, then XTDir general index may be outdated. Please, manually click on XTDir Control Panel/ Index button. Additionally, you can automate the indexation operation (opens new window).

# My backup reports this error: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '=' SQL=CREATE VIEW...

There is an inconsistency in the declaration of XTDir views in your database.

Please, update to the latest XTDir version and recreate the views.

  • XTDir for SobiPro / Configuration / Core Index of SobiPro Entries / Recreate Views, or
  • XTDir for SobiPro / Promoted Entries / Configuration / Recreate Views

# When I try to index entries, I get "xtdir_final_categorypromoted_view doesn't exist", why?

Views are created by XTDir for SobiPro when it is initially installed. If you have migrated from server, they might not be copied. If views are not created in your database, you can recreate them with any of the following methods:

  • In the latest XTDir for SobiPro 5.6, you can click on XTDir for SobiPro: Promoted Entries Configuration / Recreate Views button to recreate views
  • In phpMyAdmin, you can execute views.sql script to manually recreate them (File: administrator/components/com_xtdir/sql/install/mysql/views.sql)
  • Uninstall and install again XTDir for SobiPro, installer recreates all views. If the problem persists, a database configuration problem may be present. CON: This method also resets all previous configuration.

# Concerning to Javascript Conflicts

Javascript Apps are integral part of XTDir and SobiPro. XTDir Modules, like XTDir Extended Search and XTDir GeoMap Search require a page free of Javascript errors or conflicts to run smoothly.

TIP

Joomla! 3 runs on jQuery. However legacy extensions may load MooTools and other libraries (for example Dojo), or load multiple jQuery versions - jQuery must be loaded only once -. Check and isolate scripts to simplify page loading.

If you Browser shows Javascript loading errors( Control-Shift-J to access browser console), there are several points to check. Briefly, the simplest way to solve them is isolating every element in a clean page (for example, testing every module in an article page with protostar template), and build complexity one step at a time.

TIP

KISS principle Keep it simple. Loading multiple extensions in a page is simple, however combining all together in a sound design and a working Javascript context is not. Every layer adds complexity and cases to check. In other words, the best advice is to keep it as simple as possible.

In complex Javascript configurations, there is some uncertainty due to the nature of the loading order. For example, it works perfectly fine in a page and it does not work in a similar configuration with a different loading order. Then again, the recommendation is to simplify to find the case where the search form and the results page work as expected, and add complexity one step at a time.

In addition, you can inspect your browser console to discover if there is a Javascript error behind. Press Control-Shift-J, and access the page to discover any HTML/Javascript error.

TIP

There are extensions to help with Javascript conflicts. For example, jQuery Easy (opens new window) "This plugin is meant to help clean and resolve front and back end issues when using instances of jQuery alongside the Mootools libraries."

Besides the usual JQuery and Mootools conflicts, Google Maps requires a careful implementation in a "light" page (small Javascript footpring). For instance, a common mistake is loading Google Maps twice in the same page (via two modules, XTDir GeoMap Search module and XTDir Extended Search Module cannot be assigned to the same page - showing the same GeoMap field).

# References

  1. Javascript Conflicts, by Written by Sigrid Suski (opens new window)
  2. Script Debugging, with Firebug (opens new window)
  3. Using the Console - Google Chrome (opens new window)
  4. Firefox - Browser Console (opens new window)

# In Control Panel, this message is shown "No HTTP response received", why?

When you visit the Control Panel, there is a version check to our site, for example https://dpd7q0cxjbvq3.cloudfront.net/update-xtdir-for-sobipro. If you are getting a connection error, it may not be possible to stablish it from your site (caused by a security restriction or a temporary network issue).

Please, check with your hosting provider, or just disable the check (component Options/Live Update/Version Check=Off)

# My system shows a Blank White Page. What should I do?

A blank white page is an error page!

Due to PHP errors, XTDir (or any other Joomla! extensions) can stop working without displaying an error, just a Blank Page. The absence of any evidence is caused by disabled PHP Error Reporting. This is a common security measure in production sites.

Again, a white page is just an error page where the error message has been suppressed by your configuration. Once you solve the error, the site is going to be back to the normal state.

In these cases you have to enable PHP Error Reporting to find out what the error behind the white page is:

  1. Check your server error logs (not the access logs): even when PHP Errors are disabled, they may be saved in an error log file.
  2. Joomla! Configuration - Error Reporting: go to Joomla! Administration / Global configuration / Server, and enable "Error Reporting" to Maximum.
  3. If your site still shows a Blank Page, your hosting provider may have restricted this setting too.
  4. Additionally, if you can't access the back-end website, check the next cases.
  5. Hosting Configuration: visit CPanel, or your hosting control panel, and try to enable PHP Error Reporting in this area.
  6. Alternatively, you can ask to your Hosting Support, how to enable it.
  7. PHP Configuration: enable display_errors to "on" in php.ini

# A solution for 80% of Blank White Pages

You have installed an extension (package). Joomla! is trying to load several new system plugins, a dependency is not fulfilled or there is a PHP Error on your site.

  1. If the front end website is down. Joomla! backend may work (it does not load the same plugins). Please, try to access the backend to disable the latest installed "system" plugins.
  2. If the Joomla! backend is also down, access your Database and manually disable the latest installed plugins.

For example, to review the latest installed plugins from phpMyAdmin/MySQL:

To disable a plugin, change the enabled column to 0.

# What can I do to get my system back, if the white page persists?

There is an alternative way to avoid a system plugin load, but it requires to access directly to website files and remove some of them. Please, proceed with the following steps:

  • Access your site directory, for example via FTP
  • Rename the latest installed system plugins folders in "[Joomla!_root]/plugins/system/"

# Next time

We develop and test our extensions to minimize conflicts and installation problems. However, we can't preview all environments and extensions combinations. It is also common to find very restrictive or very resource-limited hosting platforms. To avoid this problem, we recommend:

  • Always, test new software in a development site.
  • Always, create and check to have a recent backup at hand (test how to quickly restore it). Akeeba backup (opens new window) is a great component, and very easy to use.
  • Always, if you are going to install it in your live/production site, install it at a convenient time (Eg weekend). You can also announce a downtime window to upgrade your site, and be ready for a rollback.

# Logging Mode: Developer's swiss army knife

The Logging Mode is a key tool to check the extension inner workings. It is a handy way to check component internals, beyond a simple error message.

You can enable several logging modes to leave a track of server-side operations. To enable the logging mode:

  • Access the Options menu, in Components/(Extension Name) Control Panel.
  • In the System Settings folder,
  • Enable the: Logging level (For example, 3-All)
  • And, select the Logging mode (For example, To logfile only or To logfile and screen)

Logging Mode: Developer's swiss army knife

As a result, xt-logging.log file is generated with all operations details into logs/ directory. Please, check the file generated in logs/xt-logging.log or administrator/logs/xt-logging.log.

Alternatively, xt-logging.log can be downloaded from Control Panel.

Control Panel - xt-logging.log

# My page does not show the latest information, why?

If you have enabled "System - Cache" plugin, then disable it. By default, it is not recommended.

System - Cache plugin enables Page Caching (opens new window) at client browser level. Thus, information is not updated in browser until the Page expires and it is loaded again. This technique is only recommended for static pages.

# Error: 500 Internal Server Error

This is a general PHP or Apache error. There is problem deep in the hosting platform. Please, ask to your hosting support to find out the source of the problem.

TIP

In SiteGround (opens new window) hosting, they have carefully investigated the case and managed to recreate the error. They have resolved the issue by changing the PHP version to 5.4 by adding the following line to .htaccess file: AddHandler application/x-httpd-php54 .php .php5 .php4 .php3

In addition, mod_security, or other similar security restrictions, may block Ajax requests with this error. Check with your hosting provider, explaining the exact steps that cause the error, or you can temporarily disable mod_security to verify if it solves the issue. You can just add the following to .htaccess:

Last Updated: 4/16/2024, 4:44:17 PM