I have a component I had created, and installed fine. I added some new fields to an admin view, compiled, and now when attempting to access the installed component, I am receiving
500 View class not found [class, file]: churchmgmtViewchurchmgmt, /home/devmwweb/public_html/administrator/components/com_churchmgmt/views/churchmgmt/view.html.php
Expected result
Component would install fine with no errors.
Actual result
Error generated:
500 View class not found [class, file]: churchmgmtViewchurchmgmt, /home/devmwweb/public_html/administrator/components/com_churchmgmt/views/churchmgmt/view.html.php
System information (as much as possible)
OS Name & Version: CentOS v7.9.2009 STANDARD kvm
MySql Version: MariaDB 10.3.38-MariaDB
Apache Version: Apache/2.4.56 (cPanel)
PHP Version: 8.0.28
Joomla Version: 3.10.11
JCB Version: 3.1.19
Browser: Opera and Chrome
Additional comments
### Steps to reproduce the issue
I have a component I had created, and installed fine. I added some new fields to an admin view, compiled, and now when attempting to access the installed component, I am receiving
```
500 View class not found [class, file]: churchmgmtViewchurchmgmt, /home/devmwweb/public_html/administrator/components/com_churchmgmt/views/churchmgmt/view.html.php
```
### Expected result
Component would install fine with no errors.
### Actual result
Error generated:
```
500 View class not found [class, file]: churchmgmtViewchurchmgmt, /home/devmwweb/public_html/administrator/components/com_churchmgmt/views/churchmgmt/view.html.php
```
### System information (as much as possible)
- OS Name & Version: CentOS v7.9.2009 STANDARD kvm
- MySql Version: MariaDB 10.3.38-MariaDB
- Apache Version: Apache/2.4.56 (cPanel)
- PHP Version: 8.0.28
- Joomla Version: 3.10.11
- JCB Version: 3.1.19
- Browser: Opera and Chrome
### Additional comments
I see what's happening. During the compile, the file code isn't being properly converted/translated:
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
###BOM###
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
###DASH_VIEW_HTML_HEADER###
/**
* ###Component### View class
*/
class ###Component###View###Component### extends JViewLegacy
{
/**
* View display method
* @return void
*/
function display($tpl = null)
{
// Assign data to the view
$this->icons = $this->get('Icons');
$this->contributors = ###Component###Helper::getContributors();###DASH_GET_CUSTOM_DATA###
// get the manifest details of the component
$this->manifest = ###Component###Helper::manifest();
// Set the toolbar
$this->addToolBar();
// Check for errors.
if (count($errors = $this->get('Errors')))
{
throw new Exception(implode("\n", $errors), 500);
}
// Display the template
parent::display($tpl);
// Set the document
$this->setDocument();
}
/**
* Setting the toolbar
*/
protected function addToolBar()
{
$canDo = ###Component###Helper::getActions('###component###');
JToolBarHelper::title(JText::_('COM_###COMPONENT###_DASHBOARD'), 'grid-2');
// set help url for this view if found
$this->help_url = ###Component###Helper::getHelpUrl('###component###');
if (###Component###Helper::checkString($this->help_url))
{
JToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
}
if ($canDo->get('core.admin') || $canDo->get('core.options'))
{
JToolBarHelper::preferences('com_###component###');
}
}
/**
* Method to set up the document properties
*
* @return void
*/
protected function setDocument()
{
$document = JFactory::getDocument();
// add dashboard style sheets
$document->addStyleSheet(JURI::root() . "administrator/components/com_###component###/assets/css/dashboard.css");
// set page title
$document->setTitle(JText::_('COM_###COMPONENT###_DASHBOARD'));
// add manifest to page JavaScript
$document->addScriptDeclaration("var manifest = jQuery.parseJSON('" . json_encode($this->manifest) . "');", "text/javascript");
}
}
This was done under PHP 7.4 in Firefox.
I see what's happening. During the compile, the file code isn't being properly converted/translated:
```
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
###BOM###
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
###DASH_VIEW_HTML_HEADER###
/**
* ###Component### View class
*/
class ###Component###View###Component### extends JViewLegacy
{
/**
* View display method
* @return void
*/
function display($tpl = null)
{
// Assign data to the view
$this->icons = $this->get('Icons');
$this->contributors = ###Component###Helper::getContributors();###DASH_GET_CUSTOM_DATA###
// get the manifest details of the component
$this->manifest = ###Component###Helper::manifest();
// Set the toolbar
$this->addToolBar();
// Check for errors.
if (count($errors = $this->get('Errors')))
{
throw new Exception(implode("\n", $errors), 500);
}
// Display the template
parent::display($tpl);
// Set the document
$this->setDocument();
}
/**
* Setting the toolbar
*/
protected function addToolBar()
{
$canDo = ###Component###Helper::getActions('###component###');
JToolBarHelper::title(JText::_('COM_###COMPONENT###_DASHBOARD'), 'grid-2');
// set help url for this view if found
$this->help_url = ###Component###Helper::getHelpUrl('###component###');
if (###Component###Helper::checkString($this->help_url))
{
JToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
}
if ($canDo->get('core.admin') || $canDo->get('core.options'))
{
JToolBarHelper::preferences('com_###component###');
}
}
/**
* Method to set up the document properties
*
* @return void
*/
protected function setDocument()
{
$document = JFactory::getDocument();
// add dashboard style sheets
$document->addStyleSheet(JURI::root() . "administrator/components/com_###component###/assets/css/dashboard.css");
// set page title
$document->setTitle(JText::_('COM_###COMPONENT###_DASHBOARD'));
// add manifest to page JavaScript
$document->addScriptDeclaration("var manifest = jQuery.parseJSON('" . json_encode($this->manifest) . "');", "text/javascript");
}
}
```
This was done under PHP 7.4 in Firefox.
Just as a test, and not something I would usually do, but I tested prior versions of JCB to where I COULD compile successfully. JCB version 3.1.12 I was able to successfully compile and install, then access the component. tagged versions following that (3.1.15, 3.1.17, 3.1.19) failed with the above.
Just as a test, and not something I would usually do, but I tested prior versions of JCB to where I COULD compile successfully. JCB version 3.1.12 I was able to successfully compile and install, then access the component. tagged versions following that (3.1.15, 3.1.17, 3.1.19) failed with the above.
In that case please review these closed issues, and see if it resolves yours:
https://git.vdm.dev/joomla/Component-Builder/issues/982
https://git.vdm.dev/joomla/Component-Builder/issues/978
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Steps to reproduce the issue
I have a component I had created, and installed fine. I added some new fields to an admin view, compiled, and now when attempting to access the installed component, I am receiving
Expected result
Component would install fine with no errors.
Actual result
Error generated:
System information (as much as possible)
Additional comments
Does this issue persist in PHP 7.4? and using Firefox?
I see what's happening. During the compile, the file code isn't being properly converted/translated:
This was done under PHP 7.4 in Firefox.
Just as a test, and not something I would usually do, but I tested prior versions of JCB to where I COULD compile successfully. JCB version 3.1.12 I was able to successfully compile and install, then access the component. tagged versions following that (3.1.15, 3.1.17, 3.1.19) failed with the above.
In that case please review these closed issues, and see if it resolves yours:
#982
#978
This problem seems to be fixed in version 3.1.23-beta
But more details about this error here:
\libraries\src\MVC\Factory\LegacyFactory.php:85