updates
This commit is contained in:
parent
497050178f
commit
2ea54af6f7
2 changed files with 223 additions and 399 deletions
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php global $session;
|
||||
/**
|
||||
* Project: BeCast WebEngine - simple site engine
|
||||
* File: /admin/versions.apnl.php
|
||||
|
@ -45,43 +45,40 @@ class versions_panel extends admin_module{
|
|||
$dir_objects[] = $file_object;
|
||||
}
|
||||
|
||||
$url="http://www.astat.org/versions.php";
|
||||
$file = @fopen($url,"r");
|
||||
if($file != false){
|
||||
$data = @fread($file,"4048");
|
||||
$xml=new xml();
|
||||
$out = $xml->parse($data, NULL);
|
||||
$url="https://webengine.becast.at/index.php?task=versioncheck";
|
||||
$out = xml2array($url);
|
||||
if(!empty($out)){
|
||||
$i=0;
|
||||
$max=count($out["mod"]);
|
||||
$max=count($out['release']["mod"]);
|
||||
while($i<=$max){
|
||||
$versions[$i]["name"]=$out["mod"][$i];
|
||||
$versions[$i]["ver"]=$out["ver"][$i];
|
||||
$versions[$i]["name"]=$out['release']["mod"][$i]["name"];
|
||||
$versions[$i]["ver"]=$out['release']["mod"][$i]["ver"];
|
||||
$versions[$i]["file"]=$out['release']["mod"][$i]["file"];
|
||||
$i++;
|
||||
}
|
||||
$vers=$core->ver_major.".".$core->ver_minor.".".$core->ver_rev;
|
||||
$panel->title="Moduleversionen";
|
||||
$panel->content.="<table width=\"80%\" cellspacing=\"2\">
|
||||
$panel->content.="<table style=\"width='80%';\">
|
||||
<tr>
|
||||
<th align=\"center\">Modul</th>
|
||||
<th align=\"center\">Version</th>
|
||||
<th align=\"center\">Update</th>
|
||||
<th style=\"text-align='center';\">Modul</th>
|
||||
<th style=\"text-align='center';\">Version</th>
|
||||
<th style=\"text-align='center';\">Update</th>
|
||||
</tr>";
|
||||
if($out["relase"]["version"]>$vers){
|
||||
$panel->content.="<tr><td colspan=\"3\">Diese Version ist nicht mehr aktuell.<br />Besuche <a href=\"http://www.astat.org\">die Projektseite</a> für ein Update</td></tr>";
|
||||
if($out["release"]["version"]>$vers){
|
||||
$panel->content.="<tr><td colspan=\"3\">Diese Version ist nicht mehr aktuell.<br />Besuche <a href=\"https://webengine.becast.at\">die Projektseite</a> für ein Update</td></tr>";
|
||||
}else{
|
||||
|
||||
foreach($module as $mod){
|
||||
$panel->content.="<tr>
|
||||
<td align=\"center\">".$mod["name"]."</td>
|
||||
<td align=\"center\">".$mod["ver"]."</td>";
|
||||
<td style=\"text-align='center';\">".$mod["name"]."</td>
|
||||
<td style=\"text-align='center';\">".$mod["ver"]."</td>";
|
||||
foreach($versions as $v){
|
||||
if($v["name"]==$mod["name"]){
|
||||
if($mod["ver"]<$v["ver"]){
|
||||
$panel->content.="<td align=\"center\"><a href=\"http://projectx.becast.at/get_file.php?file=".urlencode($v["name"])."\">Neue Version verfügbar!</a></td>";
|
||||
$panel->content.="<td style=\"text-align='center';\"><a href=\"https://code.ehwurscht.at/genuineparts/BeCastWebEngine/src/branch/main/inc/".urlencode($v["file"])."\">Neue Version verfügbar!</a></td>";
|
||||
}elseif($mod["ver"]==$v["ver"]){
|
||||
$panel->content.="<td align=\"center\">Aktuell</td>";
|
||||
$panel->content.="<td style=\"text-align='center';\">Aktuell</td>";
|
||||
}else{
|
||||
$panel->content.="<td align=\"center\">Modified file?</td>";
|
||||
$panel->content.="<td style=\"text-align='center';\">Modified file?</td>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,11 +92,11 @@ class versions_panel extends admin_module{
|
|||
foreach($versions as $v){
|
||||
if($v["name"]==$mod["name"]){
|
||||
if($mod["version"]<$v["ver"]){
|
||||
$panel->content.="<td align=\"center\"><a href=\"http://projectx.becast.at/get_file.php?file=".urlencode($v["name"])."\">Neue Version verfügbar!</a></td>";
|
||||
$panel->content.="<td style=\"text-align='center';\"><a href=\"http://projectx.becast.at/get_file.php?file=".urlencode($v["name"])."\">Neue Version verfügbar!</a></td>";
|
||||
}elseif($mod["version"]==$v["ver"]){
|
||||
$panel->content.="<td align=\"center\">Aktuell</td>";
|
||||
$panel->content.="<td style=\"text-align='center';\">Aktuell</td>";
|
||||
}else{
|
||||
$panel->content.="<td align=\"center\">Modified file?</td>";
|
||||
$panel->content.="<td style=\"text-align='center';\">Modified file?</td>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -111,34 +108,34 @@ class versions_panel extends admin_module{
|
|||
}else{
|
||||
$panel->title="Moduleversionen";
|
||||
$panel->content.="Die Versionprüfung ist fehlgeschlagen.";
|
||||
$panel->content.="<table width=\"80%\" cellspacing=\"2\">
|
||||
$panel->content.="<table style=\"width='80%';\">
|
||||
<tr>
|
||||
<th align=\"center\">Modul</th>
|
||||
<th align=\"center\">Version</th>
|
||||
<th style=\"text-align='center';\">Modul</th>
|
||||
<th style=\"text-align='center';\">Version</th>
|
||||
</tr>";
|
||||
|
||||
|
||||
foreach($module as $mod){
|
||||
$panel->content.="<tr>
|
||||
<td align=\"center\">".$mod["name"]."</td>
|
||||
<td align=\"center\">".$mod["ver"]."</td>";
|
||||
<td style=\"text-align='center';\">".$mod["name"]."</td>
|
||||
<td style=\"text-align='center';\">".$mod["ver"]."</td>";
|
||||
$panel->content.="</tr>";
|
||||
}
|
||||
$panel->content.="</table><br />";
|
||||
$panel->parse_page();
|
||||
}
|
||||
$panel->title="Datei Infos";
|
||||
$panel->content.="<table width=\"80%\" cellspacing=\"2\">
|
||||
$panel->content.="<table style=\"width='80%';\">
|
||||
<tr>
|
||||
<th align=\"center\">Datei</th>
|
||||
<th align=\"center\">Größe</th>
|
||||
<th align=\"center\">zuletzt Geändert</th>
|
||||
<th style=\"text-align='center';\">Datei</th>
|
||||
<th style=\"text-align='center';\">Größe</th>
|
||||
<th style=\"text-align='center';\">zuletzt Geändert</th>
|
||||
</tr>";
|
||||
foreach($dir_objects as $files){
|
||||
$panel->content.="<tr>
|
||||
<td align=\"center\">".$files["name"]."</td>
|
||||
<td align=\"center\">".$files["size"]."</td>
|
||||
<td align=\"center\">".$files["time"]."</td>
|
||||
<td style=\"text-align='center';\">".$files["name"]."</td>
|
||||
<td style=\"text-align='center';\">".$files["size"]."</td>
|
||||
<td style=\"text-align='center';\">".$files["time"]."</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
|
@ -180,315 +177,142 @@ class versions_panel extends admin_module{
|
|||
|
||||
}
|
||||
|
||||
class Xml {
|
||||
|
||||
/**
|
||||
* Xml parser container.
|
||||
*
|
||||
* @var resource parser
|
||||
*/
|
||||
var $parser;
|
||||
|
||||
/**
|
||||
* Parse result.
|
||||
*
|
||||
* @var array pOut
|
||||
*/
|
||||
var $pOut = array();
|
||||
|
||||
/**
|
||||
* Contain the overlap tag temporarily .
|
||||
*
|
||||
* @var array track
|
||||
*/
|
||||
var $track = array();
|
||||
|
||||
/**
|
||||
* Current tag level.
|
||||
*
|
||||
* @var string tmpLevel
|
||||
*/
|
||||
var $tmpLevel = '';
|
||||
|
||||
/**
|
||||
* Attribut of current tag.
|
||||
*
|
||||
* @var array tmpAttrLevel
|
||||
*/
|
||||
var $tmpAttrLevel = array();
|
||||
|
||||
/**
|
||||
* Write result.
|
||||
*
|
||||
* @var string wOut
|
||||
*/
|
||||
var $wOut = '';
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* parse
|
||||
* Set the parser Xml and theses options.
|
||||
* Xml file could be a string, a file, or curl.
|
||||
* When the source is loaded, we run the parse.
|
||||
* After, we clean all the memory and variables,
|
||||
* and return the result in an array.
|
||||
*
|
||||
* @access public
|
||||
* @param src string Source
|
||||
* @param typeof string Source type : NULL, FILE, CURL.
|
||||
* @param encoding string Encoding type.
|
||||
* @return array
|
||||
*/
|
||||
function parse ( $src, $typeof = 'FILE', $encoding = 'UTF-8' ) {
|
||||
|
||||
// ini;
|
||||
// (re)set array;
|
||||
$this->pOut = array();
|
||||
$this->parser = xml_parser_create();
|
||||
|
||||
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
|
||||
xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, $encoding);
|
||||
|
||||
xml_set_object($this->parser, $this);
|
||||
xml_set_element_handler($this->parser, 'startHandler', 'endHandler');
|
||||
xml_set_character_data_handler($this->parser, 'contentHandler');
|
||||
|
||||
if(empty($src))
|
||||
trigger_error('Source could not be empty.', E_USER_ERROR);
|
||||
|
||||
// format source;
|
||||
if($typeof == NULL)
|
||||
$data = $src;
|
||||
elseif($typeof == 'FILE') {
|
||||
$fop = fopen($src, 'r');
|
||||
$data = null;
|
||||
while(!feof($fop))
|
||||
$data .= fread($fop, 1024);
|
||||
fclose($fop);
|
||||
function xml2array($url, $get_attributes = 1, $priority = 'tag')
|
||||
{
|
||||
$contents = "";
|
||||
if (!function_exists('xml_parser_create'))
|
||||
{
|
||||
return array ();
|
||||
}
|
||||
elseif($typeof == 'CURL') {
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_URL, $src);
|
||||
curl_setopt($curl, CURLOPT_HEADER, 0);
|
||||
$data = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
$parser = xml_parser_create('');
|
||||
if (!($fp = @ fopen($url, 'rb')))
|
||||
{
|
||||
return array ();
|
||||
}
|
||||
while (!feof($fp))
|
||||
{
|
||||
$contents .= fread($fp, 8192);
|
||||
}
|
||||
fclose($fp);
|
||||
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");
|
||||
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
|
||||
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
|
||||
xml_parse_into_struct($parser, trim($contents), $xml_values);
|
||||
xml_parser_free($parser);
|
||||
if (!$xml_values)
|
||||
return; //Hmm...
|
||||
$xml_array = array ();
|
||||
$parents = array ();
|
||||
$opened_tags = array ();
|
||||
$arr = array ();
|
||||
$current = & $xml_array;
|
||||
$repeated_tag_index = array ();
|
||||
foreach ($xml_values as $data)
|
||||
{
|
||||
unset ($attributes, $value);
|
||||
extract($data);
|
||||
$result = array ();
|
||||
$attributes_data = array ();
|
||||
if (isset ($value))
|
||||
{
|
||||
if ($priority == 'tag')
|
||||
$result = $value;
|
||||
else
|
||||
$result['value'] = $value;
|
||||
}
|
||||
if (isset ($attributes) and $get_attributes)
|
||||
{
|
||||
foreach ($attributes as $attr => $val)
|
||||
{
|
||||
if ($priority == 'tag')
|
||||
$attributes_data[$attr] = $val;
|
||||
else
|
||||
$result['attr'][$attr] = $val; //Set all the attributes in a array called 'attr'
|
||||
}
|
||||
}
|
||||
if ($type == "open")
|
||||
{
|
||||
$parent[$level -1] = & $current;
|
||||
if (!is_array($current) or (!in_array($tag, array_keys($current))))
|
||||
{
|
||||
$current[$tag] = $result;
|
||||
if ($attributes_data)
|
||||
$current[$tag . '_attr'] = $attributes_data;
|
||||
$repeated_tag_index[$tag . '_' . $level] = 1;
|
||||
$current = & $current[$tag];
|
||||
}
|
||||
else
|
||||
return trigger_error('Xml parser need data.', E_USER_ERROR);
|
||||
|
||||
// parse $data;
|
||||
$parse = xml_parse($this->parser, $data);
|
||||
if(!$parse)
|
||||
return trigger_error('XML Error : %s at line %d.', E_USER_ERROR,
|
||||
array(xml_error_string(xml_get_error_code($this->parser)),
|
||||
xml_get_current_line_number($this->parser)));
|
||||
|
||||
// destroy parser;
|
||||
xml_parser_free($this->parser);
|
||||
|
||||
// unset extra vars;
|
||||
unset($data,
|
||||
$this->track,
|
||||
$this->tmpLevel);
|
||||
|
||||
// remove global tag and return the result;
|
||||
return $this->pOut[0][key($this->pOut[0])];
|
||||
{
|
||||
if (isset ($current[$tag][0]))
|
||||
{
|
||||
$current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
|
||||
$repeated_tag_index[$tag . '_' . $level]++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* startHandler
|
||||
* Manage the open tag, and these attributs by callback.
|
||||
* The purpose is to create a pointer : {{int ptr}}.
|
||||
* If the pointer exists, we have a multi-tag situation.
|
||||
* Tag name is stocked like : '<tag>'
|
||||
* Attributs is stocked like : '<tag>-ATTR'
|
||||
* Return true but built $this->pOut.
|
||||
*
|
||||
* @access private
|
||||
* @param parser resource Parser resource.
|
||||
* @param tag string Tag name.
|
||||
* @param attr array Attribut.
|
||||
* @return bool
|
||||
*/
|
||||
function startHandler ( $parser, $tag, $attr ) {
|
||||
|
||||
// built $this->track;
|
||||
$this->track[] = $tag;
|
||||
// place pointer to the end;
|
||||
end($this->track);
|
||||
// temp level;
|
||||
$this->tmpLevel = key($this->track);
|
||||
|
||||
// built attrLevel into $this->tmpAttrLevel
|
||||
if(isset($this->tmpAttrLevel[$this->tmpLevel]['attrLevel']))
|
||||
$this->tmpAttrLevel[$this->tmpLevel]['attrLevel']++;
|
||||
|
||||
// built $this->pOut;
|
||||
if(!isset($this->pOut[key($this->track)][$tag])) {
|
||||
$this->pOut[key($this->track)][$tag] = '{{'.key($this->track).'}}';
|
||||
|
||||
if(!isset($this->tmpAttrLevel[$this->tmpLevel]['attrLevel']))
|
||||
$this->tmpAttrLevel[$this->tmpLevel]['attrLevel'] = 0;
|
||||
}
|
||||
|
||||
// built attributs;
|
||||
if(!empty($attr)) {
|
||||
|
||||
$this->tmpAttrLevel[$this->tmpLevel][] = $this->tmpAttrLevel[$this->tmpLevel]['attrLevel'];
|
||||
end($this->tmpAttrLevel[$this->tmpLevel]);
|
||||
|
||||
// it's the first attribut;
|
||||
if(!isset($this->pOut[key($this->track)][$tag.'-ATTR']))
|
||||
$this->pOut[key($this->track)][$tag.'-ATTR'] = $attr;
|
||||
|
||||
// or it's not the first;
|
||||
else {
|
||||
// so it's the second;
|
||||
if(!prev($this->tmpAttrLevel[$this->tmpLevel])) {
|
||||
$this->pOut[key($this->track)][$tag.'-ATTR'] = array(
|
||||
current($this->tmpAttrLevel[$this->tmpLevel]) => $this->pOut[key($this->track)][$tag.'-ATTR'],
|
||||
next($this->tmpAttrLevel[$this->tmpLevel]) => $attr
|
||||
);
|
||||
}
|
||||
// or one other;
|
||||
else
|
||||
$this->pOut[key($this->track)][$tag.'-ATTR'][$this->tmpAttrLevel[$this->tmpLevel]['attrLevel']] = $attr;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* contentHandler
|
||||
* Detect the pointer, or the multi-tag by callback.
|
||||
* If we have a pointer, the method replaces this pointer by the content.
|
||||
* Else we have a multi-tag, the method add a element to this array.
|
||||
* Return true but built $this->pOut.
|
||||
*
|
||||
* @access private
|
||||
* @param parser resource Parser resource.
|
||||
* @param contentHandler string Tag content.
|
||||
* @return bool
|
||||
*/
|
||||
function contentHandler ( $parser, $contentHandler ) {
|
||||
|
||||
// remove all spaces;
|
||||
if(!preg_match('#^\\\\s*$#', $contentHandler)) {
|
||||
|
||||
// $contentHandler is a string;
|
||||
if(is_string($this->pOut[key($this->track)][current($this->track)])) {
|
||||
|
||||
// then $contentHandler is a pointer : {{int ptr}} case 1;
|
||||
if(preg_match('#{{([0-9]+)}}#', $this->pOut[key($this->track)][current($this->track)]))
|
||||
$this->pOut[key($this->track)][current($this->track)] = $contentHandler;
|
||||
|
||||
// or then $contentHandler is a multi-tag content case 2;
|
||||
else {
|
||||
$this->pOut[key($this->track)][current($this->track)] = array(
|
||||
0 => $this->pOut[key($this->track)][current($this->track)],
|
||||
1 => $contentHandler
|
||||
{
|
||||
$current[$tag] = array (
|
||||
$current[$tag],
|
||||
$result
|
||||
);
|
||||
$repeated_tag_index[$tag . '_' . $level] = 2;
|
||||
if (isset ($current[$tag . '_attr']))
|
||||
{
|
||||
$current[$tag]['0_attr'] = $current[$tag . '_attr'];
|
||||
unset ($current[$tag . '_attr']);
|
||||
}
|
||||
}
|
||||
// or $contentHandler is an array;
|
||||
else {
|
||||
|
||||
// then $contentHandler is the multi-tag array case 1;
|
||||
if(isset($this->pOut[key($this->track)][current($this->track)][0]))
|
||||
$this->pOut[key($this->track)][current($this->track)][] = $contentHandler;
|
||||
|
||||
// or then $contentHandler is a node-tag case 2;
|
||||
$last_item_index = $repeated_tag_index[$tag . '_' . $level] - 1;
|
||||
$current = & $current[$tag][$last_item_index];
|
||||
}
|
||||
}
|
||||
elseif ($type == "complete")
|
||||
{
|
||||
if (!isset ($current[$tag]))
|
||||
{
|
||||
$current[$tag] = $result;
|
||||
$repeated_tag_index[$tag . '_' . $level] = 1;
|
||||
if ($priority == 'tag' and $attributes_data)
|
||||
$current[$tag . '_attr'] = $attributes_data;
|
||||
}
|
||||
else
|
||||
$this->pOut[key($this->track)][current($this->track)] = array(
|
||||
0 => $this->pOut[key($this->track)][current($this->track)],
|
||||
1 => $contentHandler
|
||||
);
|
||||
{
|
||||
if (isset ($current[$tag][0]) and is_array($current[$tag]))
|
||||
{
|
||||
$current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
|
||||
if ($priority == 'tag' and $get_attributes and $attributes_data)
|
||||
{
|
||||
$current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
|
||||
}
|
||||
|
||||
$repeated_tag_index[$tag . '_' . $level]++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* endHandler
|
||||
* Detect the last pointer by callback.
|
||||
* Move the last tags block up.
|
||||
* And reset some temp variables.
|
||||
* Return true but built $this->pOut.
|
||||
*
|
||||
* @access private
|
||||
* @param parser resource Parser resource.
|
||||
* @param tag string Tag name.
|
||||
* @return bool
|
||||
*/
|
||||
function endHandler ( $parser, $tag ) {
|
||||
|
||||
// if level--;
|
||||
if(key($this->track) == $this->tmpLevel-1) {
|
||||
// search up tag;
|
||||
// use array_keys if an empty tag exists (taking the last tag);
|
||||
|
||||
// if it's a normal framaset;
|
||||
$keyBack = array_keys($this->pOut[key($this->track)], '{{'.key($this->track).'}}');
|
||||
$count = count($keyBack);
|
||||
|
||||
if($count != 0) {
|
||||
$keyBack = $keyBack[$count-1];
|
||||
// move this level up;
|
||||
$this->pOut[key($this->track)][$keyBack] = $this->pOut[key($this->track)+1];
|
||||
}
|
||||
|
||||
// if we have a multi-tag framaset ($count == 0);
|
||||
else {
|
||||
// if place is set;
|
||||
if(isset($this->pOut[key($this->track)][current($this->track)][0])) {
|
||||
|
||||
// if it's a string, we built an array;
|
||||
if(is_string($this->pOut[key($this->track)][current($this->track)]))
|
||||
$this->pOut[key($this->track)][current($this->track)] = array(
|
||||
0 => $this->pOut[key($this->track)][current($this->track)],
|
||||
1 => $this->pOut[key($this->track)+1]
|
||||
);
|
||||
|
||||
// else add an index into the array;
|
||||
else
|
||||
$this->pOut[key($this->track)][current($this->track)][] = $this->pOut[key($this->track)+1];
|
||||
}
|
||||
// else set the place;
|
||||
else
|
||||
$this->pOut[key($this->track)][current($this->track)] = array(
|
||||
0 => $this->pOut[key($this->track)][current($this->track)],
|
||||
1 => $this->pOut[key($this->track)+1]
|
||||
{
|
||||
$current[$tag] = array (
|
||||
$current[$tag],
|
||||
$result
|
||||
);
|
||||
$repeated_tag_index[$tag . '_' . $level] = 1;
|
||||
if ($priority == 'tag' and $get_attributes)
|
||||
{
|
||||
if (isset ($current[$tag . '_attr']))
|
||||
{
|
||||
$current[$tag]['0_attr'] = $current[$tag . '_attr'];
|
||||
unset ($current[$tag . '_attr']);
|
||||
}
|
||||
|
||||
// kick $this->pOut level out;
|
||||
array_pop($this->pOut);
|
||||
end($this->pOut);
|
||||
}
|
||||
|
||||
// re-temp level;
|
||||
$this->tmpLevel = key($this->track);
|
||||
|
||||
while(isset($this->tmpAttrLevel[$this->tmpLevel+1]))
|
||||
array_pop($this->tmpAttrLevel);
|
||||
|
||||
// kick $this->track level out;
|
||||
array_pop($this->track);
|
||||
end($this->track);
|
||||
|
||||
return true;
|
||||
if ($attributes_data)
|
||||
{
|
||||
$current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
|
||||
}
|
||||
}
|
||||
$repeated_tag_index[$tag . '_' . $level]++; //0 and 1 index is already taken
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($type == 'close')
|
||||
{
|
||||
$current = & $parent[$level -1];
|
||||
}
|
||||
}
|
||||
return ($xml_array);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php global $session;
|
||||
/**
|
||||
* Project: BeCast WebEngine - simple site engine
|
||||
* File: /modules/news/editcategory.apnl.php
|
||||
|
@ -127,24 +127,24 @@ class editcategory_news_panel extends admin_module{
|
|||
$panel->title="Vorhandene Kategorien";
|
||||
$panel->content.="<table class=\"sortable\" width=\"90%\" cellspacing=\"2\">
|
||||
<tr>
|
||||
<th align=\"center\">ID</th>
|
||||
<th align=\"center\">Name</th>
|
||||
<th align=\"center\">Bild</th>
|
||||
<th align=\"center\">Aktiv</th>
|
||||
<th class=\"nosort sortcol\" align=\"center\" width=\"18%\">Aktionen</th>
|
||||
<th style=\"text-align='center';\">ID</th>
|
||||
<th style=\"text-align='center';\">Name</th>
|
||||
<th style=\"text-align='center';\">Bild</th>
|
||||
<th style=\"text-align='center';\">Aktiv</th>
|
||||
<th class=\"nosort sortcol\" style=\"text-align='center';\" width=\"18%\">Aktionen</th>
|
||||
</tr>";
|
||||
if(!empty($articles)){
|
||||
foreach($articles as $u){
|
||||
$panel->content.="<tr>
|
||||
<td align=\"center\">".$u["id"]."</td>
|
||||
<td align=\"center\">".$u["name"]."</td>
|
||||
<td align=\"center\">".$u["picture"]."</td>";
|
||||
<td style=\"text-align='center';\">".$u["id"]."</td>
|
||||
<td style=\"text-align='center';\">".$u["name"]."</td>
|
||||
<td style=\"text-align='center';\">".$u["picture"]."</td>";
|
||||
if($u["active"]=="true"){
|
||||
$panel->content.="<td align=\"center\">Ja</td>";
|
||||
$panel->content.="<td style=\"text-align='center';\">Ja</td>";
|
||||
}else{
|
||||
$panel->content.="<td align=\"center\">Nein</td>";
|
||||
$panel->content.="<td style=\"text-align='center';\">Nein</td>";
|
||||
}
|
||||
$panel->content.="<td align=\"center\"><a onclick=\"return confirmLink(this, 'Willst du wirklich die Kategorie ".$u["categoryname"]." löschen? ')\" href=\"".$config["path"]."/admin/index.php?panel=editcategory_news&action=delete&id=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/delete.png\" /></a> <a href=\"".$config["path"]."/admin/index.php?panel=editcategory_news&action=edit&id=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/wrench.png\" /></a></td>
|
||||
$panel->content.="<td style=\"text-align='center';\"><a onclick=\"return confirmLink(this, 'Willst du wirklich die Kategorie ".$u["categoryname"]." löschen? ')\" href=\"".$config["path"]."/admin/index.php?panel=editcategory_news&action=delete&id=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/delete.png\" /></a> <a href=\"".$config["path"]."/admin/index.php?panel=editcategory_news&action=edit&id=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/wrench.png\" /></a></td>
|
||||
</tr>";
|
||||
}
|
||||
}else{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue