310 lines
13 KiB
PHP
310 lines
13 KiB
PHP
|
<?php
|
|||
|
if ( ! defined( 'DATALIFEENGINE' ) ) {
|
|||
|
die( "Hacking attempt!" );
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
include_once ROOT_DIR . '/language/' . $config['langs'] . '/table.lng';
|
|||
|
@include_once SYSTEM_DIR . '/data/tableconfig.php';
|
|||
|
|
|||
|
// ********************************************************************************
|
|||
|
// Do add orders
|
|||
|
// ********************************************************************************
|
|||
|
if( $_REQUEST['action'] == "view" ) {
|
|||
|
$id = intval( $_GET['id'] );
|
|||
|
$db->query( "SELECT * FROM " . PREFIX . "_table where id= '$id'" );
|
|||
|
$row = $db->get_row();
|
|||
|
|
|||
|
if( $db->num_rows() < 1 ) {
|
|||
|
msgbox( $lang['all_err_1'], "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" );
|
|||
|
} else {
|
|||
|
if ( $row['runame'] ){ $title = stripslashes($row['runame']); }
|
|||
|
elseif ( $row['enname'] ){ $title = stripslashes($row['enname']); }
|
|||
|
$metatags['title'] = '<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' . ' » ' . $title . ' » ' . $config['home_title'];
|
|||
|
|
|||
|
$inetlink = explode("\n", stripslashes($row['answer']));
|
|||
|
$inetlink_1 = '<a href="';
|
|||
|
$inetlink_2 = '" target="_blank"><b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></b></a>';
|
|||
|
$inetlink_s = $inetlink_1 . join("$inetlink_2 | $inetlink_1", $inetlink) . $inetlink_2;
|
|||
|
|
|||
|
$status = intval($row['status']);
|
|||
|
switch ($status) {
|
|||
|
case "0":
|
|||
|
$status = '<font color=\'#FF8000\'>' . $lang_table['edit_status_0'] . '</font>';
|
|||
|
$answer = '';
|
|||
|
break;
|
|||
|
case "1":
|
|||
|
$status = '<font color=\'#0000FF\'>' . $lang_table['edit_status_1'] . '</font>';
|
|||
|
$answer = '';
|
|||
|
break;
|
|||
|
case "2":
|
|||
|
$status = '<font color=\'#FF0000\'>' . $lang_table['edit_status_2'] . '</font>';
|
|||
|
if (empty($row['answer'])) {$answer = $lang_table['cause1'];
|
|||
|
} else {$answer = $lang_table['cause0'] . stripslashes($row['answer']); }
|
|||
|
break;
|
|||
|
case "3":
|
|||
|
$status = '<font color=\'#008000\'>' . $lang_table['edit_status_3'] . '</font>';
|
|||
|
$answer = "<br /><b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: </b>" . $inetlink_s;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
if ( $member_id['user_group'] == '1' OR $user_group[$member_id['user_group']]['admin_table'] OR $member_id['user_group'] == $table_config['grouplevel'] ) {
|
|||
|
$admin_url = '<a href="/' . $config['admin_path'] . '?mod=table&user_hash=' . $dle_login_hash . '&action=edit&id=' . intval($row['id']) . '" target="_blank">' . $lang_table['edit'] . '</a>';
|
|||
|
}
|
|||
|
|
|||
|
$tpl->load_template('tableview.tpl');
|
|||
|
$tpl->set( '{adminlink}', $admin_url );
|
|||
|
|
|||
|
$row['date'] = /*strtotime*/($row['date']);
|
|||
|
if (date(Ymd, $row['date']) == date(Ymd, $_TIME)) {
|
|||
|
|
|||
|
$tpl->set('{date}', $lang['time_heute'].langdate(" <20> H:i", $row['date']));
|
|||
|
|
|||
|
} elseif (date(Ymd, $row['date']) == date(Ymd, ($_TIME - 86400))) {
|
|||
|
|
|||
|
$tpl->set('{date}', $lang['time_gestern'].langdate(" <20> H:i", $row['date']));
|
|||
|
|
|||
|
} else {
|
|||
|
|
|||
|
$tpl->set('{date}', langdate($table_config['timestamp_active'], $row['date']));
|
|||
|
|
|||
|
}
|
|||
|
$tpl->set( '{id-orders}', $id );
|
|||
|
$tpl->set( '{autor}', "<a href=\"" . $config['http_home_url'] . "user/" . urlencode( stripslashes($row['autor']) ) . "/\">" .$row['autor']. "</a>" );
|
|||
|
|
|||
|
$tpl->set( '{runame}', stripslashes($row['runame']));
|
|||
|
$tpl->set( '{enname}', stripslashes($row['enname']));
|
|||
|
$tpl->set( '{category}', stripslashes($row['category']));
|
|||
|
$tpl->set( '{fileyear}', stripslashes($row['fileyear']));
|
|||
|
$tpl->set( '{status}', $status);
|
|||
|
$tpl->set( '{answer}', $answer);
|
|||
|
$tpl->set( '{editor}', "<a href=\"" . $config['http_home_url'] . "user/" . urlencode( stripslashes($row['editor']) ) . "/\">" .$row['editor']. "</a>" );
|
|||
|
|
|||
|
if( $row['editor'] ) {
|
|||
|
$tpl->set( '[editor]', "" );
|
|||
|
$tpl->set( '[/editor]', "" );
|
|||
|
} else {
|
|||
|
$tpl->set( '{editor}', "" );
|
|||
|
$tpl->set_block( "'\\[editor\\](.*?)\\[/editor\\]'si", "" );
|
|||
|
}
|
|||
|
|
|||
|
$tpl->compile( 'content' );
|
|||
|
$tpl->clear();
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
elseif ( $_REQUEST['action'] == "doadd" ) {
|
|||
|
|
|||
|
$metatags['title'] = $lang_table['description2'] . ' » ' . $config['home_title'];
|
|||
|
$timeweek = $_TIME - (intval($table_config['timeweek']) * 86400);
|
|||
|
|
|||
|
$row_doadd = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_table WHERE autor = '" . $member_id['name'] . "' AND date >'$timeweek' AND status != '2' AND status != '3'");
|
|||
|
if ($row_doadd['count'] >= 1) { $is_doadd = false; }
|
|||
|
else { $is_doadd = true; }
|
|||
|
|
|||
|
if (isset($_POST['send'])) {
|
|||
|
$stop = "";
|
|||
|
|
|||
|
$user_n = $db->safesql(trim($member_id['name']));
|
|||
|
$runame = $db->safesql(strip_tags(trim($_POST['runame'])));
|
|||
|
$enname = $db->safesql(strip_tags(trim($_POST['enname'])));
|
|||
|
$category = $db->safesql(strip_tags(trim($_POST['category'])));
|
|||
|
$fileyear = $db->safesql(strip_tags(trim($_POST['fileyear'])));
|
|||
|
$link = $db->safesql(strip_tags(trim($_POST['link'])));
|
|||
|
|
|||
|
if ( trim( $runame ) != "" or $runame ){ $name = $runame; }
|
|||
|
if ( trim( $enname ) != "" or $enname ){ $name = $enname; }
|
|||
|
if( !$name ){$stop .= $lang_table['err_name'];}
|
|||
|
|
|||
|
if ( trim( $category ) == "" or ! $category ) {$stop .= $lang_table['orders_err_category'];}
|
|||
|
if ( trim( $fileyear ) == "" or ! $fileyear ) {$stop .= $lang_table['err_year'];}
|
|||
|
if (!is_numeric($fileyear)) {$stop .= $lang_table['err_year_type'];}
|
|||
|
if( strlen( $runame ) > 40 ) {$stop .= '<li>' . $lang_table['orders_err_name'] . '</li>';}
|
|||
|
if( strlen( $fileyear ) > 4 ) {$stop .= '<li>' . $lang_table['orders_err_year'] . '</li>';}
|
|||
|
if( strlen( $category ) > 20 ) {$stop .= '<li>' . $lang_table['orders_err_category'] . '</li>';}
|
|||
|
|
|||
|
if (intval($table_config['auto_wrap'])) {
|
|||
|
$link = preg_split('((>)|(<))', $link, -1, PREG_SPLIT_DELIM_CAPTURE);
|
|||
|
$n = count($link);
|
|||
|
for ($i = 0; $i < $n; $i++) {
|
|||
|
if ($link[$i] == "<") {
|
|||
|
$i++;
|
|||
|
continue;
|
|||
|
}
|
|||
|
$link[$i] = preg_replace("#([^\s\n\r]{" . intval($table_config['auto_wrap']) . "})#i", "\\1<br />", $link[$i]);
|
|||
|
}
|
|||
|
$link = join("", $link);
|
|||
|
}
|
|||
|
|
|||
|
if ( $stop ) {
|
|||
|
msgbox($lang['all_err_1'], "<ul>" . $stop . "</ul><a href=\"javascript:history.go(-1)\">$lang[all_prev]</a>");
|
|||
|
} else {
|
|||
|
$db->query("INSERT INTO " . PREFIX . "_table SET date='$_TIME', autor='$user_n', runame='$runame', enname='$enname', fileyear='$fileyear', category='$category'");
|
|||
|
$cache->clear("toporders", $config['skin']);
|
|||
|
|
|||
|
if ( $table_config['msgs_adm'] == "yes" ) {
|
|||
|
$step = 0;
|
|||
|
$result = $db->query("SELECT user_id, name, email FROM " . USERPREFIX . "_users WHERE user_group = '$table_config[grouplevel]'");
|
|||
|
|
|||
|
$path = $config['http_home_url'];
|
|||
|
$subject = $lang_table['msgs_subject'];
|
|||
|
$user_from = $lang_table['msg_user_from'];
|
|||
|
$message .= $runame . " / " . $enname . " ({$fileyear})";
|
|||
|
|
|||
|
$user_n = "<a href=\"{$path}user/" . urlencode($user_n) . "/\"><strong>" . $user_n . "</strong></a>";
|
|||
|
|
|||
|
$table_config['msgs_type0'] = stripslashes( html_entity_decode( $table_config['msgs_type0'] ) );
|
|||
|
$table_config['msgs_type0'] = str_replace( "{%username_from%}", $user_n, $table_config['msgs_type0'] );
|
|||
|
$table_config['msgs_type0'] = str_replace( "{%category%}", $category, $table_config['msgs_type0'] );
|
|||
|
$table_config['msgs_type0'] = str_replace( "{%text%}", $message, $table_config['msgs_type0'] );
|
|||
|
$table_config['msgs_type0'] = str_replace( "{%date%}", date("d.m.Y H:i:s", $_TIME), $table_config['msgs_type0'] );
|
|||
|
$table_config['msgs_type0'] = str_replace( "{%ip%}", $_SERVER['REMOTE_ADDR'], $table_config['msgs_type0'] );
|
|||
|
|
|||
|
if ( $table_config['msgs_type'] == "0" ) {
|
|||
|
while ($row = $db->get_row($result)) {
|
|||
|
$db->query("INSERT INTO " . USERPREFIX . "_pm (subj, text, user, user_from, date, pm_read, folder) values ('$subject', '$table_config[msgs_type0]', '$row[user_id]', '$user_from', '$_TIME', 'no', 'inbox')");
|
|||
|
$db->query("UPDATE " . USERPREFIX . "_users set pm_all=pm_all+1, pm_unread=pm_unread+1 WHERE user_id='$row[user_id]'");
|
|||
|
$step++;
|
|||
|
}
|
|||
|
} else {
|
|||
|
//$recipient = $db->super_query( "SELECT email FROM " . USERPREFIX . "_users WHERE user_group = '$table_config[grouplevel]'" );
|
|||
|
include_once SYSTEM_DIR . '/classes/mail.class.php';
|
|||
|
$mail = new dle_mail( $config, true );
|
|||
|
$mail->from = $config['admin_mail'];
|
|||
|
|
|||
|
while ($recipient = $db->get_row($result)) {
|
|||
|
$mail->send( $recipient['email'], $subject, $table_config['msgs_type0'] );
|
|||
|
$step++;
|
|||
|
}
|
|||
|
if( $mail->send_error ) msgbox( $lang['all_info'], $mail->smtp_msg );
|
|||
|
else die(header("Location: " . $_SERVER['PHP_SELF'] . '?do=table'));
|
|||
|
}
|
|||
|
$db->free($result);
|
|||
|
}
|
|||
|
$db->free();
|
|||
|
die(header("Location: " . $_SERVER['PHP_SELF'] . '?do=table')); // commment line to Test $mail->send_error
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (!$is_logged) {
|
|||
|
msgbox($lang['all_err_1'], "$lang_table[not_logged]");
|
|||
|
} elseif ($is_doadd != true) {
|
|||
|
msgbox($lang['all_err_1'], "$lang_table[one_orders]");
|
|||
|
} else {
|
|||
|
$tpl->load_template('table.tpl');
|
|||
|
$tpl->set( '{description}', $lang_table['description2'] );
|
|||
|
$tpl->set_block( "'\\[doadd\\](.*?)\\[/doadd\\]'si", "" );
|
|||
|
$tpl->set( '[newadd]', "" );
|
|||
|
$tpl->set( '[/newadd]', "" );
|
|||
|
|
|||
|
$category_s = explode(",", stripslashes($table_config['category']));
|
|||
|
$category = "<select size=7 name=\"category\">\r\n";
|
|||
|
foreach ( $category_s as $value => $description ) {
|
|||
|
$category .= "<option value=\"$description\"";
|
|||
|
if( $selected == $description ) {
|
|||
|
$category .= " selected ";
|
|||
|
}
|
|||
|
$category .= ">$description</option>\n";
|
|||
|
}
|
|||
|
$category .= "</select>";
|
|||
|
|
|||
|
$tpl->set('{category}', $category);
|
|||
|
|
|||
|
$tpl->copy_template = "<form method=\"post\" name=\"frmMain\" action=\"\">\n" . $tpl->copy_template . "<input name=\"send\" type=\"hidden\" value=\"send\" /></form>";
|
|||
|
$tpl->compile('content');
|
|||
|
$tpl->clear();
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
$status = @$db->safesql( trim($_GET['status']));
|
|||
|
$ordstat = 0;
|
|||
|
$ordpage = '';
|
|||
|
$ordtitle = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|||
|
|
|||
|
if($status=='accepted'){
|
|||
|
$ordstat = 1;
|
|||
|
$ordtitle = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|||
|
$ordpage = 'accepted/';
|
|||
|
}elseif($status=='finished'){
|
|||
|
$ordstat = 3;
|
|||
|
$ordtitle = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|||
|
$ordpage = 'finished/';
|
|||
|
}elseif($status=='aborted'){
|
|||
|
$ordstat = 2;
|
|||
|
$ordtitle = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|||
|
$ordpage = 'aborted/';
|
|||
|
}
|
|||
|
|
|||
|
$metatags['title'] = $lang_table['description'] . ' » ' . $ordtitle . ' » ' . $config['home_title'];
|
|||
|
|
|||
|
$tpl->load_template( 'table.tpl' );
|
|||
|
$tpl->set( '{description}', $lang_table['description'] );
|
|||
|
$tpl->set( '[doadd]', "<a href=\"$PHP_SELF?do=table&action=doadd\">" );
|
|||
|
$tpl->set( '[/doadd]', "</a>" );
|
|||
|
$tpl->set_block( "'\\[newadd\\](.*?)\\[/newadd\\]'si", "" );
|
|||
|
$tpl->compile('content');
|
|||
|
$tpl->clear();
|
|||
|
|
|||
|
$limit = intval ( $table_config['orders_number'] );
|
|||
|
$sql_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_table where status=$ordstat");
|
|||
|
$count_all = $sql_count['count'];
|
|||
|
|
|||
|
$page = intval( $_REQUEST['cstart'] );
|
|||
|
$total = intval( ( ( $count_all - 1 ) / $limit ) + 1 );
|
|||
|
if( $page <= 0 ) $page = 1;
|
|||
|
if( $page > $total ) $page = $total;
|
|||
|
$start = $page * $limit - $limit;
|
|||
|
$i = $start;
|
|||
|
|
|||
|
$order_direction_by = ($table_config['orders_msort']) ? $table_config['orders_msort'] : "ASC";
|
|||
|
|
|||
|
$sql_select = "SELECT * FROM " . PREFIX . "_table where status=$ordstat ORDER BY date $order_direction_by LIMIT " . $start . "," . $limit;
|
|||
|
|
|||
|
$sql_result = $db->query($sql_select);
|
|||
|
|
|||
|
while ($row = $db->get_row()) {
|
|||
|
$i++;
|
|||
|
$status = intval($row['status']);
|
|||
|
switch ($status) {
|
|||
|
case "0":
|
|||
|
$status = '<font color=\'#FF8000\'>' . $lang_table['edit_status_0'] . '</font>';
|
|||
|
break;
|
|||
|
case "1":
|
|||
|
$status = '<font color=\'#0000FF\'>' . $lang_table['edit_status_1'] . '</font>';
|
|||
|
break;
|
|||
|
case "2":
|
|||
|
$status = '<font color=\'#FF0000\'>' . $lang_table['edit_status_2'] . '</font>';
|
|||
|
break;
|
|||
|
case "3":
|
|||
|
$status = '<font color=\'#008000\'>' . $lang_table['edit_status_3'] . '</font>';
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
if ( $member_id['user_group'] == '1' OR $user_group[$member_id['user_group']]['admin_table'] OR $member_id['user_group'] == $table_config['grouplevel'] ) {
|
|||
|
$admin_url = '<a href="/' . $config['admin_path'] . '?mod=table&user_hash=' . $dle_login_hash . '&action=edit&id=' . intval($row['id']) . '" target="_blank">' . $lang_table['edit'] . '</a>';
|
|||
|
}
|
|||
|
|
|||
|
$tpl->load_template('tableshow.tpl');
|
|||
|
$tpl->set( '{id-orders}', $i );
|
|||
|
$tpl->set( '{id-link}', intval($row['id']) );
|
|||
|
$tpl->set( '{adminlink}', $admin_url );
|
|||
|
|
|||
|
$row['date'] = /*strtotime*/($row['date']);
|
|||
|
if (date(Ymd, $row['date']) == date(Ymd, $_TIME)) {$tpl->set('{date}', $lang['time_heute'].langdate(" <20> H:i", $row['date']));
|
|||
|
} elseif (date(Ymd, $row['date']) == date(Ymd, ($_TIME - 86400))) {$tpl->set('{date}', $lang['time_gestern'].langdate(" <20> H:i", $row['date']));
|
|||
|
} else {$tpl->set('{date}', langdate($table_config['timestamp_active'], $row['date']));}
|
|||
|
|
|||
|
$tpl->set( '{autor}', stripslashes($row['autor']));
|
|||
|
$tpl->set( '{category}', stripslashes($row['category']));
|
|||
|
$tpl->set( '{status}', $status);
|
|||
|
|
|||
|
$tpl->set('{navigation}', "$navigation");
|
|||
|
$tpl->compile('content');
|
|||
|
$tpl->clear();
|
|||
|
}
|
|||
|
|
|||
|
$db->free();
|
|||
|
|
|||
|
$nav = "/orders/" . $ordpage . "page/{page}";
|
|||
|
CreateNavigation( $nav, $page, $total );
|
|||
|
}
|
|||
|
?>
|