2025-06-20 19:10:23 +02:00
< ? php
/**
* Project : BeCast WebEngine - simple site engine
* File : / modules / news / edit . apnl . php
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2.1 of the License , or ( at your option ) any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*
* @ link http :// www . becast . at
* @ copyright 2009 becast . at
* @ author Bernhard Jaud < bernhard at becast dot at >
* @ package BeCast WebEngine core
* @ license http :// opensource . org / licenses / gpl - license . php GNU Public License
2025-06-23 19:45:07 +02:00
* @ version $Id $
2025-06-20 19:10:23 +02:00
*/
2025-06-23 19:45:07 +02:00
If ( ! defined ( 'IN_BCWE_ADMIN' )) {
2025-06-20 19:10:23 +02:00
die ( 'Dieses Script kann nicht ausserhalb des Frameworks laufen!' );
}
$session -> page_begin ( 'edit News' , True );
class edit_news_panel extends admin_module {
function output (){
global $config , $db , $panel , $session , $admin ;
$fail = FALSE ;
if ( isset ( $_POST [ 'send' ]) && $_POST [ 'send' ] == 1 ){
if ( isset ( $_POST [ 'id' ]) && $_POST [ 'id' ] != '' || isset ( $_POST [ 'text' ]) && $_POST [ 'text' ] != '' || isset ( $_POST [ 'title' ]) && $_POST [ 'title' ] != '' ){
$id = intval ( $_POST [ 'id' ]);
$title = $db -> escape ( $_POST [ 'title' ]);
$db -> query ( " UPDATE ` " . $config [ 'prefix' ] . " news` SET `text`=' " . $db -> escape ( $_POST [ 'text' ]) . " ',`category`=' " . intval ( $_POST [ 'category' ]) . " ',`title`=' " . $title . " ',`active`=' " . $_POST [ 'active' ] . " ' WHERE `id`=' " . $id . " ' " );
$panel -> admin_message ( 'Danke' , 'News erfolgreich geändert!' , TRUE , 'edit_news' );
} else {
$fail = '<span style="text-align: center; color: red;">Du musst alle Felder ausfüllen!</span>' ;
}
} elseif ( isset ( $_GET [ 'id' ]) && $_GET [ 'id' ] != '' ){
if ( $_GET [ 'action' ] == 'edit' ){
$result = $db -> query ( " SELECT * FROM " . $config [ 'prefix' ] . " news WHERE id=' " . intval ( $_GET [ 'id' ]) . " ' " );
$_POST = $db -> fetch_array ( $result );
/* $resultna = $db -> query ( " SELECT id,name FROM " . $config [ " prefix " ] . " menue " );
while ( $rowa = $db -> fetch_array ( $resultna )){
$resultn = $db -> query ( " SELECT m_id FROM " . $config [ " prefix " ] . " article_menue WHERE a_id=' " . intval ( $_GET [ 'id' ]) . " ' and m_id=' " . $rowa [ " id " ] . " ' " );
if ( $db -> num_rows ( $resultn ) >= 1 ){
$rowa [ " checked " ] = " checked= \" checked \" " ;
}
$navs [] = $rowa ;
} */
$panel -> title = 'News editieren' ;
$panel -> form ( array ( 'action' => $config [ 'path' ] . '/admin/index.php?panel=edit_news' ));
if ( $fail ){
$panel -> content .= $fail ;
}
$panel -> content .= '<h3>Titel:</h3>' ;
$panel -> field ( array ( 'name' => 'title' , 'typ' => 'text' , 'value' => $_POST [ 'title' ]));
$panel -> content .= '<h3>Kategorie:</h3>' ;
$resultc = $db -> query ( " SELECT `id`,`name` FROM ` " . $config [ 'prefix' ] . " news_category` WHERE `active`='true' " );
$karray [ 'Keine' ] = '' ;
while ( $row = $db -> fetch_array ( $resultc )){
$karray [ $row [ 'name' ]] = $row [ 'id' ];
}
$panel -> select ( $karray , $_POST [ 'category' ], 'category' );
$panel -> content .= '<h3>Text:</h3>' ;
$panel -> textarea ( array ( 'name' => 'text' , 'value' => $_POST [ 'text' ], 'rows' => '30' , 'cols' => '80' ), 'class="mceEditor"' );
$panel -> content .= '<h3>Aktiv:</h3>' ;
$panel -> select ( array ( 'Nein' => 'false' , 'Ja' => 'true' ), $_POST [ 'active' ], 'active' );
$panel -> content .= '<br />' ;
$panel -> field ( array ( 'name' => 'send' , 'typ' => 'hidden' , 'value' => '1' ));
$panel -> field ( array ( 'name' => 'id' , 'typ' => 'hidden' , 'value' => $_GET [ 'id' ]));
$panel -> content .= '<br />' ;
$panel -> submit ();
$panel -> formClose ();
} elseif ( $_GET [ 'action' ] == 'delete' && $_GET [ 'id' ]){
$db -> query ( " DELETE FROM ` " . $config [ 'prefix' ] . " news` WHERE `id`=' " . intval ( $_GET [ 'id' ]) . " ' " );
$panel -> admin_message ( 'News gelöscht!' , 'Die News wurden erfolgreich gelöscht.' , True , 'edit_news' , 3 );
}
} else {
$result = $db -> query ( " SELECT a.`title`,a.`id`,a.`active`,a.`date`,c.`name`,u.`username` FROM ` " . $config [ 'prefix' ] . " news` a LEFT JOIN ` " . $config [ 'prefix' ] . " news_category` c ON a.`category`=c.`id` LEFT JOIN ` " . $config [ 'prefix' ] . " users` u on a.`author`=u.`uid` " ) or die ( $db -> error ());
while ( $row = $db -> fetch_array ( $result , $db -> ASSOC )){
$row [ 'dates' ] = date ( 'd.m.Y' , $row [ 'date' ]);
$news [] = $row ;
}
$panel -> title = 'Vorhandene Artikel' ;
$panel -> content .= ' < table class = " sortable " width = " 90% " cellspacing = " 2 " >
< tr >
< th align = " center " > ID </ th >
< th align = " center " > Name </ th >
< th align = " center " > Kategorien </ th >
< th align = " center " > Aktiv </ th >
< th align = " center " > User </ th >
< th class = " nosort sortcol " align = " center " width = " 18% " > Aktionen </ th >
</ tr > ' ;
if ( ! empty ( $news )){
foreach ( $news as $u ){
if ( $u [ 'active' ] == 'true' ){
$u [ 'a' ] = 'Ja' ;
} else {
$u [ 'a' ] = 'Nein' ;
}
$panel -> content .= ' < tr >
< td align = " center " > '.$u[' id '].' </ td >
< td align = " center " > '.$u[' title '].' </ td >
< td align = " center " > '.$u[' name '].' </ td >
< td align = " center " > '.$u[' a '].' </ td >
< td align = " center " > '.$u[' username '].' </ td > ' ;
$panel -> content .= '<td align="center"><a onclick="return confirmLink(this, "Willst du wirklich den News ' . $u [ 'title' ] . ' löschen? ")" href="' . $config [ 'path' ] . '/admin/index.php?panel=edit_news&action=delete&id=' . $u [ 'id' ] . '"><img src="' . $config [ 'path' ] . '/admin/images/icons/delete.png" /></a> <a href="' . $config [ 'path' ] . '/admin/index.php?panel=edit_news&action=edit&id=' . $u [ 'id' ] . '"><img src="' . $config [ 'path' ] . ' / admin / images / icons / wrench . png " /></a></td>
</ tr > ' ;
}
} else {
$panel -> content .= ' < tr >
< td align = " center " colspan = " 7 " > Keine News vorhanden .</ td >
</ tr > ' ;
}
$panel -> content .= '</table><br />' ;
}
}
function meta (){
global $config ;
$meta = " <script type= \" text/javascript \" src= \" " . $config [ " path " ] . " /js/jquery/jquery.min.js \" ></script>
< script type = \ " text/javascript \" >
$ ( document ) . ready ( function ()
{
$ ( \ " #url \" ).blur(function()
{
//remove all the class add the messagebox classes and start fading
$ ( \ " #msgbox \" ).removeClass().addClass('messagebox').text('Warten...').fadeIn( \" slow \" );
//check the username exists or not from ajax
$ . post ( \ " ajax.php \" , { call:'url',url: $ (this).val() } ,function(data)
{
if ( data == 1 ) //if username not avaiable
{
$ ( \ " #msgbox \" ).fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$ ( this ) . html ( 'Url vergeben' ) . addClass ( 'messageboxerror' ) . fadeTo ( 900 , 1 );
});
}
else
{
$ ( \ " #msgbox \" ).fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$ ( this ) . html ( '' ) . removeClass () . fadeTo ( 900 , 1 );
});
}
});
});
});
</ script > " ;
$meta .= '<script type="text/javascript" src="' . $config [ " path " ] . ' / js / scriptaculous / prototype . js " ></script>
< script src = " '. $config["path"] .'/js/fastinit.js " type = " text/javascript " >
</ script >
< script src = " '. $config["path"] .'/js/tablesort.js " type = " text/javascript " >
</ script > ' ;
$meta .= ' < script type = " text/javascript " >
function confirmLink ( theLink , text )
{
// Confirmation is not required in the configuration file
// or browser is Opera (crappy js implementation)
if ( typeof ( window . opera ) != \ ' undefined\ ' ) {
return true ;
}
var is_confirmed = confirm ( text );
if ( is_confirmed ) {
if ( typeof ( theLink . href ) != \ ' undefined\ ' ) {
theLink . href += \ ' & is_js_confirmed = 1 \ ' ;
} else if ( typeof ( theLink . form ) != \ ' undefined\ ' ) {
theLink . form . action += \ ' ? is_js_confirmed = 1 \ ' ;
}
}
return is_confirmed ;
}
</ script > ' ;
$meta .= ' < script type = " text/javascript " src = " /thirdparty/tiny/tiny_mce_gzip.js " ></ script >
< script type = " text/javascript " >
tinyMCE_GZ . init ({
theme : " advanced " ,
mode : " textareas " ,
language : " de " ,
plugins : " table,advhr,advimage,advlink,insertdatetime,searchreplace " ,
disk_cache : true ,
debug : false
});
</ script >
< script type = " text/javascript " src = " /thirdparty/tiny/tiny_mce.js " ></ script >
< script type = " text/javascript " >
tinyMCE . init ({
theme : " advanced " ,
mode : " textareas " ,
language : " de " ,
plugins : " table,advhr,advimage,advlink,insertdatetime,searchreplace " ,
theme_advanced_disable : " styleselect,formatselect " ,
theme_advanced_buttons1_add : " fontselect,fontsizeselect " ,
theme_advanced_buttons2_add : " seperator,forecolor,removeformat,advhr " ,
theme_advanced_buttons3 : " tablecontrols,seperator " ,
theme_advanced_toolbar_location : " top " ,
theme_advanced_toolbar_align : " center " ,
remove_linebreaks : false ,
convert_urls : false ,
editor_selector : " mceEditor " ,
editor_deselector : " mceNoEditor "
});
</ script > ' ;
return $meta ;
}
}
?>