Mod: Automatic Karma
Yazan: [SiNaN]
Açıklama: Konu açan veya mesaj gönderen üyelere otomatik olarak belirlenen miktarda karma ekler. Bu iki seçenek de istendiği zaman kapatılabilir.
URL: http://custom.simplemachines.org/mods/index.php?mod=1121
Türkçes: Moda dahil.
2.0 versiyonu (Eliana Modu) ile gelen yenilikler:
- Gelişmiş bir admin paneli ile mod için hayal edebileceğiniz her ayarı yapabilme imkanı
- Özelliği tek bir tıklama ile tamamen kapatabileceğiniz bir seçenek
- Her bölüm için özel olarak karma puanlarını ve karma alamayacak grupları belirleme imkanı
- Her bölüm için varsayılan ya da özel ayarların kullanılmasını seçebilme
- Otomatik karmanın teknik olarak normal karmadan ayrılması (Modu kaldırdığınız zaman isterseniz otomatik olarak verilen karmalar üyenin karmasından çıkarılır)
- İstediğiniz gruplara otomatik olarak karma eklenmesini engellemek
- Yeni mesajda/konuda verilecek olumlu karma sayısı ayarı
- Silinen mesajda/konuda verilecek olumsuz karma sayısı ayarı
- Bütün ayarları yaptıktan sonra, ayarlara göre otomatik karma puanının her üye için yeniden sayılabilmesi
2.0 versiyonu için Türkçe dil dosyaları için Alpay (http://www.simplemachines.org/community/index.php?action=profile;u=39002)'a teşekkürler:
http://www.simplemachines.org/community/index.php?topic=228661.msg1667345#msg1667345
sağol sinan
Güzel çalışma.. Ellerine sağlık ;)
Teşekkür ederim. :)
Çok hoş bir çalışma , emeğine sağlık..
Sitemde nadiren modifikasyon kullanırım, bu da onlardan biri olacak.
teşekkürler..
Allah razı olsun kardeşim.Güzel bi çalışma ve benim gibi herkesin de hoşuna gideceğine eminim (:
Tesekürler Güzel calisma ;)
eline saglık üstat... tesekkürler...
emegine saglık
Konu için otomatik karma: [Kutucuk]
Konu için otomatik verilecek karma: [Miktar]
Mesaj için otomatik karma: [Kutucuk]
Mesaj için otomatik verilecek karma: [Miktar]
-----
Modu yükledikten sonra üstteki yazılanlar çıkıyor admin panelinin karma bölümünde. Yalnız anlamadığım şu; Diyelim ki mesaj için belli miktarda karma sayısı arttırmak istiyoruz, mesaj için olanın kutucuğunu işaretleyip alt kısmına ne miktarını yazıyoruz?
Mesaj sayısı miktarını mı? (yani mesaj sayısı belirleyip, o kadar mesaj atınca 1 karma kazanacak demek mi oluyor?)
Yoksa kazanacağı karma miktarını mı? (yani üye siteye 1 mesaj atınca kazanacağı karma miktarının oraya yazılmasının gerektiği mi demek oluyor?)
Umarım anlatabilmişimdir.
Kazanacağı karma miktarı.
Ama bir mesaj attığında bilmem kaç tane karma kazanması biraz saçma bir sistem değil mi? Onun yerine mesaj sayısını yazabilseydik, o kadar mesajda 1 karma kazanırdı. Böylece sayıyı ona göre belirler abartılı bir durumdan da kaçınırdık.
Quote from: CDX on March 20, 2008, 07:21:23 PM
Ama bir mesaj attığında bilmem kaç tane karma kazanması biraz saçma bir sistem değil mi? Onun yerine mesaj sayısını yazabilseydik, o kadar mesajda 1 karma kazanırdı. Böylece sayıyı ona göre belirler abartılı bir durumdan da kaçınırdık.
Abartı neresinde? :)
Ne biliyim, bu şekilde olan bir sistemde üyeler flooda yönelir gibime geldi. Hani tam aksi olsa azar azar belirlerdik rakamı ve teşvik olurdu ama bu şekilde suyunu çıkarırlar sanki. =) Neyse yine de eline sağlık, herkes kullanacak diye bir kaide yok sonuçta.
İyi çalışmalar.
Çoğunlukla karmalar ütopik rakamlar oluyor -65536-gibi-. Buna göre normal değil mi? :)
Karma sistemini şimdiye kadar hep artı verilecek şekilde ayarlamıştım (kim hakederse, herhangi bir kişi diğerine artı karma veriyordu). Ve üyelere de fuzuli karma hesabına düşüp bunu takıntı haline getirmemeleri için de 1 kişiye 12 saatte 1 kere verebilmeyi olanaklı kılmıştım (bu yüzden en yüksek karmaya sahip olan kişinin 200 adet karması bile yoktur). =) Şimdi bunu yükleme nedenim katkı yapan kişilerin de katkı yaptıklarını sağladıkça otomatik karma miktarı kazanmalarıydı (hani sürekli takip etmektense bu şekilde işe yaradıklarını farketmeleri sağlamak açısından) fakat dediğim gibi bu şekli forumu azdırır gibi geliyor bana. Dertlerinin de bu olmasını istemeyiz. =)
Yine de ilgin için teşekkürler.
Tabii, her foruma göre değişir bu durum. Biraz düzenleyerek istediğin hale getirebilirsin. :)
Eline sağlık üye olan herkese otomatik karma gibi birşey de güzel olur
Merhaba,
2.0 final çıkınca bu modifikasyonu çevirirmisiniz 2.0'a çok önemli de.. :-\
2.0 Beta'yı kuracak vakit bulursam beta için de çevireceğim de yok. :)
yok benim için 2.0 final yeterliydi, yine de bunu da duyduğuma sevindim. saol cevap için..
arkadaşlar benim forumumda ne sorun olabilir hangi paket modu kurarsam kurayım admin panelde yeri açılıyor ama ne ismi nede açıklamaları çıkıyor.
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fimg152.imageshack.us%2Fimg152%2F8918%2F333fflm9.jpg&hash=360096220366aa3668ecf3bbbf2d00b96040436e)
http://img152.imageshack.us/img152/8918/333fflm9.jpg
Dil dosyalarında sorun, dil dosyalarınızı atın.
kardeşim kızmazsan birazz acemiyim dil dosyalarını atın derken ne yapmalıyım.
:-[ :-[
Konu için otomatik karma:
Konu için otomatik verilecek karma:
Mesaj için otomatik karma:
Mesaj için otomatik verilecek karma:
Orda ki boşlukların yerine olacak kelimeler bunlar..Bunlara göre doldur..
cevap için teşekkür ederim kardeşim
ama tüm modlarda bu olay var.
bunun tam bir çözümü olmalı
Değişiklikleri utf-8 dil dosyaları için de yapmalısınız.
tskler... güzel bi uygulama
Teşekkürler Sinan Gerçekten güzel siteye ekledim eyw.
Öncelikle teşekkürler, Ellerine sağlık..
1 olarak giriyorum sayıyı, Ama Konu açtıgımda, yada mesaj yazdıgımda, 2 - 2 atlıyor :S Bunu farkettinizmi, Yada olması gereken bumu ? Nasıl bu iş anlamadım.. ?
güzel mod işe yarıyor adminin repini uçuruyor
Quote from: RapChoLicK on April 09, 2008, 10:45:46 AM
Öncelikle teşekkürler, Ellerine sağlık..
1 olarak giriyorum sayıyı, Ama Konu açtıgımda, yada mesaj yazdıgımda, 2 - 2 atlıyor :S Bunu farkettinizmi, Yada olması gereken bumu ? Nasıl bu iş anlamadım.. ?
Normal değil. 1 olarak girdiğinize emin misiniz?
Çok teşekkür ederim tamda böyle bir mod arıyordum
Paket yüklenirken en az bir hata oluştu. Eğer ne yaptığınızı bilmiyorsanız yükleme işlemine devam etmemeniz şiddetle önerilir. Bu hatanın nedeni yüklemek istediğiniz paketin forum'unuzda yüklü olan başka bir paketle çakışması, paketteki bir hata, paketin sorunsuz çalışması için sizde yüklü olmayan başka bir pakete ihtiyaç duyması veya paketin SMF'nin farklı bir sürümü için dizayn edilmiş olması olabilir.
bu çıktı kardes ne yapmam gerek
Elle kurmanız gerek.
sinan merhaba,
ben forum kurma konusunda çok yeniyim. ( çömezim) smf 1.1.4 kurdum. fakat şu mod olayını çözemedim. bu Automatic Karma nasıl kurulur. ve indirme kısmında 2 farklı dosya var. hangisini indircem ?
İkisini de indirin. Daha sonra
Admin >> Paketler >> Paket Yükle
Paket Yükle kısmında "Gözat" diyerek paketi seçin ve yükleyin. Daha sonra çıkan sayfada "Uygula" diyeceksiniz.
Ayrıca Dokümantosyandan da yararlanabilirsiniz:
http://www.simplemachines.org/community/index.php?topic=132781.0
kardes rica etsem elle nasil kuracam
bi yardim lütfen
http://custom.simplemachines.org/mods/index.php?action=parse;mod=1121;attach=51609;smf_version=1.1.4
Eline sağlık
Eliana 2.0 sürümünün Türkçe dil dosyaları ekte Sinan ;D
Modifications.turkish.php
Bul:
?>
Değiştir:
// Eliana Mod
$txt['eliana_admin'] = 'Automatic Karma';
// Eliana Mod
?>
Teşekkürler Alpay.
2.0 versiyonu (Eliana Modu) ile gelen yenilikler:
- Gelişmiş bir admin paneli ile mod için hayal edebileceğiniz her ayarı yapabilme imkanı
- Özelliği tek bir tıklama ile tamamen kapatabileceğiniz bir seçenek
- Her bölüm için özel olarak karma puanlarını ve karma alamayacak grupları belirleme imkanı
- Her bölüm için varsayılan ya da özel ayarların kullanılmasını seçebilme
- Otomatik karmanın teknik olarak normal karmadan ayrılması (Modu kaldırdığınız zaman isterseniz otomatik olarak verilen karmalar üyenin karmasından çıkarılır)
- İstediğiniz gruplara otomatik olarak karma eklenmesini engellemek
- Yeni mesajda/konuda verilecek olumlu karma sayısı ayarı
- Silinen mesajda/konuda verilecek olumsuz karma sayısı ayarı
- Bütün ayarları yaptıktan sonra, ayarlara göre otomatik karma puanının her üye için yeniden sayılabilmesi
tşkler..
Mod için teşekkürler.
Bide mahsuru yoksa bişey sormak istiyorum ismini neden Eliana Modu olarak değiştirdin acaba :)
Merak işte :) İnsanın başına zaten ne geliyosa ya meraktan ya da ... :P
Yok, bu merak başınıza iş açmaz; merak etmeyin. :P
Bu sitede ilk yazmaya başladığım zamanlar yabancı bölümlerde bana çok destek olmuş, hala da birkaç projemde yardımcı olan bir üyenin adı "Eliana". Bir teşekkür mahiyetinde onun adını verdim.
Hatta yakında bi kaç moduna benim adımı verebilir :D
Senin adına mod çoktan yazıldı Burak: :P
http://www.simplemachines.org/community/index.php?topic=8774.0
Quote from: [SiNaN] on August 21, 2008, 02:46:38 PM
Yok, bu merak başınıza iş açmaz; merak etmeyin. :P
Bu sitede ilk yazmaya başladığım zamanlar yabancı bölümlerde bana çok destek olmuş, hala da birkaç projemde yardımcı olan bir üyenin adı "Eliana". Bir teşekkür mahiyetinde onun adını verdim.
Hmm anladım :)
Quote from: [SiNaN] on August 21, 2008, 02:58:39 PM
Senin adına mod çoktan yazıldı Burak: :P
http://www.simplemachines.org/community/index.php?topic=8774.0
Bu mod ne işe yarıyo ben çözemedim :P
Forumu gezerken aniden karşınıza Burak (Kendisi değil, avatarı :P) çıkabiliyor, onu fareyle yakalayınca karmanız artıyor.
ozaman repleri unutalım. Biz en iyisi Otomatik Karma(Eliana) Moduna devam edelim :D
Eline sağlık Sinan hocam çok güzel bir mod sağolasın.
Sinan hocam modu aktif ettim otomatik olarak karmalar veriliyor çok güzel ancak mesajda profil içine karma sayısını ekliyor ancak top10 istatistiklerine eklemiyor sayı orda artmıyor.
Otomatik karma kendine özel bir alan kullanıyor. Load.php'de bu iki alan birleştiriliyor. Top 10 doğrudan veritabanından karmayı alıyor olabilir. BoardIndex.php'deki kodları görebilir miyim?
Sinan hocam benim top10 ssi üzerinden alıyor herşeyi içeriği yinede ekliyorum.
<?php
/**********************************************************************************
* BoardIndex.php *
***********************************************************************************
* SMF: Simple Machines Forum *
* Open-Source Project Inspired by Zef Hemel ([email protected]) *
* =============================================================================== *
* Software Version: SMF 1.1 *
* Software by: Simple Machines (http://www.simplemachines.org) *
* Copyright 2006 by: Simple Machines LLC (http://www.simplemachines.org) *
* 2001-2006 by: Lewis Media (http://www.lewismedia.com) *
* Support, News, Updates at: http://www.simplemachines.org *
***********************************************************************************
* This program is free software; you may redistribute it and/or modify it under *
* the terms of the provided license as published by Simple Machines LLC. *
* *
* This program is distributed in the hope that it is and will be useful, but *
* WITHOUT ANY WARRANTIES; without even any implied warranty of MERCHANTABILITY *
* or FITNESS FOR A PARTICULAR PURPOSE. *
* *
* See the "license.txt" file for details of the Simple Machines license. *
* The latest version can always be found at http://www.simplemachines.org. *
**********************************************************************************/
if (!defined('SMF'))
die('Hacking attempt...');
/* The single function this file contains is used to display the main
board index. It uses just the following functions:
void BoardIndex()
- shows the board index.
- uses the BoardIndex template, and main sub template.
- may use the boardindex subtemplate for wireless support.
- updates the most online statistics.
- is accessed by ?action=boardindex.
bool calendarDoIndex()
- prepares the calendar data for the board index.
- takes care of caching it for speed.
- depends upon these settings: cal_showeventsonindex,
cal_showbdaysonindex, cal_showholidaysonindex.
- returns whether there is anything to display.
*/
// Show the board index!
function BoardIndex()
{
global $txt, $scripturl, $db_prefix, $ID_MEMBER, $user_info, $sourcedir;
global $modSettings, $context, $settings;
// For wireless, we use the Wireless template...
if (WIRELESS)
$context['sub_template'] = WIRELESS_PROTOCOL . '_boardindex';
else
loadTemplate('BoardIndex');
// Remember the most recent topic for optimizing the recent posts feature.
$most_recent_topic = array(
'timestamp' => 0,
'ref' => null
);
// Board Viewers - by HarzeM
$board_viewers = array();
if (!empty($modSettings['enable_board_viewers']))
{
// get the users that are on some boards :)
$request = db_query("
SELECT session, url, ID_MEMBER
FROM {$db_prefix}log_online
WHERE INSTR(url, 's:5:\"board\";i:')", __FILE__, __LINE__);
// for each user ...
while($row = mysql_fetch_assoc($request))
{
// no user ?! useless forum!
if (empty($row['session']))
continue;
$viewerdata = @unserialize($row['url']);
// Check if there was no action or the action is display.
if (!isset($viewerdata['action']) || $viewerdata['action'] == 'display')
{
if (isset($viewerdata['board']))
{
if(!isset($board_viewers[$viewerdata['board']]))
$board_viewers[$viewerdata['board']] = array ('guests' => 0, 'members' => 0);
if($row['ID_MEMBER'] > 0)
$board_viewers[$viewerdata['board']]['members']++;
else
$board_viewers[$viewerdata['board']]['guests']++;
}
}
}
mysql_free_result($request);
}
// Find all boards and categories, as well as related information. This will be sorted by the natural order of boards and categories, which we control.
$result_boards = db_query("
SELECT
c.name AS catName, c.ID_CAT, c.cat_reklam, b.ID_BOARD, b.name AS boardName, b.board_icon, b.description,
b.numPosts, b.numTopics, b.ID_PARENT, IFNULL(m.posterTime, 0) AS posterTime,
IFNULL(mem.memberName, m.posterName) AS posterName, m.subject, m.ID_TOPIC,
IFNULL(mem.realName, m.posterName) AS realName," . ($user_info['is_guest'] ? "
1 AS isRead, 0 AS new_from" : "
(IFNULL(lb.ID_MSG, 0) >= b.ID_MSG_UPDATED) AS isRead, IFNULL(lb.ID_MSG, -1) + 1 AS new_from,
c.canCollapse, IFNULL(cc.ID_MEMBER, 0) AS isCollapsed") . ",
IFNULL(mem.ID_MEMBER, 0) AS ID_MEMBER, m.ID_MSG,
IFNULL(mods_mem.ID_MEMBER, 0) AS ID_MODERATOR, mods_mem.realName AS modRealName
FROM {$db_prefix}boards AS b
LEFT JOIN {$db_prefix}categories AS c ON (c.ID_CAT = b.ID_CAT)
LEFT JOIN {$db_prefix}messages AS m ON (m.ID_MSG = b.ID_LAST_MSG)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_boards AS lb ON (lb.ID_BOARD = b.ID_BOARD AND lb.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}collapsed_categories AS cc ON (cc.ID_CAT = c.ID_CAT AND cc.ID_MEMBER = $ID_MEMBER)" : '') . "
LEFT JOIN {$db_prefix}moderators AS mods ON (mods.ID_BOARD = b.ID_BOARD)
LEFT JOIN {$db_prefix}members AS mods_mem ON (mods_mem.ID_MEMBER = mods.ID_MEMBER)
WHERE $user_info[query_see_board]" . (empty($modSettings['countChildPosts']) ? "
AND b.childLevel <= 1" : ''), __FILE__, __LINE__);
// Run through the categories and boards....
$context['categories'] = array();
while ($row_board = mysql_fetch_assoc($result_boards))
{
// Haven't set this category yet.
if (empty($context['categories'][$row_board['ID_CAT']]))
{
$context['categories'][$row_board['ID_CAT']] = array(
'id' => $row_board['ID_CAT'],
'name' => $row_board['catName'],
'is_collapsed' => isset($row_board['canCollapse']) && $row_board['canCollapse'] == 1 && $row_board['isCollapsed'] > 0,
'cat_reklam' => $row_board['cat_reklam'],
'can_collapse' => isset($row_board['canCollapse']) && $row_board['canCollapse'] == 1,
'collapse_href' => isset($row_board['canCollapse']) ? $scripturl . '?action=collapse;c=' . $row_board['ID_CAT'] . ';sa=' . ($row_board['isCollapsed'] > 0 ? 'expand' : 'collapse;') . '#' . $row_board['ID_CAT'] : '',
'collapse_image' => isset($row_board['canCollapse']) ? '<img src="' . $settings['images_url'] . '/' . ($row_board['isCollapsed'] > 0 ? 'expand.gif" alt="+"' : 'collapse.gif" alt="-"') . ' border="0" />' : '',
'href' => $scripturl . '#' . $row_board['ID_CAT'],
'boards' => array(),
'new' => false
);
$context['categories'][$row_board['ID_CAT']]['link'] = '<a name="' . $row_board['ID_CAT'] . '" href="' . (isset($row_board['canCollapse']) ? $context['categories'][$row_board['ID_CAT']]['collapse_href'] : $context['categories'][$row_board['ID_CAT']]['href']) . '">' . $row_board['catName'] . '</a>';
}
// If this board has new posts in it (and isn't the recycle bin!) then the category is new.
if (empty($modSettings['recycle_enable']) || $modSettings['recycle_board'] != $row_board['ID_BOARD'])
$context['categories'][$row_board['ID_CAT']]['new'] |= empty($row_board['isRead']) && $row_board['posterName'] != '';
// Collapsed category - don't do any of this.
if ($context['categories'][$row_board['ID_CAT']]['is_collapsed'])
continue;
// Let's save some typing. Climbing the array might be slower, anyhow.
$this_category = &$context['categories'][$row_board['ID_CAT']]['boards'];
// This is a parent board.
if (empty($row_board['ID_PARENT']))
{
// Is this a new board, or just another moderator?
if (!isset($this_category[$row_board['ID_BOARD']]))
{
// Not a child.
$isChild = false;
$this_category[$row_board['ID_BOARD']] = array(
'new' => empty($row_board['isRead']),
'id' => $row_board['ID_BOARD'],
'name' => $row_board['boardName'],
'board_icon' => $row_board['board_icon'],
'description' => $row_board['description'],
'moderators' => array(),
'link_moderators' => array(),
'children' => array(),
'link_children' => array(),
'children_new' => false,
'topics' => $row_board['numTopics'],
'posts' => $row_board['numPosts'],
'viewers' => isset($board_viewers[$row_board['ID_BOARD']]) ? array(
'guests' => $board_viewers[$row_board['ID_BOARD']]['guests'],
'members' => $board_viewers[$row_board['ID_BOARD']]['members']) : array('guests' => 0, 'members' =>0 ), // Board Viewers - by HarzeM
'href' => $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0">' . $row_board['boardName'] . '</a>'
);
}
if (!empty($row_board['ID_MODERATOR']))
{
$this_category[$row_board['ID_BOARD']]['moderators'][$row_board['ID_MODERATOR']] = array(
'id' => $row_board['ID_MODERATOR'],
'name' => $row_board['modRealName'],
'href' => $scripturl . '?action=profile;u=' . $row_board['ID_MODERATOR'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_board['ID_MODERATOR'] . '" title="' . $txt[62] . '">' . $row_board['modRealName'] . '</a>'
);
$this_category[$row_board['ID_BOARD']]['link_moderators'][] = '<a href="' . $scripturl . '?action=profile;u=' . $row_board['ID_MODERATOR'] . '" title="' . $txt[62] . '">' . $row_board['modRealName'] . '</a>';
}
}
// Found a child board.... make sure we've found its parent and the child hasn't been set already.
elseif (isset($this_category[$row_board['ID_PARENT']]['children']) && !isset($this_category[$row_board['ID_PARENT']]['children'][$row_board['ID_BOARD']]))
{
// A valid child!
$isChild = true;
$this_category[$row_board['ID_PARENT']]['children'][$row_board['ID_BOARD']] = array(
'id' => $row_board['ID_BOARD'],
'name' => $row_board['boardName'],
'description' => $row_board['description'],
'new' => empty($row_board['isRead']) && $row_board['posterName'] != '',
'topics' => $row_board['numTopics'],
'posts' => $row_board['numPosts'],
'viewers' => isset($board_viewers[$row_board['ID_BOARD']]) ? array(
'guests' => $board_viewers[$row_board['ID_BOARD']]['guests'],
'members' => $board_viewers[$row_board['ID_BOARD']]['members']) : array('guests' => 0, 'members' =>0 ), // Board Viewers - by HarzeM
'href' => $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0">' . $row_board['boardName'] . '</a>'
);
// Counting child board posts is... slow :/.
if (!empty($modSettings['countChildPosts']))
{
$this_category[$row_board['ID_PARENT']]['posts'] += $row_board['numPosts'];
$this_category[$row_board['ID_PARENT']]['topics'] += $row_board['numTopics'];
if(isset($board_viewers[$row_board['ID_BOARD']])) // Board Viewers - by HarzeM
{
$this_category[$row_board['ID_PARENT']]['viewers']['guests'] += $board_viewers[$row_board['ID_BOARD']]['guests'];
$this_category[$row_board['ID_PARENT']]['viewers']['members'] += $board_viewers[$row_board['ID_BOARD']]['members'];
}
}
// Does this board contain new boards?
$this_category[$row_board['ID_PARENT']]['children_new'] |= empty($row_board['isRead']);
// This is easier to use in many cases for the theme....
$this_category[$row_board['ID_PARENT']]['link_children'][] = &$this_category[$row_board['ID_PARENT']]['children'][$row_board['ID_BOARD']]['link'];
}
// Child of a child... just add it on...
elseif (!empty($modSettings['countChildPosts']))
{
if (!isset($parent_map))
$parent_map = array();
if (!isset($parent_map[$row_board['ID_PARENT']]))
foreach ($this_category as $id => $board)
{
if (!isset($board['children'][$row_board['ID_PARENT']]))
continue;
$parent_map[$row_board['ID_PARENT']] = array(&$this_category[$id], &$this_category[$id]['children'][$row_board['ID_PARENT']]);
$parent_map[$row_board['ID_BOARD']] = array(&$this_category[$id], &$this_category[$id]['children'][$row_board['ID_PARENT']]);
break;
}
if (isset($parent_map[$row_board['ID_PARENT']]))
{
$parent_map[$row_board['ID_PARENT']][0]['posts'] += $row_board['numPosts'];
$parent_map[$row_board['ID_PARENT']][0]['topics'] += $row_board['numTopics'];
$parent_map[$row_board['ID_PARENT']][1]['posts'] += $row_board['numPosts'];
$parent_map[$row_board['ID_PARENT']][1]['topics'] += $row_board['numTopics'];
if(isset($board_viewers[$row_board['ID_BOARD']])) // Board Viewers - by HarzeM
{
$parent_map[$row_board['ID_PARENT']][0]['viewers']['guests'] += $board_viewers[$row_board['ID_BOARD']]['guests'];
$parent_map[$row_board['ID_PARENT']][0]['viewers']['members'] += $board_viewers[$row_board['ID_BOARD']]['members'];
$parent_map[$row_board['ID_PARENT']][1]['viewers']['guests'] += $board_viewers[$row_board['ID_BOARD']]['guests'];
$parent_map[$row_board['ID_PARENT']][1]['viewers']['members'] += $board_viewers[$row_board['ID_BOARD']]['members'];
}
continue;
}
continue;
}
// Found a child of a child - skip.
else
continue;
// Prepare the subject, and make sure it's not too long.
censorText($row_board['subject']);
$row_board['short_subject'] = shorten_subject($row_board['subject'], 24);
$this_last_post = array(
'id' => $row_board['ID_MSG'],
'time' => $row_board['posterTime'] > 0 ? timeformat($row_board['posterTime']) : $txt[470],
'timestamp' => forum_time(true, $row_board['posterTime']),
'subject' => $row_board['short_subject'],
'long_subject' => $row_board['subject'],
'member' => array(
'id' => $row_board['ID_MEMBER'],
'username' => $row_board['posterName'] != '' ? $row_board['posterName'] : $txt[470],
'name' => $row_board['realName'],
'href' => $row_board['posterName'] != '' && !empty($row_board['ID_MEMBER']) ? $scripturl . '?action=profile;u=' . $row_board['ID_MEMBER'] : '',
'link' => $row_board['posterName'] != '' ? (!empty($row_board['ID_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row_board['ID_MEMBER'] . '">' . $row_board['realName'] . '</a>' : (!empty($modSettings['MemberColorGuests']) ? '<span style="color:'.$modSettings['MemberColorGuests'].';">' : '').$row_board['realName'].(!empty($modSettings['MemberColorGuests']) ? '</span>' : '')) : $txt[470],
),
'start' => 'msg' . $row_board['new_from'],
'topic' => $row_board['ID_TOPIC']
);
if (!empty($modSettings['MemberColorBoardindex']) && !empty($row_board['ID_MEMBER'])) {
$MemberColor_ID_MEMBER[$row_board['ID_MEMBER']] = $row_board['ID_MEMBER'];
$MemberColor_board[$isChild ? $row_board['ID_PARENT'] : $row_board['ID_BOARD']] = array(
'bid' => ($isChild ? $row_board['ID_PARENT'] : $row_board['ID_BOARD']),
'cat' => $row_board['ID_CAT']);
}
// Provide the href and link.
if ($row_board['subject'] != '')
{
$this_last_post['href'] = $scripturl . '?topic=' . $row_board['ID_TOPIC'] . '.msg' . ($user_info['is_guest'] ? $modSettings['maxMsgID'] : $row_board['new_from']) . (empty($row_board['isRead']) ? ';boardseen' : '') . '#new';
$this_last_post['link'] = '<a href="' . $this_last_post['href'] . '" title="' . $row_board['subject'] . '">' . $row_board['short_subject'] . '</a>';
}
else
{
$this_last_post['href'] = '';
$this_last_post['link'] = $txt[470];
}
// Set the last post in the parent board.
if (empty($row_board['ID_PARENT']) || ($isChild && !empty($row_board['posterTime']) && $this_category[$row_board['ID_PARENT']]['last_post']['timestamp'] < forum_time(true, $row_board['posterTime'])))
$this_category[$isChild ? $row_board['ID_PARENT'] : $row_board['ID_BOARD']]['last_post'] = $this_last_post;
// Just in the child...?
if ($isChild)
{
$this_category[$row_board['ID_PARENT']]['children'][$row_board['ID_BOARD']]['last_post'] = $this_last_post;
// If there are no posts in this board, it really can't be new...
$this_category[$row_board['ID_PARENT']]['children'][$row_board['ID_BOARD']]['new'] &= $row_board['posterName'] != '';
}
// No last post for this board? It's not new then, is it..?
elseif ($row_board['posterName'] == '')
$this_category[$row_board['ID_BOARD']]['new'] = false;
// Determine a global most recent topic.
if (!empty($row_board['posterTime']) && forum_time(true, $row_board['posterTime']) > $most_recent_topic['timestamp'])
$most_recent_topic = array(
'timestamp' => forum_time(true, $row_board['posterTime']),
'ref' => &$this_category[$isChild ? $row_board['ID_PARENT'] : $row_board['ID_BOARD']]['last_post'],
);
}
mysql_free_result($result_boards);
// Calculation of board viewers ... By HarzeM
if (!empty($modSettings['enable_board_viewers']))
foreach($context['categories'] as $keyc => $category)
{
foreach($category['boards'] as $key => $boards)
{
$this_guests = $boards['viewers']['guests'];
$this_members = $boards['viewers']['members'];
$this_viewers = $this_guests + $this_members;
$context['categories'][$keyc]['boards'][$key]['viewer_text'] = ($this_viewers > 0) ?
('<span class="smalltext" style="float:right;">(' .
($modSettings['boardViewersClickable'] ? '<a href="'.$scripturl.'?action=viewers;board='.$key.'" onclick="return reqWin(this.href);" title="'.$txt['viewersBrowsing'].'">' : '') .
($modSettings['boardViewersGuestsMembers'] ?
((($this_members > 1) ? "<b>".$this_members."</b> ". $txt['board_v_members'] : "<b>".$this_members."</b> ". $txt['board_v_member']) .
(($this_guests > 1) ? ", <b>".$this_guests."</b> ". $txt['board_v_guests'] : ", <b>".$this_guests."</b> ". $txt['board_v_guest']))
: (($this_viewers > 1) ? "<b>".$this_viewers."</b> ". $txt['board_viewers'] : "<b>".$this_viewers."</b> ". $txt['board_viewer'])
) .
($modSettings['boardViewersClickable'] ? '</a>' : '') .
')</span>')
: '' ;
if($boards['children'] !== array())
{
foreach($boards['children'] as $keych => $child)
{
$this_guests = $child['viewers']['guests'];
$this_members = $child['viewers']['members'];
$this_viewers = $this_guests + $this_members;
$context['categories'][$keyc]['boards'][$key]['children'][$keych]['viewer_text'] = ($this_viewers > 0) ? (($this_viewers > 1) ? ", ". $txt['board_viewers_child'] . ": " . $this_viewers : ", ". $txt['board_viewer_child'] . ": " . $this_viewers) : '';
}
}
}
}
//The latest member?
if (!empty($modSettings['latestMember']) && !empty($modSettings['MemberColorLatestMember']))
$MemberColor_ID_MEMBER[$modSettings['latestMember']] = $modSettings['latestMember'];
// Know set the colors for the last post...
if (!empty($MemberColor_ID_MEMBER)) {
//Now i can Load the Missing global :)
global $user_profile;
loadMemberData($MemberColor_ID_MEMBER);
$cmemcolid = NULL;
//So the BoardIndex need colored links
if (!empty($modSettings['MemberColorBoardindex']) && !empty($MemberColor_board))
foreach($MemberColor_board as $boardid_memcolor) {
$cmemcolid = $context['categories'][$boardid_memcolor['cat']]['boards'][$boardid_memcolor['bid']]['last_post']['member']['id'];
$profile = &$user_profile[$cmemcolid];
if(!empty($profile['member_group_color']) || !empty($profile['post_group_color']))
$context['categories'][$boardid_memcolor['cat']]['boards'][$boardid_memcolor['bid']]['last_post']['member']['link'] = '<a href="' . $scripturl . '?action=profile;u=' . $profile['ID_MEMBER'] . '" title="' . $txt[92] . ' ' . $profile['realName'] . '"><span style="color:'.(!empty($profile['member_group_color']) ? $profile['member_group_color'] : $profile['post_group_color']).';">' . $profile['realName'] . '</span></a>';
}
}
// Load the users online right now.
$result = db_query("
SELECT
lo.ID_MEMBER, lo.logTime, lo.url, mem.realName, mem.memberName, mem.showOnline,
mg.onlineColor, mg.ID_GROUP, mg.groupName
FROM {$db_prefix}log_online AS lo
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = lo.ID_MEMBER)
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP))", __FILE__, __LINE__);
$context['users_online'] = array();
$context['list_users_online'] = array();
$context['online_groups'] = array();
$context['num_guests'] = 0;
$context['num_buddies'] = 0;
$context['num_users_hidden'] = 0;
$context['spiders'] = array();
$context['num_spiders'] = 0;
$context['show_buddies'] = !empty($user_info['buddies']);
while ($row = mysql_fetch_assoc($result))
{
if (empty($row['realName']))
{
// Get the request parameters..
$actions = @unserialize($row['url']);
// Is a spider?
$is_spider = ob_googlebot_getAgent($actions['USER_AGENT'], $spider_name, $agent);
if (!$is_spider)
$context['num_guests']++;
else
{
$context['num_spiders']++;
if ($modSettings['ob_googlebot_display_agent'])
$spider_name = $agent;
if ($modSettings['ob_googlebot_count_all_instances'] && $modSettings['ob_googlebot_display_all_instances'])
$context['spiders'][] = $spider_name;
else
$context['spiders'][$agent] = $spider_name;
}
continue;
}
elseif (empty($row['showOnline']) && !allowedTo('moderate_forum'))
{
$context['num_users_hidden']++;
continue;
}
// Some basic color coding...
if (!empty($row['onlineColor']))
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '" style="color: ' . $row['onlineColor'] . ';">' . $row['realName'] . '</a>';
else
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>';
$is_buddy = in_array($row['ID_MEMBER'], $user_info['buddies']);
if ($is_buddy)
{
$context['num_buddies']++;
$link = '<b>' . $link . '</b>';
}
$context['users_online'][strtolower($row['memberName'])] = array(
'id' => $row['ID_MEMBER'],
'username' => $row['memberName'],
'name' => $row['realName'],
'group' => $row['ID_GROUP'],
'href' => $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => $link,
'is_buddy' => $is_buddy,
'hidden' => empty($row['showOnline']),
);
$context['list_users_online'][strtolower($row['memberName'])] = empty($row['showOnline']) ? '<i>' . $link . '</i>' : $link;
if (!isset($context['online_groups'][$row['ID_GROUP']]))
$context['online_groups'][$row['ID_GROUP']] = array(
'id' => $row['ID_GROUP'],
'name' => $row['groupName'],
'color' => $row['onlineColor']
);
}
mysql_free_result($result);
ksort($context['users_online']);
ksort($context['list_users_online']);
ksort($context['online_groups']);
ksort($context['spiders']);
$context['num_users_online'] = count($context['users_online']) + $context['num_users_hidden'];
// Allowed user to see spiders online?
if (!allowedTo('googlebot_view'))
$context['spiders'] = array();
// Don't count all instances of a spider, only 1 for each different spider
if (!empty($context['spiders']) && !$modSettings['ob_googlebot_count_all_instances'])
$context['num_spiders'] = count($context['spiders']);
// Diplay how many instances of each spider
if (!empty($context['spiders']) && $modSettings['ob_googlebot_count_all_instances'] && $modSettings['ob_googlebot_display_all_instances'])
{
$spider_grouped = array_count_values($context['spiders']);
$context['spiders'] = array();
foreach ($spider_grouped as $k => $v)
$context['spiders'][$k] = $k . ($v == 1 ? '' : ' (' . $v . ')');
}
// Load the users online today.
$nowdate = @getdate(forum_time(false));
$midnight = mktime(0, 0, 0, $nowdate['mon'], $nowdate['mday'], $nowdate['year']) - ($modSettings['time_offset'] * 3600);
$s = strpos($user_info['time_format'], '%S') === false ? '' : ':%S';
if (strpos($user_info['time_format'], '%H') === false && strpos($user_info['time_format'], '%T') === false)
$time_fmt = '%I:%M' . $s . ' %p';
else
$time_fmt = '%H:%M' . $s;
$result = db_query("
SELECT
mem.ID_MEMBER, mem.lastLogin, mem.realName, mem.memberName, mem.showOnline,
mg.onlineColor, mg.ID_GROUP, mg.groupName
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP)) WHERE mem.lastLogin >= $midnight", __FILE__, __LINE__);
$context['num_hidden_users_online_today'] = 0;
$context['users_online_today'] = array();
$context['list_users_online_today'] = array();
while ($row = mysql_fetch_assoc($result))
{
if (empty($row['showOnline']))
{
$context['num_hidden_users_online_today'] = $context['num_hidden_users_online_today'] + 1;
if (!allowedTo('moderate_forum')) continue;
}
$userday = strftime('%d', forum_time(true));
$loginday = strftime('%d', forum_time(true, $row['lastLogin']));
$yesterday = $userday == $loginday ? '' : $txt['uot_yesterday'];
$lastLogin = $yesterday . strftime($time_fmt, forum_time(true, $row['lastLogin']));
$title = ' title="' . $lastLogin . '"';
// Some basic color coding...
if (!empty($row['onlineColor']))
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '"' . $title . ' style="color: ' . $row['onlineColor'] . ';">' . $row['realName'] . '</a>';
else
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '"' . $title . '>' . $row['realName'] . '</a>';
$is_buddy = in_array($row['ID_MEMBER'], $user_info['buddies']);
if ($is_buddy)
{
$link = '<b>' . $link . '</b>';
}
$context['users_online_today'][$row['lastLogin'] . $row['memberName']] = array(
'id' => $row['ID_MEMBER'],
'username' => $row['memberName'],
'name' => $row['realName'],
'group' => $row['ID_GROUP'],
'href' => $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => $link,
'is_buddy' => $is_buddy,
'hidden' => empty($row['showOnline']),
);
$context['list_users_online_today'][$row['lastLogin'] . $row['memberName']] = empty($row['showOnline']) ? '<i>' . $link . '</i>' : $link;
}
mysql_free_result($result);
krsort($context['users_online_today']);
krsort($context['list_users_online_today']);
$context['num_users_online_today'] = count($context['users_online_today']);
if (!allowedTo('moderate_forum'))
{
$context['num_users_online_today'] = $context['num_users_online_today'] + $context['num_hidden_users_online_today'];
}
// Track most online statistics?
if (!empty($modSettings['trackStats']))
{
// Determine the most users online - both all time and per day.
$total_users = $context['num_guests'] + ($modSettings['ob_googlebot_count_most_online'] ? $context['num_spiders'] : 0) + $context['num_users_online'];
// More members on now than ever were? Update it!
if (!isset($modSettings['mostOnline']) || $total_users >= $modSettings['mostOnline'])
updateSettings(array('mostOnline' => $total_users, 'mostDate' => time()));
$date = strftime('%Y-%m-%d', forum_time(false));
// One or more stats are not up-to-date?
if (!isset($modSettings['mostOnlineUpdated']) || $modSettings['mostOnlineUpdated'] != $date)
{
$request = db_query("
SELECT mostOn
FROM {$db_prefix}log_activity
WHERE date = '$date'
LIMIT 1", __FILE__, __LINE__);
// The log_activity hasn't got an entry for today?
if (mysql_num_rows($request) == 0)
{
db_query("
INSERT IGNORE INTO {$db_prefix}log_activity
(date, mostOn)
VALUES ('$date', $total_users)", __FILE__, __LINE__);
}
// There's an entry in log_activity on today...
else
{
list ($modSettings['mostOnlineToday']) = mysql_fetch_row($request);
if ($total_users > $modSettings['mostOnlineToday'])
trackStats(array('mostOn' => $total_users));
$total_users = max($total_users, $modSettings['mostOnlineToday']);
}
mysql_free_result($request);
updateSettings(array('mostOnlineUpdated' => $date, 'mostOnlineToday' => $total_users));
}
// Highest number of users online today?
elseif ($total_users > $modSettings['mostOnlineToday'])
{
trackStats(array('mostOn' => $total_users));
updateSettings(array('mostOnlineUpdated' => $date, 'mostOnlineToday' => $total_users));
}
}
// Allowed user to see spiders online (We change stuff here AFTER stats update). Spiders are displayed as guests again.
if (!allowedTo('googlebot_view'))
$context['num_guests'] += $context['num_spiders'];
// Set the latest member.
$context['latest_member'] = &$context['common_stats']['latest_member'];
// Load the most recent post?
if ((!empty($settings['number_recent_posts']) && $settings['number_recent_posts'] == 1) || $settings['show_sp1_info'])
$context['latest_post'] = $most_recent_topic['ref'];
if (!empty($settings['number_recent_posts']) && $settings['number_recent_posts'] > 1)
{
require_once($sourcedir . '/Recent.php');
if (($context['latest_posts'] = cache_get_data('boardindex-latest_posts:' . md5($user_info['query_see_board'] . $user_info['language']), 180)) == null)
{
$context['latest_posts'] = getLastPosts($settings['number_recent_posts']);
cache_put_data('boardindex-latest_posts:' . md5($user_info['query_see_board'] . $user_info['language']), $context['latest_posts'], 180);
}
// We have to clean up the cached data a bit.
foreach ($context['latest_posts'] as $k => $post)
{
$context['latest_posts'][$k]['time'] = timeformat($post['raw_timestamp']);
$context['latest_posts'][$k]['timestamp'] = forum_time(true, $post['raw_timestamp']);
}
}
$settings['display_recent_bar'] = !empty($settings['number_recent_posts']) ? $settings['number_recent_posts'] : 0;
$settings['show_member_bar'] &= allowedTo('view_mlist');
$context['show_stats'] = allowedTo('view_stats') && !empty($modSettings['trackStats']);
$context['show_member_list'] = allowedTo('view_mlist');
$context['show_who'] = allowedTo('who_view') && !empty($modSettings['who_enabled']);
$context['show_karmastat'] = allowedTo('karmalog_view') && empty($modsettings['karmapermiss']);
// Set some permission related settings.
$context['show_login_bar'] = $user_info['is_guest'] && !empty($modSettings['enableVBStyleLogin']);
$context['show_calendar'] = allowedTo('calendar_view') && !empty($modSettings['cal_enabled']);
// Load the calendar?
if ($context['show_calendar'])
$context['show_calendar'] = calendarDoIndex();
$context['page_title'] = $txt[18];
}
// Called from the BoardIndex to display the current day's events on the board index.
function calendarDoIndex()
{
global $modSettings, $context, $user_info, $scripturl, $sc, $ID_MEMBER;
// Make sure at least one of the options is checked.
if (empty($modSettings['cal_showeventsonindex']) && empty($modSettings['cal_showbdaysonindex']) && empty($modSettings['cal_showholidaysonindex']))
return false;
// Get the current forum time and check whether the statistics are up to date.
if (empty($modSettings['cal_today_updated']) || $modSettings['cal_today_updated'] != strftime('%Y%m%d', forum_time(false)))
updateStats('calendar');
// Load the holidays for today, ...
if (!empty($modSettings['cal_showholidaysonindex']) && isset($modSettings['cal_today_holiday']))
$holidays = unserialize($modSettings['cal_today_holiday']);
// ... the birthdays for today, ...
if (!empty($modSettings['cal_showbdaysonindex']) && isset($modSettings['cal_today_birthday']))
$bday = unserialize($modSettings['cal_today_birthday']);
// ... and the events for today.
if (!empty($modSettings['cal_showeventsonindex']) && isset($modSettings['cal_today_event']))
$events = unserialize($modSettings['cal_today_event']);
// No events, birthdays, or holidays... don't show anything. Simple.
if (empty($holidays) && empty($bday) && empty($events))
return false;
// This shouldn't be less than one!
if (empty($modSettings['cal_days_for_index']) || $modSettings['cal_days_for_index'] < 1)
$days_for_index = 86400;
else
$days_for_index = $modSettings['cal_days_for_index'] * 86400;
$context['calendar_only_today'] = $modSettings['cal_days_for_index'] == 1;
// Get the current member time/date.
$now = forum_time();
// This is used to show the "how-do-I-edit" help.
$context['calendar_can_edit'] = allowedTo('calendar_edit_any');
// Holidays between now and now + days.
$context['calendar_holidays'] = array();
for ($i = $now; $i < $now + $days_for_index; $i += 86400)
{
if (isset($holidays[strftime('%Y-%m-%d', $i)]))
$context['calendar_holidays'] = array_merge($context['calendar_holidays'], $holidays[strftime('%Y-%m-%d', $i)]);
}
// Happy Birthday, guys and gals!
$context['calendar_birthdays'] = array();
for ($i = $now; $i < $now + $days_for_index; $i += 86400)
if (isset($bday[strftime('%Y-%m-%d', $i)]))
{
foreach ($bday[strftime('%Y-%m-%d', $i)] as $index => $dummy)
$bday[strftime('%Y-%m-%d', $i)][$index]['is_today'] = strftime('%Y-%m-%d', $i) == strftime('%Y-%m-%d', forum_time());
$context['calendar_birthdays'] = array_merge($context['calendar_birthdays'], $bday[strftime('%Y-%m-%d', $i)]);
}
$context['calendar_events'] = array();
$duplicates = array();
for ($i = $now; $i < $now + $days_for_index; $i += 86400)
{
if (empty($events[strftime('%Y-%m-%d', $i)]))
continue;
foreach ($events[strftime('%Y-%m-%d', $i)] as $ev => $event)
{
if (empty($event['topic']) || (count(array_intersect($user_info['groups'], $event['allowed_groups'])) != 0 || allowedTo('admin_forum')))
{
if (isset($duplicates[$events[strftime('%Y-%m-%d', $i)][$ev]['topic'] . $events[strftime('%Y-%m-%d', $i)][$ev]['title']]))
{
unset($events[strftime('%Y-%m-%d', $i)][$ev]);
continue;
}
$this_event = &$events[strftime('%Y-%m-%d', $i)][$ev];
$this_event['href'] = $this_event['topic'] == 0 ? '' : $scripturl . '?topic=' . $this_event['topic'] . '.0';
$this_event['modify_href'] = $scripturl . '?action=' . ($this_event['topic'] == 0 ? 'calendar;sa=post;' : 'post;msg=' . $this_event['msg'] . ';topic=' . $this_event['topic'] . '.0;calendar;') . 'eventid=' . $this_event['id'] . ';sesc=' . $sc;
$this_event['can_edit'] = allowedTo('calendar_edit_any') || ($this_event['poster'] == $ID_MEMBER && allowedTo('calendar_edit_own'));
$this_event['is_today'] = (strftime('%Y-%m-%d', $i)) == strftime('%Y-%m-%d', forum_time());
$this_event['date'] = strftime('%Y-%m-%d', $i);
$duplicates[$this_event['topic'] . $this_event['title']] = true;
}
else
unset($events[strftime('%Y-%m-%d', $i)][$ev]);
}
if (!empty($events[strftime('%Y-%m-%d', $i)]))
$context['calendar_events'] = array_merge($context['calendar_events'], $events[strftime('%Y-%m-%d', $i)]);
}
for ($i = 0, $n = count($context['calendar_birthdays']); $i < $n; $i++)
$context['calendar_birthdays'][$i]['is_last'] = !isset($context['calendar_birthdays'][$i + 1]);
for ($i = 0, $n = count($context['calendar_events']); $i < $n; $i++)
$context['calendar_events'][$i]['is_last'] = !isset($context['calendar_events'][$i + 1]);
// This is used to make sure the header should be displayed.
return !empty($context['calendar_holidays']) || !empty($context['calendar_birthdays']) || !empty($context['calendar_events']);
}
//Top stats by Badboy
function call_ssi()
{
global $boarddir;
require_once($boarddir . '/SSI.php');
}
?>
SSI üzerinden ekliyorsa o zaman SSI.php'deki fonksiyonu kopyalamalıydınız. :)
Ekte veriyorum sinan hocam içerik fazla olduğu için taglar arası ekleyemedim.
Bul:
SELECT ID_MEMBER, realName, posts , karmaGood
Değiştir:
SELECT ID_MEMBER, realName, posts , (karmaGood + elianaGood) as total
Bul:
ORDER BY karmaGood DESC
Değiştir:
ORDER BY total DESC
Bul:
'karma' => $row_members['karmaGood'],
Değiştir:
'karma' => $row_members['total'],
Yok Sinan hocam bir değişiklik yok profilde artıyor ama anasayfdaki top10'da arttırmıyor.
İki tane karma modunuz varmış. :)
Bul:
SELECT realName, karmaGood, karmaBad, ID_MEMBER
Değiştir:
SELECT realName, (karmaGood + elianaGood) as totalGood, (karmaBad + elianaBad) as totalBad, ID_MEMBER
Bul:
'karmaGood' => $row['karmaGood'],
'karmaBad' => $row['karmaBad'],
'karmaTotal' => $row['karmaGood'] - $row['karmaBad'],
Değiştir:
'karmaGood' => $row['totalGood'],
'karmaBad' => $row['totalBad'],
'karmaTotal' => $row['totalGood'] - $row['totalBad'],
Sinan hocam oldu çok teşekkürler ancak bazı üyelerin karmaları arttı şimdide resimde görebilirsin.
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fwww.kralrap.net%2Fresim%2Fuploads%2Fe5c931ee66e402120a4c02a94f76548e.png&hash=68ce624c471cd4c59d9220fca72092fa2ed7a7ea)
Bul:
$sql = "FLOOR(1000000+karmaGood-karmaBad)"; //It look strange... but there is small bug in SQL on negativ results...
else
$sql = "karmaGood";
Değiştir:
$sql = "FLOOR(1000000+totalGood-totalBad)"; //It look strange... but there is small bug in SQL on negativ results...
else
$sql = "totalGood";
Sinan hocam zahmet veriyorum ama bu sefer sıralama düzeldi ancak 1. sırada başka üye olması gerekirken 8.sıradaki geçti 1000-2000 karma havadan eklendi bazı üyelere o düzelmedi son verdiğin kod sıralamayı yaptı.
Sinan hocam üyenin profil ayarlarına girdim orada kendi doğru karma sayısı görünüyor sadece ssi ile görünen yerlerde kafasına göre ekleme yapmış orda birleştirme yaparken aldığı teşekkürleri falan eklemiş olabilirmiyiz ki olabilir mi öyle birşey.
BoardIndex.template.php kodlarınızı da görebilir miyim?
Sinan hocam vereyim ama ana sayfadamda portalımda ssi'den çekerek gösteriyorum. Hem portalda hem forumda durum aynı profil ayarlarında üyelik bilgilerinde doğru karmaları var ssi ile çektiğim karmalarda artmış durumda.
Dosyam ektedir.
Ekteki SSI.php'yi dener misiniz?
Maalesef düzelme olmadı Sinan kardeş.
Son olarak şunu deneyelim:
Bul:
SELECT realName, (karmaGood + elianaGood) as totalGood, (karmaBad + elianaBad) as totalBad, ID_MEMBER
Değiştir:
SELECT realName, (karmaGood + elianaGood) as totalGood, (karmaBad + elianaBad) as totalBad, ID_MEMBER, ((karmaGood + elianaGood) - (karmaBad + elianaBad)) as totaltotal
Bul:
$sql = "FLOOR(1000000+totalGood-totalBad)"; //It look strange... but there is small bug in SQL on negativ results...
Değiştir:
$sql = "totaltotal"; //It look strange... but there is small bug in SQL on negativ results...
Eğer bu şekilde de olmazsa modun sahibine sormanızı tavsiye ediyorum. :)
Tüm karmalar sıfırlanmış sanırım bu şekli aldı.
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fwww.kralrap.net%2Fresim%2Fuploads%2F1e384eb94ee2c53bd121e954ac1d336a.png&hash=dc7ab0ab19ab828009fd3391399ce602f9445560)
Konuyu okunmamış olarak işaretliyorum, yarın tekrar bakarım.
Sinan hocam bakabildiniz mi acaba ???
Quote from: [SiNaN] on August 27, 2008, 06:29:05 PM
Konuyu okunmamış olarak işaretliyorum, yarın tekrar bakarım.
Sinan hocam bakabilecekmisiniz top10'da karma bölümü iyi karıştı :)
DIN1031'den rica ettim, sizin için yeni bir mod yazdı. Sanırım kısa bir süre içinde onaylanır. :)
Quote from: [SiNaN] on August 31, 2008, 02:40:16 PM
DIN1031'den rica ettim, sizin için yeni bir mod yazdı. Sanırım kısa bir süre içinde onaylanır. :)
Peki ben herşeyi gerimi alayım şimdi Sinan hocam. Yoksa kalsın mı sizin yaptırdığınız değişiklikler ile.
Geri alırsanız daha iyi olur.
Modu kurdum, sıfırla butonuna bastım 500 internal server error hatası verdi, ama karmalar değişti, modu kaldırmak istedim başarılı bir şekilde kalktı.
Sonra tekrar kurayım dedim veritabanı hatası verdi: dublicate column gibi bişeyler diyordu.
Daha sonra iptal deyip tekrar denedim bu sefer: ./Sources/Subs-Post.php Test Başarısız ve ./Sources/Load.php Test Başarısız .
Sanırım tam olarak kalkmadı mod, şimdi ne yapmam gerek acaba?
500 hatası sunucu ile alakalı, yapabileceğim birşey yok maalesef.
Modu kaldırdıktan sonra veritabanına eklenen iki alan silinmez, bunları ell kaldırmanız gerek.
Elle kurulumu kullanarak değişiklik yapılan dosyalardan modun tamamen kaldırıldığını kontrol edin.
Eğer tekrar kurmak isterseniz, öncesinde şu kodu PhpMyAdmin'den sorgulatın:
ALTER TABLE smf_members
DROP elianaGood, elianaBad
Öncelikle teşekkür ederim, phpmyadmin - SQL - kodu çalıştırdım sonuç:
Hata
SQL sorgusu:
ALTER TABLE smf_members DROP elianaGood,
elianaBad
MySQL çıktısı:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'elianaBad' at line 1
ne yapabiliriz acaba?
Not: kötü karmayı hiç kullanmamıştım, bununla ilgisi olabilir mi acaba?
Pardon, şunu kullanın:
ALTER TABLE smf_members
DROP elianaGood,
DROP elianaBad
SQL sorgunuz başarılı olarak çalıştırıldı
Teşekkürler :)
Edit: modu da kurdum, gayet güzel çalışıyor :)
Sinan hocam DIN1031 sanırım demiş olduğunuz modu yayınlamış onu kurdum SSI'deki karmalar düzeldi ancak şu an üyenin profilinde üyelik ayarlarında 2032 gözüken karma sayısı mesaj içerisinde 5210 gözüküyor düzeltemedim onu nereyle alakalı olabilir acaba.
Üyelik Ayarlarında sadece normal karma görünür. Mesaj içerisinde görünenlere otomatik karma eklenmiştir.
Peki Sinan hocam üyelik ayarlarımda benim 2133 mesaj içindeki profilimde 5341 falan SSI'de de 2133 şimdi bu doğrumu yani aradaki 3208 karma nerden geldi otomatik olarak ben o kadar karma almış olamam ki.
Forumu görebilir miyim?
http://www.trforumcu.net/forum/ (http://www.trforumcu.net/forum/) Site adresi bu dilerseniz admin hesabı verebilirim. Üyelikde bu
http://www.trforumcu.net/forum/profiles/thunder-u6.html (http://www.trforumcu.net/forum/profiles/thunder-u6.html) SSI ile çekilmiş karma sıralamasında 2133 konu içinde 5341 üyelik ayarlarındada 2133
Hatta Sinan hocam http://www.trforumcu.net/forum/ssi_examples.php (http://www.trforumcu.net/forum/ssi_examples.php) buradan da görebilirsiniz.
Highest Karma Function: <?php ssi_karmaHighest(); ?> burada Seyduna nickli üye 1. iken
Highest Karma Function: <?php ssi_elianaHighest(); ?> burada ¹×¦ ЅдνдŞ ¦×¹ nickli üye 1. Savaş nickli üye neye göre 1. oluyor o sıralamada acaba aktif olarak o üyeliğin açmış olduğu bir konu falan yok modu kurduktan sonra.
Şidmilik sadece üyelik yeterli.
Ayarları yaptıktan sonra "Otomatik Karma puanlarını tekrar hesapla" özelliğini kullandınız mı?
Üyelik
Kullancı Adı:smftest
Parola :12345678
Şuan yaptım ancak uzun bir süre bekliyor ve daha sonra zaman aşımına uğradı diyerek hata veriyor pma'dan yapabilirmiyim aynı işlemi acaba.
Şu an profilde, portalda, ana sayfada ve mesaj profilinde aynı görüyorum.
Sinan hocam portalda 2134 anasayfada aynı şekilde SSI ile çektiği için 2134 şu (http://www.trforumcu.net/forum/msn-live-messenger/windows-live-messenger-surum-2009-t52903.0.html) konuya bakarmısınız ve bu (http://www.trforumcu.net/forum/profiles/thunder-u6.html) profile 5475 yazıyor bu iki yerde çok farklı yani.
Tekrar kontrol etme fırsatım oldu bugün. Konu ve profilde doğru bir şekilde görünüyor. Ama ana sayfadaki sıralama yanlış. Orada DIN1031'in yazdığı son modifikasyonu kullandığınıza emin misiniz?
Evet son modifikasyonu kurmuştum paketi indirip.
Ama ana sayfada o SSI fonksiyonunu mu kullandınız? ssi_eliana...
Quote from: [SiNaN] on September 14, 2008, 02:59:59 PM
Ama ana sayfada o SSI fonksiyonunu mu kullandınız? ssi_eliana...
Sinan hocam ssi_karma bunun ile çekiyorum dediğiniz gibi ssi_eliana bununla çekeyim ama ssi_eliana bununla ssi_karma arasında çok farklar var karması 500 olan üye atıyorum 5000 olmuş. http://www.trforumcu.net/forum/ssi_examples.php buradan görebilirsiniz.
Sinan hocam bu profilim ile üyelik ayarlarımda gösterilen karma arasındaki dağlar kadar fark acaba nasıl gelmiş olabilir sorun ne olabilir.
Eğer ssi modu ile alakalı sorun yaşıyorsanız onun destek konusunu denemenizi öneriyorum, daha net bir cevap alabilirsiniz.
s.a hayırlı akşamlar kardeşim elinize sağlık allah razı olsun. fakat ben bu konularda çok açemi ve yeni sayılırım nasıl kurulacağı hakkında bilgi verebilirmisiniz lütven.
Şimdiden tşkler.
Duplicate column name 'elianaBad'
Dosya: /home/islamhay/public_html/forum/install.php
Satır: 25
bu hatayı almaktayım arkadaşlar bana yardımcı olurmusunuz.
yardımlarınızı bekliyorum suan inş.
Modifikasyonu önceden kurmuşsunuz.
phpMyAdmin'den şu sorguyu çalıştırın ve tekrar deneyin:
ALTER TABLE smf_members
DROP elianaGood,
DROP elianaBad
Modu sorunsuz uyguladım teşekkürler, işime yaradı..
Quote from: Blue Dream on August 27, 2008, 04:41:49 PM
İki tane karma modunuz varmış. :)
Bul:
SELECT realName, karmaGood, karmaBad, ID_MEMBER
Değiştir:
SELECT realName, (karmaGood + elianaGood) as totalGood, (karmaBad + elianaBad) as totalBad, ID_MEMBER
Bul:
'karmaGood' => $row['karmaGood'],
'karmaBad' => $row['karmaBad'],
'karmaTotal' => $row['karmaGood'] - $row['karmaBad'],
Değiştir:
'karmaGood' => $row['totalGood'],
'karmaBad' => $row['totalBad'],
'karmaTotal' => $row['totalGood'] - $row['totalBad'],
sağol çok makbule geçti:)
usta Eliana Modu sorunsuz kurdum.. hersey tmmm ama bır turlu aktıf olmadı panelden ayarları yaptım her bolume actım fln fln :S kısacası bır turlu aktıff edemedım yaa :S
Quote from: CybeR.BoyS on April 27, 2009, 12:17:53 PM
usta Eliana Modu sorunsuz kurdum.. hersey tmmm ama bır turlu aktıf olmadı panelden ayarları yaptım her bolume actım fln fln :S kısacası bır turlu aktıff edemedım yaa :S
arkadaşlar yanıtınızı beklıyorum... :/ fLoood gıbı algılamayında Varsayılan Ayarlar Bölüm ayarları olarak ıkı ayara grubundan aktıf kILdım.. :S ama yıne ıslemedı :/
ynT yoK mu :(
arkadaslar hadı yaa mod kuruldu ama aktıf edemedım...
hocam bu 2.0 için uyumlu değil sanırım paket olarak yüklerken tamamı hata verdi.acaba uyarlamayı düşünüyor musunuz?
hocam şunu 2.0 a uyarlasanda kullansak ya çok güzel olur
[SiNaN] Abi, modifikasyonu 2.0a çevirmeyi düşünüyor musun?
bu konu ıle ılgılenen yok :S
ben kurdum modu calısmadı kaLdırdım gerı :S
Quote from: CybeR.BoyS on May 26, 2009, 11:29:59 AM
bu konu ıle ılgılenen yok :S
ben kurdum modu calısmadı kaLdırdım gerı :S
yanlış hatırlamıyorsam forum seçenekleri> karma > allta ayarlar var
Quote from: MaRaSLi46 on May 27, 2009, 03:15:23 PM
Quote from: CybeR.BoyS on May 26, 2009, 11:29:59 AM
bu konu ıle ılgılenen yok :S
ben kurdum modu calısmadı kaLdırdım gerı :S
yanlış hatırlamıyorsam forum seçenekleri> karma > allta ayarlar var
dogru hatırlıyorsun ama hıc bır turlu caLısmadı... her yolu denedımmm =)
elinize sağlık arkadaşlar birde özel msj gönderdiğinde düşşe çok hoş olur :)
Ben install.php icinde olani phpmyadmin kabul etmiyor? yani kuramadim..
nasıl anlamadım.. Yükleme sırasında hatamı oluştu ?
Quote from: €®Ю€∏∏----® on May 30, 2009, 03:28:00 AM
nasıl anlamadım.. Yükleme sırasında hatamı oluştu ?
phpmyadmin giriyorum ve import basiyorum install.php seciyorum ama errorlar veriyor? bana bi anlatabilirmisiniz nasil yukleniyor install.php?
./Source/Load.php Bende mem.password diye yazilar yokki:
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fi39.tinypic.com%2F2yl9q11.jpg&hash=76fae6f4a0c53bb6a68c195a44300c35df3494ff) (http://i39.tinypic.com/2yl9q11.jpg)
bana lutfen yardim ederminiz, bu mod bana coook lazim forumuma! lutfen!
Dosyayı sadece SSI.php dosyasının bulunduğu dizine atıp çalıştırın. Ve de o kodların bulunmaması imkansız...
Quote from: Yağız... on May 30, 2009, 03:16:12 PM
Dosyayı sadece SSI.php dosyasının bulunduğu dizine atıp çalıştırın. Ve de o kodların bulunmaması imkansız...
Ok kodlari buldum :-[
Elianayi yukledim ve admin panelinde gozukuyor, ama karmayi sifirlayamiyor, cunku halen install.php yukluyemedim, lutfen yardim edin! butun gundur ugrasiyorum.
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fi41.tinypic.com%2F6sglcm.jpg&hash=0ef8a4b00a1963c60a2c070de0519b8d61a05eab) (http://i41.tinypic.com/6sglcm.jpg)
Simdi install.php ssi.php olan yere koydum ve siteme gittim www.benimsitem.nl/install.php
ama bu codlar yazdi:
Notice: Use of undefined constant kayit1 - assumed 'kayit1' in domains/Benimsitem.nl/public_html/Sources/Load.php(1740) : eval()'d code on line 648
Notice: Use of undefined constant kayit2 - assumed 'kayit2' in domains/Benimsitem.nl/public_html/Sources/Load.php(1740) : eval()'d code on line 649
Notice: Use of undefined constant kayit3 - assumed 'kayit3' in domains/Benimsitem.nl/public_html/Sources/Load.php(1740) : eval()'d code on line 650
Notice: Use of undefined constant kayit4 - assumed 'kayit4' in domains/Benimsitem.nl/public_html/Sources/Load.php(1740) : eval()'d code on line 651
Ve errorun altindada bu yaziyor:
Veritabanı Hatası
Duplicate column name 'elianaBad'
Dosya: domains/benimsitem.nl/public_html/install.php
Satır: 25
lutfen yardimci olun, butun gundur ugrasiyorum. :'(
install.php dosyasini zaten calistirmissiniz. kayit1 kayit2 vb. hatalar için, Themes/default/languages/index.turkish.php ve Themes/default/languages/Modifications.turkish.php dosyalarini eke ekleyin.
Quote from: Yağız... on May 31, 2009, 01:37:35 PM
install.php dosyasini zaten calistirmissiniz. kayit1 kayit2 vb. hatalar için, Themes/default/languages/index.turkish.php ve Themes/default/languages/Modifications.turkish.php dosyalarini eke ekleyin.
eke ekledim
Buyurun.
Quote from: Yağız... on May 31, 2009, 01:50:05 PM
Buyurun.
tesekurlerde halen sifirlamak istedigimde error veriyor
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fi41.tinypic.com%2F6sglcm.jpg&hash=0ef8a4b00a1963c60a2c070de0519b8d61a05eab) (http://i41.tinypic.com/6sglcm.jpg)
Bir sorum daha: bunun calismasi icin "normal" karma acik olmasimi gerek?
Modifikasyonu hiç kullanmadim ama sanirim acik olmasi gerekiyor.
Quote from: Yağız... on May 31, 2009, 02:22:11 PM
Modifikasyonu hiç kullanmadim ama sanirim acik olmasi gerekiyor.
CALISDI!!!!!
ya bi problem daha cikdi,
ben ayarlarda her yanit icin 1karma versin yaziyom ama, 2 karma birden veriyor.
Her yeni Konu 5Karma verecegi yerde 10Karma veriyor, yani herseyin iki katini veriyor :S
Bundan once automatic karma modu vardi, kaldirirken basarisiz yazmisdi, ondan olabilirmi?
Evet, kesinlikle ondandır :)
Manuel olarak kaldırmayı deneyin.
Quote from: Yağız... on May 31, 2009, 05:42:06 PM
Evet, kesinlikle ondandır :)
Manuel olarak kaldırmayı deneyin.
ama ben onu manual kurmadiydim, hangi kodlari silecegimi bilmiyorum :-[
http://custom.simplemachines.org/mods/index.php?action=parse;mod=1121;attach=51609;smf_version=1.1.8
tesekurler, ellerin dert gormesin 8)
SMF 1.1.10 kullanıyorum ve UTF-8 dil dosyası mevcut. Paketin uyumlu versiyonu var mı ?
Peki bazı bölümleri bu özellikten etkilenmemelerini sağlayabilir miyiz?
smf rc 2 için hiç uyum sağlamıyor manuelden yapmaya çalışırum ama tutmuyor ElianaMod2.0 kuruyorum hatalar bir sürü smf 2 ne zman düzenlenecek..
2.0 RC3 versiyonu yapılabilir mi?
Yapılabilir. Ancak SiNaN henüz uyarlamadı.
Mod silinmiş ya da el değiştirmiş sanırım.
Evet, sanırım [SiNaN] silmiş.
mod sitesinde gözükmüyor varmı manuel anlatımı
Otomatik karma derken neye göre otomatik karma anlatırmısınız ?
sinan modu güncellemeni bekliyoruz kardeş. :)