fixed missing images in setup

fixed php8 errors
This commit is contained in:
Ortwin Pinke 2023-05-30 06:28:22 +02:00
parent 629983db56
commit 41c69d53fe
5 changed files with 196 additions and 180 deletions

View file

@ -3,23 +3,8 @@
<component name="PHPUnit">
<option name="directories">
<list>
<option value="$PROJECT_DIR$/conlite/external/phpmailer/phpmailer/tests" />
<option value="$PROJECT_DIR$/conlite/external/endroid/qr-code/tests" />
<option value="$PROJECT_DIR$/conlite/external/phpmailer/phpmailer/tests" />
<option value="$PROJECT_DIR$/conlite/external/endroid/qr-code/tests" />
<option value="$PROJECT_DIR$/conlite/external/endroid/qr-code/tests" />
<option value="$PROJECT_DIR$/conlite/external/phpmailer/phpmailer/tests" />
<option value="$PROJECT_DIR$/tests" />
<option value="$PROJECT_DIR$/tests" />
<option value="$PROJECT_DIR$/tests" />
<option value="$PROJECT_DIR$/conlite/external/nikic/php-parser/tests" />
<option value="$PROJECT_DIR$/conlite/external/phpunit/php-file-iterator/tests" />
<option value="$PROJECT_DIR$/conlite/external/sebastian/complexity/tests" />
<option value="$PROJECT_DIR$/conlite/external/sebastian/object-enumerator/tests" />
<option value="$PROJECT_DIR$/conlite/external/myclabs/deep-copy/tests" />
<option value="$PROJECT_DIR$/conlite/external/sebastian/comparator/tests" />
<option value="$PROJECT_DIR$/conlite/external/sebastian/code-unit-reverse-lookup/tests" />
<option value="$PROJECT_DIR$/conlite/external/sebastian/cli-parser/tests" />
<option value="$PROJECT_DIR$/tests" />
</list>
</option>

View file

@ -2,5 +2,6 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/conlite/plugins/cl-mod-rewrite" vcs="Git" />
</component>
</project>

View file

@ -5,7 +5,7 @@
*
* Description:
* Base Class for all cHTML Elements
*
*
* @category ConLite
* @package Core
* @subpackage cHTML
@ -29,11 +29,12 @@ $cHTMLIDCount = 0;
*
* @author Ortwin Pinke <o.pinke@conlite.org>
*/
class cHTML extends cHTML5Common {
class cHTML extends cHTML5Common
{
/**
* Storage of the open SGML tag template
* @var string
* @var string
*/
protected $_skeleton_open;
@ -57,15 +58,15 @@ class cHTML extends cHTML5Common {
/**
* Defines the style definitions
* @var string
* @var array
*/
protected $_styledefs;
protected $_styledefs = [];
/**
* Defines all scripts which are required by the current element
* @var array
*/
protected $_requiredScripts;
protected $_requiredScripts = [];
/**
* @var boolean Defines if the current tag is a contentless tag
@ -75,31 +76,32 @@ class cHTML extends cHTML5Common {
/**
* @var array Defines which JS events contain which scripts
*/
protected $_aEventDefinitions;
protected $_aEventDefinitions = [];
/**
* @var array Style definitions
*/
protected $_aStyleDefinitions;
* @var array Style definitions
*/
protected $_aStyleDefinitions = [];
/**
* @var string The content itself
*/
* @var string The content itself
*/
protected $_content;
protected $_aCfg;
/**
* Constructor Function
* Initializes the SGML open/close tags
*
* @param none
* @return void
*/
public function __construct() {
global $cfg;
$this->_aCfg = $cfg;
* Constructor Function
* Initializes the SGML open/close tags
*
* @param none
* @return void
*/
public function __construct()
{
$this->_aCfg = cRegistry::getConfig();
parent::__construct();
$this->_skeleton_open = '<%s%s>';
$this->_skeleton_close = '</%s>';
@ -108,50 +110,52 @@ class cHTML extends cHTML5Common {
/* Cache the XHTML setting for performance reasons */
if (!is_array($this->_aCfg) || !array_key_exists("generate_xhtml", $this->_aCfg)) {
if (function_exists("getEffectiveSetting")) {
$bXhtml = (getEffectiveSetting("generator", "xhtml") == 'true'
|| getEffectiveSetting("generator", "xhtml") === TRUE)?true:false;
$bXhtml = (getEffectiveSetting("generator", "xhtml") == 'true'
|| getEffectiveSetting("generator", "xhtml") === TRUE) ? true : false;
$this->_aCfg["generate_xhtml"] = $bXhtml;
} else {
$this->_aCfg["generate_xhtml"] = false;
$this->_aCfg["generate_xhtml"] = false;
}
}
if($this->_aCfg["generate_xhtml"] === true) {
if ($this->_aCfg["generate_xhtml"] === true) {
$this->_skeleton_single = '<%s%s />';
} else {
$this->_skeleton_single = '<%s%s>';
}
$this->_styledefs = array ();
$this->_aStyleDefinitions = array();
$this->_styledefs = [];
$this->_aStyleDefinitions = [];
$this->setContentlessTag();
$this->advanceID();
$this->_requiredScripts = array ();
$this->_aEventDefinitions = array ();
$this->_requiredScripts = [];
$this->_aEventDefinitions = [];
}
/**
*
* @param type $contentlessTag
* @param type $contentlessTag
*/
public function setContentlessTag($contentlessTag = true) {
public function setContentlessTag($contentlessTag = true)
{
$this->_contentlessTag = $contentlessTag;
}
/**
* advances to the next ID available in the system.
*
*
* This function is useful if you need to use HTML elements
* in a loop, but don't want to re-create new objects each time.
*
* @return void
* @return void
*/
public function advanceID() {
public function advanceID()
{
global $cHTMLIDCount;
$cHTMLIDCount ++;
$this->updateAttributes(array ("id" => "m".$cHTMLIDCount));
$cHTMLIDCount++;
$this->updateAttributes(array("id" => "m" . $cHTMLIDCount));
}
/**
@ -159,24 +163,26 @@ class cHTML extends cHTML5Common {
*
* @return string current ID
*/
public function getID() {
public function getID()
{
return $this->getAttribute("id");
}
/**
* setAlt: sets the alt and title attributes
*
* Sets the "alt" and "title" tags. Usually, "alt" is used
* Sets the "alt" and "title" tags. Usually, "alt" is used
* for accessibility and "title" for mouse overs.
*
*
* To set the text for all browsers for mouse over, set "alt"
* and "title". IE behaves incorrectly and shows "alt" on
* and "title". IE behaves incorrectly and shows "alt" on
* mouse over. Mozilla browsers only show "title" as mouse over.
*
* @param string $alt Text to set as the "alt" attribute
*/
public function setAlt($alt) {
$attributes = array ("alt" => $alt, "title" => $alt);
public function setAlt($alt)
{
$attributes = array("alt" => $alt, "title" => $alt);
$this->updateAttributes($attributes);
}
@ -185,8 +191,9 @@ class cHTML extends cHTML5Common {
*
* @param string $class Text to set as the "id"
*/
public function setID($id) {
$this->updateAttributes(array ("id" => $id));
public function setID($id)
{
$this->updateAttributes(array("id" => $id));
}
/**
@ -194,8 +201,9 @@ class cHTML extends cHTML5Common {
*
* @param string $class Text to set as the "class" attribute
*/
public function setClass($class) {
$this->updateAttributes(array ("class" => $class));
public function setClass($class)
{
$this->updateAttributes(array("class" => $class));
}
/**
@ -203,8 +211,9 @@ class cHTML extends cHTML5Common {
*
* @param $class string Text to set as the "style" attribute
*/
public function setStyle($style) {
$this->updateAttributes(array ("style" => $style));
public function setStyle($style)
{
$this->updateAttributes(array("style" => $style));
}
/**
@ -216,11 +225,12 @@ class cHTML extends cHTML5Common {
* @param $event string Type of the event
* @param $action string Function or action to call (JavaScript Code)
*/
public function setEvent($event, $action) {
public function setEvent($event, $action)
{
if (substr($event, 0, 2) != "on") {
$this->updateAttributes(array ("on".$event => $action));
$this->updateAttributes(array("on" . $event => $action));
} else {
$this->updateAttributes(array ($event => $action));
$this->updateAttributes(array($event => $action));
}
}
@ -232,9 +242,10 @@ class cHTML extends cHTML5Common {
*
* @param $event string Type of the event
*/
public function unsetEvent($event) {
public function unsetEvent($event)
{
if (substr($event, 0, 2) != "on") {
$this->removeAttribute("on".$event);
$this->removeAttribute("on" . $event);
} else {
$this->removeAttribute($event);
}
@ -242,7 +253,7 @@ class cHTML extends cHTML5Common {
/**
* fillSkeleton: Fills the open SGML tag skeleton
*
*
* fillSkeleton fills the SGML opener tag with the
* specified attributes. Attributes need to be passed
* in the stringyfied variant.
@ -250,11 +261,12 @@ class cHTML extends cHTML5Common {
* @param $attributes string Attributes to set
* @return string filled SGML opener skeleton
*/
public function fillSkeleton($attributes) {
public function fillSkeleton($attributes)
{
if ($this->_contentlessTag == true) {
return sprintf($this->_skeleton_single, $this->_tag, $attributes);
} else {
return sprintf($this->_skeleton_open, $this->_tag, $attributes);
return is_null($this->_skeleton_open) ? '' : sprintf($this->_skeleton_open, $this->_tag, $attributes);
}
}
@ -264,63 +276,68 @@ class cHTML extends cHTML5Common {
* @param none
* @return string filled SGML closer skeleton
*/
public function fillCloseSkeleton() {
return sprintf($this->_skeleton_close, $this->_tag);
public function fillCloseSkeleton()
{
return is_null($this->_skeleton_close) ? '' : sprintf($this->_skeleton_close, $this->_tag);
}
/**
* addStyleDefinition
*
* @deprecated name change, use attachStyleDefinition
* @param $entity string Entity to define
* @param $definition string Definition for the given entity
* @param $definition string Definition for the given entity
* @return string filled SGML closing skeleton
* @deprecated name change, use attachStyleDefinition
*/
public function setStyleDefinition($entity, $definition) {
public function setStyleDefinition($entity, $definition)
{
$this->_styledefs[$entity] = $definition;
}
/**
* attachStyleDefinition: Attaches a style definition.
*
*
* This function is not restricted to a single style, e.g.
* you can set multiple style definitions as-is to the handler.
*
*
* $example->attachStyle("myIdentifier",
* "border: 1px solid black; white-space: nowrap");
* "border: 1px solid black; white-space: nowrap");
* $example->attachStyle("myIdentifier2",
* "padding: 0px");
*
* "padding: 0px");
*
* Results in:
*
*
* style="border: 1px solid black; white-space: nowrap; padding: 0px;"
*
* @param $sName string Name for a style definition
* @param $sDefinition string Definition for the given entity
* @param $sName string Name for a style definition
* @param $sDefinition string Definition for the given entity
* @return string filled SGML closing skeleton
*/
public function attachStyleDefinition($sName, $sDefinition) {
public function attachStyleDefinition($sName, $sDefinition)
{
$this->_aStyleDefinitions[$sName] = $sDefinition;
}
/**
*
*
* @param string $script
*/
public function addRequiredScript($script) {
public function addRequiredScript($script)
{
if (!is_array($this->_requiredScripts)) {
$this->_requiredScripts = array ();
$this->_requiredScripts = [];
}
$this->_requiredScripts[] = $script;
$this->_requiredScripts = array_unique($this->_requiredScripts);
}
/**
*
*
* @param array $aAttributes
* @return array
*/
public function updateAttributes($aAttributes) {
public function updateAttributes($aAttributes)
{
return $this->mergeAttributes($aAttributes);
}
@ -330,20 +347,21 @@ class cHTML extends cHTML5Common {
* @param $content string/object String with the content or an object to render.
*
*/
public function _setContent($content) {
public function _setContent($content)
{
$this->setContentlessTag(false);
/* Is it an array? */
if(is_array($content)) {
if (is_array($content)) {
unset ($this->_content);
$this->_content = "";
foreach($content as $item) {
if(is_object($item)) {
if(method_exists($item, "render")) {
foreach ($content as $item) {
if (is_object($item)) {
if (method_exists($item, "render")) {
$this->_content .= $item->render();
}
if(count($item->_requiredScripts) > 0) {
if (count($item->_requiredScripts) > 0) {
$this->_requiredScripts = array_merge($this->_requiredScripts, $item->_requiredScripts);
}
} else {
@ -351,12 +369,12 @@ class cHTML extends cHTML5Common {
}
}
} else {
if(is_object($content)) {
if(method_exists($content, "render")) {
if (is_object($content)) {
if (method_exists($content, "render")) {
$this->_content = $content->render();
}
if(count($content->_requiredScripts) > 0) {
if (is_countable($content->_requiredScripts) && count($content->_requiredScripts) > 0) {
$this->_requiredScripts = array_merge($this->_requiredScripts, $content->_requiredScripts);
}
return;
@ -368,91 +386,95 @@ class cHTML extends cHTML5Common {
/**
* attachEventDefinition: Attaches the code for an event
*
*
* Example to attach an onClick handler:
* setEventDefinition("foo", "onClick", "alert('foo');");
*
*
* @param $sName string defines the name of the event
* @param $sEvent string defines the event (e.g. onClick)
* @param $sCode string defines the code
*/
public function attachEventDefinition($sName, $sEvent, $sCode) {
public function attachEventDefinition($sName, $sEvent, $sCode)
{
$this->_aEventDefinitions[strtolower($sEvent)][$sName] = $sCode;
}
/**
* setAttribte: Sets a specific attribute
*
*
* @param $sAttributeName string Name of the attribute
* @param $sValue string Value of the attribute
*/
public function setAttribute($sAttributeName, $sValue = NULL) {
public function setAttribute($sAttributeName, $sValue = NULL)
{
$sAttributeName = strtolower($sAttributeName);
if (is_null($sValue)) {
$sValue = $sAttributeName;
}
$this->updateAttributes(array ($sAttributeName => $sValue));
$this->updateAttributes(array($sAttributeName => $sValue));
}
/**
*
*
* @return string
*/
public function __toString() {
public function __toString()
{
return $this->toHtml();
}
/**
* Renders the output
* If the tag
*/
public function toHTML() {
/* Fill style definition */
$style = $this->getAttribute("style");
/* If the style doesn't end with a semicolon, append one */
if(!empty($style) && is_string($style)) {
$style = trim($style);
if (substr($style, strlen($style) - 1) != ";") {
$style .= ";";
}
}
foreach($this->_aStyleDefinitions as $sKey => $sEntry) {
$style .= $sKey.': '.$sEntry;
if (substr($style, strlen($style) - 1) != ";") {
$style .= ";";
}
}
/* Apply all stored styles */
foreach ($this->_styledefs as $key => $value) {
$style .= "$key: $value;";
}
if ($style != "") {
$this->setStyle($style);
}
foreach($this->_aEventDefinitions as $sEventName => $sEntry) {
$aFullCode = array();
foreach ($sEntry as $sName => $sCode) {
$aFullCode[] = $sCode;
}
$this->setAttribute($sEventName, $this->getAttribute($sEventName).implode(" ", $aFullCode));
}
if ($this->_content != "" || $this->_contentlessTag == false) {
$attributes = $this->getAttributes(true);
return $this->fillSkeleton($attributes).$this->_content.$this->fillCloseSkeleton();
} else {
/* This is a single style tag */
$attributes = $this->getAttributes(true);
return $this->fillSkeleton($attributes);
}
}
/**
* Renders the output
* If the tag
*/
public function toHTML()
{
/* Fill style definition */
$style = $this->getAttribute("style");
/* If the style doesn't end with a semicolon, append one */
if (!empty($style) && is_string($style)) {
$style = trim($style);
if (substr($style, strlen($style) - 1) != ";") {
$style .= ";";
}
}
foreach ($this->_aStyleDefinitions as $sKey => $sEntry) {
$style .= $sKey . ': ' . $sEntry;
if (substr($style, strlen($style) - 1) != ";") {
$style .= ";";
}
}
/* Apply all stored styles */
foreach ($this->_styledefs as $key => $value) {
$style .= "$key: $value;";
}
if ($style != "") {
$this->setStyle($style);
}
foreach ($this->_aEventDefinitions as $sEventName => $sEntry) {
$aFullCode = [];
foreach ($sEntry as $sName => $sCode) {
$aFullCode[] = $sCode;
}
$this->setAttribute($sEventName, $this->getAttribute($sEventName) . implode(" ", $aFullCode));
}
if ($this->_content != "" || $this->_contentlessTag == false) {
$attributes = $this->getAttributes(true);
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
} else {
/* This is a single style tag */
$attributes = $this->getAttributes(true);
return $this->fillSkeleton($attributes);
}
}
/**
* render(): Alias for toHtml
@ -460,8 +482,8 @@ class cHTML extends cHTML5Common {
* @param none
* @return string Rendered HTML
*/
public function render() {
public function render()
{
return $this->toHtml();
}
}
?>
}

View file

@ -39,6 +39,7 @@ class cHTMLAlphaImage extends cHTMLImage {
public function __construct()
{
parent::__construct();
}
function setMouseover ($sMouseoverSrc)
@ -76,9 +77,9 @@ class cHTMLAlphaImage extends cHTMLImage {
$this->attachEventDefinition("mouseover", "onMouseOut", sprintf($sMouseScript, $this->_src) );
}
}
return null;
return parent::toHTML();
}
}
@ -90,6 +91,7 @@ class cHTMLErrorMessageList extends cHTMLDiv {
public function __construct() {
$this->_oTable = new cHTMLTable();
$this->_oTable->setWidth("100%");
parent::__construct();
$this->setClass("errorlist");
$this->setStyle("width: 450px; height: 218px; overflow: auto; border: 1px solid black;");
}
@ -100,7 +102,7 @@ class cHTMLErrorMessageList extends cHTMLDiv {
function toHTML() {
$this->_setContent($this->_oTable->render());
return null;
return parent::toHTML();
}
}
@ -161,11 +163,12 @@ class cHTMLFoldableErrorMessage extends cHTMLTableRow {
} else {
$this->_oIcon->setContent("&nbsp;");
}
parent::__construct();
}
function toHTML() {
$this->setContent([$this->_oFolding, $this->_oContent, $this->_oIcon]);
return null;
return parent::toHTML();
}
}
@ -187,11 +190,13 @@ class cHTMLInfoMessage extends cHTMLTableRow {
$this->_oTitle->setVerticalAlignment("top");
$this->_oMessage->setContent($sMessage);
$this->_oMessage->setClass("entry_nowrap");
parent::__construct();
}
function toHTML() {
$this->setContent([$this->_oTitle, $this->_oMessage]);
return null;
return parent::toHTML();
}
}
@ -204,6 +209,8 @@ class cHTMLLanguageLink extends cHTMLDiv {
* @param int $stepnumber
*/
function __construct($langcode, $langname, $stepnumber) {
parent::__construct();
$linkImage = new cHTMLAlphaImage();
$linkImage->setAlt("");
$linkImage->setSrc("../conlite/images/submit.gif");
@ -242,6 +249,8 @@ class cHTMLButtonLink extends cHTMLDiv {
* @param string $title
*/
function __construct($href, $title) {
parent::__construct();
$linkImage = new cHTMLAlphaImage();
$linkImage->setSrc("../conlite/images/submit.gif");
$linkImage->setMouseover("../conlite/images/submit_hover.gif");
@ -268,5 +277,4 @@ class cHTMLButtonLink extends cHTMLDiv {
$alignment = '<table border="0" width="100%%" cellspacing="0" cellpadding="0"><tr><td valign="middle">%s</td><td valign="middle" align="right">%s</td></tr></table>';
$this->setContent(sprintf($alignment, $link->render(), $link2->render()));
}
}
?>
}

View file

@ -100,6 +100,7 @@ if(!is_dir($cfg['path']['conlite_config'])) {
$cfg['native_i18n'] = false;
// includes
checkAndInclude($cfg['path']['conlite'] . 'classes/con2con/class.registry.php');
checkAndInclude($cfg['path']['frontend'] . '/pear/HTML/Common2.php');
checkAndInclude($cfg['path']['conlite'] . 'classes/cHTML5/class.chtml5.common.php');
checkAndInclude($cfg['path']['conlite'] . 'classes/cHTML5/class.chtml.php');
@ -119,5 +120,4 @@ checkAndInclude('lib/functions.libraries.php');
checkAndInclude('lib/functions.sql.php');
checkAndInclude('lib/functions.setup.php');
checkAndInclude('lib/class.template.php');
checkAndInclude('lib/class.setupmask.php');
?>
checkAndInclude('lib/class.setupmask.php');