Added Tidy warning to compiler and workaround so that the compiler can still work without the Tidy extension Resolved gh-197

This commit is contained in:
Llewellyn van der Merwe 2017-12-13 00:17:02 +02:00
parent 258f7441d7
commit d37b0d367a
No known key found for this signature in database
GPG Key ID: CAD7B16D27AF28C5
2 changed files with 42 additions and 5 deletions

View File

@ -512,6 +512,20 @@ class Get
*/ */
public $libraries = array(); public $libraries = array();
/**
* Is Tidy Enabled
*
* @var bool
*/
public $tidy = false;
/**
* Set Tidy warning once switch
*
* @var bool
*/
public $setTidyWarning = false;
/*** /***
* Constructor * Constructor
*/ */
@ -520,7 +534,9 @@ class Get
if (isset($config) && count($config)) if (isset($config) && count($config))
{ {
// load application // load application
$this->app = JFactory::getApplication(); $this->app = JFactory::getApplication();
// check if we have Tidy enabled
$this->tidy = extension_loaded('Tidy');
// Set the params // Set the params
$this->params = JComponentHelper::getParams('com_componentbuilder'); $this->params = JComponentHelper::getParams('com_componentbuilder');
// load the compiler path // load the compiler path
@ -1712,6 +1728,10 @@ class Get
$view->$scripter = $this->setDynamicValues(base64_decode($view->$scripter)); $view->$scripter = $this->setDynamicValues(base64_decode($view->$scripter));
if (2 == $this->uikit || 1 == $this->uikit) if (2 == $this->uikit || 1 == $this->uikit)
{ {
if (!isset($this->uikitComp[$view->code]))
{
$this->uikitComp[$view->code] = array();
}
// set uikit to views // set uikit to views
$this->uikitComp[$view->code] = ComponentbuilderHelper::getUikitComp($view->$scripter,$this->uikitComp[$view->code]); $this->uikitComp[$view->code] = ComponentbuilderHelper::getUikitComp($view->$scripter,$this->uikitComp[$view->code]);
} }
@ -2835,6 +2855,10 @@ class Get
// load UIKIT if needed // load UIKIT if needed
if (2 == $this->uikit || 1 == $this->uikit) if (2 == $this->uikit || 1 == $this->uikit)
{ {
if (!isset($this->uikitComp[$view]))
{
$this->uikitComp[$view] = array();
}
// set uikit to views // set uikit to views
$this->uikitComp[$view] = ComponentbuilderHelper::getUikitComp($contnent,$this->uikitComp[$view]); $this->uikitComp[$view] = ComponentbuilderHelper::getUikitComp($contnent,$this->uikitComp[$view]);
} }

View File

@ -2380,10 +2380,23 @@ class Fields extends Structure
$dom = dom_import_simplexml($xml)->ownerDocument; $dom = dom_import_simplexml($xml)->ownerDocument;
$dom->formatOutput = true; $dom->formatOutput = true;
$xmlString = $dom->saveXML($dom->getElementsByTagName($nodename)->item(0)); $xmlString = $dom->saveXML($dom->getElementsByTagName($nodename)->item(0));
$tidy = new Tidy(); // make sure Tidy is enabled
$tidy->parseString($xmlString,array('indent'=>true,'indent-spaces'=>8,'input-xml'=>true,'output-xml'=>true,'indent-attributes'=>true,'wrap-attributes'=>true,'wrap'=>false)); if ($this->tidy)
$tidy->cleanRepair(); {
return $this->xmlIndent((string)$tidy,' ',8,true,false); $tidy = new Tidy();
$tidy->parseString($xmlString,array('indent'=>true,'indent-spaces'=>8,'input-xml'=>true,'output-xml'=>true,'indent-attributes'=>true,'wrap-attributes'=>true,'wrap'=>false));
$tidy->cleanRepair();
return $this->xmlIndent((string)$tidy,' ',8,true,false);
}
// set tidy waring atleast once
elseif (!$this->setTidyWarning)
{
// set the warning only once
$this->setTidyWarning = true;
// now set the warning
$this->app->enqueueMessage(JText::_('You must enable the <b>Tidy</b> extension in your php.ini file so we can tidy up your xml! If you need help please <a href="https://github.com/vdm-io/Joomla-Component-Builder/issues/197#issuecomment-351181754" target="_blank">start here</a>!'), 'error');
}
return $xmlString;
} }
/** /**