Eğer adresbarda, /makaleler.php?cat_id=0 şeklindeyse "Birşeyler", /makaleler.php?cat_id=1 veya daha büyükse "Başka birşeyler" yazdırabilmem için html dosyasına nasıl bir şart eklemeliyim?
php dosyam:
- Kod: Tümünü seç
<?php
/**
*
* @package phpBB Makaleler MOD
* @author Kamahl www.phpbb3hacks.com
* @version 1.0.0
* @copyright (c) 2011 Kamahl www.phpbb3hacks.com
*
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include_once($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mods/makaleler');
if ($config['makaleler_disable'])
{
trigger_error($config['makaleler_disable_msg']);
}
if ( !$auth->acl_get('u_makaleler_view') )
{
($auth->acl_get('a_')) ? trigger_error('MAKALELER_PERM_VIEW_ADMIN') : trigger_error('MAKALELER_PERM_VIEW');
}
$action = request_var('action', '');
$article_id = request_var('article_id', 0);
$cat_id = request_var('cat_id', 0);
$comment_id = request_var('comment_id', 0);
$start = request_var('start', 0);
$archive = request_var('archive', '');
$search = utf8_normalize_nfc(request_var('search', '', true));
switch($action)
{
case '':
$pagination_url = append_sid("{$phpbb_root_path}makaleler.{$phpEx}");
if ($search)
{
$searchterm = '*' . strtolower($search) . '*';
if ($searchterm != '**')
{
$searchterm = str_replace('*', $db->any_char , $searchterm);
$searchterm = str_replace('?', $db->one_char , $searchterm);
}
$sql_where = ' WHERE ( LOWER(a.text) ' . $db->sql_like_expression($searchterm) . ' OR LOWER(a.title) ' . $db->sql_like_expression($searchterm) . ')';
$pagination_url = append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'search='.$search);
}
if ($archive)
{
$sql_where = ' WHERE a.archive_date = "' . $archive . '" ';
$pagination_url = append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'archive='.$archive);
}
if ($cat_id)
{
$sql_where = ' WHERE a.cat_id = ' . $cat_id . ' ';
$pagination_url = append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'cat_id='.$cat_id);
}
$sql = 'SELECT a.article_id, a.cat_id, a.author_id, a.title, a.text, a.time, a.views, a.comments, a.locked, a.bbcode_bitfield, a.bbcode_uid, c.name, u.username, u.user_colour
FROM ' . MAKALELER_ARTICLES_TABLE . ' a
LEFT JOIN ' . USERS_TABLE . ' u
ON u.user_id = a.author_id
LEFT JOIN ' . MAKALELER_CATS_TABLE . ' c
ON c.cat_id = a.cat_id
' . $sql_where . '
ORDER BY a.time DESC';
$result = $db->sql_query_limit($sql, 10, $start);
while ($row = $db->sql_fetchrow($result))
{
$row['text'] = trim_text($row['text'], $row['bbcode_uid'], $config['makaleler_max_chars'], $config['makaleler_max_par'], array(' ', "\n"), '...', $row['bbcode_bitfield'], true);
$row['bbcode_options'] = 7;
$row['text'] = generate_text_for_display($row['text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']);
$template->assign_block_vars('articles', array(
'CAT_NAME' => $row['name'],
'U_CAT' => append_sid("{$phpbb_root_path}makaleler.$phpEx", 'cat_id='.$row['cat_id']),
'AUTHOR' => get_username_string('full', $row['author_id'], $row['username'], $row['user_colour']),
'TITLE' => $row['title'],
'TEXT' => $row['text'],
'TIME' => $user->format_date($row['time']),
'VIEWS' => $row['views'],
'COMMENTS' => $row['comments'],
'LOCK_COMMENTS' => ($row['locked']) ? true : false,
'L_MAKALELER_COMMENTS' => ($row['comments'] == 1) ? $user->lang['MAKALELER_COMMENT'] : $user->lang['MAKALELER_COMMENTS'],
'U_MORE' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=view&article_id='.$row['article_id']),
'U_COMMENTS' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=view&article_id='.$row['article_id'].'#comments'),
));
}
$db->sql_freeresult($result);
// Pagination
$sql = 'SELECT COUNT(a.article_id) as total_articles
FROM ' . MAKALELER_ARTICLES_TABLE . ' a
' . $sql_where;
$db->sql_query($sql);
$total_articles = $db->sql_fetchfield('total_articles');
$db->sql_freeresult($result);
$template->assign_vars(array(
'PAGINATION' => generate_pagination($pagination_url, $total_articles, 10, $start),
'PAGE_NUMBER' => on_page($total_articles, 10, $start),
'TOTAL_ARTICLES' => ($total_articles == 1) ? $user->lang['MAKALELER_LIST_ARTICLE'] : sprintf($user->lang['MAKALELER_LIST_ARTICLES'], $total_articles),
));
// Page title and navigation
$page_title = $user->lang['MAKALELER_MAKALELER'];
$makaleler_page_name = $user->lang['MAKALELER_PAGEN'];
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MAKALELER_MAKALELER'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}"),
));
if ($search)
{
$page_title .= ' • ' . $user->lang['MAKALELER_SEARCH_FOR'].$search;
$makaleler_page_name = $user->lang['MAKALELER_SEARCH_FOR'].$search;
}
if ($archive)
{
$date = explode('-', $archive);
$month = return_month($date[1]);
$page_title .= ' • ' . $user->lang['MAKALELER_ARCHIVE_FOR'] . ' ' . $month . ' ' . $date[0];
$makaleler_page_name = $user->lang['MAKALELER_ARCHIVE_FOR'] . ' ' . $month . ' ' . $date[0];
}
if ($cat_id)
{
$sql = 'SELECT name
FROM ' . MAKALELER_CATS_TABLE . '
WHERE cat_id = ' . $cat_id;
$db->sql_query($sql);
$cat_name = $db->sql_fetchfield('name');
$db->sql_freeresult($result);
$page_title .= ' • ' . $cat_name;
$makaleler_page_name = $cat_name;
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $cat_name,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'cat_id='.$cat_id),
));
}
break;
case 'view':
if (!$article_id)
{
trigger_error('MAKALELER_NO_ARTICLE_SELECTED');
}
if ( !$auth->acl_get('u_makaleler_read') )
{
($auth->acl_get('a_')) ? trigger_error('MAKALELER_PERM_READ_ADMIN') : trigger_error('MAKALELER_PERM_READ');
}
$sql = 'SELECT a.cat_id, a.author_id, a.title, a.text, a.time, a.views, a.locked, c.name, a.bbcode_bitfield, a.bbcode_uid, a.locked, u.username, u.user_colour
FROM ' . MAKALELER_ARTICLES_TABLE . ' a
LEFT JOIN ' . USERS_TABLE . ' u
ON u.user_id = a.author_id
LEFT JOIN ' . MAKALELER_CATS_TABLE . ' c
ON c.cat_id = a.cat_id
WHERE a.article_id = ' . $article_id;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
if (!$db->sql_affectedrows())
{
trigger_error('MAKALELER_ARTICLE_NOT_EXIST');
}
// Update views count
$sql = 'UPDATE ' . MAKALELER_ARTICLES_TABLE . '
SET views = views +1
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
$row['bbcode_options'] = 7;
$row['text'] = generate_text_for_display($row['text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']);
// Template variables
$template->assign_vars(array(
'ARTICLE_CAT_NAME' => $row['name'],
'U_ARTICLE_CAT' => append_sid("{$phpbb_root_path}makaleler.$phpEx", 'cat_id='.$row['cat_id']),
'ARTICLE_AUTHOR' => get_username_string('full', $row['author_id'], $row['username'], $row['user_colour']),
'ARTICLE_TITLE' => $row['title'],
'ARTICLE_TEXT' => $row['text'],
'ARTICLE_TIME' => $user->format_date($row['time']),
'ARTICLE_VIEWS' => $row['views'],
'ARTICLE_LOCK_COMMENTS' => ($row['locked']) ? true : false,
'ARTICLE_CAN_ADD_COMMENT' => ( $auth->acl_get('u_makaleler_add_comments') || $auth->acl_get('a_') ) ? true : false,
'U_ARTICLE_COMMENTS' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=view&article_id='.$article_id.'#comments'),
'U_ARTICLE_COMMENT' => append_sid("{$phpbb_root_path}makaleler.$phpEx", 'action=add_comment&article_id='.$article_id),
'U_ARTICLE_EDIT' => ( $auth->acl_get('m_makaleler_edit_article') || $auth->acl_get('a_') || ( $auth->acl_get('u_makaleler_edit_own_article') && $user->data['user_id'] == $row['author_id'] ) ) ? append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=edit&article_id='.$article_id) : false,
'U_ARTICLE_DELETE' => ( $auth->acl_get('m_makaleler_delete_article') || $auth->acl_get('a_') || ( $auth->acl_get('u_makaleler_delete_own_article') && $user->data['user_id'] == $row['author_id'] ) ) ? append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=delete&cat_id='.$row['cat_id'].'&article_id='.$article_id) : false,
));
if (!$config['makaleler_comments_disable'])
{
include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$comment_order = ($config['makaleler_comments_chrono']) ? 'ASC' : 'DESC' ;
// Load comments
$sql = 'SELECT c.comment_id, c.author_id, c.text, c.time,
u.username, u.user_colour, u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, u.user_website,
u.user_regdate, u.user_allow_viewemail, u.user_email, u.user_allow_pm
FROM ' . MAKALELER_COMMENTS_TABLE . ' c
LEFT JOIN ' . USERS_TABLE . ' u
ON u.user_id = c.author_id
WHERE c.article_id = ' . $article_id . '
ORDER BY c.time ' . $comment_order;
$result = $db->sql_query_limit($sql, 10, $start);
while($comment = $db->sql_fetchrow($result))
{
$comment['bbcode_options'] = 6;
$comment['text'] = generate_text_for_display($comment['text'], '', '', $comment['bbcode_options']);
$template->assign_block_vars('comments', array(
'USERNAME' => get_username_string('no_profile', $comment['author_id'], $comment['username'], $comment['user_colour']),
'U_USER_PROFILE' => get_username_string('profile', $comment['author_id'], $comment['username'], $comment['user_colour']),
'AVATAR' => get_user_avatar($comment['user_avatar'], $comment['user_avatar_type'], $comment['user_avatar_width'], $comment['user_avatar_height']),
'REGDATE' => $user->format_date($comment['user_regdate']),
'U_EMAIL' => ( (!empty($comment['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_user') ) ? ( ($config['board_email_form'] && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=email&u=' . $comment['author_id']) : (($config['board_hide_emails'] && !$auth->acl_get('a_user')) ? '' : 'mailto:' . $comment['user_email']) ) : '',
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($comment['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&u=' . $comment['author_id']) : '',
'U_WWW' => $comment['user_website'],
'TEXT' => $comment['text'],
'TIME' => $user->format_date($comment['time']),
'U_DELETE' => ( $auth->acl_get('m_makaleler_delete_comment') || $auth->acl_get('a_') || ( $auth->acl_get('u_makaleler_delete_own_comment') && $user->data['user_id'] == $comment['author_id'] ) ) ? append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=delete_comment&article_id='.$article_id.'&comment_id='.$comment['comment_id']) : false,
));
}
// Pagination
$pagination_url = append_sid("{$phpbb_root_path}makaleler.$phpEx", 'action=view&article_id='.$article_id);
$sql = 'SELECT COUNT(c.comment_id) as total_comments
FROM ' . MAKALELER_COMMENTS_TABLE . ' c
WHERE c.article_id = ' . $article_id;
$db->sql_query($sql);
$total_comments = $db->sql_fetchfield('total_comments');
$db->sql_freeresult($result);
$template->assign_vars(array(
'PAGINATION' => generate_pagination($pagination_url, $total_comments, 10, $start),
'PAGE_NUMBER' => on_page($total_comments, 10, $start),
'TOTAL_COMMENTS' => ($total_comments == 1) ? $user->lang['MAKALELER_LIST_COMMENT'] : sprintf($user->lang['MAKALELER_LIST_COMMENTS'], $total_comments),
));
}
// Page title and navigation
$page_title = $user->lang['MAKALELER_MAKALELER'] . ' • ' . $row['name'] . ' • ' . $row['title'];
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MAKALELER_MAKALELER'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}"),
));
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $row['name'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'cat_id='.$row['cat_id']),
));
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $row['title'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=view&article_id='.$article_id),
));
break;
case 'add':
if ($user->data['user_id'] == ANONYMOUS)
{
login_box();
}
if ( !$auth->acl_get('u_makaleler_add_articles') && !$auth->acl_get('a_') )
{
trigger_error('MAKALELER_PERM_ADD');
}
$user->add_lang('posting');
include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);
display_custom_bbcodes();
generate_smilies('inline', 0);
$submit = (isset($_POST['submit'])) ? true : false;
if ($submit)
{
$title = utf8_normalize_nfc(request_var('title', '', true));
$text = utf8_normalize_nfc(request_var('text', '', true));
$cat_id = request_var('cat_id', 0);
$locked = request_var('locked', 0);
$uid = $bitfield = $options = '';
$error = array();
if ( !$title || !$text || !$cat_id )
{
$error[] = $user->lang['MAKALELER_MISSING_ERROR'];
}
$template->assign_vars(array(
'ARTICLE_CAT_ID' => $cat_id,
'ARTICLE_TITLE' => $title,
'ARTICLE_TEXT' => $text,
'ARTICLE_LOCKED' => $locked,
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
));
if(!sizeof($error))
{
generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
$sql_ary = (array(
'cat_id' => $cat_id,
'author_id' => $user->data['user_id'],
'title' => $title,
'text' => $text,
'time' => time(),
'locked' => $locked,
'archive_date' => date('Y-m'),
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
));
$sql = 'INSERT INTO ' . MAKALELER_ARTICLES_TABLE . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
$sql = 'SELECT article_id
FROM ' . MAKALELER_ARTICLES_TABLE . '
ORDER BY article_id DESC';
$db->sql_query_limit($sql, 1);
$article_id = $db->sql_fetchfield('article_id');
// Update articles count
$sql = 'UPDATE ' . MAKALELER_CATS_TABLE . '
SET articles = articles +1
WHERE cat_id = ' . $cat_id;
$db->sql_query($sql);
meta_refresh(3, append_sid("{$phpbb_root_path}makaleler.$phpEx", 'action=view&article_id='.$article_id));
$message = $user->lang['MAKALELER_ARTICLE_CREATED_SUCCESS'] . '<br /><br />' . sprintf($user->lang['MAKALELER_VIEW_ARTICLE'], '<a href="' . $phpbb_root_path.'makaleler.'.$phpEx.'?action=view&article_id='.$article_id . '">', '</a>');
trigger_error($message);
}
}
$template->assign_vars(array(
'U_ACTION' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=add'),
'S_SHOW_SMILEY_LINK' => true,
'S_SMILIES_ALLOWED' => true,
'S_BBCODE_ALLOWED' => true,
'S_LINKS_ALLOWED' => true,
'S_BBCODE_IMG' => true,
'S_BBCODE_QUOTE' => true,
'U_MORE_SMILIES' => append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies'),
));
// Page title and navigation
$page_title = $user->lang['MAKALELER_MAKALELER'] . ' • ' . $user->lang['MAKALELER_NEW_ARTICLE'];
$makaleler_page_name = $user->lang['MAKALELER_NEW_ARTICLE'];
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MAKALELER_MAKALELER'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}"),
));
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MAKALELER_NEW_ARTICLE'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=add'),
));
break;
case 'edit':
if (!$article_id)
{
trigger_error('MAKALELER_NO_ARTICLE_SELECTED');
}
if ($user->data['user_id'] == ANONYMOUS)
{
login_box();
}
$sql = 'SELECT cat_id, author_id, title, text, bbcode_uid, locked
FROM ' . MAKALELER_ARTICLES_TABLE . '
WHERE article_id = ' . $article_id;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
if (!$db->sql_affectedrows())
{
trigger_error('MAKALELER_ARTICLE_NOT_EXIST');
}
if ( !$auth->acl_get('m_makaleler_edit_article') && $auth->acl_get('a_') && !($auth->acl_get('u_makaleler_edit_own_article') && $user->data['user_id'] == $row['author_id'] ) )
{
trigger_error('MAKALELER_PERM_EDIT');
}
$user->add_lang('posting');
include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);
display_custom_bbcodes();
generate_smilies('inline', 0);
decode_message($row['text'], $row['bbcode_uid']);
$template->assign_vars(array(
'ARTICLE_CAT_ID' => $row['cat_id'],
'ARTICLE_TITLE' => $row['title'],
'ARTICLE_TEXT' => $row['text'],
'ARTICLE_LOCKED' => $row['locked'],
'U_ACTION' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=edit&article_id='.$article_id),
'S_SHOW_SMILEY_LINK' => true,
'S_SMILIES_ALLOWED' => true,
'S_BBCODE_ALLOWED' => true,
'S_LINKS_ALLOWED' => true,
'S_BBCODE_IMG' => true,
'S_BBCODE_QUOTE' => true,
'U_MORE_SMILIES' => append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies'),
));
$submit = (isset($_POST['submit'])) ? true : false;
if ($submit)
{
$title = utf8_normalize_nfc(request_var('title', '', true));
$text = utf8_normalize_nfc(request_var('text', '', true));
$cat_id = request_var('cat_id', 0);
$locked = request_var('locked', 0);
$uid = $bitfield = $options = '';
$error = array();
if ( !$title || !$text || !$cat_id )
{
$error[] = $user->lang['MAKALELER_MISSING_ERROR'];
}
if(!sizeof($error))
{
generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
$sql_ary = (array(
'cat_id' => $cat_id,
'title' => $title,
'text' => $text,
'locked' => $locked,
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
));
$sql = 'UPDATE ' . MAKALELER_ARTICLES_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary). '
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
meta_refresh(3, append_sid("{$phpbb_root_path}makaleler.$phpEx", 'action=view&article_id='.$article_id));
$message = $user->lang['MAKALELER_ARTICLE_EDITED_SUCCESS'] . '<br /><br />' . sprintf($user->lang['MAKALELER_BACK_TO_ARTICLE'], '<a href="' . $phpbb_root_path.'makaleler.'.$phpEx.'?action=view&article_id='.$article_id . '">', '</a>');
trigger_error($message);
}
$template->assign_vars(array(
'ARTICLE_CAT_ID' => $row['cat_id'],
'ARTICLE_TITLE' => $row['title'],
'ARTICLE_TEXT' => $row['text'],
'ARTICLE_LOCKED' => $row['locked'],
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
));
}
// Page title and navigation
$page_title = $user->lang['MAKALELER_MAKALELER'] . ' • ' . $user->lang['MAKALELER_EDIT_ARTICLE'];
$makaleler_page_name = $user->lang['MAKALELER_EDIT_ARTICLE'];
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MAKALELER_MAKALELER'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}"),
));
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MAKALELER_EDIT_ARTICLE'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=edit'),
));
break;
case 'delete':
if (!$article_id)
{
trigger_error('MAKALELER_NO_ARTICLE_SELECTED');
}
if ($user->data['user_id'] == ANONYMOUS)
{
login_box();
}
$sql = 'SELECT author_id
FROM ' . MAKALELER_ARTICLES_TABLE . '
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
$row = $db->sql_fetchrow($result);
if ( !$auth->acl_get('m_makaleler_delete_article') && $auth->acl_get('a_') && !($auth->acl_get('u_makaleler_delete_own_article') && $user->data['user_id'] == $row['author_id'] ) )
{
trigger_error('MAKALELER_PERM_DELETE');
}
if (confirm_box(true))
{
$sql = 'DELETE FROM ' . MAKALELER_ARTICLES_TABLE . '
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
$sql = 'DELETE FROM ' . MAKALELER_COMMENTS_TABLE . '
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
// Update articles count
$sql = 'UPDATE ' . MAKALELER_CATS_TABLE . '
SET articles = articles -1
WHERE cat_id = ' . $cat_id;
$db->sql_query($sql);
redirect(append_sid("{$phpbb_root_path}makaleler.$phpEx"));
}
else
{
confirm_box(false, $user->lang['MAKALELER_DELETE_ARTICLE_CONFIRM']);
}
break;
case 'add_comment':
$text = request_var('comment_text', '', true);
if ($text && !$config['makaleler_comments_disable'] && $user->data['user_id'] != ANONYMOUS && ($auth->acl_get('u_makaleler_add_comments') || $auth->acl_get('a_')) )
{
$uid = $bitfield = $options = '';
generate_text_for_storage($text, $uid, $bitfield, $options, false, true, true);
$sql_ary = (array(
'article_id' => $article_id,
'author_id' => $user->data['user_id'],
'time' => time(),
'text' => $text,
));
$sql = 'INSERT INTO ' . MAKALELER_COMMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
// Update comments count
$sql = 'UPDATE ' . MAKALELER_ARTICLES_TABLE . '
SET comments = comments +1
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
}
redirect(append_sid("{$phpbb_root_path}makaleler.$phpEx", 'action=view&article_id='.$article_id));
break;
case 'delete_comment':
if (!$comment_id)
{
trigger_error('MAKALELER_NO_COMMENT_SELECTED');
}
if ($user->data['user_id'] == ANONYMOUS)
{
login_box();
}
$sql = 'SELECT author_id
FROM ' . MAKALELER_COMMENTS_TABLE . '
WHERE comment_id = ' . $comment_id;
$db->sql_query($sql);
$author_id = $db->sql_fetchfield('author_id');
if ( !$auth->acl_get('m_makaleler_delete_comment') && !$auth->acl_get('a_') && !($auth->acl_get('u_makaleler_delete_own_comment') && $user->data['user_id'] == $author_id ) )
{
trigger_error('MAKALELER_PERM_DELETE_COMMENT');
}
if (confirm_box(true))
{
$sql = 'DELETE
FROM ' . MAKALELER_COMMENTS_TABLE . '
WHERE comment_id = ' . $comment_id;
$db->sql_query($sql);
// Update comments count
$sql = 'UPDATE ' . MAKALELER_ARTICLES_TABLE . '
SET comments = comments -1
WHERE article_id = ' . $article_id;
$db->sql_query($sql);
redirect(append_sid("{$phpbb_root_path}makaleler.$phpEx", 'action=view&article_id='.$article_id));
}
else
{
confirm_box(false, $user->lang['MAKALELER_DELETE_COMMENT_CONFIRM']);
}
break;
default:
redirect(append_sid("{$phpbb_root_path}makaleler.$phpEx"));
}
$template->assign_vars(array(
'S_ACTION' => $action,
'U_NEW_ARTICLE' => ( $auth->acl_get('u_makaleler_add_articles') || $auth->acl_get('a_') ) ? append_sid("{$phpbb_root_path}makaleler.{$phpEx}", 'action=add') : '',
'S_DISABLE_COMMENTS' => ($config['makaleler_comments_disable']) ? true : false,
'MAKALELER_PAGE_NAME' => $makaleler_page_name,
));
load_categories();
load_archive();
page_header($page_title);
$template->set_filenames(array(
'body' => 'makaleler_body.html',
));
page_footer();
function load_categories()
{
global $db, $template, $phpEx, $phpbb_root_path;
$sql = 'SELECT cat_id, name, articles
FROM ' . MAKALELER_CATS_TABLE . '
ORDER BY left_id ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('cats', array(
'ID' => $row['cat_id'],
'NAME' => $row['name'],
'ARTICLES' => $row['articles'],
'U_CAT' => append_sid("{$phpbb_root_path}makaleler.$phpEx", 'cat_id='.$row['cat_id']),
));
}
}
function load_archive()
{
global $db, $template, $phpEx, $phpbb_root_path;
$sql = 'SELECT DISTINCT archive_date
FROM ' . MAKALELER_ARTICLES_TABLE . '
ORDER BY archive_date DESC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$date = explode('-', $row['archive_date']);
$month = return_month($date[1]);
$template->assign_block_vars('archive', array(
'DATE' => $month . ' ' . $date[0],
'U_ARCHIVE' => append_sid("{$phpbb_root_path}makaleler.$phpEx", 'archive='.$row['archive_date']),
));
}
}
function return_month($date)
{
global $user;
switch($date)
{
case '01':
$month = $user->lang['datetime']['January'];
break;
case '02':
$month = $user->lang['datetime']['February'];
break;
case '03':
$month = $user->lang['datetime']['March'];
break;
case '04':
$month = $user->lang['datetime']['April'];
break;
case '05':
$month = $user->lang['datetime']['May'];
break;
case '06':
$month = $user->lang['datetime']['June'];
break;
case '07':
$month = $user->lang['datetime']['July'];
break;
case '08':
$month = $user->lang['datetime']['August'];
break;
case '09':
$month = $user->lang['datetime']['September'];
break;
case '10':
$month = $user->lang['datetime']['October'];
break;
case '11':
$month = $user->lang['datetime']['November'];
break;
case '12':
$month = $user->lang['datetime']['December'];
break;
default:
$month = '';
}
return $month;
}
/**
* BBCode-safe truncating of text
*
* Originally from {@link http://www.phpbb.com/community/viewtopic.php?f=71&t=670335}
* slightly modified to trim at either the first found end line or space by EXreaction.
*
* Modified by Chris Smith to trim to a specified number of paragraphs and/or a maximum
* number of characters, and provide configurable stopping positions. Made some performance
* improvements as well.
*
* Just like phpBB3 this function doesn't support embedding BBCodes in BBCode parameters
* either except for [quote].
*
* @author fberci (http://www.phpbb.com/community/memberlist.php?mode=viewprofile&u=158767)
* @author EXreaction (http://www.phpbb.com/community/memberlist.php?mode=viewprofile&u=202401)
* @author Chris Smith <toonarmy@phpbb.com> (http://www.phpbb.com/community/memberlist.php?mode=viewprofile&u=108642)
* @param string $text Text containing BBCode tags to be truncated
* @param string $uid BBCode uid
* @param int $max_length Text length limit
* @param int $max_paragraphs Maximum number of paragraphs permitted
* @param array $stops Characters to stop max length search at
* @param string $replacement Replacment suffix for the removed text
* @param string $bitfield BBCode bitfield (optional)
* @param bool $enable_bbcode Whether BBCode is enabled (true by default)
* @return string Resulting trimmed text
*/
function trim_text($text, $uid, $max_length, $max_paragraphs = 0, $stops = array(' ', "\n"), $replacement = '…', $bitfield = '', $enable_bbcode = true)
{
$orig_text = $text;
if ($enable_bbcode)
{
static $custom_bbcodes = array();
// Get all custom bbcodes
if (empty($custom_bbcodes))
{
global $db;
$sql = 'SELECT bbcode_id, bbcode_tag, second_pass_match
FROM ' . BBCODES_TABLE;
$result = $db->sql_query($sql, 3600);
while ($row = $db->sql_fetchrow($result))
{
// There can be problems only with tags having an argument
if (substr($row['bbcode_tag'], -1, 1) == '=')
{
$custom_bbcodes[$row['bbcode_id']] = array('[' . $row['bbcode_tag'], ':' . $uid . ']', str_replace('$uid', $uid, $row['second_pass_match']));
}
}
$db->sql_freeresult($result);
}
}
$trimmed = false;
// Paragraph trimming
if ($max_paragraphs && $max_paragraphs < preg_match_all('#\n\s*\n#m', $text, $matches))
{
$find = $matches[0][$max_paragraphs - 1];
// Grab all the matches preceeding the paragraph to trim at, finds
// those that match the trim marker, sum them to skip over them.
$skip = sizeof(array_intersect(array_slice($matches[0], 0, $max_paragraphs - 1), array($find)));
$pos = 0;
do
{
$pos = utf8_strpos($text, $find, $pos + 1);
$skip--;
} while ($skip >= 0);
$text = utf8_substr($text, 0, $pos);
$trimmed = true;
}
// First truncate the text
if ($max_length && utf8_strlen($text) > $max_length)
{
$pos = 0;
$length = 0;
if (!is_array($stops[0]))
{
$stops = array($stops);
}
foreach ($stops as $stop_group)
{
if (!is_array($stop_group))
{
continue;
}
foreach ($stop_group as $k => $v)
{
$find = (is_string($v)) ? $v : $k;
$include = is_bool($v) && $v;
if (($_pos = utf8_strpos(utf8_substr($text, $max_length), $find)) !== false)
{
if ($_pos < $pos || !$pos)
{
// This is a better find, it cuts the text shorter
$pos = $_pos;
$length = $include ? utf8_strlen($find) : 0;
}
}
}
if ($pos)
{
// Include the length of the search string if requested
$max_length += $pos + $length;
break;
}
}
// Trim off spaces, this will miss UTF8 spacers :(
$text = rtrim(utf8_substr($text, 0, $max_length));
$trimmed = true;
}
// No BBCode or no trimming return
if (!$enable_bbcode || !$trimmed)
{
return $text . ($trimmed ? $replacement : '');
}
// Some tags may contain spaces inside the tags themselves.
// If there is any tag that had been started but not ended
// cut the string off before it begins.
$unsafe_tags = array(
array('<', '>'),
array('[quote="', "":$uid]"), // 3rd parameter true here too for now
);
// If bitfield is given only check for those tags that are surely existing in the text
if (!empty($bitfield))
{
// Get all used tags
$bitfield = new bitfield($bitfield);
// isset() provides better performance
$bbcodes_set = array_flip($bitfield->get_all_set());
// Add custom BBCodes having a parameter and being used
// to the array of potential tags that can be cut apart.
foreach ($custom_bbcodes as $bbcode_id => $bbcode_tag)
{
if (isset($bbcodes_set[$bbcode_id]))
{
$unsafe_tags[] = $bbcode_tag;
}
}
}
// Else do the check for all possible tags
else
{
$unsafe_tags = array_merge($unsafe_tags, $custom_bbcodes);
}
foreach ($unsafe_tags as $tag)
{
// Ooops, we are in the middle of an opening BBCode or HTML tag,
// truncate the string before the opening tag
if (($start_pos = strrpos($text, $tag[0])) > strrpos($text, $tag[1]))
{
// Wait, is this really an opening tag or does it just look like one?
$match = array();
if (isset($tag[2]) && preg_match($tag[2], substr($orig_text, $start_pos), $match, PREG_OFFSET_CAPTURE) != 0 && $match[0][1] === 0)
{
$text = rtrim(substr($text, 0, $start_pos));
}
}
}
$text = $text . $replacement;
// Get all of the BBCodes the text contains.
// If it does not contain any than just skip this step.
// Preg expression is borrowed from strip_bbcode()
if (preg_match_all("#\[(\/?)([a-z0-9_\*\+\-]+)(?:=(".*"|[^\]]*))?(?::[a-z])?(?:\:$uid)\]#", $text, $matches, PREG_PATTERN_ORDER) != 0)
{
$open_tags = array();
for ($i = 0, $size = sizeof($matches[0]); $i < $size; ++$i)
{
$bbcode_name =& $matches[2][$i];
$opening = ($matches[1][$i] == '/') ? false : true;
// If a new BBCode is opened add it to the array of open BBCodes
if ($opening)
{
$open_tags[] = array(
'name' => $bbcode_name,
'plus' => ($opening && $bbcode_name == 'list' && !empty($matches[3][$i])) ? ':o' : '',
);
}
// If a BBCode is closed remove it from the array of open BBCodes.
// As always only the last opened open tag can be closed,
// so we only need to remove the last element of the array.
else
{
array_pop($open_tags);
}
}
// Sort open BBCode tags so the most recently opened will be the first (because it has to be closed first)
krsort($open_tags);
// Close remaining open BBCode tags
foreach ($open_tags as $tag)
{
$text .= '[/' . $tag['name'] . $tag['plus'] . ':' . $uid . ']';
}
}
return $text;
}
?>