(Son Güncelleme: 26.12.2007)
Merhaba arkadaşlar sanırım bu yazı SMF için yazılmış ilk Türkçe rehber olacak. Bu rehberde SSI'nın ne olduğunu, ne işe yaradığını ve hepsinden önemlisi SSI'yı ihtiyaçlarınızı karşılayabilecek şekilde nasıl kullanabileceğinizi örnekli bir anlatımla öğrenebileceksiniz. Eğer rehberde bir hata fark eder, anlamadığınız bir yer olur veya herhangi başka bir sorun veya sorununuz olursa bu konuya cevap yazmaktan çekinmeyin.
Bölüm 1: Bilgi
SSI Nedir?SSI'ın açılımı Server Side Includes'dur. Gerçek SSI'ın kendine ait bir programlama dili vardır ve sunucuda çalıştırılan kullanıcı tarafından kendi sayfalarına çağırılabilen dinamik bilgilere denir. Bizim kullancağımız SSI ise başka bir PHP dosyasında tanımlı fonksiyonlar bütünüdür. Bu fonksiyonları forum'dan değişik bilgileri istediğimiz herhangi bir forum-dışı sayfaya çağırmak için kullanacağız.
Ne İşe Yarar?SSI'yı kullanarak istediğimiz herhangi bir sayfaya SMF kullanıcı girişi, Forum'dan Son konular/mesajlar, Forum'da en çok mesaj atan kişiler, Forum'da Kimler Online ve daha birçok değişik bilgiyi görüntüleyebileceğiz.
Ne Gerekir?SSI'yı kullanmak üzere ekstra hiçbir şey'e ihtiyaç yoktur, SMF'nin çalıştığı her ortamda SSI'da çalışabilir.
Kullanırken Çok Zorlanacak mıyım?Kesinlikle hayır burada uygulayacağımız örnekli anlatım sayesinde copy&paste yapmayı bilen, basit HTML bilgisine sahip herkes SSI kullanrak kolayca sitelerine profosyonel bir görünüm kazandırabilirler.
Bölüm 2: Kullanım
SSI kullanmak için öncelikle ihtiyacımız olan şey, SSI'yı kullanacağımız sayfanın uzantısının PHP olması. Eğer böyle değilse, lütfen ilk olarak uzantıyı PHP yapın. İkinci olaraksa SSI.php'nin sayfada önceden tanımlanması. Bunun için ilk olarak http://forumunuzunadresi/ssi_examples.php (forumunuzunadresi örnektir burayı forum'unuzun yüklü olduğu tam konum ile değiştirin) adresine gidin ve aşağıda kırmızı ile işaretlenmiş satırı kopyalayın:
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fturkish.doom9.org%2Fsmf%2Fssishot1.png&hash=a605d834c4778ee2ea3c76dfdc8548a37f8658fd)
Ve SSI verilerinin gözükmesini istediğiniz sayfanın 1'nci satırına, <html> tag'inden önce gelecek şekilde yapıştırın, örn:
<?php require("/home/forsaken/public_html/forum/SSI.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Örnek Sayfa</title>
</head>
<body>
İçerik
</body>
</html>
Tamam artık bu sayfada gözükmesini istediğimiz herhangi bir yerde SSI verilerini gösterebiliriz, bir deneme yapalım mesela, <body></body> tag'lerinin arasına SSI verisinin gözükmesini istediğiniz yere saşğıdaki kodu girin:
<?php ssi_topPoster(); ?>
Bu kod forum'unuzda en çok mesaj atmış kişiyi gösterecektir. Bir dahaki bölümde örnekli anlatımlarıyla tek tek her SSI fonksiyonun ne işe yaradığını ve kullanımını öğreneceksiniz
Bölüm 3: Örnekler
Son Konular - ssi_recentTopics(); ve Son Mesajlar - ssi_recentPosts();(Son Konular için geçerli kodların hepsi Son Mesajlar içinde geçerlidir, yapmanız gereken sadece ssi_recentTopics()'i, ssi_recentPosts(); ile değiştirmektir)İsmindende anlaşılacağı gibi bu fonksiyon forumunuzdaki son konuları, bulundukları kategori, yazarları ve açılış zamanları ile birlikte, sayfanızın istediğiniz bir yerinde gösterir. Bu SSI fonksiyonunu direk ssi_recentTopics(); olarak girdiğinizde karşınıza ssi_examples.php'dede görebileceğiniz varsayılan özellikleriyle çıkar. Haydi bu fonksiyonu biraz özelleştirelim:
<?php
ssi_recentTopics($num_recent = 8, $exclude_boards = null, $output_method = 'echo');
?>
Bu girdi yine default özellikleriyle gösterecektir, burada $num_recent'i değiştirirerek gösterilmesini istediğiniz son konu sayısını ayarlayabilir $exclude_boards = null'ı $exclude_boards = array() yaparak, parantezler içine yazacağınız Board Id'lerle o bölümlerden son konuların gösterilmesini engelleyebilirsiniz, örneğin benim forum'umda 1 duyurular ve 4 test bölümü (bunlardan gelen son konuları göstermek istemiyorum), ve ayrıca son 5 mesajı göstermek istiyorum, bunun için yazmam gereken kod:
<?php
ssi_recentTopics($num_recent = 5, $exclude_boards = array(1,4), $output_method = 'echo');
?>
Bu kadar basit, artık şık bir son konular bölümüne sahibim :)
Anket - ssi_showPoll();ssi_showPoll(); fonksiyonu forum'dan seçeceğimiz bir anketi php tabanlı herhangi bir sayfada görüntülememize olanak sağlamaktadır. Kullanımı aşağıdaki şekildedir:
<?php
ssi_showPoll($topic = null, $output_method = 'echo')
?>
Burada null adlı yere göstermek istediğimiz anketin konu id'sini girdiğimizde, istenilen anket devamlı olarak görüntülenecektir. Konu id'si, bulunduğunuz konunun URL'sine bakılarak öğrenilebilir, örneğin bu konunun id'si:
http://www.simplemachines.org/community/index.php?topic=47018.0
47018 dir. Eğer bu konu ile bir anket ilişkilendirilmiş olsaydı, bu anketi görüntülemek için kullanmamız gereken kod aşağıdaki gibi olurdu:
<?php
ssi_showPoll($topic = 47018, $output_method = 'echo')
?>
Son Anket - ssi_recentPoll(); ve En Popüler Anket - ssi_topPoll();Bu fonksiyonlarımızın ortak özelliği forumdan herhangi bir PHP sayfaya anket çağırabilmemize olanak sağlamalarıdır. ssi_recentPoll(); adlı fonksiyon, forum'a gönderilmiş en son anketi görüntülerken; ssi_topPoll(); fonksiyonu şimdiye kadar tüm kullanıcılar tarafından en çok oy atılmış anketi görüntülememize olanak sağlamaktadır.
Son Anket - ssi_recentPoll(); un örnek kullanımı:
<?php ssi_recentPoll(); ?>
En Popüler Anket - ssi_topPoll(); un örnek kullanımı:
<?php ssi_topPoll(); ?>
Devam Edecek...
Evet devam edilirse cok hos olur ben diğer forumumda joomla köprü kullanıyorum lakin joomla köprünün acığı var ve pek sağlıklı değil eğer devam edilirse bu sekilde köprüsüz bir portal kurmayı düşünüyorum...
ben şimdi basit bir ana sayfa kurmak istiyorum.. ve ssi ile verileri o sayfaya çağırmak istiyorum...
şimdi anlamadığım, ssi.php diye bir syfa aslında smf de varmı yoksa biz mi yaratacağız.
ben index.php diye bir anasyafa yapıp onun başına mı bu <?php require("/home/forsaken/public_html/forum/SSI.php"); ?>
codu ekleyeceğim...
bunu benim için biraz daha açıklarsanız sevinirim..
gerçi açık anlatılmış gibi duruyor ama ben pek anlamadım :(
Hangi sayfada gözükmesini istiyorsan orada kullanacaksın.. ;)
arkadaslar ben yaptim yapmasina ama yazi tarzini istedigim sekilde oturtamadim sitenin ekranina mumkunse yardimci olabilirmisiniz? yada yeni bir ssi'mi yapsam?
hehe bende yapıodum nie olmuo bu diodum yaf
<?php require("/home/forsaken/public_html/forum/SSI.php"); ?> bu nu atmayı unutmuşum :D
ya ben yaptimda style dosyasini ayarlayamadim baya bir kasti butun gun uzerindeyim. yaziyi ufaltamadim ne hikmetse.. lütfen yardimci olurmusunuz? ana sayfamdaki style kullanmasini istiyorum yoksa sayfanin duzeni baya bir bozuluyor.
anlatım için teşekkürler. fakat ben ssi kodunu joomla template imde nereye eklediysem olmadı.
Acaba ssi inin ilgili dizinini temamda nereye eklemem gerekiyor söylermisiniz?
Tema indexim aşağıdaki gibi başlayıp devam ediyor...
<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$iso = explode( '=', _ISO );
echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
##### Begin Template Configurations #####
# change the width of the template
$width = "1"; // 1: 17"; 0: 15"
# enable users option - ONLY ENABLE IF $WIDTH IS SET TO 1
$tool = "1"; // 1: Enable; 0: Disable
##### End Template Configurations #####
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php mosShowHead(); ?>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/template_css.css" rel="stylesheet" type="text/css"/>
<?php if (!$width) { ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="stylesheet" type="text/css"/>
<?php }
if ($tool) { ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="alternate stylesheet" type="text/css" title="wide"/>
<?php }
if ( $my->id ) { initEditor(); }
?>
<script language="javascript" type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/ja_script.js"></script>
<script language="javascript" type="text/javascript">
preloadimages("<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-on.gif","<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-off.gif");
</script>
</head>
<body id="bd" onload="preloadimages()">
<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$iso = explode( '=', _ISO );
echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
BURAYA <--
BURAYA yazdığım yere,
www.siteadresiniz.com/forumklasörünüz/ssi_examples.php adresinize girdiğinizde 4-5. satır civarında göreceğiniz
<?php require("
/klasör/klasör/klasör/yineklasör/forumklasörü/SSI.php"); ?>
benzeri satırdaki, sadece renklendirdiğim tırnak içindeki yeri yazınız.
Bu durumda olması gerekiyor.
Sevgiler
Quote from: Alhan on September 14, 2006, 02:41:37 PM
anlatım için teşekkürler. fakat ben ssi kodunu joomla template imde nereye eklediysem olmadı.
Acaba ssi inin ilgili dizinini temamda nereye eklemem gerekiyor söylermisiniz?
Tema indexim aşağıdaki gibi başlayıp devam ediyor...
<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$iso = explode( '=', _ISO );
echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
##### Begin Template Configurations #####
# change the width of the template
$width = "1"; // 1: 17"; 0: 15"
# enable users option - ONLY ENABLE IF $WIDTH IS SET TO 1
$tool = "1"; // 1: Enable; 0: Disable
##### End Template Configurations #####
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php mosShowHead(); ?>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/template_css.css" rel="stylesheet" type="text/css"/>
<?php if (!$width) { ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="stylesheet" type="text/css"/>
<?php }
if ($tool) { ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="alternate stylesheet" type="text/css" title="wide"/>
<?php }
if ( $my->id ) { initEditor(); }
?>
<script language="javascript" type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/ja_script.js"></script>
<script language="javascript" type="text/javascript">
preloadimages("<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-on.gif","<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-off.gif");
</script>
</head>
<body id="bd" onload="preloadimages()">
Quote$exclude_boards = null'ı $exclude_boards = array() yaparak, parantezler içine yazacağınız Board Id'lerle o bölümlerden son konuların gösterilmesini engelleyebilirsiniz, örneğin benim forum'umda 1 duyurular ve 4 test bölümü (bunlardan gelen son konuları göstermek istemiyorum), ve ayrıca son 5 mesajı göstermek istiyorum
Peki sadece 1 ve 4 ID numaralı boardlardaki konuları göstermek istersek, bunların dışındaki tüm IDleri mi yazmamız lazım (tabi ileride yeni board eklendiğinde unutmayıp buraya da ID sini eklemek gerekecek) ya da başka kolay bir yol var mıdır?
Sevgiler...
Biz uzaktan calıstıramazmıyız ? yani bizimkisi baska host smf nin baska host bu şekilde kodlar calısmazmı ?
neredeyse bir haftadan fazla oldu hala cevap yok
SSI icin yardimci olacak kimse yokmu acaba? alperuzi, Elmacik, Arbalot, HarzeM bu konuya el atarmisiniz lutfen ustadlar
Gerçektende benim için çok güzel bir kaynak oldu buradaki anlatımla çok güzel bir board yapmak bile mümkün teşekkür ediyorum elinize sağlık
Teşekkürler devamını sasabırsızlıkla bekliyorum
SSI.php dosyasının nerede oldugunu tam olarak nerden ögreniriz ?
birde
<?php
ssi_recentTopics($num_recent = 5, $exclude_boards = array(1,4), $output_method = 'echo');
?>
bu komutudamı index.php ye koyucaz
joomlanın
Teşekkürler çok iyi
KoLay gELsin BiLgiLendirmeniz için teşekkür ederim bu özellikle alakalı acıkLama yaptığınız için.Benim merak ettiğim Mu özeLLikLeri kötü amacLı kuLlandıkLarında bana zarar verme şansları varmı.BunLarı Kullanılarak asLında çok hoş işLemLer oLuyo ama biLiyorsunuzki bu farkedenLer kötü amacLı kuLLanmak için hemen işLemLerine başLıyorlar.biLgi veririseniz Sevinirim TeşekkürLer...
hayır bundan hiçbir zarar veremezler çünkü sadece smf nin kodlarını kullanıyorsun başka bişe yok bunda
TeşekkürLer
cok guzel ise yariyor ama zahmet edip bir ustadimiz ilgilenirse daha cok iyi olacak..
teşekkürler bayağı işime yarayacak bir kaynak olmuş ;)
Quote from: badman on September 26, 2006, 09:49:13 AM
Biz uzaktan calıstıramazmıyız ? yani bizimkisi baska host smf nin baska host bu şekilde kodlar calısmazmı ?
Benimde hostum farklı domainin farklı bir sitede çalıştırmak istiyorum. Burada anlatılanlara göre sadece aynı hostta çalışacak gibi duruyor. Ne yapmalıyım?
Farklı hostta da kullanabilirsiniz. Eğer PHP içinde kullanacaksanız şunu yapın:
implode('', file('http://www.siteniz.com/forumunuz/SSI.php?ssi_function=recentTopics'));
Eğer SHTML içinde kullanacaksanız şunu yapın:
<!--#include virtual="./SSI.php?ssi_function=recentTopics" -->
Eğer HTML kullanacaksanız iframe açarak linkini şu şekilde verin:
http://www.siteniz.com/forumunuz/SSI.php?ssi_function=recentTopics
Burada recentTopics fonksiyonunu örnek olarak yazdım. Siz hangi fonksiyonu kullanacaksanız onu yazın.
Herkese teşekkürler,
Sadece başlığı alabilmek mümkün mü peki?
yani kullanıcı adı, kategori adı tarih saat falan gözükmese
sadece konunun başlığı gözükse...
çözen biri olursa çok sevineceğim...
Quote from: mk1977 on November 10, 2006, 04:42:38 AM
Herkese teşekkürler,
Sadece başlığı alabilmek mümkün mü peki?
yani kullanıcı adı, kategori adı tarih saat falan gözükmese
sadece konunun başlığı gözükse...
tam olarak hangi fonksiyonda istiyorsun bunu
son konular mı son mesajlar mı?
olabilirse ikisini de bilmek isterim :)
elimde bi script war o scripti editledim birazda olsa ben burda benim kendi sitemden mesela son konuları göstermek istiyorum scirpt te anasayfanın alt kısımlarında google reklamları wardı o kodları sildim o kodların yerinde benim forumdan konuların görünmesini nasıl sağlarım ya ifare hakkındada bi bilgim yok açıkcası harzem usta yazmış bazı şeyler ama anlamadım :(
Lord'um yardımlarını bekliyorum :)
Quote from: Lord Arbalot on November 13, 2006, 02:55:49 PM
Quote from: mk1977 on November 10, 2006, 04:42:38 AM
Herkese teşekkürler,
Sadece başlığı alabilmek mümkün mü peki?
yani kullanıcı adı, kategori adı tarih saat falan gözükmese
sadece konunun başlığı gözükse...
tam olarak hangi fonksiyonda istiyorsun bunu
son konular mı son mesajlar mı?
evet evet benim istedigimde tam böyle birşey yani forumdaki son konuların sadece konu başlıkları goruncek yani tarih ,yazan ve konunun nereye yazıldıgı değil
sanırım çözümü yok bunun zira kimsenin sesi çıkmadı çok zamandır :)
Quote from: forsakenlad on August 25, 2005, 06:51:20 PM
[Bu girdi yine default özellikleriyle gösterecektir, burada $num_recent'i değiştirirerek gösterilmesini istediğiniz son konu sayısını ayarlayabilir $exclude_boards = null'ı $exclude_boards = array() yaparak, parantezler içine yazacağınız Board Id'lerle o bölümlerden son konuların gösterilmesini engelleyebilirsiniz, örneğin benim forum'umda 1 duyurular ve 4 test bölümü (bunlardan gelen son konuları göstermek istemiyorum), ve ayrıca son 5 mesajı göstermek istiyorum, bunun için yazmam gereken kod:
Kod:
<?php
ssi_recentTopics($num_recent = 5, $exclude_boards = array(1,4), $output_method = 'echo');
?>
Bu kadar basit, artık şık bir son konular bölümüne sahibim Gülümseme
Ben de bunu yapmak isityorum..
Sadece istediğim bölümdeki mesajlar gösterilsin falan..
Ancak bir bölümde atılanları alabilmek için 200 bölümden 199 unu yazmak gerekiyor...
Bunun başka bir yoru yok mu?
Hadi yok diyelim...
Mesela ben var olanı değiştirmek yerine yenisini eklemek isityorum...
Bunun için ne yapmam gerekiyor?
Bunlar için de bir kaç örnek verebilir misiniz?
Mkportal kullanıyorum ve SSI den her bölüm için ayrı bloklarla çekmek siityorum istediğim bölümleri..
Umarım anlatabilmişimdir :)
Şimdidedin teşekkürler ;)
@forsakenlad bu döküman harika üstadım teşekkürler.
Peki bu dosyamızın başka site tarafından include edilmesini ne şekilde engelleyebiliriz?
izmir_LEE, eğer kimse forumumu açamasın diyorsan en kısa yolu domain'i veya hostingi iptal etmektir :)
Başka site tarafından include edilmek demek, normal bir tarayıcıyla senin sitenin açılması demek. Yani böyle bir şeyi engellemek için, sitene girişleri engellemen gerekir :)
Elmacık, burda iframe olarak kullanırsak konuya tıklanınca yeni sayfada açmasını nasıl sağlayabiliriz?
SSI.php dosyasını açarak, ilgili fonksiyonun (örneğin ssi_recentTopics) içindeki anchor taglerini düzenleyip içine new target eklemeniz gerekiyor.
Yani o fonksiyonun içindeki "<a....." şeklindeki girdileri "<a target="_new"....." şeklinde değiştirmeniz gerekiyor.
Quote from: Sessizlik Senfonisi on November 16, 2006, 05:26:17 PM
Ben de bunu yapmak isityorum..
Sadece istediğim bölümdeki mesajlar gösterilsin falan..
Ancak bir bölümde atılanları alabilmek için 200 bölümden 199 unu yazmak gerekiyor...
Bunun başka bir yoru yok mu?
Hadi yok diyelim...
Mesela ben var olanı değiştirmek yerine yenisini eklemek isityorum...
Bunun için ne yapmam gerekiyor?
Bunlar için de bir kaç örnek verebilir misiniz?
Mkportal kullanıyorum ve SSI den her bölüm için ayrı bloklarla çekmek siityorum istediğim bölümleri..
Umarım anlatabilmişimdir :)
Şimdidedin teşekkürler ;)
Sessizlik Senfonisi,
Ne istediğini anlatabilmişsin ama arıyor olduğunu ben de aradığım için çözümü söyleyemeyeceğim maalesef...
Quote from: mk1977 on November 16, 2006, 02:48:51 PM
sanırım çözümü yok bunun zira kimsenin sesi çıkmadı çok zamandır :)
yok anlamadıgım bunun bi cozumu okmu yoksa bilenmi yok hani çözümü yoksa vaz gecsek
ya ustam anlamadım bişey ben bi soru sorayım da inş anlatabilecek birisi olur
benim forumun son konularını başka bir hosttaki bir scriptte göstermek istiyorum ne yapmam lazım
Quote from: shalamar on November 18, 2006, 06:15:27 PM
Quote from: Sessizlik Senfonisi on November 16, 2006, 05:26:17 PM
Ben de bunu yapmak isityorum..
Sadece istediğim bölümdeki mesajlar gösterilsin falan..
Ancak bir bölümde atılanları alabilmek için 200 bölümden 199 unu yazmak gerekiyor...
Bunun başka bir yoru yok mu?
Hadi yok diyelim...
Mesela ben var olanı değiştirmek yerine yenisini eklemek isityorum...
Bunun için ne yapmam gerekiyor?
Bunlar için de bir kaç örnek verebilir misiniz?
Mkportal kullanıyorum ve SSI den her bölüm için ayrı bloklarla çekmek siityorum istediğim bölümleri..
Umarım anlatabilmişimdir :)
Şimdidedin teşekkürler ;)
Sessizlik Senfonisi,
Ne istediğini anlatabilmişsin ama arıyor olduğunu ben de aradığım için çözümü söyleyemeyeceğim maalesef...
Eminim çok basit bir çözümü vardır...
Bu işten nalayan arkadaşların da yoğunluklarının farkındayım...
Sabredip bkeleyeceğiz artık :)
Ama olursa portallara çok güzel bir hava gelecek smf sayesinde..
Quote from: Elmacik on November 18, 2006, 04:46:05 PM
SSI.php dosyasını açarak, ilgili fonksiyonun (örneğin ssi_recentTopics) içindeki anchor taglerini düzenleyip içine new target eklemeniz gerekiyor.
Yani o fonksiyonun içindeki "<a....." şeklindeki girdileri "<a target="_new"....." şeklinde değiştirmeniz gerekiyor.
elmacık daha açık yazabilir misin ssi.php dosyasının içinde tam olarak nereye eklemek gerekiyor...
Diyelim ki ssi_recenTopics fonksiyonunu kullanıyorsun başka bir sayfada.
SSI.php dosyasını bir yaz düzenleyicisiyle (örneğin Wordpad) açıyorsun şunu aratıyorsun:
function ssi_recentTopics
Sonra da bu fonksiyonun içinde gördüğün <a href="....."> şeklindeki linkleri şu şekilde değiştiriyorsun: <a href="......" target="_new">
(Burada ..... koyduğum yer, senin forumuna göre değişiklik gösteren linkin adresidir.)
Elmacık çok teşekkürler,
fakat beceremedim ben, <a href=" ile başlayan 33 tane sonuç var, ...... yazdığın yere ne yazacağım onu da anlamadım :)
neyse yine de eline sağlık ;)
<a href ile başlayan yerlerde <a 'dan hemen sonra sadece iki kelime yazacaksın o da şu:
target="_new"
Bunu hemen a'dan sonra yazacaksın. Bir boşluk bırakarak.
Quote from: Elmacik on November 18, 2006, 01:25:18 AM
izmir_LEE, eğer kimse forumumu açamasın diyorsan en kısa yolu domain'i veya hostingi iptal etmektir :)
Başka site tarafından include edilmek demek, normal bir tarayıcıyla senin sitenin açılması demek. Yani böyle bir şeyi engellemek için, sitene girişleri engellemen gerekir :)
Ben sadece başkaları tarafından başka sitede include edilmesinden bahsediyordum. Bandwidth tüketimine yönelik bir taarruza maruz kalır mıyım acaba diye düşünmüştüm ki kurcalaya kurcalaya SSI kullanmayı öğrenince bu sorunun gereksiz olduğuna kanaat getirdim :)
Bu arada target="_new" ile target="_blank" aynı işi mi görüyor?
Evet, target="_new" ile target="_blank" tam olarak aynı şeydir.
Elmacık yukarıda yazdıklarımla ilgili olumlu/olumsuz yorumlarını alabilir miyim?
Bunu yapmak için uğraşacak hevesi bulamıyorum kendimde, kusura bakma.
Geçekten yardımcı olmak isterdim. Belki bir gün.
Quote from: Elmacik on November 29, 2006, 10:08:48 PM
Bunu yapmak için uğraşacak hevesi bulamıyorum kendimde, kusura bakma.
Geçekten yardımcı olmak isterdim. Belki bir gün.
Bu açık sözlülüğünü seviyorum :) ;)
@Sessizlik Senfonisi ve onun istediğini isteyen diğer arkadaşlar, DEV lerden biri istediğinizi bir fonksiyon olarak yazmış.
http://www.simplemachines.org/community/index.php?topic=95459.msg623146#msg623146
Burada verilen kodu SSI.php dosyasına ekledikten sonra fonksiyonu şu şekilde kullanabilirsiniz:
ssi_recentTopicsFromBoards('1', '3', 'echo');
Burada yazdığım 1, güncel konuların gösterileceği bölümün numarası. 3 ise kaç tane konu gösterileceği. Echo kısmını değiştirmeyin eğer ne yaptığınızı bilmiyorsanız.
Eğer birden fazla bölümden mesaj göstermek isterseniz o zaman şöyle kullanın:
ssi_recentTopicsFromBoards(array('8', '12', '26'), '5', 'echo');
Burada da 8,12 ve 26 numaralı üç bölümden 5 adet güncel konu gösterilecektir.
SSI Rehberi başlığının ilk sayfasında yazmıştım... 16 Eylül'den bu yana çözüm aramıştım...
Teşekkürler Sevgili Elmacik!..
Sonradan ek:
Bazı bölümlerden, istenen sayıda "son aktif konu başlığı" seçmiyor olmasının nedeni ne olabilir?
Arkadaşlar uzun uğraşlar sonucu dil problemi olmadan farklı bir sunucuda forumlara gönderilen mesajları listelemeyi başardım. Bu konuda buradaki yazılardan faydalandım birazda uğraştıktan sonra oldu. PHP Nuke için orta bloğunuda yaptım. Örneğini http://www.tiev.net (http://www.tiev.net) adresinde görebilirsiniz. Ben dosya kodlarını buraya ekliyorum siz gerekli yerleri sitenize göre düzenleyin. Yapamazsaniz
[email protected] adresinden bana ulaşabilirsiniz.
blok.php dosyası;<?php require("D:\\Hosting\\emreajans\\tievnet\\mecliscafe.com\\www\\SSI.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9" />
<meta name="description" content="Meclis Cafe" />
<meta name="keywords" content="meclis, cafe, tiev, kafe, internet, internetcafe, internetkafe, internetevi, evleri, salonu, forum" />
<base target="_blank">
<script language="JavaScript" type="text/javascript" src="http://www.mecliscafe.com/Themes/default/script.js?fin11"></script>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var smf_theme_url = "http://www.mecliscafe.com/Themes/default";
var smf_images_url = "http://www.mecliscafe.com/Themes/default/images";
var smf_scripturl = "http://www.mecliscafe.com/index.php";
var smf_iso_case_folding = true;
var smf_charset = "ISO-8859-9";
// ]]></script>
<title>Meclis Cafe</title>
<link rel="stylesheet" type="text/css" href="http://www.mecliscafe.com/Themes/default/style.css?fin11" />
<link rel="stylesheet" type="text/css" href="http://www.mecliscafe.com/Themes/default/print.css?fin11" media="print" />
<link rel="help" href="http://www.mecliscafe.com/index.php?action=help" target="_blank" />
<link rel="search" href="http://www.mecliscafe.com/index.php?action=search" />
<link rel="contents" href="http://www.mecliscafe.com/index.php" />
<link rel="alternate" type="application/rss+xml" title="Meclis Cafe - RSS" href="http://www.mecliscafe.com/index.php?type=rss;action=.xml" />
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var current_header = false;
function shrinkHeader(mode)
{
smf_setThemeOption("collapse_header", mode ? 1 : 0, null, "b4cb3edbd645e46a6aae9c0779239cd6");
document.getElementById("upshrink").src = smf_images_url + (mode ? "/upshrink2.gif" : "/upshrink.gif");
document.getElementById("upshrinkHeader").style.display = mode ? "none" : "";
document.getElementById("upshrinkHeader2").style.display = mode ? "none" : "";
current_header = mode;
}
// ]]></script>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var current_header_ic = false;
function shrinkHeaderIC(mode)
{
smf_setThemeOption("collapse_header_ic", mode ? 1 : 0, null, "b4cb3edbd645e46a6aae9c0779239cd6");
document.getElementById("upshrink_ic").src = smf_images_url + (mode ? "/expand.gif" : "/collapse.gif");
document.getElementById("upshrinkHeaderIC").style.display = mode ? "none" : "";
current_header_ic = mode;
}
// ]]></script>
</head><body>
<?php
ssi_recentTopics($num_recent = 10, $exclude_boards = array(1,4), $output_method = 'echo');
?>
</body>
</html>
Burada değişmesi gereken (path dizini) kod: D:\\Hosting\\emreajans\\tievnet\\mecliscafe.com\\www\\SSI.phpBu linkte path dizininizi bulabilirsiniz: http://forumunuzunadresi/ssi_examples.php (http://forumunuzunadresi/ssi_examples.php)
Kısaca; Bu kodları bir php dosyasi şeklinde kaydedip forumunuzun olduğu hosta atın. Buradaki
<head></head>
tagları arasını kendi forum ana sayfanızın kaynak kodlarından aynen alıp kopyalayabilirsiniz. Burada amaç dil ayarlarınızın aynen korunması. Ayrıca yeni sayfada mesajların açılması gerekeceğinden bu kodların içine;
<base target="_blank">
kodunu eklemeyi unutmayın.
Başka sitede listeleme için gerekli HTML kod;<IFRAME SRC=http://www.mecliscafe.com/blok.php width=610 height=450 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no></IFRAME>
Phpnuke sistemler için orta blok;<?php
if (eregi("block-Mecliscafe.php",$PHP_SELF)) {
Header("Location: index.php");
die();
}
$content = "<center><table border=\"0\" bordercolor=\"#EFEFEF\">";
$content .= " <tr>";
$content .= " <td><IFRAME SRC=http://www.mecliscafe.com/blok.php width=610 height=450 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no></IFRAME>";
$content .= "</td>";
$content .= " </tr>";
$content .= "</table></center>";
?>
bu kodları
block-Mecliscafe.php adıyla kaydedip sunucunuza atın.
Unutmayın bu kodlar bizim site için yapılmış olup kodları mutlaka kendi sitenize göre uyarlamalısınız.
Arkadaslar Ben Bır Html portal yapıyorum bu portal smf ile entegreli olacak fakat anasayfaya login yeri koymam gerekiyor uye login olunca foruma anasayfaya geri donmesını ıstıyorum. bunun icin SSI.php dosyasına hangi kodu eklemem gerekıyor bana yardımcı olursanız sevınırım
SSI.php dosyasına herhangi bir kod koyman gerekmiyor.
Yalnız HTML dosyasına da PHP kodu koyamayacağına göre, SHTML dosyalarını kullanman lazım.
Örneğin index.shtml dosyası portalın dosyası olsun; bunu açacaksın, nereye üye giriş bölümünü koymak istiyorsan oraya şunları yazacaksın:
<!--#include virtual="./SSI.php?ssi_function=login" -->
<!--#include virtual="./SSI.php?ssi_function=welcome" -->
<!--#include virtual="./SSI.php?ssi_function=logout" -->
Burada giriş yapmamış olanların giriş yapması istenir, giriş yapmış olanların bilgileri gösterilir ve çıkış tuşu konur. Bu arada tabi SSI.php dosyasının bu index.shtml ile aynı yerde olduğu varsayılıyor.
Eğer aynı yerde değilse SSI.php'nin yerini ona göre belirtmen lazım.
Örneğin forum isimli bir klasördeyse:
<!--#include virtual="./forum/SSI.php?ssi_function=welcome" -->
Yalnız giriş veya çıkış yaparken yönlendirilecek olan sayfayı SHTML ile nasıl kontrol edebilirsin bilmiyorum. Ama PHP ile kontrol edebilirsin.
Örneğin yaptığın portala ait index.php dosyasına şunları koyabilirsin:
Dosyanın en başında, herşeyden önce yazılması gerekenler:
<?php
include('/home/content/user/forum/SSI.php'); // Bunu kendi sunucundaki dosya yoluyla degistir.
$_SESSION['login_url'] = 'http://www.site.com/hedehodo'; // Giris yapanlarin dogrudan gonderilecegi URL ayarla.
$_SESSION['logout_url'] = 'http://www.site.com/cikis'; // Cikis yapanlarin dogrudan gonderilecegi URL ayarla
?>
PORTALA AİT HTML VEYA PHP KODLARI BURAYA...
Sonra da nerede giriş bölümü gösterilsin istiyorsan portalına ait index.php dosyasındaki o yere (yani en başına yukarıdaki kodları eklemiş olduğun dosyaya) şunları ekle:
ssi_login();
ssi_welcome();
ssi_logout();
Joomla SMF kullanıcılar için ssifunctions modül
Kurduktan sonra,
Parametreler
Pfad zum SMF-Forum: forum/
Download (http://www.joomlatr.org/index.php?option=com_docman&task=cat_view&Itemid=&gid=33&orderby=dmdatecounter&ascdesc=DESC)
bende hersey super ama ekledigimde
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1265
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1265
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1265
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1265
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1265
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1272
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1272
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1272
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1272
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1272
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1281
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1281
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1281
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1281
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1281
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1287
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1287
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1287
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1287
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1287
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1303
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1303
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1303
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1303
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1303
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1342
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1342
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1342
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1342
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1342
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1349
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1349
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1349
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1349
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1349
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1361
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1361
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1361
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1361
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1361
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1367
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1367
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1367
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1367
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1367
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1623
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1623
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1623
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1623
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1623
Notice: Undefined index: no_view_links in /home/wwb1/public_html/smf/Sources/Subs.php on line 1629
Notice: Undefined index: no_view_view in /home/wwb1/public_html/smf/Sources/Subs.php on line 1629
Notice: Undefined index: no_view_register in /home/wwb1/public_html/smf/Sources/Subs.php on line 1629
Notice: Undefined index: no_view_or in /home/wwb1/public_html/smf/Sources/Subs.php on line 1629
Notice: Undefined index: no_view_login in /home/wwb1/public_html/smf/Sources/Subs.php on line 1629
hatalarını veriyor neden???
Herşey süper dediğin ne?
Neyi nereye ekledin?
ssi kodlarını calıstırdım 1 php sayfasında aynı host ve aynı sitede ama yukarıdaki sorunları verdi
Quote from: Elmacik on December 05, 2006, 01:26:53 PM
@Sessizlik Senfonisi ve onun istediğini isteyen diğer arkadaşlar, DEV lerden biri istediğinizi bir fonksiyon olarak yazmış.
http://www.simplemachines.org/community/index.php?topic=95459.msg623146#msg623146
Burada verilen kodu SSI.php dosyasına ekledikten sonra fonksiyonu şu şekilde kullanabilirsiniz:
ssi_recentTopicsFromBoards('1', '3', 'echo');
Burada yazdığım 1, güncel konuların gösterileceği bölümün numarası. 3 ise kaç tane konu gösterileceği. Echo kısmını değiştirmeyin eğer ne yaptığınızı bilmiyorsanız.
Eğer birden fazla bölümden mesaj göstermek isterseniz o zaman şöyle kullanın:
ssi_recentTopicsFromBoards(array('8', '12', '26'), '5', 'echo');
Burada da 8,12 ve 26 numaralı üç bölümden 5 adet güncel konu gösterilecektir.
Mk portal'da ssi den kod çağırmak için
<?php
$content=implode("", file("http://localhost/111/forum/SSI.php?ssi_function=recentTopics"));
?>
oluşturduğumuz php sayfasına bunları yazıyoruz...
Yukarda verdiğin kodu ben buna nasıl uyarlayabilirim ki blokta çaıkabilsin?
@Sessizlik Senfonisi; neden include yapmıyorsun?
Eğer PHP dosyası oluşturuyorsan sadece include yap. Sonra benim dediğim şekilde kullan.
include yapamıyorsan ben de ölmezsem tekrar bakabilmeye çalışırım :)
joomlada modül ile yada kendim sayfaya kodları ekledigimde bu hata ile karşılaşıyorum :(
joomla ile smf forumun database leri farklıdır.
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/themeart/public_html/forums/Sources/Subs.php on line 321
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/themeart/public_html/forums/SSI.php on line 362
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/themeart/public_html/forums/SSI.php on line 402
joomla ile smf entegre et sende ;) hazır modülü var.
resimdeki gibi son eklenen mesajları nasıl ekrana yazdırabilirim
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fimg183.imageshack.us%2Fimg183%2F8314%2Fforumct9.th.jpg&hash=d4ff75e53706041394c78fd0982295eadd84b725) (http://img183.imageshack.us/my.php?image=forumct9.jpg)
<?php
ssi_recentTopics($num_recent = 8, $exclude_boards = null, $output_method = 'echo');
?>
bu kod değil yani son ekleyen mesajın sahibi felan gözüküyo
yani görüntülenme sayısı yada article gibi olacak ve şu kadar üye kayıtlı nasıl olacak yani 126 people are chatting now gibi
sadece rakam olarak
yada şu kadar üye online
tşkler
arkadasım benim bi sorunum var statsbox bloğu var smf de TinyPortal da cıkıyo bunun kodlarını buldum ben sitemde smf ve nuke kullanıyorum kodlar söle
Quoteglobal $context, $settings, $options, $scripturl, $txt, $modSettings;
$bullet = '<img src="'.$settings['images_url'].'/TPdivider.gif" alt="" border="0" style="margin:0 2px 0 0;" />';
$bullet2 = '<img src="'.$settings['images_url'].'/TPdivider2.gif" alt="" border="0" style="margin:0 2px 0 0;" />';
echo'<div class="smalltext" style="font-family: verdana, arial, sans-serif;">';
if(isset($context['TPortal']['userbox']['stats']))
// members stats
echo '
<img src="'.$settings['images_url'].'/icons/members.gif" style="margin: 0;" align="bottom" alt="" />
<a href="'.$scripturl.'?action=mlist"><b>'.$txt[19].'</b></a>
<br />'.$bullet.$txt[488].': ' , isset($modSettings['memberCount']) ? $modSettings['memberCount'] : $modSettings['totalMembers'] , '
<br />'.$bullet.$txt['tp-latest']. ': <a href="', $scripturl, '?action=profile;u=', $modSettings['latestMember'], '"><b>', $modSettings['latestRealName'], '</b></a>';
if(isset($context['TPortal']['userbox']['stats_all']))
// more stats
echo '
<hr /><img src="'.$settings['images_url'].'/icons/info.gif" style="margin: 0;" align="bottom" alt="" />
<a href="'.$scripturl.'?action=stats"><b>'.$txt['tp-stats'].'</b></a>
<br />'.$bullet.$txt[489].': '.$modSettings['totalMessages']. '
<br />'.$bullet. $txt[490].': '.$modSettings['totalTopics']. '
<br />'.$bullet.$txt['tp-mostonline-today'].': '.$modSettings['mostOnlineToday'].'
<br />'.$bullet.$txt['tp-mostonline'].': '.$modSettings['mostOnline'].'<br />
('.timeformat($modSettings['mostDate']).')
';
echo '<hr /><img src="'.$settings['images_url'].'/icons/online.gif" style="margin: 0;" align="bottom" alt="" />
<a href="'.$scripturl.'?action=who"><b>'.$txt[158].'</b></a><br />';
$online = ssi_whosOnline('array');
echo $bullet.$txt['tp-users'].': '.$online['num_users'];
echo '<br />'.$bullet.$txt['tp-guests'].': '.$online['guests'];
echo '<br />'.$bullet.$txt['tp-total'].': '.$online['total_users'].'<hr />
<div style="width: 100%; ' , $online['num_users']>14 ? 'height: 23ex;overflow: auto;' : '' ,'">';
foreach($online['users'] as $user){
echo $bullet2 , $user['hidden'] ? '<i>' . $user['link'] . '</i>' : $user['link'];
echo '<br />';
}
echo '</div>';
bu block u nukenin ana sayfasında göstermem gerek fakat yapamadım bana yardımcı olursanız cok sevinirim allaha emanet
Bende php-nuke kullanıcısıyım ve SSI fonksiyonunu başarıyla uyguluyorum.
www.hortkulukavcisi.com adresinde sağ taraftaki blokları ve ortadaki forumdan son konular bloğunu görebilirsiniz.
Kolay gelsin.
evet Tam İstediğimi Yapmıssın KArdeşim
Bana Msn Adresini Verirmisin Yada Sen Ekle Beni Yardımına İhtiyacım Var
Mail:
[email protected]
Bununla ilgili bir döküman hazırlayacağım. MSN'den de yardımcı olmaya çalışacağım.
Burada sormayı uygun gördüm. Arattım bulamadım. Varsa kusura bakmayın...
joomlaya son konuları çağırttım. bölüm adını silmek için SSI.php yi editleyip recenttopic kısmındaki bölümle ilgili satırı sildim ve her konunun başına bir ikon yerleştirdim. Güzel de oldu.
Sorunum şu: Üye giriş modülü: <?php ssi_login(); ?> i de çağırttım ve kullandım. Siteden foruma giriş oluyor. Ancak sitede de, giriş yapıldıktan sonra giriş yapan kullanıcının avatarının görünmesini istiyorum.(forum sayfasında görünüyor, ama joomlada giriş yapılınca avatar görünmüyor.) Giriş yapan kullanıcının avatarını gösterecek kod nedir ve SSI.php de nereye atıcaz? Yardım bekliyorum..
Not: Avatarın, giriş yapıldıktan sonra forumdaki gibi yanda değilde "Merhaba..." yazısının üstünde görünmesini istiyorum.
Site: www.ordubarosu.org.tr -->right kısmında..
LaVioRtH_cL Sağol Kardeşim Allah Razı Olsun Yardımlarını Bekliyorum
Başka biride ayrı topic açmış orada anlattım. Artık Avatarı gösterebiliyorum.
Örnek site: http://www.ordubarosu.org.tr
Nasıl yaparım?: http://www.simplemachines.org/community/index.php?topic=125361.0
son mesajlar forumun üstünde...
son konular forumun altında olsun istiyorum..
bu ayrımı ssi ile mi yapmam gerekiyor?
yada son mesajların altında bi de son konular olsun gibi..
top10 modunun altında son konularda olabilir..
Bende uzun zamandır PHP Nuke sitenin anasayfasında, SMF forumdaki son konuları nasıl gösterebilirim diye cevap arıyordum. ( maltepeli ) isimli arkadaşımıza çok teşekkür ediyorum, onun verdiği kodlarla bende bu sorunu çözdüm ve anasayfamda forumdaki son başlıkları blok olarak gösterebiliyorum artık. Bu konuda emeği geçen herkese teşekkür ediyorum.
Sadi işe yaramasına sevindim bende çok uğraştım ama sonunda oldu ve unutmadan burada paylaştım...
arkadaşlar !
ben http://mevzuforum.com/ssi_examples.php komutunu yazınca karşıma boş bir sayfa geliyor ve dediğiniz komutu göremiyorum.
bi sayfa hazırlayıp çalıştırdığımda ise dolaylı yoldan hata veriyor. tp kurulu sitede .
yardımcı olabilirmisiniz.
Smf nin sitesinde verilmiyor ama burda rc2 kullanan birini biliyorsan rica et sana belki ssı.phpdosyasını verir sende değiştirirsin. Ama ssı.php dosyası yeni sürümlerde farklı olup olmadığını bilmiyorum. Eğer aynıysa smf'nin yeni versiyonunu indir ve ssı.php dosyasını değiştir
forsakenlad ssi örneklerinin devamini bekliyoruz bizde fikirler çok ama ögreten olmadigi icin yapamiyoruz he ssi az cok biliyorumda bazen tutmuyo :) he bu arada ssi rehberi olarak bu konuyu paylastigin icin ayrica tesekkür ederim eski sitemde burdaki kodlardan yararlanarak istatistik son mesajlar falan eklemistim cok güzel oömustu tekrar tesekkürler devami gelecekmi acaba :) örnek olarak fikir paylkasmak gerekirse forumdaki bir konudaki mesajlari anasayfada sobn haberler misali göstermek gibi bisey yani forumdan yönetimli anasaufa :) neyse ben fazla uzatmayayim devamini bekleyelim :)
Eğer HTML kullanacaksanız iframe açarak linkini şu şekilde verin:
Kod:
http://www.siteniz.com/forumunuz/SSI.php?ssi_function=recentTopics
yalnız ben çıkış linkini koymak isityorum.. o zaman da açtığım iframede çıkış dedikten sonra anasayfaya dönüyor..
İframe açmadan kodu ekleyebilir miyiz?
Merhaba arkadaşlar
Ben forumu, siteye entegre etmek istiyorum da, eğer yardımcı olursanız sevinirim.
Forum da gezdikçe yükseklik bir küçülüp bir büyüyor bildiğiniz üzere, ve forumun içinde bulunduğu siyah çerçeve de sabit kalıyor. neden çünkü iframe kullanmıştım. bunu iframe kullanmadan nasıl halledebiliriz.
bakabilirmisiniz! (http://www.pumprock.com/site/forum.htm)
Teşekkürler
Saygılar..
benimde basit bir sorum olacaktı.. şimdi iki ayrı forumum var ve sadece üyeleri birleştirdim...
ama forumun birine üye olan diğer forumda gözükmüor. diğer foruma üye olansa o forumda gözükmüyor. bu ssi ile bu üye istatistiğini iki forumda aynı şekilde yapamazmyım
bilmem sorumu sorabildim mi :(
evet red star seni anladım lakin bunun ayrıntılı olarak konuşulması gerekiyor.
bu konuda kararlı isen sana artılarını ve eksilerini anlatabilirim...
ve bunu yapmanda yardımcı olabilirim...
Arbalot inan 2 gündür uğraşıyorum buna. türkçe bölümünde okumadığım konu kalmadı. çok istediğim bişey.
şimdi üyeler iki forumdada aynı nickiyle gezebiliyor ama istatistikler herseyi batırıyor. bu konuda bana yardımcı olaiblirsen çok sevinirim. sadece üye olma istatistiği lazım. artık uğraştım olmayınca yardım isteyim dedim.. bilgilendirirsen beni sevinirim. şimdiden teşekürler.
78868 Mesaj 7879 Konu Gönderen: 1632 Üye. Son üye: bjk_efe
burda 1632 üye ve son üye kısmı değişmior.. oysa diğer foruma üye olunduğunda bununda dğeişmesini istiyorum.
bide ufak bişi daha son üye olanlardada gözüktürebilirsek sevinirim. hani olmasada o çok önemli değil :)
sorunumu anladın sanırım Arbalot.. Yardımlarını bekliyorum..
ben senin anladım lakin sen üyelerini ne şekilde birleştirdin onu ogrenmem gerekiyor...
http://www.simplemachines.org/community/index.php?topic=56077.msg393925#msg393925
bu konuda elmacığın aanlatımından yararlandım
aynı db ye farklı tablo ön adı ile iki forum kurdum
ve soruces klasöründe db_prefix kısımlarını ilk forumun tablo ön adına göre değiştirdim.
verdiğim konuda elmacığın anlatımı ile yaptım yani
ama baştanda alabilirim farklı bir yolu varsa
hmm ordaki dokumanı okuduysan bir problem olmaması lazım
bütün sources dosyalarını taradın mı?
ve aynı zamanda ssi dosyalada ki {dbprefix}members ifadelerini de değiştirmen gerekiyor...
ilk once bunu bir kontrol edelim...
baya geç cvp verdim ama herseyi baştan aldım. tüm soruces klasörünü baştan yeniledim ve değişiklikleri tek tek yaptım eksiksiz ve ssi.php de değişiklik yapmamıştım onuda yaptım..
hersey normal ve istediğim gibi ama şimdilik 2 sorun gördüm. log online yapısını ilk forumuma göre yaptım ve ilk foruma giriş yapmazsan online üyelerde gözükmüyosun. sanırım bunun çözümü yok çünkü 2 foruma göre log online düzenlemez. bilmem bunu anlatabildim mi. kusura bakma arbalot anlatımım biraz kıtta :) hadi bunu geçtik zaten önemsiz ama asıl önemli sorun ve büyük sorun..
x ve z forumum var. üyeleri birleştirdik bildiğin gibi. x forumum ana forum z forumum sonradan kurupta üyelerini birleştiridğim forumum. şimdi z forumuna üye olunuyor.. normalde üye sayısı atıyorum 500. iki forumdada 500 gözüküyor.. z forumuna biri üye oldu üye sayısı 501.. z forumunda 501 üye gözüküyor ama x forumunda 500 üye olarka duruyor. oysa x forumunda son üye olanlar kısmında 501ci üyenin nicki gözüküyor ama üye sayısı sabit 500 de kalmış.. anlatmakta baya zor ya..
z forumu
1 Mesaj 1 Konu Gönderen: 1634 Üye. Son üye: hayaletvadisi
x forumunda ise
78981 Mesaj 7887 Konu Gönderen: 1633 Üye. Son üye: Begboy
bu istatistik değişmior. bunun çözümü var mı acaba. burda sadece ben üye sayısı ve son üyenin isminin doğru gözükmesini istiyorum. zaten sorun bu. üyeler. konu msj ayrı. sadece üyeler bir olsun. log online dada x forumuna giriş yapınca z de gözüküosun ama z ye giriş yaparsan x te yoksun. son üye gözükmüyor ve üye sayısıda bu sorun kötü ya..
umarım sorunumu anlatabildim :(
sabaha kadar uğraştım ya. gözlerim şişti. bu istatistiğin elbet çözümü vardır.
gerçi anlatıyım derken herşey iç içe girdi. sorunumu umarım yine anlamıssındır ve yardımı benliyorum arbalot..
total_members ve latest_member kısmını birleştirmek lazım sanırım. ama nasıl.. bunlar nasıl birleşip ortak olacak ya
istatistikleri ve forumun toplamını yeniden say dersem sorun düzeliyor :) son üye ve üye sayısı doğru gözüküyor. ama durmadan bu bakımı yapacakmıyım
total_members ve latest_member in bir çözümü yoksa sanırım böyle devam etcem :(
evet anladım sorununu
en son bu işlemleri yaptıgımda herşey normaldi ama bir daha deneyeyim.
ama artık vakit geç oldu yarın bakarım buna anca
ama sorununu anladım bunda emin ol...
lakin logonline konusunda pek bir şey yapabilirmiyim bilmiorum cunku local de deniyeceğim
ve online uye olmayacak
ama ufak bir tuyo
log_online prefixlerini de değiştir...
log online prefix lerini değiştirdim. ama ilk forumun tablo ön ekine göre yaptığım için log online ilk foruma ayarlarlandı sanırım :)
log online önemsiz.. ayro ayrı olsun farketmez
ama diğer sorun forum düzeni için gerekli. son üye olan ve üye sayısı. bunu halledersek yeter.. dediğin gibi geç oldu.. teşekür ederim ilgin ve alakan için. bu sorunumun bir çözümü varsa ve paylaşırsan sevinirim müsait olduğunda
Bunun çözümünü bir yerde vermiştim ben (unknown sağolsun)
Ama 1.1.x sistemine uygun kodu yoktu. Piyasa yapalım biraz belki de buluruz :)
Arbalot, eğer uğraşacaksan istatistikler başka yerden sorgulanıyor aklında olsun.
Çünkü birinin kayıt olmasıyla dengesizleşen istatistikler birinci forumda "istatistikleri yeniden say"makla düzeliyor :)
elmacik'in dediği gibi oluyor. bunu bi önceki msjımdada söyledim :) bakım yapınca düzeliyor.
ama çok gariptir ki son üye olan kişiler istatistiği tablo halinde ilk forumumda var. ve diğer foruma üye olan kişi orda gözüküyor ama bu kısımda
1 Mesaj 1 Konu Gönderen: 1634 Üye. Son üye: hayaletvadisi
gözükmüyor..
birde elmacikin anlatımında online olan üyeleride paylaşmak isityorsanız log_online prefix lerinide paylaşın yazılmış. paylaşınca 2 ci foruma giriş yaparsan asla gözükmüyorsun. birinci forumun tablo ön ekini ayarlarsan log_online kısmına ikinci foruma giriş yaparsan gözükmüyorsun. zaten online olan üyelerden vazgeçtim. paylaşmıcam onu. istatistiği yapabilseydik keşke :)
bir ricam daha olacaktı.. cookie isimlerini iki forumdada aynı yaptım. yani direk iki forum arasında geçiş olabilsin. giriş istemesin diye. ama olmadı. diğerinden ötekine geçince giriş yapman gerekiyor yine. bunu ayarlayamazmıyız acaba?
bugun denerim diye düşünmüştüm de bugun deneyemedim kusura bakma...
ama sorunu genel olarak anladım...
bana özelden msn adresini yollarsan daha detaylı konusalım şu meseleyi...
bu işi yapamadım. aştı beni
sadece üyeler birleşti ama yeni açtığım forumda site kurucusu ve yeni üye olanlar hariç eski üyeliklerin hiç bri konu açamıyor ve msj yazamıyor. bu işi anlayamadım gitti.
en iyisi tek forumla devam etmek. böyle olmucak..
teşekür ederim ilginiz için.
sanırım flood olmaz çünkü bir diğer msjımın üstünden 3 gün geçti ve 2 haftadır buna uğraşıyorum. 2 forumu birbirine sorunsuz bağlamak için 1 aydır uğraşıyorum. herseyi hallettim. sorunsuz oldu. istatiskler üyeler falan. herseyi hallettim deneme yanılma ve kurcalama ile :)
ama başka bir sorun keşfettim bbugün.. artık hersey haloldu diyerek siteyi açtım. diğer siteden girenler ve yönetici olanlar msj yazamıyor. konulara giremiyor. yani forumda hiç bi yere bakamıyor. nereye bassa buna yetkiniz yok. ya da bu konuyu göremessiniz ya da bunun gibi uyarılar çıkıyor. normal üyelerde sorun yok. ama diğer forumda yönetici olanlar yeni foruma girince hiç bir şey yapamıyor. bu neden olabilir acaba?
sorunumu anlatabildiysem lütfen şu sorunumu çözün. 1 aydır buna uğraşıyorum ve sadece bu sorun kaldı
O zaman paylaştırmaman gereken bir sürü tablo paylaştırmışsın sen :P
Aslında bunun için Grudge ve Unkonwn birlikte çok güzel bir şey çıkarmışlardı ortaya hem kolay hem karışık :D Vaktim olsa sizin için onu dener adım adım anlatırdım.. Böyle tablo paylaştırmadan yapılmış bir sistem o..
iyide elmacık üstadım ben senin anlatımına bakarak yaptım ve members tablosu hariç hiç bir şey paylaştırmadım. ve her dosyayı en az 10 kere kontrol ettim.
keşke ingilizcem olsaydıda dediğin bölümü bulup bende uğraşsaydım :(
niye böyle oldu anlamıyorum. hersey bitti derken bu sorun çıktı. inanılmaz bir şey ya. x forumunda yönetici olanlar z forumunda hiç bir şey yapamıyor. ziyaretçi statüsündeler resmen. normal üyelerde sorun yok.. çözemedim bu neden kaynaklandıysa.. acaba membergroups larıdamı birleştirseydim ki
ssi Süper Bişe :P saOL
Merabalar arkadaşlar bu ssı den foruma son gonderılen mesajları yan blok yapmak ıstıyorum yanlız şuankı pozısyonda bu zor . bu ssı de bolum kategorısı ve son mesaj yazanın adını nasıl kaldırabılkırım son mesajlarda . Yani yanlızca mesaj başlığının olmasını ıstıyorum saygılara..
hotscriptsdeki gibi son mesajları nasıl yapabilirim
bu guzel bir panel peki daha fazla ssl kodu ve anlamı atabilecek varmi ssl.forum dosyalarinda bir suru kod var fakat hangisinin ne ise yaradigini bilmiyoruz mesela bana online uyeler ve son videolara lazim mesela you tube google stream videolarini ayri ayri gosterebilecek ssl kodu varmi tesekkurler ...
yaa lutfen flood sayilmasin lutfen zaten uc gun sonra atiyorum yardim...
online uyeler, en cok mesaj atan uyeler, kodu lazim cok onemli
ve ayrica sadece istedigim bir bolumum mesajlarinin kodunu nasil olusturabilirim mesela egitim kategorisinde sabitledigim oss sorulari bolumu mesajlari diyelim tesekkurler
Who's Online Function: (onlar üyeler için)
<?php ssi_whosOnline(); ?>
Top Poster Function:(En çok mesaj atan üyeler)
<?php ssi_topPoster(); ?>
Diğeri karışık biraz. Tam bilmiyorum ama anlatıldı.
tesekkurler ama asagidaki de cok lazim :)
Quoteve ayrica sadece istedigim bir bolumum mesajlarinin kodunu nasil olusturabilirim mesela egitim kategorisinde sabitledigim oss sorulari bolumu mesajlari diyelim tesekkurler
function ssi_boardNews($board = null , $limit = null, $start = null, $length = null, $output_method = 'echo')
$board = null haberlerin eklenecegi bolumun id'si
$limit = null haber sayisi
$start = null kacinci haberden sonra baslanacagini belirler
$length = null haberin uzunlugu
Bu Olabilir Sanirim.
ustad calismadi bende bu birde buson konular kodunu olusturdugum 171x322 olcekli tabloya yerlestirdigimde tablo asiyor ve fazlasiyla buyuyor nasil duzeltebilirim... tesekkurler
Bende hoş bir portal yaptım.İncelemek isteyenler www.nebaktin.com
ustad bu resimdeki mesaj sadece secyigin topginmesaji olmali bunu nasil yaptigini soylersen seviniriz orda mesaj yaz yorum yaz ilgimi cekti ayrica bilgigin anket istatistik ve diger ssi kodlarini atarsan sevinecez tesekkur ederiz ayrica tema css lerine nasil yonlendirdigini aciklarsan sevap islemis olusun :)
http://img111.imageshack.us/img111/3938/magosayb3.jpg
Tüm SSI öğelerinin kodlarını görmek için aşağıdaki linki kendi sitene göre uyarla .
http://www.siteadı.com/forumdizini/ssi_examples.php
Forumda kullandığın temanın CSS'sini ve alt ve üst bölümü kullanmak için bu kodu kendine göre düzenlemelisin.
<?php
$ssi_layers = array('main');
$ssi_theme = 'TEMA_NO'; // Buraya, radyo sayfasi görüntülenirken kullanilmasini istediginiz temanin sizin sitenizde kurulum sira numarasini yazacaksiniz. Örnegin varsayilan tema için 1 girebilirsiniz.
include("/foruma/giden/tam/dosya/yolu/SSI.php"); // Buraya da forumun dosya yolunu yazin. Yönetim panelindeki Temalar ve Görünüm bilgilerinden forumun dosya yolunu ögrenebilirsiniz.
echo '
Radyomuzun kodlarini buraya koyuyoruz.
';
/* Yukariya koydugumuz kodlarin içinde tek tirnak isareti ( ' ) varsa, önlerine mutlaka ters bölü ( \ ) koyuyoruz.
Yoksa PHP hatasi aliyoruz - Template Parse Error. */
ssi_shutdown();
?>
Bu konuya bakarsan görebilirsin.
http://www.simplemachines.org/community/index.php?topic=95976.0
evt yaa cok tesekkurler ben bu konuyu gormustum gordugumu unutmusum :) neyse benim yaptigim da guzel zaten ben temaya bagimli kalamazdim tesekkur ederim ..
merhaba arkdaşlar..bir sorum olucak..TP kullanıyorum ve phpbox aracılığıyla ssi kullanarak yeni üyeleri falan düzenli bir şekilde blok olarak gösterebilirmiyim..
teşekkürler güzel kaynak.
ben hmtl sayfaya smf forumumun logini nasıl eklerim acaba
http://www.ciddiyet.net/forum/ssi_examples.php
Buradan ögrenebilirsin ;)
orda php kodları var ama html yok
Ftp'den ssi_examples.php'nin içini aç bakalim php mi html mi ;)
Ya arkadaşlar okudum okudum hiç bişe anlamadım...
Benim bir forumum var SMF Anasayfanın en altına en çok msj yazanlar bölümü ve son mesajlar bölümü eklicem...
ssi_example.php dosyasından aldığım kodu nereye kopyaliyacam onu anlamadim :'(
t_A_635 Bu kod ile yapabilirsin
<form action="http://www.siteismi.com/forum/index.php?action=login2" method="post" accept-charset="ISO-8859-9" class="middletext" style="margin: 3px 1ex 1px 0;" onsubmit="hashLoginPassword(this, '2a9ea8feb12829fd3bd8f2bdb20f5208');">
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<td>Kullanici Adi:</td>
<td><input type="text" name="user" size="8" /></td>
</tr><br>
<tr>
<td>Sifre:</td>
<td><input type="password" name="passwrd" size="8" /></td>
</tr>
</table>
<input type="hidden" name="hash_passwrd" value="" />
<input type="submit" value="Giris Yap" />
</form>
ya biz bu
<?php require("/var/www/vhosts/siteadı.com/httpdocs/aaa/SSI.php"); ?>
bu kodu kendi yazdığımız portala entegre edince en tepesine portal çalışmıyor boş beyaz sayfa çıkıyor bu sorunu nasıl aşabiliriz acaba ?
gerekli tagların arasına koymalısın sadece bu kodlar çalışmaz
Quote from: HoT_sOuRcE_ on July 13, 2007, 08:56:14 PM
gerekli tagların arasına koymalısın sadece bu kodlar çalışmaz
örnek verebilirmisin kardeşim bir tane sana zahmet
<?php require("forum_klasörünün_tam_yolu/SSI.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>istediğin bir başlık</title>
</head>
<body>
ssi kodları buraya
</body>
</html>
mesela böyle bir dene ;)
Arkadaşlar ben 3,5 ve 7. mesaj odasından haberleri göstermek istedim şu kodu ekledim:
<?php ssi_boardNews($board = array(3,5,7), $output_method = 'echo'); ?>
Ancak şöyle bir hata aldım:
Misafirlere izin verilen bir bölüm belirtmediniz. Lütfen önce bölüm numarasını kontrol edin.
Bunu nasıl çözebiliriz?
@pspturkey, senin kullandığın ssi_boardNews fonksiyonu o şekilde çalışmaz. Oraya yazdığın bölüm numaraları dahil olacak olanları değil, hariç tutulacak olanları belirtiyor. Yani senin istediğinin tam tersi. Yalnız senin istediğini daha önce soran çok oldu, DEV lerden biri bu fonksiyonun benzerini yazdı ve ben de bu konuda öceki sayfalarda o kodu verdim. Gerilere doğru diğer mesajları okuyuver.
Bu yalan dünya da kahroluversin. Dünyayı boşadım boşadım diyorum demek ki boşayamamışım.
Öncelikle döküman için çok teşekkürler..
Ben sadece forumdaki herhangi tek bir konuyu göstermek istiyorum, onun için ne yapmalıyım?
Teşekkürler..
Quote from: Hoochie Coochie Man on August 18, 2007, 10:30:55 AM
Öncelikle döküman için çok teşekkürler..
Ben sadece forumdaki herhangi tek bir konuyu göstermek istiyorum, onun için ne yapmalıyım?
Teşekkürler..
Sonuçta komutlarla çağırıyorsun bilgileri, o yüzden elbet bununda bir yapılabiliriği vardır ama malesef ben bilmiyorum, bilen yok mu?
Müthişsiniz siz yaaaa bravooooo hepinize teşekkürler
Daha önce sorduğumu hatırlıyorum ancak bulamadım:
Forumdan son mesajlar benzeri şekilde "Forumdan Rastgele Konular"ı göstermek istiyordum.
Buna hazır bir çözüm bulamayınca SSI içerisinde başka bir fonksiyonu biraz değiştirerek yeni fonksiyon yazdım: ssi_randomTopics
Eğer ilgisini çeken arkadaşlar olursa paylaşmak isterim. (Önce yetkin arkadaşların güvenlik açığı vb sorunları kontrolü sonrası)
Sevgiyle...
"Forumdan Rastgele Konular" dediğin sadece konu başlığı olarak mı?
Eğer öyleyse ssi_recentTopics(); bu işi yapıyor. Yok eğer konu olarak göstermekse istediğin, onu da ssi_boardNews(); yapıyor. Bu iki fonksiyon da rastgele yani random konular gösteriyor zaten.
Ama bir fonksiyon yazabilecek kadar bilgin varsa, İngilizce de biliyor gibi göründüğüne göre, sen de ssi fonksiyonlarının ne işe yaradığını biliyorsundur. O yüzden sanırım bir şeyleri eksik anlattın ya da ben eksik anladım.
Yine de yazdığın kodu buraya koy inceleyelim.
Quote from: hoochie coochie man on August 18, 2007, 10:30:55 AM
Öncelikle döküman için çok teşekkürler..
Ben sadece forumdaki herhangi tek bir konuyu göstermek istiyorum, onun için ne yapmalıyım?
Teşekkürler..
Simple Blog Olarak Arat Onun Buna Benzer Bir Özellği Vardı ;) demek istediğin sanırım sadece belli bir konuyu yada istediğin bir konuyu
" Notice: SSI.php was unable to load a session! This may cause problems with logout and other functions - please make sure SSI.php is included before *anything* else in all your scripts! in /home/kullancıadı/public_html/forum/SSI.php on line 160 "
Bende bu şekilde bir hata veriyo neden?
tam olarak bilmiyorum ama sanırım ssı ile yaptığın sayfayı forum dizinine atman gerekiyor o zaman çalışıyor yanlış hatırlamıyorusam ;)
Tamam beyler hallettim <body></body> taglarının arasına koymayı unutmuşum :S Yardımlarınız için teşekkürler..
Quote from: Elmacik on August 30, 2007, 03:46:06 PM
"Forumdan Rastgele Konular" dediğin sadece konu başlığı olarak mı?
Eğer öyleyse ssi_recentTopics(); bu işi yapıyor. Yok eğer konu olarak göstermekse istediğin, onu da ssi_boardNews(); yapıyor. Bu iki fonksiyon da rastgele yani random konular gösteriyor zaten.
Ama bir fonksiyon yazabilecek kadar bilgin varsa, İngilizce de biliyor gibi göründüğüne göre, sen de ssi fonksiyonlarının ne işe yaradığını biliyorsundur. O yüzden sanırım bir şeyleri eksik anlattın ya da ben eksik anladım.
Yine de yazdığın kodu buraya koy inceleyelim.
Sevgili Elmacik,
Koddan ziyade sonucunu gösterirsem anlatmak istediğimi daha iyi anlatabilirim:
http://www.melektozlari.com/mt
(sayfanın alt tarafında)
ssi_recentTopics() fonksiyonu rastgele değil güncel konuları gösteriyor diye biliyorum.
Yapmaya çalıştığım ssi_randomTopics() ise forumda bulunan tüm konular arasından (eski/yeni tarihli) rastgele seçerek konu başlıklarını gösteriyor.
Sıfırdan bir fonksiyon yazmadım, var olan fonksiyonlardan birinde değişklikler yaparak oluşturdum.
Anladım.. Haklısın :)
Kodu verseydin, yararlanmak isteyen olur diye..? :)
SSI.php içerisine, sayfanın en sonuna, "?>" hemen öncesine yapıştırılabilir.
// Random topic list:
function ssi_randomTopics($num_random = 15, $exclude_boards = array(HARİÇ TUTULACAK BOARD ID NUMARALARI), $output_method = 'echo')
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER, $user_info, $modSettings;
if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : $exclude_boards;
$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
$icon_sources = array();
foreach ($stable_icons as $icon)
$icon_sources[$icon] = 'images_url';
// Find all the posts in distinct topics. Newer ones will have higher IDs.
$request = db_query("
SELECT
m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}messages AS ms)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 3500 * min($num_random, 5)) . "
AND t.ID_LAST_MSG = m.ID_MSG
AND b.ID_BOARD = t.ID_BOARD" . (empty($exclude_boards) ? '' : "
AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
AND $user_info[query_see_board]
AND ms.ID_MSG = t.ID_FIRST_MSG
ORDER BY RAND()
LIMIT $num_random", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
{
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']), array('<br />' => ' ')));
if (strlen($row['body']) > 128)
$row['body'] = substr($row['body'], 0, 128) . '...';
// Censor the subject.
censorText($row['subject']);
censorText($row['body']);
if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';
// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['ID_BOARD'],
'name' => $row['bName'],
'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['ID_BOARD'] . '.0">' . $row['bName'] . '</a>'
),
'topic' => $row['ID_TOPIC'],
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => empty($row['ID_MEMBER']) ? '' : $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => empty($row['ID_MEMBER']) ? $row['posterName'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>'
),
'subject' => $row['subject'],
'short_subject' => shorten_subject($row['subject'], 25),
'preview' => $row['body'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '">' . $row['subject'] . '</a>',
'new' => !empty($row['isRead']),
'new_from' => $row['new_from'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
mysql_free_result($request);
// Just return it.
if ($output_method != 'echo' || empty($posts))
return $posts;
// Ekrana yazdir
echo '
<table class="windowbg2" cellspacing="1" width="100%" cellpadding="0" border="0">
<tr>
<th class="windowbg" align="left">Konu</th>
<th class="windowbg" align="left">Bölüm</th>
<th class="windowbg" align="left">Son Mesaj Tarihi</th>
</tr>';
foreach ($posts as $post)
echo '
<tr>
<td class="windowbg" valign="middle">', $post['link'], '</td>
<td class="windowbg" valign="middle">', $post['board']['link'], '</td>
<td class="windowbg" valign="middle">', $post['time'], '</td>
</tr>';
echo '
</table>';
}
Not: Önceki mesajımda verdiğim örnek linki, forumda upgrade yapmam nedeniyle geçersiz olduğundan değiştirdim.
bu konu bana portalı hazırlarken bayağı yardımcı oldu.emeği geçen herkese teşekkür ederim....
merhaba bu verdiğiniz kodları tiny portalda nasıl uygularım? işime çok yarayacak bir konu. lütfen yardımcı olurmusunuz.
TP + SMF 1.1.3 kullanıyorum.
rastgele karışık 15 konu göstermek istiyorum TP anasayfada. forum altında değil sadece TP anasayfada (hep TP hem forum sayfasının alt kısmında da olur.)
teşekkürler
Quote from: shalamar on August 31, 2007, 09:12:05 PM
SSI.php içerisine, sayfanın en sonuna, "?>" hemen öncesine yapıştırılabilir.
// Random topic list:
function ssi_randomTopics($num_random = 15, $exclude_boards = array(HARİÇ TUTULACAK BOARD ID NUMARALARI), $output_method = 'echo')
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER, $user_info, $modSettings;
if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : $exclude_boards;
$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
$icon_sources = array();
foreach ($stable_icons as $icon)
$icon_sources[$icon] = 'images_url';
// Find all the posts in distinct topics. Newer ones will have higher IDs.
$request = db_query("
SELECT
m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}messages AS ms)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 3500 * min($num_random, 5)) . "
AND t.ID_LAST_MSG = m.ID_MSG
AND b.ID_BOARD = t.ID_BOARD" . (empty($exclude_boards) ? '' : "
AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
AND $user_info[query_see_board]
AND ms.ID_MSG = t.ID_FIRST_MSG
ORDER BY RAND()
LIMIT $num_random", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
{
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']), array('<br />' => '')));
if (strlen($row['body']) > 128)
$row['body'] = substr($row['body'], 0, 128) . '...';
// Censor the subject.
censorText($row['subject']);
censorText($row['body']);
if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';
// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['ID_BOARD'],
'name' => $row['bName'],
'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['ID_BOARD'] . '.0">' . $row['bName'] . '</a>'
),
'topic' => $row['ID_TOPIC'],
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => empty($row['ID_MEMBER']) ? '' : $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => empty($row['ID_MEMBER']) ? $row['posterName'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>'
),
'subject' => $row['subject'],
'short_subject' => shorten_subject($row['subject'], 25),
'preview' => $row['body'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '">' . $row['subject'] . '</a>',
'new' => !empty($row['isRead']),
'new_from' => $row['new_from'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
mysql_free_result($request);
// Just return it.
if ($output_method != 'echo' || empty($posts))
return $posts;
// Ekrana yazdir
echo '
<table class="windowbg2" cellspacing="1" width="100%" cellpadding="0" border="0">
<tr>
<th class="windowbg" align="left">Konu</th>
<th class="windowbg" align="left">Bölüm</th>
<th class="windowbg" align="left">Son Mesaj Tarihi</th>
</tr>';
foreach ($posts as $post)
echo '
<tr>
<td class="windowbg" valign="middle">', $post['link'], '</td>
<td class="windowbg" valign="middle">', $post['board']['link'], '</td>
<td class="windowbg" valign="middle">', $post['time'], '</td>
</tr>';
echo '
</table>';
}
Not: Önceki mesajımda verdiğim örnek linki, forumda upgrade yapmam nedeniyle geçersiz olduğundan değiştirdim.
selam lar
ben http://www.............com/forum/ssi_examples.php adresine girdiğimde
şöyle bi hata alıyorum
/forum/SSI.php' (include_path='.:/usr/share/pear') in
/forum/ssi_examples.php on line 3
nasıl düzeltebilirim yardıcı olursanız sevinirim
3. satırda neler var ftpden bakar mısın? bir hata varsa onu düzelt o dosyada
yoksa ve son zamanlarda ssi_examples klasörü içinde bir değişiklik yapmadıysan orjinalini atmayı dene
hiç bir değişiklik yapmadığım halde yinede dosyayı orjinali ile değiştirdim yine olmadı 3. satır öncesi ve sonrasında şunlar var
1<?php
2
3require(dirname(__FILE__) . '/SSI.php');
4
herşeyi hallettimde bir tek <?php ssi_login(); ?> çalışmıyor bende neden olabilir acaba?
http://www.fmdizayn.com/fmforum/ssi_examples.php burdada gözükmüyor???
bana yardım edebilecek birisi yokmu?
Quote from: hmurat on September 18, 2007, 12:42:29 PM
herşeyi hallettimde bir tek <?php ssi_login(); ?> çalışmıyor bende neden olabilir acaba?
http://www.fmdizayn.com/fmforum/ssi_examples.php burdada gözükmüyor???
Foruma giriş yapmış olduğunuz için göremiyor olabilirsiniz ;) Forumdan çıkıp tekrar sayfaya bakarsanız görünecektir diye tahmin ediyorum...
<?php ssi_logout(); ?> komutunu da bunun yanına koyarsanız zaten giriş yapmış olduğunuz için görülüp görülmediği anlaşılacaktır.
Quote from: hakanel on September 17, 2007, 05:01:05 PM
merhaba bu verdiğiniz kodları tiny portalda nasıl uygularım? işime çok yarayacak bir konu. lütfen yardımcı olurmusunuz.
TP + SMF 1.1.3 kullanıyorum.
rastgele karışık 15 konu göstermek istiyorum TP anasayfada. forum altında değil sadece TP anasayfada (hep TP hem forum sayfasının alt kısmında da olur.)
teşekkürler
Tiny portalın mantığını bilemiyorum. Ancak orada başka bir SSI fonksiyonu çalıştırıyorsanız aynı şekilde rastgele mesajları da <?php ssi_randomTopics() ?> komutuyla çağırabilirsiniz.
Elbette daha önce verdiğim kodları SSI.php dosyasının sonuna eklemeniz gerekli.
O kodu hazırladığımda "array" mantığını bilmiyordum. Bu nedenle SSI dosyasından görüntülemeyi hazırlamıştım. Vakit bulduğumda daha kullanışlı hale getirmeye çalışırım.
Son mesajları ssi.php yardımı ile yaptıgım portalda nasıl tablo halinde gösterebilirim :(
Saygıdeğer arkadaşlar.
bu sslleri php olan bir sayfamda çağırıyorum ama yazı fontu hoşuma gitmiyor ve yazılar çok küçük. Nasıl değiştirilir bunlar ve nereden.
Merhaba arkadaşlar...
Forumunun belli bir bölümünü başka sitede nasıl yayınlarız?
Mesela;
http://www.site.com/forum/index.php?board=7.0 bölümünü başka sitede ayrı bir forum sayfası olarak nasıl gösterebiliriz?
Bende bir PHP portalı yaptım.
Belli bir bölümdeki mesajları yayınlıyorum.
Fakat benim isteğim şu Siteme Customize bölümü açtım.Bundada SSI.php yi kullanıyorum.Ama bu sefer başka bir bölümdeki mesajları çağırmak istiyorum.
Mesela portalda board=57.0 yi çağırdım...
Customizede ise board=51.0 i çağırmak istiyorum...Bunu nasıl yapıcam???
ssi_function=recentTopics özelliğini kullanıyorum
ssi.php den son 50 mesaj gözükmesi için ayarlamıştım ama,
genellikle 30 ile 40 civarında konu çıkıyor
nedeni ne olabilir, teşekkürler...
bir arkadaş ilgilenebilirse çok sevineceğim ;)
Arkadaşlar, anketler ile ilgili fonksiyonları konuya ekledim. Zamanım oldukça hergün daha çok fonksiyon ile ilgili bilgi girmeye çalışacağım.
Tüm fonksiyonları tamamladıktan sonra ise, daha gelişmiş konularla ilgili birşeyler yazmaya çalışacağım (örneğin üye giriş yapmışsa şuraya girebilsin yoksa giremesin vs. vs.)
Ancak gece geç saatlerde rehbere zaman ayırabildiğim için şimdiden imla hatalarından dolayı herkesten özür dilerim.
Quote from: mk1977 on December 10, 2007, 03:22:13 AM
bir arkadaş ilgilenebilirse çok sevineceğim ;)
Daha çok bilgi verebilir misin? Ben biraz önce denedim sorunsuz 50 mesajın 50'sinide çağırdım.
sayın eren,
vaktiniz olduğunda bakarsanız sevinirim
http://www.muhasebe-online.com/forum/SSI.php?ssi_function=recentTopics
40 civarı mesaj çıkıyor
Bende 50 tane çıkıyor şu anda.
tek tek saydım 48 gözüküyor ama bu sabit değil
bir ara 30-35 civarındaydı...
nedeni ne olabilir acaba...
SSI.php'yi açıp şu değişikliği yapar mısın?
Şurayı bul:
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 35 * min($num_recent, 5)) . "
Ve şu şekilde değiştir:
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 35 * min($num_recent, 20)) . "
üstad çok teşekkürler,
ben 100 konu olarak ayarlamıştım daha önceden
yukardaki değişikliği yapınca 100 konu tümüyle çıkıyor
elinize sağlık teşekkür ederim...
Est, kolay gelsin.
Selam Arkadaşlar,
Bir php anasayfada ssi kullanarak üye girişi, kayıt, son mesajlar vs yaptım. Ancak aşağıdaki hatayı sitemin anasayfasının en başında alıyorum. Bayadır uğraşıyorum ancak bir sonuç alamadım. Galiba üye giriş çıkışlarından kaynaklanan bir sorun yardımcı olursanız çok sevinirim.
Notice: SSI.php was unable to load a session! This may cause problems with logout and other functions - please make sure SSI.php is included before *anything* else in all your scripts! in /home/ygonul/public_html/forums/SSI.php on line 186
Hata bu arkadaşlar.
SSI.php'yi include ettiğin satırı sayfanın en başına koyman gerekli.
Quote from: *eren on December 29, 2007, 04:31:26 PM
SSI.php'yi include ettiğin satırı sayfanın en başına koyman gerekli.
Koydum Eren.
Sonuç olarak hiç bir problem olmadan çalışıyor. fakat yukarıda ki hatayı veriyor. SSI.php çağırdığımda sorun olmamasına rağmen bu uyarıyı neden veriyor anlayabilmiş değilim.
Dün baya uğraştım ve SSI.php 184.ncü satırdaki Function dizinini silmek zorunda kaldım. Ancak bu şekilde uyarıyı vermedi. Bu seferde <?php ssi_welcome(); ?> komutu ile login komutları anasayfada çalışmıyor. Diğerlerinde sorun yok.
Kodyğun sayfa ne sayfası, başka bir içerik yönetim sistemi mi var? Çünkü bu hatanın sebebi iki kere session başlatılıyor olması.
Say
Quote from: *eren on December 30, 2007, 06:51:09 AM
Kodyğun sayfa ne sayfası, başka bir içerik yönetim sistemi mi var? Çünkü bu hatanın sebebi iki kere session başlatılıyor olması.
sayfa html sayfasıydı ve bu sayfanın en üstüne
<?php require("/home/..../...../forums/SSI.php"); ?> kodunu (kendi forumumun kodu) html'den hemen önce koyup uzantılarını PHP yaparak farklı kaydettim. Yani index.php oldu anasayfa.
Burada bir sorun yok.
Sadece o hatayı veriyordu. Bende bir bir önceki sayfada belirttim function dizinindeki kodları silince hata kayboldu.
Şimdi yeniden düzenledim ve sorunsuz çalışıyor.
Anasayfadan avatarımı ve welcome,login,logout çağırabiliyorum.
Şimdilik sorun yok gibi.
İlgine çok teşekkür ederim.
Şimdi bendeki problem burda okuduklarımdan biraz farklı.
ssi.php ye erişim sağladığımda bana kullanmam gereken dosyanın en üstüne hangi kodu yazmam gerektiğini söyleyen bir satır var.
http://forum.vatan.tc/ssi_examples.php
bu adresten bakılabilir.
Şimdi bu adreste dediğine göre kullanmam gereken dosyada en üste bunu yazmam gerekiyormuş.
<?php require("/var/www/vhosts/vatan.tc/subdomains/forum/httpdocs/SSI.php"); ?>
Fakat ben bunu dosyamın en üst kısmına yazıp malum dosyayı çalıştırmaya kalktığımda bomboş beyaz bir sayfa çıkıyor. hiçbir kod görüntülenemiyor.
Çalıştırdığım dosya adresi de,
Http://www.vatan.tc/zeki.php
-----------------------------------------------------
Sorun ne olabilir?
Sende şu çıkıyor, şunu yazman gerekli:
<?php require("SSI.php"); ?>
Quote from: *eren on January 03, 2008, 05:23:19 PM
Sende şu çıkıyor, şunu yazman gerekli:
<?php require("SSI.php"); ?>
sanırım yanlış okudunuz yazdığımı. bu verdiğinizle hiç olmadı.
yani anlatmak istediğim şu;
bir www.vatan.tc/zeki.php diye bir sayfa var.
bir de forum.vatan.tc die subdomain bir sayfa var.
forum dosyaları ve
ssi.php /vatan.tc/subdomains/forum/httpdocs/ dizininde
ana dizin ise /vatan.tc/httpdocs/ şeklinde
forum dizinindeki ssi.php'yi ana dizinde çalıştırmak istiyorum yani ssi.php'ye göre bir üst dizinde çalışması gerekiyor.
fakat yukarıda da dediğim gibi
<?php require("/var/www/vhosts/vatan.tc/subdomains/forum/httpdocs/SSI.php"); ?> şeklinde kullanınca boş bembeyaz bir sayfa çıkıyor.
Ben seni çok iyi anladım, merak etme :)
Sunucu Ayarları --> Temel Ayarlar da SSI'in çalımasını engelleyecek seçeneğin işaretli olmadığından emin olabilir misin?
Çerezleri depola (local)
(bunu açarsanız SSI çalışmayacaktır)
sanırım bu seçeneği kastettiniz ama bu seçenek seçili değil
zaten ssi.php nin bulunduğu dizinde herhangi bir dosyada ssi.phpyi require edince sorun yok ama ssi.php nin bulunduğu dizinden başka bir dizinde olan dosyadan require etmek istenince bomboş sayfa çıkıyor.
:s
Phpinfo lütfen...
Quote from: Vatan.TC on January 03, 2008, 03:42:01 PM
Şimdi bendeki problem burda okuduklarımdan biraz farklı.
ssi.php ye erişim sağladığımda bana kullanmam gereken dosyanın en üstüne hangi kodu yazmam gerektiğini söyleyen bir satır var.
http://forum.vatan.tc/ssi_examples.php
bu adresten bakılabilir.
Şimdi bu adreste dediğine göre kullanmam gereken dosyada en üste bunu yazmam gerekiyormuş.
<?php require("/var/www/vhosts/vatan.tc/subdomains/forum/httpdocs/SSI.php"); ?>
Fakat ben bunu dosyamın en üst kısmına yazıp malum dosyayı çalıştırmaya kalktığımda bomboş beyaz bir sayfa çıkıyor. hiçbir kod görüntülenemiyor.
Çalıştırdığım dosya adresi de,
Http://www.vatan.tc/zeki.php
-----------------------------------------------------
Sorun ne olabilir?
Kardeş sitenin anasayfası html tabanlıysa elbette kodlar görünmez.
Kodların çalışabilmesi için 2 yol var.
1- HTML bir anasayfada iFrame ile göstermek
2- Anasayfayı wordpad ile aç. Yukarıda sitenin php kodunu html kodundan hemen önce ekle. Ve farklı kaydet. Dikkat Farklı kaydederken uzantısını php yap ve öyle kaydet.
Upload ederken de index.html değil, index.php'yi yükle. SSI.php kodları aynen görüntülenir.
Kolay gelsin.
yakup efe sen uçmuşsun dostum. tabii ki phpde çalıştırıyorum.
neyse iyi niyetin için bişey demiyorum sana saolasın.
*eren phpinfo derken php içindekileri kastettin sanırım. işte çalışmayan http://www.vatan.tc/zeki.php içindeki kodlar.. deneme amaçlı 5 nolu bordun son atılmış 5 postunu görüntüleyecektim ama olmadı:
<?php require("/var/www/vhosts/vatan.tc/subdomains/forum/httpdocs/SSI.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="TR">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="Vatan, VatanTC, TC, Turk, Türkiye, Vatanim, Gazetesi" />
<meta name="description" content="VatanTC, Forum, Vatan.TC, Vatanim, Vatan Gazetesi, Vatan Bilgisayar, Vatan Computer,
GazeteVatan, Önce Vatan Gazetesi, Vatan TC Kimlik No Sorgulama, VatanForum, ForumVatan forumlar, turk form siteleri
Vatanim türkiye, yavru vatan kıbrıs, vatan sağolsun, vatan millet sakarya, vatan caddesi, vatan anadolu teknik meslek lisesi,
Haberler, çorlu vatan Hastanesi Lisesi fotoğraflar, Burs veren kurumlar, burslar, kyk" />
<title> Vatan.TC ~ Türkiye`nin Bilgi ve Eğlence Portalı... Vatan, Forum, Vatan.TC, VatanTC, Vatan Gazetesi, Vatan Bilgisayar, Vatan Computer,
GazeteVatan, Önce Vatan Gazetesi, Vatan TC Kimlik No Sorgulama, VatanForum, ForumVatan forumlar, turk form siteleri
Vatanim türkiye, yavru vatan kıbrıs, vatan sağolsun, vatan millet sakarya, vatan caddesi, vatan anadolu teknik meslek lisesi,
Haberler, çorlu vatan Hastanesi Lisesi fotoğraflar, Burs veren kurumlar, burslar, kyk</title>
<link rel="stylesheet" type="text/css" href="http://forum.vatan.tc/Themes/vbulletin/style.css?fin11" />
<link rel="stylesheet" type="text/css" href="http://forum.vatan.tc/Themes/default/print.css?fin11" media="print" />
<link rel="help" href="http://forum.vatan.tc/index.php?action=help" target="_blank" />
<link rel="search" href="http://forum.vatan.tc/index.php?action=search" />
<link rel="contents" href="http://forum.vatan.tc/index.php" />
<link rel="alternate" type="application/rss+xml" title="Forum ~ Vatan.TC - RSS" href="http://forum.vatan.tc/index.php?type=rss;action=.xml" />
<table style="padding: 15px 0 0 0 ;" bgcolor=#FFFFFF border="0" width="100%" cellpadding="0" cellspacing="0" >
<tr>
<td align="center">
<img src="http://forum.vatan.tc/Themes/vbulletin/images/logo.jpg" >
</td>
</tr>
<tr>
<td>
<?php ssi_boardNews(5,5); flush(); ?>
</td>
</tr>
<tr>
<td>
<p><font style="FONT-SIZE: 8pt">Copyright © 2006-2008
<a title="Vatan" href="http://www.vatan.tc/">Vatan.TC</a> <br>
Her hakkı saklıdır. <br>
</font></td>
</tr>
</table>
</body>
</html>
Hayır phpinfo derken boş bir php sayfasının içine <?php phpinfo(); ?> yazıp linkini atar mısını kastediyordum.
buyur hocam.
http://www.vatan.tc/deneme.php
Quote from: Vatan.TC on January 05, 2008, 01:09:46 PM
open_basedir /var/www/vhosts/vatan.tc/httpdocs:/tmp
Open basedir açık gördüğün gibi, kendi klasörünün alt klasörleri dışunda klasörlere ulaşamıyor büyük ihtimalle php scriptler, hostundan kapatmasını istemen veya forum'u çalıştırmak istediğin klasörün bir alt klasörü yapman gerekiyor.
Quote from: *eren on January 05, 2008, 01:43:33 PM
Quote from: Vatan.TC on January 05, 2008, 01:09:46 PM
open_basedir /var/www/vhosts/vatan.tc/httpdocs:/tmp
Open basedir açık gördüğün gibi, kendi klasörünün alt klasörleri dışunda klasörlere ulaşamıyor büyük ihtimalle php scriptler, hostundan kapatmasını istemen veya forum'u çalıştırmak istediğin klasörün bir alt klasörü yapman gerekiyor.
eywallah, saolasın.
bir görüşeyim hostla.
ssi kullanırken herşey önceden biçimlendirilmiş oluğundan (misal, son atılan mesajlar konu adı bölüm adı yazıyor ben sadece konu adı velinki olsun istiyorum)
bunun gibi yerlerde echo dan farklı bi parametre girince $context dizisini döndürüyor.
Bu dizinin elemanları tam olarak nedir?
context['user']['avatar']['image'] -> mesela contexin içindeki user dizisinin bütün elamanları ver bunun gibi şeyleri nereden öğrenebilrim.
Sources/Load.php'de loadMemberContext fonksiyonunu bul. Hersey orada ;)
Quote from: cakal93 on February 02, 2008, 05:19:50 AM
Sources/Load.php'de loadMemberContext fonksiyonunu bul. Hersey orada ;)
sağol.
tamamdır, gerekli olan diğer kısımlarda ssi.php de varmış zaten.
Quote from: cakal93 on February 02, 2008, 05:19:50 AM
Sources/Load.php'de loadMemberContext fonksiyonunu bul. Hersey orada ;)
Bunu pek önermeyeceğim çıktı seçeneğini rehberde gösterdiğim gibi array yaparak çıktıyı isteğinize göre şekillendirebilirsiniz.
yeni bilgiler için tşkler...
Quote from: man_blood on November 16, 2006, 02:43:58 PM
evet evet benim istedigimde tam böyle birşey yani forumdaki son konuların sadece konu başlıkları goruncek yani tarih ,yazan ve konunun nereye yazıldıgı değil
arkadaşlar buna çözüm yok mu?
sadece konunu başlığı çıksın!
bu haliyle de zaten düzgün çıkmıyor
bir sorum daha var:
<?php ssi_boardNews(); ?>
oluşturduğum portala yukarıdaki kodu yazdığımda sadece forumun 1. sırasındaki bölümün konularını alıyor.
aşağıdaki gibi değiştirdiğimde ise hiç birşey göstermiyor
<?php ssi_boardNews($board = 141, $limit = 10, $length = 300); ?>
çözüm nedir arkadaşlar?
herace ssi_recentTopics() fonksiyounu ssi.php'de bulup echo kısmını isteğine göre düzenlersen sadece başlıkların çıkmasını sağlayabilirsin.
örnek olarak;
echo '
<tr>
<td align="right" valign="top" nowrap="nowrap">
[', $post['board']['link'], ']
</td>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt[525], ' ', $post['poster']['link'], '
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
yazan kısmı
echo '<tr><td><a href="'.$post['href'].'" title="'.$post['subject'].'">'.$post['subject'].'</a></td></tr>';
şeklinde değiştirerek sadece konuya ilişkin linkin olduğu bir düzenleme yapmış olursun.
Dediğiniz pek de güzel bir yol değil. SSI.php'de değişiklik yapılmadan da yapıylıyor bu dediğiniz. Varsayılan olarak bu fonksiyonlarda echo çıktı metodu kullanılır. Ama siz bunu değiştirebilirsiniz.
Örnek olarak;
Sayfanıza şu kodları giriyorsunuz:
$array = ssi_boardNews(5, null, null, null, 'array');
foreach ($array as $news)
{
echo '
<table border="0" width="100%" align="center" class="ssi_table">
<tr>
<td><a href="'.$news['href'].'" title="'.$news['subject'].'">'.$news['subject'].'</a></td>
</tr>
</table>
<br />';
}
Vatan.TC, biraz alakasız olacak ama alttaki sitemap sayfaları yüzüden forumun çok genişliyor, bir kontrol et istersen.
anasayfada son gönderilen mesajların sadece başlıklarının gösterildiği bir alan oluşturabilirmiyiz .... forumdaki son gönderilen mesajlar aynı kalması şartıyla (tüm istatikleriyle)
$array = ssi_recentPosts(5, null, null, null, 'array');
echo '
<table border="0" class="ssi_table">';
foreach ($array as $post)
echo '
<tr>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
</td>
</tr>';
echo '
</table>';
Sayfanıza bu kodu ekleyin.
$array = ssi_recentPosts(5, null, null, null, 'array'); echo ' '; foreach ($array as $post) echo ' ', $post['subject'], '
'; echo ' ';
böyle bir mesaj aldım
<?php
$array = ssi_recentPosts(5, null, null, null, 'array');
echo '
<table border="0" class="ssi_table">';
foreach ($array as $post)
echo '
<tr>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
</td>
</tr>';
echo '
</table>';
?>
Bu şekilde koyun o zaman.
tşk ler sinan istediğim gibi oldu klavyene sağlık....
forumda online üyeleri nickleri ile değilde rakamla nasıl belirtiriz
Görüncek şekli tam olarak yazar mısınız?
Online Üye 15
Gizli 1
Ziyaretçi 10
gibi mi?
evet aynen o şekil ayrıca sadece üye olma kısmıda ekleyebilirmiyiz sadece üye ol kısmı
Sayfanıza şunu ekleyin:
<?php
$array = ssi_logOnline('array');
echo '<table>
<tr>
<td>Ziyaretçiler</td>
<td>:</td>
<td>', $array['guests'],'</td>
</tr>
<tr>
<td>Üyeler</td>
<td>:</td>
<td>', $array['num_users'],'</td>
</tr>
<tr>
<td>Gizli</td>
<td>:</td>
<td>', $array['hidden'],'</td>
</tr>
<tr>
<td>Toplam</td>
<td>:</td>
<td>', $array['total_users'],'</td>
</tr>';
?>
Arkadaşlar, ben ssi.php'den çağırdığım yazıların renklerini ve boyutlarını değiştirmek istiyorum. Kodlarla uğraştım biraz ama olmadı.
Bir ipucu yeterli olacak gerisini halledeceğim.
[SiNaN] sadece firefox'da öyle gözüküyor.
IE'de problem yok..
Peki bu linkleri falan temanın style.css'inden nasıl çağırabiliriz? Her şey temanınki gibi olsun son mesaj linklei falan.
Şu şablonu kullanabilirsiniz.
<?php
$ssi_layers = array('main');
$ssi_gzip = true;
require('SSI.php');
?>
HTML kodlarınız buraya yazın.
<?php
ssi_shutdown();
?>
recentTopics bu forumdaki son konuları gösteriyo iyi guzel. ama istedigim su son konuları gostersin ama son konulara yazan cevapları gostermesim. :-\
Quote from: Elmacik on November 09, 2006, 07:12:40 PM
Eğer SHTML içinde kullanacaksanız şunu yapın:
<!--#include virtual="./SSI.php?ssi_function=recentTopics" -->
Burada recentTopics fonksiyonunu örnek olarak yazdım. Siz hangi fonksiyonu kullanacaksanız onu yazın.
Bu yukarıda ki SHTML fonksiyonunu HTML sayfada kullanabilir miyiz?
shtml'in html'den tek farkı server side include yapılabilmesi. Sadece uzantısı farklı. Yani portal.html yerine portal.shtml oluyor.
Apache'nin html'ler için de server side include'u kullanması sağlanabilir. Ama bildiğim kadarıyla server'ı çok yoruyor ve de sanırım server üzerinde sağlam bir yetki istiyor, bu ayarı yapabilmek için.
Server da hertürlü yetkim varda, uzantının SHTML olarak değişmesi kötü. Yinede bilgiler için sağol Sinan.
Bende hata veriyor diger arkadaşimin sitesinde sorun yok :D "Internal Server Error" Hata bu chmod:755 benim sitede arkadaşimda : 644 bende 644 yaptim yine olmadi başka neresini kurcalamam gerekiyor acaba?
Portalda;
SMF gallery deki, son eklenen resmi veya rast gele resim nasıl gösteririz?
Quote from: [SiNaN] on February 10, 2008, 06:59:15 AM
Sayfanıza şu kodları giriyorsunuz:
$array = ssi_boardNews(5, null, null, null, 'array');
foreach ($array as $news)
{
echo '
<table border="0" width="100%" align="center" class="ssi_table">
<tr>
<td><a href="'.$news['href'].'" title="'.$news['subject'].'">'.$news['subject'].'</a></td>
</tr>
</table>
<br />';
}
değil de
<?php
$array = ssi_boardNews(5, null, null, null, 'array');
foreach ($array as $news)
{
echo '
<table border="0" width="100%" align="center" class="ssi_table">
<tr>
<td><a href="'.$news['href'].'" title="'.$news['subject'].'">'.$news['subject'].'</a></td>
</tr>
</table>
<br />';
}
?>
yapınca oldu çok teşekkürler
ama bir sorum daha olacakörneğin 134 ve 143 numaralı forumları göstermek istemiyorum bunun için nasıl bir kod gerekli?
exclude boards olacaktı SSI.php'de, yanımda yok şu an. Oraya değer girerek yapabilirsin zannediyorum.
yahu bende calismiyor bu dosya internal server error verip verip duruyor chmod 644 sonuc ayni 755 sonuc ayni ne yapayim baska?
Quote from: [SiNaN] on March 10, 2008, 06:08:31 AM
exclude boards olacaktı SSI.php'de, yanımda yok şu an. Oraya değer girerek yapabilirsin zannediyorum.
yapmaya çalıştım o dediğini de pek beceremedim bi zahmet yardım ediversen
Bu fonksiyonda tek bir bölümden geliyor zaten. O bölümleri neden çikarmak istiyorsun?
Quote from: Yağız on March 12, 2008, 04:30:08 PM
Bu fonksiyonda tek bir bölümden geliyor zaten. O bölümleri neden çikarmak istiyorsun?
yapmak istediğim aslında son konulardı pardon :D
aşağıdaki koda nereye ne eklemeliyim ki istediğim bölümler gösterilmesin?
<?php
$array = ssi_recentTopics(10, null, null, null, 'array');
foreach ($array as $news)
{
echo '
<table border="0" width="100%" align="center" class="ssi_table">
<tr>
<td><img src="http://netmanyagi.byethost18.com/f/Themes/dilbermc/images/post/xx.gif"><a href="'.$news['href'].'" title="'.$news['subject'].'">'.$news['subject'].'</a></td>
</tr>
</table>
';
}
?>
$array = ssi_recentTopics(10, board_id, 'array');
board_id yazan yere bölüm id'si yazın.
Quote from: Yağız on March 16, 2008, 12:32:40 PM
$array = ssi_recentTopics(10, board_id, 'array');
board_id yazan yere bölüm id'si yazın.
peki birden fazla bölüm için ne yapacağız araya virgü olmadı :(
Arkadaşlar, benim ssi.php ile çağırdığım yazılarin rengini değiştirmem lazım.
SSI.php dosyasını baya bir kurcaladım ama bir sonuç elde edemedim. Bir fikri olan varsa lütfen söylesin.
Teşkkürler.
=register yani kayıt işlemi için gerekenleri ssi.php ile nasıl çekebilirim? Arama yaptımda bi şey bulamadım? varsa link lütfen.. yoksa nasıl yapabilirim?
Anketi ekledik peki oy kullandıktan sonra anket yerinde neden sonuçlar görünmüyor boş çıkıyor onun yerine sonuçların görünmesini sağlayabilir miyiz?
Quote from: Boo7eR on April 02, 2008, 08:16:51 PM
Anketi ekledik peki oy kullandıktan sonra anket yerinde neden sonuçlar görünmüyor boş çıkıyor onun yerine sonuçların görünmesini sağlayabilir miyiz?
showPoll fonksiyonunu kullanın.
Teşekkürler Sinan ben topPoll kullanıyormuşum showPoll kullanınca düzeldi gecenin o saatinde dikkat bu kadar oluyor :-[
forumdan bağımsız sıradan bir .php sayfada SSI uyuladığımızda neden Copyright kayboluyor.. :S
QuotePowered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC
Jest yapmak istemis SMF :)
Koymamiza gerek yokmus.
Helal olsun işte aradığım şey bu.Çoooooooook teşekkürler.
Smf ve diger forumlar icin Cpanel linux sunucularda cok guzel SSI baglantisi kurabiliyordum en basa
<?php require("/home/herneyse/public_html/forum/SSI.php"); ?> yaziyordum cpanel destekli sunucularda cok guzel calisiyordu
fakat su anda plesk destekli sunucudayim en basa ne yazmam gerekiyor? plesk sunucuda home ve www. klasoru ve digerleri yok.
Bildiginiz uzere plesklerde /httpdocs/ ana klasor olarak duruyor ve pcanel kordinatlarini plesk sunucuya attigimda SSI calismiyor, benim icin cok onemli ,tum tasarimim buna kalmis sunucumda baya hizli, degistirmek istemiyorum fakat teknik destek vermiyorlar yardiminiza ihtiyacim var tesekkurler...
O adresi nereden alacağın yazıyor rehberi dikaktle oku.
SSI yardımı ile forumdaki yanlızca tek bir konuyu çağırabilir miyiz?
Quote from: Retired on April 23, 2008, 09:13:25 AM
SSI yardımı ile forumdaki yanlızca tek bir konuyu çağırabilir miyiz?
Linkteki mod işini görecektir;
modu kurduktan sonra ;
<?php ssi_topic(konu idsini buraya girerek); ?>
istediğin bir konuyu ve cevaplarını gösterebilirsin.
Mod linki;
http://custom.simplemachines.org/mods/index.php?mod=751
Teşekkürler @sultanE
Bilgiler için tekrar teşekkürler. Önce bi soru sormuştum ama cevabını alamadım kısmen de olsa bir yolla hallettim. Ama şu an çözemediğim ve bulamadığım bi sorunum var.
Ssi.php kullandığım bir sayfada örneğin bir download linki yazacağım. Bu linkin sadece üyeler tarafından görülmesini istiyorum. Ve ziyaretçilere "Linki görmek için üye olunuz" gibi bi şey yazacak.
Buna benzer bir şeyleri burada gördüğüme eminim ama bir türlü arama fonksiyonunu çalıştıramadım ve dolayısıyla bulamadım. Yardımcı olursanız sevinirim :)
Fonksiyon var mi bilmiyorum ama söyle birsey olabilir:
if ($context['user']['is_logged'])
echo '<a href="link">Download</a>';
else
echo 'Linki görmek için üye olunuz';
Quote from: Yağız on May 04, 2008, 05:25:14 PM
Fonksiyon var mi bilmiyorum ama söyle birsey olabilir:
if ($context['user']['is_logged'])
echo '<a href="link">Download</a>';
else
echo 'Linki görmek için üye olunuz';
tamamdır.. teşekkürler ;)
Benim hala merak ettiğim bişi var.. ssi_boardNews'in kriterleri nelerdir. Yani forumumda herhangi 5 konuyu seçiyor, neye göre seçiyor?
Senin İngilizcen iyidir HCM, aşağıdaki linkte ayrıntısıyla anlatıyor:
http://support.simplemachines.org/function_db/index.php?action=view_function;function=610
Quote from: [SiNaN] on May 06, 2008, 02:11:23 AM
Senin İngilizcen iyidir HCM, aşağıdaki linkte ayrıntısıyla anlatıyor:
http://support.simplemachines.org/function_db/index.php?action=view_function;function=610
Teşekkürler Sinancım bende tam oraya geçiyordum, SSI.php'ye adım atıyorum artık, lazım olmadığı için hiç ayrıntılı incelememiştim, ama artık su gibi lazım. O yüzden yeni başlıyomuş gibi hissediyorum kendimi :)
Ee tabi bir sorunun gelmemesi imkansız olurdu, geldi ilk sorum :)
SSI içerik kodları nerede acaba bir <br /> tagı eklemem gerekiyo da..
Şöyleki.. 16 Ziyaretçi, 1 Üye<br />(0 Arkadaşlar)
Böyle yapmam gerekiyo ki (0 Arkadaşlar bölümünü aşağı alayım :)
kısca ssı_examples bilgilerinin toplandığı yer neresi?
Teşekkürler..)
Quotekısca ssı_examples bilgilerinin toplandığı yer neresi?
SSI.php..?
ssi_whosOnline ve ssi_logOnline fonksiyonlari...
Normalde SSI.php'de değişiklik yapmak pek güzel değil ama bu durumda daha kolaylık olur.
SSI.php
Bul:
echo '
', $return['guests'], ' ', $return['guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ', $return['num_users'], ' ', $return['num_users'] == 1 ? $txt['user'] : $txt['users'];
Sonrasına ekle:
echo '<br />';
forum klasörüne hiç uğramadığımız için yerini unutmuşuz.. hep temanın içindeyiz..
Teşekkürler Sinan
Birde boardnews özelliğindeki <hr /> çubuk benim temada çok çirkin duruyor. Sen gördün Sinan. hiç uymuyor. o yüzden onu bir resim dosyası ile değiştiricem, o da ordadır büyük ihtimal..
SSI.php
Bul:
<hr style="margin: 2ex 0;" width="100%" />
Resimle değiştir.
Ama bahsettiğim array özelliği ile yaparsan bunu daha güzel olur. ;)
ne olur bir yardımcı olun msn adresim
[email protected] olmuyor :( ne olur çok dua etcem
Quote from: [SiNaN] on May 06, 2008, 07:25:18 AM
SSI.php
Bul:
<hr style="margin: 2ex 0;" width="100%" />
Resimle değiştir.
Ama bahsettiğim array özelliği ile yaparsan bunu daha güzel olur. ;)
onu ben soldaki tablolarda kullanıyorum, gerçekten de müthiş oluyor..
Bu <hr />'de ise sadece onu değiştiricem diye uğraşmiim dedim. hepsi bu. Saol..
Edit: Vazgeçtim.. array özelliğini kullanıyorum. En doğrusu.. tekrar teşekkür..
yani benim önceden sayfamda kullanıcı adı şifre vardı yani hazır. e şimdi bu
<body><?php ssi_login(); ?></body> yazınca yeniden kullanıcı adı şifre bölümü çıkıyor.peki ben nasıl yapcam tasarımıma nasıl uyarlicam bunu :S
ssi_boardnews ile bir bölümdeki istediğim kadar konuyu çağırdım, peki onların alfabetik sıraya göre dizilmesini nasıl sağlayabiliriz?
Teşekkürler..
Quote from: Hoochie Coochie Man on May 06, 2008, 10:17:58 AM
ssi_boardnews ile bir bölümdeki istediğim kadar konuyu çağırdım, peki onların alfabetik sıraya göre dizilmesini nasıl sağlayabiliriz?
Teşekkürler..
Bunun için fonksiyona yeni bir parametre eklenerek ORDER BY name kullanılabilir. Yarın yazarım kodları HCM, çıkmam lazım şimdi.
Saol Sinan, bende o zamana kadar İngilizce bölümde aratıyorum..
yani benim önceden sayfamda kullanıcı adı şifre vardı yani hazır. e şimdi bu
<body><?php ssi_login(); ?></body> yazınca yeniden kullanıcı adı şifre bölümü çıkıyor.peki ben nasıl yapcam tasarımıma nasıl uyarlicam bunu :S
yani benim önceden sayfamda kullanıcı adı şifre vardı yani hazır. e şimdi bu
<body><?php ssi_login(); ?></body> yazınca yeniden kullanıcı adı şifre bölümü çıkıyor.peki ben nasıl yapcam tasarımıma nasıl uyarlicam bunu :S
cvp verin artık şuna :(
30 saniyede flood rekoru! Tebrikler!
Dosyanizin uzantisi .php olmali.
olmuyorki zaten php dosyası :S sorduğum soruyu iyi oku
Siteyi özel mesajdan verebilir misiniz?
Sorularınızda biraz daha nezaket kurallarına riayet etmenizi öneriyorum. Neticede burada insanlar gönüllü olarak birşeyler yapıyor.
Aşağıdaki mesajdan yararlanabilirsiniz:
http://www.simplemachines.org/community/index.php?topic=47018.msg1430805#msg1430805
Erhan, bu da senin için:
<?php
$array = ssi_boardNews(1, null, null, null, 'array');
foreach($array as $subject)
$subjects[] = $subject['subject'];
sort($subjects);
$count = 0;
foreach($subjects as $sub) {
foreach($array as $ar) {
if($sub == $ar['subject'])
$new[$count] = $ar;
}
$count = $count +1;
}
foreach ($new as $news)
{
echo '
<table border="0" width="100%" align="center" class="ssi_table">
<tr>
<td><a href="'.$news['href'].'" title="'.$news['subject'].'">'.$news['subject'].'</a></td>
</tr>
</table>
<br />';
}
?>
yardım edin bana :(
[email protected] ne olur çok dua etcem :)
şuan sadece forum kurulu hazırladığım sayfa bilgisayarımda. herşeyi tamamlayıp öyle atacam hosta lütfen yardımcı olun tekrarlıyorum sorumu şimdi benim sayfam hazır kullanıcı adı şifre bölümümü çok güzel bir tasarımla hazırladım.lakin sizin yaptığın kodu yazınca tekrar kullanıcı adı ve şifre bölümü çıkıyor bunu böyle yapmadan sadece kendi hazırladığım kullanıcı adı şifre bölümüne nasıl uyarlicam anlatmak istediğim bu lütfen artık anlayın :( ya da yardım edin lütfen
[email protected]
cvp yokmu ?
of allahım neden kimse cvp vermiyor
şimdi doğrumu anladık.
Sen kulalnıcı adı ve şifre bölümü hazırladın. onun çalışmasını istiyorsun..
ancak ssi_login fonksiyonunu deniyorsun 2 adet çıkıyor..
UguRKaaN, neden kimsenin cevap vermediğini söyleyeyim:
Sorununuzu açık bir şekilde belirtmiyorsunuz. Ayrıca size yazılan cevapları da okumuyorsunuz. Ek olarak da çok heyecanlı bir halde anlatıyorsunuz.
Quote from: Hoochie Coochie Man on May 11, 2008, 04:42:22 PM
şimdi doğrumu anladık.
Sen kulalnıcı adı ve şifre bölümü hazırladın. onun çalışmasını istiyorsun..
ancak ssi_login fonksiyonunu deniyorsun 2 adet çıkıyor..
evet aynen nasıl yapcam ?
SSI.php'de böyle bir yer var..
// Shows a login box.
function ssi_login($redirect_to = '', $output_method = 'echo')
{
global $scripturl, $txt, $user_info, $context;
if ($redirect_to != '')
$_SESSION['login_url'] = $redirect_to;
if ($output_method != 'echo' || !$user_info['is_guest'])
return $user_info['is_guest'];
echo '
<form action="', $scripturl, '?action=login2" method="post" accept-charset="', $context['character_set'], '">
<table border="0" cellspacing="1" cellpadding="0" class="ssi_table">
<tr>
<td align="right"><label for="user">', $txt[35], ':</label> </td>
<td><input type="text" id="user" name="user" size="9" value="', $user_info['username'], '" /></td>
</tr><tr>
<td align="right"><label for="passwrd">', $txt[36], ':</label> </td>
<td><input type="password" name="passwrd" id="passwrd" size="9" /></td>
</tr><tr>
<td><input type="hidden" name="cookielength" value="-1" /></td>
<td><input type="submit" value="', $txt[34], '" /></td>
</tr>
</table>
</form>';
}
O bölümü iyicene inceleyin.. Sonra alınması gereken ilgili bilgileri, kendi yapmış olduğunuz login bölümüne ekleyin..
Quote from: Hoochie Coochie Man on May 12, 2008, 09:01:03 AM
SSI.php'de böyle bir yer var..
// Shows a login box.
function ssi_login($redirect_to = '', $output_method = 'echo')
{
global $scripturl, $txt, $user_info, $context;
if ($redirect_to != '')
$_SESSION['login_url'] = $redirect_to;
if ($output_method != 'echo' || !$user_info['is_guest'])
return $user_info['is_guest'];
echo '
<form action="', $scripturl, '?action=login2" method="post" accept-charset="', $context['character_set'], '">
<table border="0" cellspacing="1" cellpadding="0" class="ssi_table">
<tr>
<td align="right"><label for="user">', $txt[35], ':</label> </td>
<td><input type="text" id="user" name="user" size="9" value="', $user_info['username'], '" /></td>
</tr><tr>
<td align="right"><label for="passwrd">', $txt[36], ':</label> </td>
<td><input type="password" name="passwrd" id="passwrd" size="9" /></td>
</tr><tr>
<td><input type="hidden" name="cookielength" value="-1" /></td>
<td><input type="submit" value="', $txt[34], '" /></td>
</tr>
</table>
</form>';
}
O bölümü iyicene inceleyin.. Sonra alınması gereken ilgili bilgileri, kendi yapmış olduğunuz login bölümüne ekleyin..
çok tşk ederim ama biraz daha detay lütfen bu kodların hepsinimi kullanacağım
hayır hepsi değil tabiki. Login bölümünü gösterdim size, inputlar önemli, ona göre ayarlayın..
Yapacağınız tek şey SSI kullandığınız sayfanın kodlarını buraya eklemeniz. Böylece hatanın nerede olduğunu bulabiliriz.
arkadaşlar başardım hepinize çok teşekkür ediyorum.;);)
şimdi mesela giriş yapınca foruma yönleniyor.kendi anasayfamızda kalmıyormu sadece değişecek olan hoşgeldiniz user falan yazcak.böyle yapamıyormuyuz. yani kullanıcı anasayfa da kalsın kullanıcı bilgilerini girdiktikten sonra.? foruma yönlenmemesini istiyorum.
aynı portalda olduğu gibi örneğin portalda giriş yaptığında foruma yönelmiyor.portal anasayfasında kalıyor.sadece hoşgeldiniz yazısı falan birde kullanıcı adı çıkıyor.aynı şeyi kendi hazırladığımız sayfada nasıl yaparız.anlatabildim inş :) tekrar tekrar hepinze çok tşk ediyorum.
Quote from: UguRKaaN on May 13, 2008, 11:54:50 AM
şimdi mesela giriş yapınca foruma yönleniyor.kendi anasayfamızda kalmıyormu sadece değişecek olan hoşgeldiniz user falan yazcak.böyle yapamıyormuyuz. yani kullanıcı anasayfa da kalsın kullanıcı bilgilerini girdiktikten sonra.? foruma yönlenmemesini istiyorum.
aynı portalda olduğu gibi örneğin portalda giriş yaptığında foruma yönelmiyor.portal anasayfasında kalıyor.sadece hoşgeldiniz yazısı falan birde kullanıcı adı çıkıyor.aynı şeyi kendi hazırladığımız sayfada nasıl yaparız.anlatabildim inş :) tekrar tekrar hepinze çok tşk ediyorum.
Onu öğrendiğin zaman bi zahmet bana da haber ver..
ssi_login('http://www.yonlenmeninyapilmasiniistediginizadres.com/');
Teşekkürler eren ancak ben SSI.php sayfamda..
template_main_above();
ve
template_main_below();
fonksiyonlarını kulalnıyorum..
yani altıda üstüde otomatik getiriyor SSI
ben sadece ortasını dolduruyorum diğer SSI fonksiyonları ile..
Bu durumda yazdığın çözüm nasıl olacak?
Quote from: *eren on May 14, 2008, 02:42:35 AM
ssi_login('http://www.yonlenmeninyapilmasiniistediginizadres.com/');
bu kodu nerden bulacağım ve nereye ekleyeceğim.teşekkürler ;)
SSI.php dosyanı aç
Bul
// Shows a login box.
function ssi_login($redirect_to = '', $output_method = 'echo')
Değiştir
// Shows a login box.
function ssi_login($redirect_to = 'http://www.yonlenmeninyapilmasiniistediginizadres.com/', $output_method = 'echo')
Quote from: єνσℓυтιση™ on May 14, 2008, 08:17:14 AM
SSI.php dosyanı aç
Bul
// Shows a login box.
function ssi_login($redirect_to = '', $output_method = 'echo')
Değiştir
// Shows a login box.
function ssi_login($redirect_to = 'http://www.yonlenmeninyapilmasiniistediginizadres.com/', $output_method = 'echo')
olmadı :( ben şimdi yine aynı sayfanın kopyasınımı yapacağım mesela hazırlağım sayfa diyelim www.siteismi.com/anasayfa.php burada bilgilerini girip foruma yönlenmeden tekrar anasayfada kalması için ayrı bir sayfa dahamı hazırlyacağım www.siteismi.com/uyeyim.php burdada hoşgeldin user falan gibi ?
Anlayamadım arkadaşım tam olarak ne demek istediğini benim gösterdiğim giriş yaptıkdan sonra seni yönlendirdiğin adrese gönderiyor. Seo kurulu ise ana sayfaya yönlendirir bu yaptığımız değişiklik işe yaramaz nasıl yaramaz mesela şöyle yapmış olsak
// Shows a login box.
function ssi_login($redirect_to = 'http://www.yonlenmeninyapilmasiniistediginizadres.com/forum/girissayfasi.html', $output_method = 'echo')
yine de sizi anasayfaya yönlendirir.
Quote from: єνσℓυтιση™ on May 14, 2008, 08:17:14 AM
SSI.php dosyanı aç
Bul
// Shows a login box.
function ssi_login($redirect_to = '', $output_method = 'echo')
Değiştir
// Shows a login box.
function ssi_login($redirect_to = 'http://www.yonlenmeninyapilmasiniistediginizadres.com/', $output_method = 'echo')
@єνσℓυтιση™ ancak ben hazırlamış olduğum php sayfada ssi_login fonksiyonunu kullanmıyorum. bu sayfanın en tepesindeki mesajda açıkladım..
Ayrıca ne ssi_topPoll(); nede ssi_recentPoll(); fonksiyonları bende çalışıyor? hiçbiri çalışmıyor.
Selam tekrar ben geldim, bu son sorum, inanını :P
Şimdi ben ssi_boardNews fonksiyonunu kulalnıyorum..
aşağıda da gördüğünüz gibi 200 tane konuyu çağırıyorum. ben aslında o bölümdeki tüm konuları çağırmak istiyorum, yani gidip gelip o 200 ü ayarlamak istemiyorum.. onun bi sonsuz değeri yok mu?
ssi_boardNews(2, 200, null, null, 'array');
Yine pek sevmediğim birşey yaptıracağım. :P
SSI.php
Bul:
$limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 5;
Değiştir:
$limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 'We need infinite. lol';
Bul:
ORDER BY ID_FIRST_MSG DESC
LIMIT $start, $limit", __FILE__, __LINE__);
Değiştir:
ORDER BY ID_FIRST_MSG DESC" . ($limit == "We need infinite. lol" ? "" : "
LIMIT $start, $limit"), __FILE__, __LINE__);
Bundan sonra eğer null olarak kalırsa bütün konuları alacak. Yani hepsini almak için şunu kullanabilirsin:
ssi_boardNews(2, null, null, null, 'array');
Harika oldu..
Emeğine sağlık sinan, artık gönül rahatlığı ile askere gidebilirim.. ;)
Arkadaşlar kimse sormamış yaptığımız anasayfa'ya ssi ile login ve logout ekleyip giriş yapıca çıkan "çıkış" yazısının üzerinde üyenin avatarını gösterebilir miyiz? Bunun için ssi_examples'da birşey göremedim.
Tabiki yaparsın
SSI.php aç ben kendi kullandığımı vereyim istersen hoş bir görüntüsü var kendim düzenledim
// Show a logout link.
function ssi_logout($redirect_to = '', $output_method = 'echo')
{
global $context, $txt, $scripturl, $sc;
if ($redirect_to != '')
$_SESSION['logout_url'] = $redirect_to;
// Guests can't log out.
if ($context['user']['is_guest'])
return false;
echo '<a href="', $scripturl, '?action=logout;sesc=', $sc, '">', $txt[108], '</a>';
}
// Show a logout link.
function ssi_logout($redirect_to = '', $output_method = 'echo')
{
global $context, $txt, $scripturl, $sc;
if ($redirect_to != '')
$_SESSION['logout_url'] = $redirect_to;
// Guests can't log out.
if ($context['user']['is_guest'])
return false;
echo '<center>', $context['user']['avatar']['image'] ,'<br>','</center>' ;
echo'<center>', $txt['hello_member'], ' <font color="red"><b>', $context['user']['name'], '</b></font>','</center>' ;
echo '<center><a class=gensmall href="', $scripturl, '?action=pm">Mesajlar</a> ' ;
echo '<a class=gensmall href="', $scripturl, '?action=profile">Profil </a> ' ;
if ($context['allow_admin'])
echo '<a class=gensmall href="', $scripturl, '?action=admin"> Admin </a> ' ;
echo '<a href="', $scripturl, '?action=logout;sesc=', $sc, '">', $txt[108], '</a></center>';
}
Görünüm Böyle :)
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fkralrap.net%2Fresim%2Fuploads%2Fa2a2cbae967c005e5963ef8d6fa0af71.png&hash=e40019d2801b96d172c7cc219941485e34b1c7bc)
TeşekkürLer
Ya arkadaşlar 2 tane site kurdum..İkisinde de SSI.php alttaki hatayı verdi. Kafayı yiyecegim.
"Notice: SSI.php was unable to load a session! This may cause problems with logout and other functions - please make sure SSI.php is included before *anything* else in all your scripts! in C:\\vhosts\siteadi\httpdocs\Forums\SSI.php on line 165"
Bu mesajı yok etmek için SSI.php'de 165 numaralı satırı sildim. Yazı çıkmıyor ama bu sefer anasayfa'da login olunamıyor.
Bilen varsa bir şeyler söylesin.
Quote from: yakup efe on May 25, 2008, 02:47:49 PM
Ya arkadaşlar 2 tane site kurdum..İkisinde de SSI.php alttaki hatayı verdi. Kafayı yiyecegim.
"Notice: SSI.php was unable to load a session! This may cause problems with logout and other functions - please make sure SSI.php is included before *anything* else in all your scripts! in C:\\vhosts\siteadi\httpdocs\Forums\SSI.php on line 165"
Bu mesajı yok etmek için SSI.php'de 165 numaralı satırı sildim. Yazı çıkmıyor ama bu sefer anasayfa'da login olunamıyor.
Bilen varsa bir şeyler söylesin.
aynı sorun bende de var.. yardımınıza ihtiyacım var... aynı şekilde bende sildim o satırı...
bende login olmakat sıkıntı çekiyorum... ilk login olma denemesinde şu hata çıkıyor (o satırı silmeden öncede çıkıyordu);
Forbidden
You don't have permission to access /forum/index.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
------------
sanırım sorunun nerde olduğunu buldum
bunun;
<?php require("****/forum/SSI.php"); ?>
1. satırda olması gerekiyotmuş.... sadece bu olcamış 1. satırda...
Giriş alanında avatar gösterme çok güzel oldu çok teşekkürler єνσℓυтιση™, Şimdi de şöyle bir sorunum var ;
<?php ssi_recentTopics(); ?>
ekledim fakat çok uzun başlıklı konular iki satıra atlıyor ana sayfanın görüntüsü bozuluyor. Konunun başında bunu nasıl istediğimiz gibi değiştirebileceğimiz şöyle verilmiş,
<?php ssi_recentTopics($num_recent = 5, $exclude_boards = array(1,4), $output_method = 'echo'); ?>
bunların içinde konu başlığının harf sayısını ayarlama komutu yok buna ne eklemeliyim ki örneğin konu başlığı "Bu konunun Mesajı Çok Uzun" olan bir konu "Bu konunun Me..." olarak görünsün?
Birde Bu son konular ortalanmış halde duruyor bunları sola dayalı olarak ayarlayabilirmiyiz? html kodlarıyla dayayamadım.
Üsteki mesajıma cevap bekliyorum arkadaşlar? Konular portalda iki satır şeklinde görünüyor, şekli darma duman.
SSI.php
Bul:
// Censor the subject.
censorText($row['subject']);
Öncesine ekle:
if ($func['strlen']($row['subject']) > 40)
$row['subject'] = $func['substr']($row['subject'], 0, 40) . '...';
40 karakterden sonrası yerine üç nokta koyar. 40'ı istediğiniz sayı ile değiştirebilirsiniz.
İkinci sorunuz için sayfanıza nasıl eklediğinizi görmemiz gerek.
güzel dersler eline sağlık :D
Ankete oy verdiğin zaman anket ana sayfadan kayboluyor. :)
Ana sayfaya dönüldüğü zaman anketin sonuçları göstermesini veya tekrar oy kullanmaya çalışıldığında oy kullanmışsınız gibi uyarı gelmesini nasıl sağlarız?
Quote from: Simpıl Meşinıs on July 16, 2008, 07:33:43 PM
Ankete oy verdiğin zaman anket ana sayfadan kayboluyor. :)
Ana sayfaya dönüldüğü zaman anketin sonuçları göstermesini veya tekrar oy kullanmaya çalışıldığında oy kullanmışsınız gibi uyarı gelmesini nasıl sağlarız?
Sinan'ın portalında bu anlatmak istediğin özellik var istersen "simple portal" kurabilirsin. Kendine özgü portal geliştiriyorsan kodları paylaşmasını isteyebilirsin.
John Rambo, kodlar zaten herkese açık.
Simpıl Meşinıs, showPoll() fonksiyonunu deneyebilirsiniz.
peki ben bunu forumun içinde kullanmak istersem nasıl olacak ? örneğin board index templatede son iletiler yerine son konular gözüksün istiyorum. 2.0 için herhangi biryerde son mesajlar yerine son konuları gösteren kod bulamadım ssi ile yapmam mümkünmü bunu ?
1.1.5'de son mesajları, son konular olarak değiştirme kodunu bir yerlerde yazmıştım. İsterseniz 2.0 için de yazabilirim.
SSI fonksiyonlarını kullanabilmek için SSI.php'yi fonksiyonu kullanacağınız sayfada çağırmalısınız. Daha sonra da ssi_recentTopics() fonksiyonunu kullanabilirsiniz.
[Sinan] bu çok güzel olur. Konular hemen güncelliğini kaybediyor yoksa. konuyu dağıtmadan istersen ipuçları-hilelere bir başlık açayım?
edit: zaten konuyu daha önce açmışım http://www.simplemachines.org/community/index.php?topic=250119.msg1618209#msg1618209
Vaktim olduğunda inceleyeceğim.
http://img48.imageshack.us/my.php?image=adszzx6.jpg
arkadaşlar ben bir php portal yapıyorum bu portalın orta kısmına recent topics kodlarını koydum çalıştırdım fakat resimdede görüldüğü üzere konunun adı uzun olunca portalı kaydırıyor ben bu portalda cıkan konu adının karakter sayısını azaltamazmıyım SSI.php ile biraz denedim ama olmadı.
Bu bölümde 3 adet SSI Dersleri konusu olmalı. Onlardan birisinde bu soruyu cevapladığımı hatırlıyorum. Bir göz atın isterseniz.
tesekkürler bakıyorum
anket oylandıktan sonra boş çıkıyor
<?php ssi_topPoll(); ?> kullandım gene boş başka birşey yapamazmıyız
ssi_topPoll() fonksiyonunu kullanırken anketin olduğu konunun IDsini değer olarak girmelsiniz.
Örnek:
ssi_showPoll('ID');
'ID' yerine anketi içeren konunun IDsini yazmalısınız.
Diyelimki board indexteki last postu aşşağıdaki şekilde editledik,
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Ftr-load.com%2Fimg%2Fimage13%2F1168ada063.jpg&hash=14e1fb7000ad502572a1131448de4ebe7504027a) (http://tr-load.com)
<?php
// Version: 1.1; BoardIndex
function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;
// Show some statistics next to the link tree if SP1 info is off.
echo '
<table width="100%" cellpadding="3" cellspacing="0">
<tr>
<td valign="bottom">', theme_linktree(), '</td>
<td align="right">';
if (!$settings['show_sp1_info'])
echo '
', $txt[19], ': ', $context['common_stats']['total_members'], ' &#8226; ', $txt[95], ': ', $context['common_stats']['total_posts'], ' &#8226; ', $txt[64], ': ', $context['common_stats']['total_topics'], '
', ($settings['show_latest_member'] ? '<br />' . $txt[201] . ' <b>' . $context['common_stats']['latest_member']['link'] . '</b>' . $txt[581] : '');
echo '
</td>
</tr>
</table>';
// Show the news fader? (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div class="tborder" style="border-bottom: 0;">
<div class="titlebg" align="center" style="padding: 5px 5px 5px 5px;">', $txt[102], '</div>
</div>
<table border="0" width="100%" cellspacing="0" cellpadding="5" class="tborder" style="border-bottom: 0;">
<tr>
<td class="windowbg2" valign="middle" align="center" height="60">';
// Prepare all the javascript settings.
echo '
<div id="smfFadeScroller" style="width: 90%; padding: 2px;"><b>', $context['news_lines'][0], '</b></div>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// The fading delay (in ms.)
var smfFadeDelay = ', empty($settings['newsfader_time']) ? 5000 : $settings['newsfader_time'], ';
// Fade from... what text color? To which background color?
var smfFadeFrom = {"r": 0, "g": 0, "b": 0}, smfFadeTo = {"r": 248, "g": 248, "b": 248};
// Surround each item with... anything special?
var smfFadeBefore = "<b>", smfFadeAfter = "</b>";
if (typeof(document.getElementById(\'smfFadeScroller\').currentStyle) != "undefined")
{
var foreColor = document.getElementById(\'smfFadeScroller\').currentStyle.color.match(/#([\da-f][\da-f])([\da-f][\da-f])([\da-f][\da-f])/);
smfFadeFrom = {"r": parseInt(foreColor[1]), "g": parseInt(foreColor[2]), "b": parseInt(foreColor[3])};
var backEl = document.getElementById(\'smfFadeScroller\');
while (backEl.currentStyle.backgroundColor == "transparent" && typeof(backEl.parentNode) != "undefined")
backEl = backEl.parentNode;
var backColor = backEl.currentStyle.backgroundColor.match(/#([\da-f][\da-f])([\da-f][\da-f])([\da-f][\da-f])/);
smfFadeTo = {"r": eval("0x" + backColor[1]), "g": eval("0x" + backColor[2]), "b": eval("0x" + backColor[3])};
}
else if (typeof(window.opera) == "undefined" && typeof(document.defaultView) != "undefined")
{
var foreColor = document.defaultView.getComputedStyle(document.getElementById(\'smfFadeScroller\'), null).color.match(/rgb\((\d+), (\d+), (\d+)\)/);
smfFadeFrom = {"r": parseInt(foreColor[1]), "g": parseInt(foreColor[2]), "b": parseInt(foreColor[3])};
var backEl = document.getElementById(\'smfFadeScroller\');
while (document.defaultView.getComputedStyle(backEl, null).backgroundColor == "transparent" && typeof(backEl.parentNode) != "undefined" && typeof(backEl.parentNode.tagName) != "undefined")
backEl = backEl.parentNode;
var backColor = document.defaultView.getComputedStyle(backEl, null).backgroundColor.match(/rgb\((\d+), (\d+), (\d+)\)/);
smfFadeTo = {"r": parseInt(backColor[1]), "g": parseInt(backColor[2]), "b": parseInt(backColor[3])};
}
// List all the lines of the news for display.
var smfFadeContent = new Array(
"', implode('",
"', $context['fader_news_lines']), '"
);
// ]]></script>
<script language="JavaScript" type="text/javascript" src="', $settings['default_theme_url'], '/fader.js"></script>
</td>
</tr>
</table>';
}
// Show the "Board name Topics Posts Last Post" header.
echo '
<table border="0" width="100%" cellspacing="1" cellpadding="5" class="bordercolor">
<tr class="titlebg">
<td colspan="2">', $txt[20], '</td>
<td width="6%" align="center">', $txt[330], '</td>
<td width="6%" align="center">', $txt[21], '</td>
<td width="22%" align="center">', $txt[22], '</td>
</tr>';
/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down iamge),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// Show the category's name, and let them collapse it... if they feel like it.
echo '
<tr>
<td colspan="5" class="catbg" height="18">';
// If this category even can collapse, show a link to collapse it.
if ($category['can_collapse'])
echo '
<a href="', $category['collapse_href'], '">', $category['collapse_image'], '</a>';
echo '
', $category['link'], '
</td>
</tr>';
// Only if it's NOT collapsed..
if (!$category['is_collapsed'])
{
/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
echo '
<tr>
<td class="windowbg" width="6%" align="center" valign="top"><img src="', $settings['images_url'], $board['new'] ? '/on.gif" alt="' . $txt[333] . '" title="' . $txt[333] : '/off.gif" alt="' . $txt[334] . '" title="' . $txt[334], '" border="0" /></td>
<td class="windowbg2" align="left" width="60%">
<a name="b', $board['id'], '"></a>
<b>', $board['link'], '</b><br />
', $board['description'];
// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '<i class="smalltext"><br />
', count($board['moderators']) == 1 ? $txt[298] : $txt[299], ': ', implode(', ', $board['link_moderators']), '</i>';
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
$children[] = $child['new'] ? '<b>' . $child['link'] . '</b>' : $child['link'];
echo '
<i class="smalltext"><br />
', $txt['parent_boards'], ': ', implode(', ', $children), '</i>';
}
echo '
</td>
<td class="windowbg" valign="middle" align="center" width="6%">', $board['topics'], '</td>
<td class="windowbg" valign="middle" align="center" width="6%">', $board['posts'], '</td>';
/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
echo '
<td class="windowbg2" valign="middle" width="22%">
<span class="smalltext">
', $board['last_post']['time'], '<br />
', $txt['smf88'], ' ', $board['last_post']['link'], '<br />
', $txt[525], ' ', $board['last_post']['member']['link'], '
</span>
</td>
</tr>';
}
}
}
// Show the "New Posts" and "No New Posts" legend.
if ($context['user']['is_logged'])
{
echo '
<tr class="titlebg">
<td colspan="2" align="left">
<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new_some.gif" alt="' . $txt[333] . '" border="0" /> <img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new_none.gif" alt="' . $txt[334] . '" border="0" />
</td>
<td colspan="3" align="right" class="smalltext">';
// Show the mark all as read button?
if ($settings['show_mark_read'])
echo '
<a href="', $scripturl, '?action=markasread;sa=all;sesc=' . $context['session_id'] . '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/markread.gif" alt="' . $txt[452] . '" border="0" />' : $txt[452]), '</a>';
echo '
</td>
</tr>';
}
echo '
</table>';
// Here's where the "Info Center" starts...
echo '
<br />
<br />
<table border="0" width="100%" cellspacing="1" cellpadding="4" class="bordercolor">
<tr class="titlebg">
<td align="center" colspan="2">', $txt[685], '</td>
</tr>';
// This is the "Recent Posts" bar.
if (!empty($settings['number_recent_posts']))
{
echo '
<tr>
<td class="catbg" colspan="2" align="center">', $txt[214], '</td>
</tr>
<tr>
<td class="windowbg2" width="0%">
</td>
<td class="windowbg2">';
// Only show one post.
if ($settings['number_recent_posts'] == 1)
{
// latest_post has link, href, time, subject, short_subject (shortened with...), and topic. (its id.)
echo '
<b><a href="', $scripturl, '?action=recent">', $txt[214], '</a></b><br />
<span class="smalltext">
', $txt[234], ' "', $context['latest_post']['link'], '" ', $txt[235], ' (', $context['latest_post']['time'], ')<br />
</span>';
}
// Show lots of posts.
elseif (!empty($context['latest_posts']))
{
echo '
<table class="windowbg2" cellspacing="1" width="100%" cellpadding="0" border="1">
<tr>
<th class="windowbg" style="background-color : #FFFFFF" align="center" width="43%">KONU BAŞLIĞI</th>
<th class="windowbg" style="background-color : #FFFFFF" align="center" width="12%">SON MESAJ/CEVAP</th>
</tr>';
/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="windowbg2" style="background-color : #FFFFFF" align="left">', $post['link'], '</td>
<td class="windowbg2" style="background-color : #FFFFFF" align="center">', $post['poster']['link'], '</td>
</tr>';
echo '
</table>';
}
echo '
</td>
</tr>';
}
// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $context['calendar_only_today'] ? $txt['calendar47b'] : $txt['calendar47'], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="', $scripturl, '?action=calendar">
<img src="', $settings['images_url'], '/icons/calendar.gif" border="0" width="20" alt="', $txt['calendar24'], '" /></a>
</td>
<td class="windowbg2" width="100%">
<span class="smalltext">';
// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span style="color: #', $modSettings['cal_holidaycolor'], ';">', $txt['calendar5'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';
// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span style="color: #', $modSettings['cal_bdaycolor'], ';">', $context['calendar_only_today'] ? $txt['calendar3'] : $txt['calendar3b'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="', $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<b>' : '', $member['name'], $member['is_today'] ? '</b>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span style="color: #', $modSettings['cal_eventcolor'], ';">', $context['calendar_only_today'] ? $txt['calendar4'] : $txt['calendar4b'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
', $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" style="color: #FF0000;">*</a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<b>' . $event['title'] . '</b>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';
// Show a little help text to help them along ;).
if ($context['calendar_can_edit'])
echo '
(<a href="', $scripturl, '?action=helpadmin;help=calendar_how_edit" onclick="return reqWin(this.href);">', $txt['calendar_how_edit'], '</a>)';
}
echo '
</span>
</td>
</tr>';
}
// Show a member bar. Not heavily ornate, but functional at least.
if ($settings['show_member_bar'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[331], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
', $context['show_member_list'] ? '<a href="' . $scripturl . '?action=mlist">' : '', '<img src="', $settings['images_url'], '/icons/members.gif" border="0" width="20" alt="', $txt[332], '" />', $context['show_member_list'] ? '</a>' : '', '
</td>
<td class="windowbg2" width="100%">
<b>', $context['show_member_list'] ? '<a href="' . $scripturl . '?action=mlist">' . $txt[332] . '</a>' : $txt[332], '</b><br />
<span class="smalltext">', $txt[200], '</span>
</td>
</tr>';
}
// Show YaBB SP1 style information...
if ($settings['show_sp1_info'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[645], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="', $scripturl, '?action=stats">
<img src="', $settings['images_url'], '/icons/info.gif" alt="', $txt[645], '" border="0" /></a>
</td>
<td class="windowbg2" width="100%">
<table border="0" width="90%"><tr>
<td class="smalltext">
', $txt[490], ': <b>', $context['common_stats']['total_topics'], '</b> ', $txt[489], ': <b>', $context['common_stats']['total_posts'], '</b><br />
', !empty($context['latest_post']) ? $txt[659] . ':
"' . $context['latest_post']['link'] . '" (' . $context['latest_post']['time'] . ')<br />' : '', '
<a href="', $scripturl, '?action=recent">', $txt[234], '</a>', $context['show_stats'] ? '<br />
<a href="' . $scripturl . '?action=stats">' . $txt['smf223'] . '</a>' : '', '
</td>
<td class="smalltext">
', $txt[488], ': <b>', $context['show_member_list'] ? '<a href="' . $scripturl . '?action=mlist">' . $context['common_stats']['total_members'] . '</a>' : $context['common_stats']['total_members'], '</b><br />
', $txt[656], ': <b>', $context['common_stats']['latest_member']['link'], '</b><br />';
// If they are logged in, show their unread message count, etc..
if ($context['user']['is_logged'] && $context['allow_pm'])
echo '
', $txt['smf199'], ': <b><a href="', $scripturl, '?action=pm">', $context['user']['messages'], '</a></b> ', $txt['newmessages3'], ': <b><a href="', $scripturl, '?action=pm">', $context['user']['unread_messages'], '</a></b>';
echo '
</td>
</tr></table>
</td>
</tr>';
}
// "Users online" - in order of activity.
echo '
<tr>
<td class="catbg" colspan="2">', $txt[158], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
', $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', '<img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt[158], '" border="0" />', $context['show_who'] ? '</a>' : '', '
</td>
<td class="windowbg2" width="100%">';
if ($context['show_who'])
echo '
<a href="', $scripturl, '?action=who">';
echo $context['num_guests'], ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . $context['num_users_online'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];
// Handle hidden users and buddies.
if (!empty($context['num_users_hidden']) || ($context['show_buddies'] && !empty($context['show_buddies'])))
{
echo ' (';
// Show the number of buddies online?
if ($context['show_buddies'])
echo $context['num_buddies'], ' ', $context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies'];
// How about hidden users?
if (!empty($context['num_users_hidden']))
echo $context['show_buddies'] ? ', ' : '', $context['num_users_hidden'] . ' ' . $txt['hidden'];
echo ')';
}
if ($context['show_who'])
echo '</a>';
echo '
<span class="smalltext">';
// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
echo '
', $txt[140], ':<br />', implode(', ', $context['list_users_online']);
echo '
<br />', $context['show_stats'] && !$settings['show_sp1_info'] ? '
<a href="' . $scripturl . '?action=stats">' . $txt['smf223'] . '</a>' : '', '
</span>
</td>
</tr>';
// If they are logged in, but SP1 style information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_sp1_info'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[159], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
', $context['allow_pm'] ? '<a href="' . $scripturl . '?action=pm">' : '', '<img src="', $settings['images_url'], '/message_sm.gif" alt="', $txt[159], '" border="0" />', $context['allow_pm'] ? '</a>' : '', '
</td>
<td class="windowbg2" valign="top">
<b><a href="', $scripturl, '?action=pm">', $txt[159], '</a></b><br />
<span class="smalltext">
', $txt[660], ' ', $context['user']['messages'], ' ', $context['user']['messages'] == 1 ? $txt[471] : $txt[153], '.... ', $txt[661], $context['allow_pm'] ? ' <a href="' . $scripturl . '?action=pm">' . $txt[662] . '</a>' : '', ' ', $txt[663], '
</span>
</td>
</tr>';
}
// Show the login bar. (it's only true if they are logged out anyway.)
if ($context['show_login_bar'])
{
echo '
<tr>
<td class="catbg" colspan="2">
', $txt[34], ' <a href="', $scripturl, '?action=reminder" class="smalltext">(' . $txt[315] . ')</a>
</td>
</tr>
<tr>
<td class="windowbg" width="20" align="center">
<a href="', $scripturl, '?action=login">
<img src="', $settings['images_url'], '/icons/login.gif" alt="', $txt[34], '" border="0" /></a>
</td>
<td class="windowbg2" valign="middle">
<form action="', $scripturl, '?action=login2" method="post" accept-charset="', $context['character_set'], '" style="margin: 0;">
<table border="0" cellpadding="2" cellspacing="0" align="center" width="100%"><tr>
<td valign="middle" align="left">
<label for="user"><b>', $txt[35], ':</b><br /><input type="text" name="user" id="user" size="15" /></label>
</td>
<td valign="middle" align="left">
<label for="passwrd"><b>', $txt[36], ':</b><br /><input type="password" name="passwrd" id="passwrd" size="15" /></label>
</td>
<td valign="middle" align="left">
<label for="cookielength"><b>', $txt[497], ':</b><br /><input type="text" name="cookielength" id="cookielength" size="4" maxlength="4" value="', $modSettings['cookieTime'], '" /></label>
</td>
<td valign="middle" align="left">
<label for="cookieneverexp"><b>', $txt[508], ':</b><br /><input type="checkbox" name="cookieneverexp" id="cookieneverexp" checked="checked" class="check" /></label>
</td>
<td valign="middle" align="left">
<input type="submit" value="', $txt[34], '" />
</td>
</tr></table>
</form>
</td>
</tr>';
}
echo '
</table>';
}
?>
Her hangi bir sayfa bileşeninde ( portal ana sayfadaki bir blok gibi ) Ssi fonksiyonunu kullandığımızda ise farklı bir last post formu ile karşılaşıyoruz.Benim sorum şu : benim editleyerek yapmış olduğum last post yazılımının aynısını her hangi bir sayfada göstermek istediğimizde hangi komutu kullanacağız?Kaldıki sside latest post fonksiyonu yok...
ssi_recentPosts() fonksiyonunu kullanmalısınız. Görünümü nasıl değiştirebileceğinizi bu derslerde anlattım.
Direk board indexte yapmış olduğumuz bir değişikliği portalda gösteremiyoruz, çünki
<?php require("/home/forum/SSI.php"); ?>
özelliğini kullandığımızda son konular hem istediğimiz gibi görünmüyor hemde portalın tepesinde çıkıyor.
<?php
$content=implode("", file("http://site/forum/SSI.php?ssi_function=recentPosts"));
?>
Özelliğinde ise SSi dosyasındaki recent post bileşenini kullanıyor.Yani yine board index templatede yapmış olduğumuz değişiklikleri forumdan başka bir sayfaya yani portala yansıtamıyoruz.
bu durumda geriye sadece bir yol kalıyor ssi.php 'de recent postta değişiklik yapmak, oda recent post özelliğinin yok olmasına neden oluyor.Yani sonuç olarak ssi ile herşeyi yapmak mümkün değil.
Yanlış ilerlemiş ve hatalı bir sonuca varmışsınız. :)
MkPortal kullanmadım ama sanırım php block oluşturma gibi bir özelliği vardır. Şu kodlarla bir php block oluşturun:
<?php
require_once('/home/forum/SSI.php');
$recentPosts = ssi_recentPosts(10, null, 'array');
echo '
<table border="0" class="ssi_table">';
foreach ($recentPosts as $post)
echo '
<tr>
<td>
<a href="', $post['href'], '">', $post['subject'], '</a><br />
[', $post['board']['link'], ']
</td>
</tr>';
echo '
</table>';
?>
ssi_recentPosts() fonksiyonu ile aldığımız bilgileri sadece mesaj başlığı ve altında da bölümü olacak şekilde göstermiş olacağız. Yani benim istediğim şekilde. Deneyin. ;)
Not: Kodlarda SSI dizininin sitenize göre doğru olup olmadığını kontrol edin.
Yine portalın yukarısında çıktı, birde board indexteki şekliyle çıkmadı.Ayrıca sorunu daha kısa yoldan çözdüm.Piyasadaki last forum post modifikasyonlarını editleyerek forumdaki son mesajları portaldada
göstermeyi başardım.Yardımlarınız için teşekkürler.
Peki, sorununuzu çözdüyseniz sorun yok. :)
Arkadaşlar,
yaklaşık 1 yıldır sitemin anasayfasından SSI.php ile bir takım bilgiler çağırıyorum. Ancak yaklaşık 1 haftadır, bu bilgilerin değişmediğini farkettim.
SSI.php dosyasını yeniden yükledim, her şeyi kontrol etmiş olmama rağmen maalesef bilgiler forumda ki ile doğru orantılı bir şekilde değişmiyor.
Acaba veritabanım mı bozuldu? Aklıma başka bir şey gelmiyor.
Örneğin ne tür bilgiler değişmiyor? Bizzat görebilir miyiz sorunu?
Forumdan sadece duyuruları ve en son mesajları alabileceğimiz kod nedir?
<?php
require_once('SSI_DİZİNİ');
ssi_news();
echo '<br />';
ssi_recentPosts();
?>
Quote from: [SiNaN] on August 23, 2008, 08:56:34 AM
<?php
require_once('SSI_DİZİNİ');
ssi_news();
echo '<br />';
ssi_recentPosts();
?>
Burdaki SSI dizini SSI.php soyası değil mi?
jOkErGuEsT Son mesajlar '' recentPosts '' , ama tavsiye etmem son mesajlar yanıtlarla doluyor.Normalde yanıtları recent.php 'de değişiklik yaparak teke indirgeyebiliyorduk ama bunun ssi'de uygulaması nasıl olur bilemiyorum, ama tahminim ssi.php 'de recentposts 'ta değişiklik yaparak bunu yapmak mümkün olabilir.Birde acaba ssideki recentpost fonksiyonunu ayrı bir php sayfasında kullanmak yerine normal forumun alt tarafında son mesajlar yerinde kullanmak mümkünmü?
Saygılar
Tavsiyen için sağol, o zaman recenTopics kullanayım :)
jOkErGuEsT:
Eğer kullanacağınız dosya SSI.php'nin yanında olacaksa:
require(dirname(__FILE__) . '/SSI.php');
Ama örneğin kullanacağınız dosya site diye bir dizinde, forumunuz ise forum diye bir dizinde ise; o zaman:
require('home/site/public_html/forum/SSI.php');
gibi bir dizin olmalı, yani tam dizini yazmalısınız.
hukuk:
Eğer SSI.php'yi forum sayfalarına da dahil ederseniz kullanabilirsiniz. Ama örneğin sadece recentTopics fonksiyonunu ana sayfada kullancaksanız, BoardIndex.php doysasına o fonksiyonu kopyalayıp adını değiştirerek kullanabilirsiniz.
Forum dışında kullanacağım, teşekkürler. :)
Acaba <?php$content=implode("", file("http://site/forum/SSI.php?ssi_function=recentPosts"));?> bu kodu board index.php'ye ne şekilde ekleyeceğiz?Birde ssideki recent postta verilen yanıtları tek konu olarak göstermek mümkünmü.Mesela normal son mesajlarda bu şekilde bir değişiklik yapmak için http://www.simplemachines.org/community/index.php?topic=61593.0 adresindeki uygulamayı yapmak yeterli oluyordu.Ssi phpde bu şekilde bir değişiklik yapmak mümkünmü?Birde board indexte.php değişiklik yapmak yerine board.index.templatede değişiklik yapmak daha doğru olmazmı?
Board index
<?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
);
// 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, b.ID_BOARD, b.name AS boardName, 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,
'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'],
'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'],
'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'],
'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'];
}
// 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'];
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'],
'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>' : $row_board['realName']) : $txt[470],
),
'start' => 'msg' . $row_board['new_from'],
'topic' => $row_board['ID_TOPIC']
);
// 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);
// Load the users online right now.
$result = db_query("
SELECT
lo.ID_MEMBER, lo.logTime, 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['show_buddies'] = !empty($user_info['buddies']);
while ($row = mysql_fetch_assoc($result))
{
if (empty($row['realName']))
{
$context['num_guests']++;
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'][$row['logTime'] . $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'][$row['logTime'] . $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);
krsort($context['users_online']);
krsort($context['list_users_online']);
ksort($context['online_groups']);
$context['num_users_online'] = count($context['users_online']) + $context['num_users_hidden'];
// Track most online statistics?
if (!empty($modSettings['trackStats']))
{
// Determine the most users online - both all time and per day.
$total_users = $context['num_guests'] + $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));
}
}
// 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']);
// 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']);
}
?>
Saygılar
Şimdi şöyle yapsam çalışır mı?
<?php
$SSI="http://www.siteadı/forum/SSI.php";
require($SSI);
ssi_news();
recentPosts();
?>
Onu şu şekilde deneyebilirsin :
note pada yapıştırıp x.php olarak kaydet, ftp'den web sitene at, sonra çalıştır.
Yok şuan bir index hazırlıyorum da index.php'in içine yerleştirsem çalışır mı?
hukuk:
SSI.php
Bul:
FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b)
Değiştir:
FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b, {$db_prefix}topics AS t)
Bul:
AND $user_info[query_see_board]
ORDER BY m.ID_MSG DESC
Değiştir:
AND $user_info[query_see_board]
AND m.ID_MSG = t.ID_LAST_MSG
ORDER BY m.ID_MSG DESC
BoardIndex.php'de bilgileri almalısınız. Ardından BoardIndex.template.php'de bu bilgileri kullanmalısınız. Tam olarak nereye eklemek istiyorsunuz? Son mesajların yerine mi?
jOkErGuEsT:
Türkçesi ne oluyor bilmiyorum ama absolute url'yi girmelisiniz.
http://www.benimsitem.com/forum/SSI.php => Yanlış
/home/benimsitem/public_html/forum/SSI.php => Doğru
Absolute url'yi Eklentilerin kaydedildiği dizin ayarlarından kopyalayabilirsiniz.
Verdiğin SSi kodları için çok teşekkür ederim.Evet usta aynen forumdaki son mesajların yerine eklemek istiyorum.Board index template:
<?php
// Version: 1.1; BoardIndex
function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;
// Show some statistics next to the link tree if SP1 info is off.
echo '
<table width="100%" cellpadding="3" cellspacing="0">
<tr>
<td valign="bottom">', theme_linktree(), '</td>
<td align="right">';
if (!$settings['show_sp1_info'])
echo '
', $txt[19], ': ', $context['common_stats']['total_members'], ' &#8226; ', $txt[95], ': ', $context['common_stats']['total_posts'], ' &#8226; ', $txt[64], ': ', $context['common_stats']['total_topics'], '
', ($settings['show_latest_member'] ? '<br />' . $txt[201] . ' <b>' . $context['common_stats']['latest_member']['link'] . '</b>' . $txt[581] : '');
echo '
</td>
</tr>
</table>';
// Show the news fader? (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div class="tborder" style="border-bottom: 0;">
<div class="titlebg" align="center" style="padding: 5px 5px 5px 5px;">', $txt[102], '</div>
</div>
<table border="0" width="100%" cellspacing="0" cellpadding="5" class="tborder" style="border-bottom: 0;">
<tr>
<td class="windowbg2" valign="middle" align="center" height="60">';
// Prepare all the javascript settings.
echo '
<div id="smfFadeScroller" style="width: 90%; padding: 2px;"><b>', $context['news_lines'][0], '</b></div>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// The fading delay (in ms.)
var smfFadeDelay = ', empty($settings['newsfader_time']) ? 5000 : $settings['newsfader_time'], ';
// Fade from... what text color? To which background color?
var smfFadeFrom = {"r": 0, "g": 0, "b": 0}, smfFadeTo = {"r": 248, "g": 248, "b": 248};
// Surround each item with... anything special?
var smfFadeBefore = "<b>", smfFadeAfter = "</b>";
if (typeof(document.getElementById(\'smfFadeScroller\').currentStyle) != "undefined")
{
var foreColor = document.getElementById(\'smfFadeScroller\').currentStyle.color.match(/#([\da-f][\da-f])([\da-f][\da-f])([\da-f][\da-f])/);
smfFadeFrom = {"r": parseInt(foreColor[1]), "g": parseInt(foreColor[2]), "b": parseInt(foreColor[3])};
var backEl = document.getElementById(\'smfFadeScroller\');
while (backEl.currentStyle.backgroundColor == "transparent" && typeof(backEl.parentNode) != "undefined")
backEl = backEl.parentNode;
var backColor = backEl.currentStyle.backgroundColor.match(/#([\da-f][\da-f])([\da-f][\da-f])([\da-f][\da-f])/);
smfFadeTo = {"r": eval("0x" + backColor[1]), "g": eval("0x" + backColor[2]), "b": eval("0x" + backColor[3])};
}
else if (typeof(window.opera) == "undefined" && typeof(document.defaultView) != "undefined")
{
var foreColor = document.defaultView.getComputedStyle(document.getElementById(\'smfFadeScroller\'), null).color.match(/rgb\((\d+), (\d+), (\d+)\)/);
smfFadeFrom = {"r": parseInt(foreColor[1]), "g": parseInt(foreColor[2]), "b": parseInt(foreColor[3])};
var backEl = document.getElementById(\'smfFadeScroller\');
while (document.defaultView.getComputedStyle(backEl, null).backgroundColor == "transparent" && typeof(backEl.parentNode) != "undefined" && typeof(backEl.parentNode.tagName) != "undefined")
backEl = backEl.parentNode;
var backColor = document.defaultView.getComputedStyle(backEl, null).backgroundColor.match(/rgb\((\d+), (\d+), (\d+)\)/);
smfFadeTo = {"r": parseInt(backColor[1]), "g": parseInt(backColor[2]), "b": parseInt(backColor[3])};
}
// List all the lines of the news for display.
var smfFadeContent = new Array(
"', implode('",
"', $context['fader_news_lines']), '"
);
// ]]></script>
<script language="JavaScript" type="text/javascript" src="', $settings['default_theme_url'], '/fader.js"></script>
</td>
</tr>
</table>';
}
// Show the "Board name Topics Posts Last Post" header.
echo '
<table border="0" width="100%" cellspacing="1" cellpadding="5" class="bordercolor">
<tr class="titlebg">
<td colspan="2">', $txt[20], '</td>
<td width="6%" align="center">', $txt[330], '</td>
<td width="6%" align="center">', $txt[21], '</td>
<td width="22%" align="center">', $txt[22], '</td>
</tr>';
/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down iamge),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// Show the category's name, and let them collapse it... if they feel like it.
echo '
<tr>
<td colspan="5" class="catbg" height="18">';
// If this category even can collapse, show a link to collapse it.
if ($category['can_collapse'])
echo '
<a href="', $category['collapse_href'], '">', $category['collapse_image'], '</a>';
echo '
', $category['link'], '
</td>
</tr>';
// Only if it's NOT collapsed..
if (!$category['is_collapsed'])
{
/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
echo '
<tr>
<td class="windowbg" width="6%" align="center" valign="top"><img src="', $settings['images_url'], $board['new'] ? '/on.gif" alt="' . $txt[333] . '" title="' . $txt[333] : '/off.gif" alt="' . $txt[334] . '" title="' . $txt[334], '" border="0" /></td>
<td class="windowbg2" align="left" width="60%">
<a name="b', $board['id'], '"></a>
<b>', $board['link'], '</b><br />
', $board['description'];
// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '<i class="smalltext"><br />
', count($board['moderators']) == 1 ? $txt[298] : $txt[299], ': ', implode(', ', $board['link_moderators']), '</i>';
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
$children[] = $child['new'] ? '<b>' . $child['link'] . '</b>' : $child['link'];
echo '
<i class="smalltext"><br />
', $txt['parent_boards'], ': ', implode(', ', $children), '</i>';
}
echo '
</td>
<td class="windowbg" valign="middle" align="center" width="6%">', $board['topics'], '</td>
<td class="windowbg" valign="middle" align="center" width="6%">', $board['posts'], '</td>';
/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
echo '
<td class="windowbg2" valign="middle" width="22%">
<span class="smalltext">
', $board['last_post']['time'], '<br />
', $txt['smf88'], ' ', $board['last_post']['link'], '<br />
', $txt[525], ' ', $board['last_post']['member']['link'], '
</span>
</td>
</tr>';
}
}
}
// Show the "New Posts" and "No New Posts" legend.
if ($context['user']['is_logged'])
{
echo '
<tr class="titlebg">
<td colspan="2" align="left">
<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new_some.gif" alt="' . $txt[333] . '" border="0" /> <img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new_none.gif" alt="' . $txt[334] . '" border="0" />
</td>
<td colspan="3" align="right" class="smalltext">';
// Show the mark all as read button?
if ($settings['show_mark_read'])
echo '
<a href="', $scripturl, '?action=markasread;sa=all;sesc=' . $context['session_id'] . '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/markread.gif" alt="' . $txt[452] . '" border="0" />' : $txt[452]), '</a>';
echo '
</td>
</tr>';
}
echo '
</table>';
// Here's where the "Info Center" starts...
echo '
<br />
<br />
<table border="0" width="100%" cellspacing="1" cellpadding="4" class="bordercolor">
<tr class="titlebg">
<td align="center" colspan="2">', $txt[685], '</td>
</tr>';
// This is the "Recent Posts" bar.
if (!empty($settings['number_recent_posts']))
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[214], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="', $scripturl, '?action=recent">
<img src="', $settings['images_url'], '/post/xx.gif" alt="', $txt[214], '" border="0" /></a>
</td>
<td class="windowbg2">';
// Only show one post.
if ($settings['number_recent_posts'] == 1)
{
// latest_post has link, href, time, subject, short_subject (shortened with...), and topic. (its id.)
echo '
<b><a href="', $scripturl, '?action=recent">', $txt[214], '</a></b><br />
<span class="smalltext">
', $txt[234], ' "', $context['latest_post']['link'], '" ', $txt[235], ' (', $context['latest_post']['time'], ')<br />
</span>';
}
// Show lots of posts.
elseif (!empty($context['latest_posts']))
{
echo '
<table class="windowbg2" cellspacing="1" width="100%" cellpadding="0" border="1">
<tr>
<th class="windowbg" style="background-color : #FFFFFF" align="center" width="43%">KONU BAŞLIĞI</th>
<th class="windowbg" style="background-color : #FFFFFF" align="center" width="12%">SON MESAJ/CEVAP</th>
</tr>';
/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="windowbg2" style="background-color : #FFFFFF" align="left" title="mesajın sahibi '.$ID_MEMBER_STARTED.'">', $post['link'], '</td>
<td class="windowbg2" style="background-color : #FFFFFF" align="center">', $post['poster']['link'], '</td>
</tr>';
echo '
</table>';
}
echo '
</td>
</tr>';
}
// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $context['calendar_only_today'] ? $txt['calendar47b'] : $txt['calendar47'], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="', $scripturl, '?action=calendar">
<img src="', $settings['images_url'], '/icons/calendar.gif" border="0" width="20" alt="', $txt['calendar24'], '" /></a>
</td>
<td class="windowbg2" width="100%">
<span class="smalltext">';
// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span style="color: #', $modSettings['cal_holidaycolor'], ';">', $txt['calendar5'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';
// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span style="color: #', $modSettings['cal_bdaycolor'], ';">', $context['calendar_only_today'] ? $txt['calendar3'] : $txt['calendar3b'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="', $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<b>' : '', $member['name'], $member['is_today'] ? '</b>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span style="color: #', $modSettings['cal_eventcolor'], ';">', $context['calendar_only_today'] ? $txt['calendar4'] : $txt['calendar4b'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
', $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" style="color: #FF0000;">*</a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<b>' . $event['title'] . '</b>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';
// Show a little help text to help them along ;).
if ($context['calendar_can_edit'])
echo '
(<a href="', $scripturl, '?action=helpadmin;help=calendar_how_edit" onclick="return reqWin(this.href);">', $txt['calendar_how_edit'], '</a>)';
}
echo '
</span>
</td>
</tr>';
}
// Show a member bar. Not heavily ornate, but functional at least.
if ($settings['show_member_bar'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[331], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
', $context['show_member_list'] ? '<a href="' . $scripturl . '?action=mlist">' : '', '<img src="', $settings['images_url'], '/icons/members.gif" border="0" width="20" alt="', $txt[332], '" />', $context['show_member_list'] ? '</a>' : '', '
</td>
<td class="windowbg2" width="100%">
<b>', $context['show_member_list'] ? '<a href="' . $scripturl . '?action=mlist">' . $txt[332] . '</a>' : $txt[332], '</b><br />
<span class="smalltext">', $txt[200], '</span>
</td>
</tr>';
}
// Show YaBB SP1 style information...
if ($settings['show_sp1_info'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[645], '</td>
</tr>
<tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="', $scripturl, '?action=stats">
<img src="', $settings['images_url'], '/icons/info.gif" alt="', $txt[645], '" border="0" /></a>
</td>
<td class="windowbg2" width="100%">
<table border="0" width="90%"><tr>
<td class="smalltext">
', $txt[490], ': <b>', $context['common_stats']['total_topics'], '</b> ', $txt[489], ': <b>', $context['common_stats']['total_posts'], '</b><br />
', !empty($context['latest_post']) ? $txt[659] . ':
"' . $context['latest_post']['link'] . '" (' . $context['latest_post']['time'] . ')<br />' : '', '
<a href="', $scripturl, '?action=recent">', $txt[234], '</a>', $context['show_stats'] ? '<br />
<a href="' . $scripturl . '?action=stats">' . $txt['smf223'] . '</a>' : '', '
</td>
<td class="smalltext">
', $txt[488], ': <b>', $context['show_member_list'] ? '<a href="' . $scripturl . '?action=mlist">' . $context['common_stats']['total_members'] . '</a>' : $context['common_stats']['total_members'], '</b><br />
', $txt[656], ': <b>', $context['common_stats']['latest_member']['link'], '</b><br />';
// If they are logged in, show their unread message count, etc..
if ($context['user']['is_logged'] && $context['allow_pm'])
echo '
', $txt['smf199'], ': <b><a href="', $scripturl, '?action=pm">', $context['user']['messages'], '</a></b> ', $txt['newmessages3'], ': <b><a href="', $scripturl, '?action=pm">', $context['user']['unread_messages'], '</a></b>';
echo '
</td>
</tr></table>
</td>
</tr>';
}
// "Users online" - in order of activity.
echo '
<tr>
<td class="catbg" colspan="2">', $txt[158], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
', $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', '<img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt[158], '" border="0" />', $context['show_who'] ? '</a>' : '', '
</td>
<td class="windowbg2" width="100%">';
if ($context['show_who'])
echo '
<a href="', $scripturl, '?action=who">';
echo $context['num_guests'], ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . $context['num_users_online'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];
// Handle hidden users and buddies.
if (!empty($context['num_users_hidden']) || ($context['show_buddies'] && !empty($context['show_buddies'])))
{
echo ' (';
// Show the number of buddies online?
if ($context['show_buddies'])
echo $context['num_buddies'], ' ', $context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies'];
// How about hidden users?
if (!empty($context['num_users_hidden']))
echo $context['show_buddies'] ? ', ' : '', $context['num_users_hidden'] . ' ' . $txt['hidden'];
echo ')';
}
if ($context['show_who'])
echo '</a>';
echo '
<span class="smalltext">';
// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
echo '
', $txt[140], ':<br />', implode(', ', $context['list_users_online']);
echo '
<br />', $context['show_stats'] && !$settings['show_sp1_info'] ? '
<a href="' . $scripturl . '?action=stats">' . $txt['smf223'] . '</a>' : '', '
</span>
</td>
</tr>';
// If they are logged in, but SP1 style information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_sp1_info'])
{
echo '
<tr>
<td class="catbg" colspan="2">', $txt[159], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
', $context['allow_pm'] ? '<a href="' . $scripturl . '?action=pm">' : '', '<img src="', $settings['images_url'], '/message_sm.gif" alt="', $txt[159], '" border="0" />', $context['allow_pm'] ? '</a>' : '', '
</td>
<td class="windowbg2" valign="top">
<b><a href="', $scripturl, '?action=pm">', $txt[159], '</a></b><br />
<span class="smalltext">
', $txt[660], ' ', $context['user']['messages'], ' ', $context['user']['messages'] == 1 ? $txt[471] : $txt[153], '.... ', $txt[661], $context['allow_pm'] ? ' <a href="' . $scripturl . '?action=pm">' . $txt[662] . '</a>' : '', ' ', $txt[663], '
</span>
</td>
</tr>';
}
// Show the login bar. (it's only true if they are logged out anyway.)
if ($context['show_login_bar'])
{
echo '
<tr>
<td class="catbg" colspan="2">
', $txt[34], ' <a href="', $scripturl, '?action=reminder" class="smalltext">(' . $txt[315] . ')</a>
</td>
</tr>
<tr>
<td class="windowbg" width="20" align="center">
<a href="', $scripturl, '?action=login">
<img src="', $settings['images_url'], '/icons/login.gif" alt="', $txt[34], '" border="0" /></a>
</td>
<td class="windowbg2" valign="middle">
<form action="', $scripturl, '?action=login2" method="post" accept-charset="', $context['character_set'], '" style="margin: 0;">
<table border="0" cellpadding="2" cellspacing="0" align="center" width="100%"><tr>
<td valign="middle" align="left">
<label for="user"><b>', $txt[35], ':</b><br /><input type="text" name="user" id="user" size="15" /></label>
</td>
<td valign="middle" align="left">
<label for="passwrd"><b>', $txt[36], ':</b><br /><input type="password" name="passwrd" id="passwrd" size="15" /></label>
</td>
<td valign="middle" align="left">
<label for="cookielength"><b>', $txt[497], ':</b><br /><input type="text" name="cookielength" id="cookielength" size="4" maxlength="4" value="', $modSettings['cookieTime'], '" /></label>
</td>
<td valign="middle" align="left">
<label for="cookieneverexp"><b>', $txt[508], ':</b><br /><input type="checkbox" name="cookieneverexp" id="cookieneverexp" checked="checked" class="check" /></label>
</td>
<td valign="middle" align="left">
<input type="submit" value="', $txt[34], '" />
</td>
</tr></table>
</form>
</td>
</tr>';
}
echo '
</table>';
}
?>
Peki farkı ne olacak ki? Görünümü mü?
Portaldaki son mesajlar hareket ediyor maksad forumla entegrasyon olsun, yani bir nevi seninde dediğin gibi görüntü aynı olsun, aslında işlev olarak sabit mesajlar daha güzel ama kimse işlevle ilgilenmiyor ne yazıkki.
Eğer sadece görünümü değiştirmek istiyorsanız zaten aynı bilgi yükleniyor. BoardIndex.template.php'de şu kısmı istediğiniz şekilde düzenleyin:
echo '
<tr>
<td class="windowbg2" style="background-color : #FFFFFF" align="left" title="mesajın sahibi '.$ID_MEMBER_STARTED.'">', $post['link'], '</td>
<td class="windowbg2" style="background-color : #FFFFFF" align="center">', $post['poster']['link'], '</td>
</tr>';
Aslında sadece görünümü değiştirmek istemiyorum Şöyleki : http://www.simplemachines.org/community/index.php?topic=249655.0
BoardIndex.template.php
Bul:
echo '
<table class="windowbg2" cellspacing="1" width="100%" cellpadding="0" border="1">
<tr>
<th class="windowbg" style="background-color : #FFFFFF" align="center" width="43%">KONU BAŞLIĞI</th>
<th class="windowbg" style="background-color : #FFFFFF" align="center" width="12%">SON MESAJ/CEVAP</th>
</tr>';
/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="windowbg2" style="background-color : #FFFFFF" align="left" title="mesajın sahibi '.$ID_MEMBER_STARTED.'">', $post['link'], '</td>
<td class="windowbg2" style="background-color : #FFFFFF" align="center">', $post['poster']['link'], '</td>
</tr>';
echo '
</table>';
Değiştir:
echo '
<table class="windowbg2" cellspacing="1" width="100%" cellpadding="0" border="0">
<tr>
<th class="windowbg" align="left" width="40%">', $txt[118], '</th>
<th class="windowbg" align="left" width="25%">', $txt[20], '</th>
<th class="windowbg" align="left" width="12%">', $txt[29], '</th>
<th class="windowbg" align="left" width="16%">', $txt[317], '</th>
</tr>
</table>
<marquee onmouseover="this.stop()" onmouseout="this.start()" scrollAmount="2" direction="up" height="200px">
<table cellpadding="0" cellspacing="0" width="100%" border="0">';
/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="windowbg" valign="middle" width="43%">', $post['link'], '</td>
<td class="windowbg" valign="middle" width="27%">', $post['board']['link'], '</td>
<td class="windowbg" valign="middle" width="12%">', $post['poster']['link'], '</td>
<td class="windowbg" valign="middle" width=18%">', $post['time'], '</td>
</tr>';
echo '
</table>
</marquee>';
Allah senden razı olsun,
Çalışmalarında başarılar.
[SiNaN];
Ben bu adresi dediğin şekle nasıl çevirebilirim?
http://www.simplemachines.org/community/SSI.php
Seni de çok yordum :)
O adres hosta göre değişir. Bana SSI kullandığınız dosyanın ve SSI.php yerine anlatır mısınız?
Örneğin:
Kullanacağım sayfa ana dizinde, SSI.php "forum" dizininde.
Kullanacağım sayfa "site" dizininde, SSI.php "forum" dizininde.
Kullanacağım sayfa "site" dizininde, SSI.php ana dizinde.
gibi bir açıklama yeterli olur.
Kullanacağım site ile kullanacağım SSI aynı site üzerinde değil; yani başka siteden SSI çekmek istiyorum.
$welcome = implode("", file('http://www.simplemachines.org/community/SSI.php?ssi_function=welcome'));
echo $welcome;
$topics = implode("", file('http://www.simplemachines.org/community/SSI.php?ssi_function=recentTopics'));
echo $topics;
Quote from: [SiNaN] on August 24, 2008, 09:23:52 AM
$welcome = implode("", file('http://www.simplemachines.org/community/SSI.php?ssi_function=welcome'));
echo $welcome;
$topics = implode("", file('http://www.simplemachines.org/community/SSI.php?ssi_function=recentTopics'));
echo $topics;
Çok, çok teşekkür ederim :D
Allah senden razı olsun :)
Hata da almıyorum çıktı da?
Bütün sayfanın koldarını buraya ekler misiniz?
Site isimlerini silip ekledim;
<html>
<head>
<title>Title</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1254">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Language" content="tr">
<META NAME="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="cache-control" CONTENT="no-cache">
<script type="text/javascript">
</script>
</head>
<body bgcolor="#535353">
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="455"><table border="0" cellspacing="0" cellpadding="0">
<tr>
</table>
<p>LOGO</p>
<table width=100% cellpadding="0" borders="0">
</table></td>
<td width="468" height="70" valign="top">
<div style="position:relative; left:0px;z-index:10001;">
<div id="reklam_468x60" id="banner" style="z-index:5000; position:absolute; left:-2px; top:5px; width:468px; height:60px" align="right">
468x60 Reklam Alanı
</div>
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td style="padding-bottom:5px;">
<table width=100% border="0" cellspacing="1" cellpadding="1">
<tr><td align=left valign="top">
<p>
<div align=left name="jOkErGuEsT"><object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="190" height="341" align="right">
<param name="movie" value="menu.swf">
<param name="quality" value="High">
<param name="salign" value="L">
<embed src="menu.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" width="190" height="341" quality="High" salign="L"></object></div>
</td></tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr><td></td></tr>
<tr><td style="border:1px solid #cccccc; background-color:#FFFFFF;"><p></td>
</tr>
<tr>
<td>
</p>
</td></tr>
</table></td></tr>
<tr><td>
<table border="0" width=100% cellspacing="0" cellpadding="0">
<td bgcolor="#535353" style="padding-left: 6px; padding-right: 6px; padding-top: 3px; padding-bottom: 3px">
<table border="0" width=100% cellspacing="0" cellpadding="0">
<tr>
<td class="bottom-copyright"><font color="#777777">© Copyright 2008 Site Adı</font></td>
<td align="right"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td><img border="0" src="/p/spacer.gif" width="2" height="2"></td>
</tr>
<tr>
<td bgcolor="#FFFFFF" style="padding-top: 10px; padding-bottom: 10px">
<style>
.anasayfa-footer-link { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; color:#000000; text-decoration:none; }
.anasayfa-footer-link:link { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; color:#000000; text-decoration:none; }
.anasayfa-footer-link:visited { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; color:#000000; text-decoration:none; }
.anasayfa-footer-link:hover { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; color:#e10000; text-decoration:underline; }
.anasayfa-footer-link:active { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; color:#000000; text-decoration:none; }
</style>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#eeeeee" align=center>
<tr>
<td>
<p align="center"><a href="siteadresi.com/">
<font color="#535353">Portal</font></a></td>
<td width="10" align="center"><font color="#535353"><img src="/p/bottom_logo_line.gif" border="0" height="25" width="2"></font></td>
<td>
<p align="center"><a href="siteadresi.com/forum/">
<font color="#535353">Forum</font></a></td>
<td width="10" align="center"><font color="#535353"><img src="/p/bottom_logo_line.gif" border="0" height="25" width="2"></font></td>
<td>
<p align="center"><a href="mailto:[email protected]">
<font color="#535353">İletişim</font></a></td>
<td width="10" align="center"><font color="#535353"><img src="/p/bottom_logo_line.gif" border="0" height="25" width="2"></font></td>
</tr></table>
</td>
</tr>
</table></td></tr>
</table><br />
<?php
$welcome = implode("", file('http://www.simplemachines.org/community/SSI.php?ssi_function=welcome'));
echo $welcome;
$topics = implode("", file('http://www.simplemachines.org/community/SSI.php?ssi_function=recentTopics'));
echo $topics;
?>
</body>
</html>
Yukarıda yazdığım kodları göndermeden önce denemiştim, bende bir sorun olmadı. Eğer oradaki adresi değiştiriyorsanız, adresi doğru yazdığınızdan emin olun.
Direkt sizin verdiklerinizi kullanıyorum. ???
Sayfanızın uzantısı .php mi?
Evet.
O zaman benim yapabileceğim birşey yok, kodları ben denediğimde çalışıyor. İsterseniz farklı bir dosyaya ekleyerek deneyin.
Merhabalar,
Ben kendimce bir portal yaptım.Bloklarda üye linkleri var ama ben bunları renklendirmek istiyorum.Nasıl yapabilirim.
portal:limitsiz.org
Member Color Link modunu mu kullanıyorsunuz?
evet ;)
Bunun için şu paketi kullanabilirsiniz:
http://www.simplemachines.org/community/index.php?action=dlattach;topic=32101.0;attach=51907
Sadece SSI.php'de değişiklik yapıyor.
Manueli var mı acaba kurulmuyor.
Hiçbir kurulum ve kaldırma eylemi tanımlanmadı!
Package-info yu düzenle
1.1.4 leri 1.1.5 olarak değiştir tekrar kur .
SSI.php'de kodları bulamadı.Kurulum olmadı.Ben manuel kurmayı denicem eğer verebilirseniz?
Only for Version 1.1RC3 and 1.1+
This mod change the colors of the Member Link in the SSI.php.
Only the Birthdaylinks don't work...
-----
Dies ist ein Mod f�r die SSI.php, mit diesen werden die Member Links mit farben versehen.
Copyright 2005-2007 by DIN1031 @ www.ayu-kult.de/forum/
Değişiklikler
- /SSI.php (#post_file_0)
(EnÜsteGit) (#post_mod_post_top) $posts = array();
$posts = array();
$colorids = array();
// Censor it!
censorText($row['subject']);
censorText($row['body']);
// Censor it!
censorText($row['subject']);
censorText($row['body']);
//Collect the color ids :)
$colorids[$row['ID_MEMBER']] = $row['ID_MEMBER'];
'new_from' => $row['new_from'],
);
}
mysql_free_result($request);
'new_from' => $row['new_from'],
);
}
mysql_free_result($request);
//Add Colors to the Output link :)
if(!empty($colorids)) {
global $color_profile;
ssi_loadColors($colorids);
foreach($posts as $k => $p) {
$profile = $color_profile[$p['poster']['id']];
if(!empty($profile)) {
$posts[$k]['poster']['link'] = $profile['link'];
}
}
}
$posts = array();
$posts = array();
$colorids = array();
// Censor it!
censorText($row['subject']);
censorText($row['body']);
// Censor it!
censorText($row['subject']);
censorText($row['body']);
//Collect the color ids :)
$colorids[$row['ID_MEMBER']] = $row['ID_MEMBER'];
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
mysql_free_result($request);
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
mysql_free_result($request);
//Add Colors to the Output link :)
if(!empty($colorids)) {
global $color_profile;
ssi_loadColors($colorids);
foreach($posts as $k => $p) {
$profile = $color_profile[$p['poster']['id']];
if(!empty($profile)) {
$posts[$k]['poster']['link'] = $profile['link'];
}
}
}
while ($row = mysql_fetch_assoc($request))
$return[] = array(
'id' => $row['ID_MEMBER'],
'name' => $row['realName'],
'href' => $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>',
'posts' => $row['posts']
);
mysql_free_result($request);
$colorids = array();
while ($row = mysql_fetch_assoc($request)) {
//Collect the ids
$colorids[$row['ID_MEMBER']] = $row['ID_MEMBER'];
$return[] = array(
'id' => $row['ID_MEMBER'],
'name' => $row['realName'],
'href' => $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>',
'posts' => $row['posts']
);
}
mysql_free_result($request);
//Add Colors to the link :)
if(!empty($colorids)) {
global $color_profile;
ssi_loadColors($colorids);
foreach($return as $k => $p) {
$profile = $color_profile[$p['id']];
if(!empty($profile)) {
$return[$k]['link'] = $profile['link'];
}
}
}
while ($row = mysql_fetch_assoc($request))
{
// If we want to limit the length of the post.
if (!empty($length) && $func['strlen']($row['body']) > $length)
$colorids = array();
while ($row = mysql_fetch_assoc($request))
{
// If we want to limit the length of the post.
if (!empty($length) && $func['strlen']($row['body']) > $length)
censorText($row['subject']);
censorText($row['body']);
censorText($row['subject']);
censorText($row['body']);
//Collect the color ids :)
$colorids[$row['ID_MEMBER']] = $row['ID_MEMBER'];
$return[count($return) - 1]['is_last'] = true;
$return[count($return) - 1]['is_last'] = true;
//Add Colors to the Output link :)
if(!empty($colorids)) {
global $color_profile;
ssi_loadColors($colorids);
foreach($return as $k => $p) {
$profile = $color_profile[$p['poster']['id']];
if(!empty($profile)) {
$return[$k]['poster']['link'] = $profile['link'];
}
}
}
?>
//This is a small Skript to load colors for ssi
function ssi_loadColors($users = array()) {
global $color_profile, $db_prefix, $scripturl;
// Can't just look for no users :P.
if (empty($users))
return false;
// Make sure it's an array.
$users = !is_array($users) ? array($users) : array_unique($users);
//First check is it already loaded?
if(empty($color_profile))
$color_profile = array();
else {
foreach($users as $k => $u)
if(isset($color_profile[$u]))
unset($users[$k]);
}
if (empty($users))
return false;
// Load the data.
$request = db_query("
SELECT
mem.ID_MEMBER, mem.memberName, mem.realName, mem.ID_GROUP,
mg.onlineColor AS member_group_color, pg.onlineColor AS post_group_color
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}membergroups AS pg ON (pg.ID_GROUP = mem.ID_POST_GROUP)
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = mem.ID_GROUP)
WHERE mem.ID_MEMBER ".(count($users) == 1 ? " = '" . current($users) . "'" : " IN ('" . implode("', '", $users) . "')"), __FILE__, __LINE__);
$loaded_ids = array();
while ($row = mysql_fetch_assoc($request))
{
$loaded_ids[] = $row['ID_MEMBER'];
$color_profile[$row['ID_MEMBER']] = $row;
$color_profile[$row['ID_MEMBER']]['link'] = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . (!empty($row['member_group_color']) || !empty($row['post_group_color']) ? '<span style="color:'. (!empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color'] ) .';">' : '' ) . $row['realName'] . (!empty($row['member_group_color']) || !empty($row['post_group_color']) ? '</span>' : '' ).'</a>';
}
mysql_free_result($request);
return empty($loaded_ids) ? false : $loaded_ids;
}
?>
Parsed By Phpci.net Smf Mod Parser (http://www.phpci.net)
Teşekkürler usta
Bisey sormak istiyorum.
SSi kullanarak getirdigimiz bir fonksiyonu mesela "son konular"i modifiye edebilirizmi ? tablo icerisine koyup mesela sol tarafda bölüm ismi ortada konu ismi vesaire.. ajax son konular gibi birsey ?
ssi modifiye edilirmi yoksa getirdigimiz sekilde mi kalir ? bu konuda beni biraz aydinlatabilirmisiniz.
Elbette edilir, örnek site gönderdim pm ile..
Haberler bölümüne bak..
Evet baya gelistirilmis bir sey yapilmis orda. :-\
Nasil edildigini anlatan bir konu varmi türkçe bölümünde ?
Son konulari ssi ile bir sayfaya ekledim, oluyor ama görüntü olarak düzenli degil.
require_once('SSI.php');
echo '
<table class="bordercolor" border="0" cellpadding="4" cellspacing="1" width="100%">
<tr class="catbg">
<td align="center" colspan="2">Recent Topics</td>
</tr>
<tr class="windowbg"><td align="center" colspan="2">' ,
ssi_recentTopics() ,
'</td></tr></table>';
Varsa konu linki atabilirmisin?
SSI Dersleri - Başlangıç Seviyesi (http://www.simplemachines.org/community/index.php?topic=240518.0)
SSI Dersleri - Orta Seviye (http://www.simplemachines.org/community/index.php?topic=240521.0)
SSI Dersleri - İleri Seviye (http://www.simplemachines.org/community/index.php?topic=240522.0)
Vallahi Bana da Sinan yardım etmişti, mesela şöyle birşey var..
http://www.simplemachines.org/community/index.php?topic=47018.msg1533635#msg1533635
ve de ardından Yağızın gösterdiği o dökümantasyonları çıkardı, en iyisi oraları bi incele istersen..
Tesekkür ettim Yagiz onlari okumustum ama ordan birsey cikartamamistim benim yapmak istedigimle ilgili.
Hem bu aralar hiç gözükmüyorsun :P suskunsun umarim hersey yolundadir.
Böyle kalsin yoruldum irelde belki tekrar bakarim.
Tesekkürler ettim Erhan, Yagiz.
Kolay gelsin.
Kodlarınızda;
Bul:
,
ssi_recentTopics() ,
Değiştir:
;
$array = ssi_boardNews(null, null, 'array');
echo '
<table border="0" class="ssi_table">';
foreach ($array as $post)
echo '
<tr>
<td align="left" valign="top" nowrap="nowrap">
[', $post['board']['link'], ']
</td>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt[525], ' ', $post['poster']['link'], '
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
echo '
</table>';
echo
Düzenleyeceğiniz kısım sadece şurası:
echo '
<table border="0" class="ssi_table">';
foreach ($array as $post)
echo '
<tr>
<td align="left" valign="top" nowrap="nowrap">
[', $post['board']['link'], ']
</td>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt[525], ' ', $post['poster']['link'], '
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
echo '
</table>';
Orta Seviye SSI Derslerinde daha ayrıntılı anlatışmıştı.
Sinan bu kodlar farkli geldi. Erhanin örnek verdigi sitedeki gibi :-\ ben son konulari ajax son konulara benzetmek istiyorum daha düzenli olmasi için.
selam arkadaşlar kucuk bır sorunum war evt sorun su ajax tab menu ıle require("SSI.php"); sayfasını require edemıyorum veri tabanı hataası verıyor sanırım. Invalid request variable. neden boyle yapıyor olabılır. bu arada Ajax Tabs Content Script (v 2.2) e require wtmeye calısıyorum.
Quote from: _dropturk_ on September 14, 2008, 05:02:14 PM
selam arkadaşlar kucuk bır sorunum war evt sorun su ajax tab menu ıle require("SSI.php"); sayfasını require edemıyorum veri tabanı hataası verıyor sanırım. Invalid request variable. neden boyle yapıyor olabılır. bu arada Ajax Tabs Content Script (v 2.2) e require wtmeye calısıyorum.
arkadaslar soruna sebep olan kaynak kodları buldum.
// Same goes for numeric keys.
foreach (array_merge(array_keys($_POST), array_keys($_GET), array_keys($_FILES)) as $key)
if (is_numeric($key))
die('Invalid request variable.');
ve kaynak kodları kaldırdım ama hala ne işe yaaradıklarını cozemedım.bilen warsa yassın lutfen.
arkadaslar bir kategori ye yazılmış son 10 konuyu son 10 mesajlar gibi liste halinde forumun bir yerinde göstermik istiyorum SSI ile olur diolar nasıl yapabilirim acaba
SSI ile çağırdığım verilerin (mesela doğum günleri) üzerine tıklandığında, farklı pencerede açılması için nasıl bir ayar yapmalıyım?
Teşekkürler.. :)
@erdem86 SSI.php açın
// Show today's birthdays.
function ssi_todaysBirthdays($output_method = 'echo')
{
global $context, $scripturl;
if (!smf_loadCalendarInfo() || empty($context['calendar_birthdays']))
return array();
if ($output_method != 'echo')
return $context['calendar_birthdays'];
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="', $scripturl, '?action=profile;u=', $member['id'], '">' . $member['name'] . (isset($member['age']) ? ' (' . $member['age'] . ')' : '') . '</a>' . (!$member['is_last'] ? ', ' : '');
}
// Show today's birthdays.
function ssi_todaysBirthdays($output_method = 'echo')
{
global $context, $scripturl;
if (!smf_loadCalendarInfo() || empty($context['calendar_birthdays']))
return array();
if ($output_method != 'echo')
return $context['calendar_birthdays'];
foreach ($context['calendar_birthdays'] as $member)
echo '
<a target="_blank" href="', $scripturl, '?action=profile;u=', $member['id'], '">' . $member['name'] . (isset($member['age']) ? ' (' . $member['age'] . ')' : '') . '</a>' . (!$member['is_last'] ? ', ' : '');
}
^^ Çok teşekkür ederim.
PHP bilmediğim için mantığını da anlayamamıştım, bunu da öğrenmiş oldum.. :)
Arkadaşlar SSI ile ilgili konulara baktım ama ben forumdan sadece belirlediğim bölümdeki İd numarası x olan konuyu göstermek istiyorum nasıl yapabilirim acaba varmı öyle birşey.
http://custom.simplemachines.org/mods/index.php?mod=357
Quote from: hasan1 on September 17, 2008, 09:57:18 AM
arkadaslar bir kategori ye yazılmış son 10 konuyu son 10 mesajlar gibi liste halinde forumun bir yerinde göstermik istiyorum SSI ile olur diolar nasıl yapabilirim acaba
arkadaslar bana yardım edebilicek yokmu acaba
Quote from: hasan1 on September 19, 2008, 09:43:03 PM
Quote from: hasan1 on September 17, 2008, 09:57:18 AM
arkadaslar bir kategori ye yazılmış son 10 konuyu son 10 mesajlar gibi liste halinde forumun bir yerinde göstermik istiyorum SSI ile olur diolar nasıl yapabilirim acaba
arkadaslar bana yardım edebilicek yokmu acaba
Bu kadar hazırcı olmayın. Konunun ilk mesajında var.
@*eren çok teşekkürler.
Eren hocam mesaj id'sini yazınca çok iyi bir şekilde çekiyor ancak tamamını değilde mesajın bir kısmını çektirebilirmiyim. http://www.simplemachines.org/community/index.php?topic=240522.msg1566595#msg1566595 burada anlatılmış ancak sanırım bu mod ile pek benzer değil aynı şeyi buna nasıl uygulayabilirim acaba.
Üstteki soruma cevap verebilecek var mı acaba.
Var. SSI.php'ni aç ssi_grabMessage fonksiyonunu aşağıdaki şekilde değiştir:
// Return a single post
function ssi_grabMessage($message_id = null, $length = null, $output_method = 'echo')
{
global $scripturl, $db_prefix, $txt, $settings, $modSettings, $context, $func;
loadLanguage('Stats');
if ($message_id !== null)
$message_id = (int) $message_id;
elseif (isset($_GET['ID_MSG']))
$message_id = (int) $_GET['ID_MSG'];
else
die("Please specify a message id");
if ($length === null)
$length = isset($_GET['length']) ? (int) $_GET['length'] : 0;
else
$length = (int) $length;
$request = db_query("
SELECT
m.icon, m.subject, m.body, IFNULL(mem.realName, m.posterName) AS posterName,
m.posterTime, m.ID_MSG, t.ID_TOPIC, m.ID_MEMBER, m.smileysEnabled, b.name
FROM ({$db_prefix}topics AS t, {$db_prefix}messages AS m, {$db_prefix}boards as b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE m.ID_MSG = $message_id
AND m.ID_TOPIC = t.ID_TOPIC
AND t.ID_BOARD = b.ID_BOARD
AND FIND_IN_SET(-1, b.memberGroups)
", __FILE__, __LINE__);
$return = array();
if (mysql_num_rows($request) == 0)
{
if ($output_method == 'echo')
die($txt['smf_news_error2']);
else return;
}
$row = mysql_fetch_assoc($request);
// If we want to limit the length of the post.
if (!empty($length) && $func['strlen']($row['body']) > $length)
{
$row['body'] = $func['substr']($row['body'], 0, $length);
// The first space or line break. (<br />, etc.)
$cutoff = max(strrpos($row['body'], ' '), strrpos($row['body'], '<'));
if ($cutoff !== false)
$row['body'] = $func['substr']($row['body'], 0, $cutoff);
$row['body'] .= '...';
}
$row['body'] = doUBBC($row['body'], $row['smileysEnabled']);
censorText($row['subject']);
censorText($row['body']);
$return[] = array(
'icon' => '<img src="' . $settings['images_url'] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" />',
'subject' => $row['subject'],
'time' => timeformat($row['posterTime']),
'body' => $row['body'],
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . '#msg' . $row['ID_MSG'] . '">'.$txt['gsm_read_more'].'</a>',
'new_comment' => '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.0">'. $txt['gsm_comment']. '</a>',
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => !empty($row['ID_MEMBER']) ? $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] : '',
'link' => !empty($row['ID_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>' : $row['posterName']
),
);
mysql_free_result($request);
if ($output_method != 'echo')
return $return;
foreach ($return as $news)
echo '<table border="0" width="100%" align="center" class="smfNews">
<tr>
<td>', $news['icon'], ' <b>', $news['subject'], '</b><span class="smaller"><br />', $news['time'], ' ', $txt[525], ' ', $news['poster']['link'], '<br /><br /></span>
</td>
</tr>
<tr>
<td>', $news['body'], '<br /><br />
</td>
</tr>
<tr>
<td>', $news['link'], ' | ', $news['new_comment'], '
</td>
</tr>
</table>';
}
Daha sonra çekmek istediğin mesaja aynı boardnews teki gibi length değişkeni eklemen lazım:
ssi_grabMessage($message_id = 1, $length = 50, $output_method = 'echo');
Eren çok teşekkürler sağolasın.
Önemli değil.
Peki, http://custom.simplemachines.org/mods/index.php?mod=1284 adresindeki Ajax Recent Topics eklentisi SSİ'a uyarlanabilir mi? Yoksa(Bunu, harici bir sayfada göstermek istiyorum(mkportal)) ssi harici bir yol var mı?
üstatlar acaba üye profilini nasıl ssi portala çekecegiz onu bulamadım
Quote from: birvarbiryok on October 06, 2008, 05:04:48 PM
Peki, http://custom.simplemachines.org/mods/index.php?mod=1284 adresindeki Ajax Recent Topics eklentisi SSİ'a uyarlanabilir mi? Yoksa(Bunu, harici bir sayfada göstermek istiyorum(mkportal)) ssi harici bir yol var mı?
Uyarlanılabilir tabi.
Quote from: 01usagi01 on October 15, 2008, 10:01:27 AM
üstatlar acaba üye profilini nasıl ssi portala çekecegiz onu bulamadım
Profil'den tam olarak kastınız nedir?
hocam üyenin profilini portala çagırmak istiyorum onu nasıl yapacam onu anlamadım daha dorusu bulamadm :)
Profilden kasıt nedir? Hangi bilgilerini çağıracaksınız?
avatar
özel mesajlar
profil linki
ondan sora anketlerin oylanmış şekli :$
üstat ya varsa paylaşsanız şunu çok sevinirim
Neyi kastettiğini detaylı bir şekilde açıklayabilirsen sana oluşturacağım bir ssi fonksiyonu.
ssi portala
avatarı ondan sonra özel mesaj linki
ve son olarakta anket bölümüne oylanmış anketin sayısı mesela 1 ye 3 2 ye 5 3 1 kişi oy vermiş şekilde
Merhaba
benimde bir sorum olacak
ben SSI den login panelini yapıyorum ama Kullanıcı adı ve şifre kutucugu alt alta cıkıyor
yani
Kullanıcı adı:
Şifre:
şeklinde çıkıyor bunu nasıl yan yan getirebilirim
birde yanında sürekli bağlı kal kutucugunu çıkarmak istiyorum
bu konuda bilgisi olan yardım edebilirmi ?
Iyi Forumlar..
@Pijama SSI.php'deki login kodlarını aşağıdaki gibi değiştirip denermisin bi.
// Shows a login box.
function ssi_login($redirect_to = '', $output_method = 'echo')
{
global $scripturl, $txt, $user_info, $context;
if ($redirect_to != '')
$_SESSION['login_url'] = $redirect_to;
if ($output_method != 'echo' || !$user_info['is_guest'])
return $user_info['is_guest'];
echo '
<form action="', $scripturl, '?action=login2" method="post" accept-charset="', $context['character_set'], '">
<table border="0" cellspacing="1" cellpadding="0" class="ssi_table">
<tr>
<td align="right"><label for="user">', $txt[35], ':</label> </td>
<td><input type="text" id="user" name="user" size="9" value="', $user_info['username'], '" /></td>
<td align="right"><label for="passwrd">', $txt[36], ':</label> </td>
<td><input type="password" name="passwrd" id="passwrd" size="9" /></td>
<td><input type="hidden" name="cookielength" value="-1" /></td>
<td><input type="submit" value="', $txt[34], '" /></td>
</tr><tr>
<td valign="middle" align="left">
<label for="cookieneverexp"><b>', $txt[508], ':</b><br />
<input type="checkbox" name="cookieneverexp" id="cookieneverexp" checked="checked" class="check" /></label>
</td>
</tr>
</table>
</form>';
}
єνσℓυтιση™
ilgin için çok tşk ettim
verdigin kod yardımıyla aklıma başka bişe geldi sorun tamamdir eywallah tşk ettim
Forumdaki orjinal giriş ile SSI çok farklı yerler sen SSI'den login paneli yapıyorum demişsin aynı şekilde kodlarını benim verdiğim ile değiştir yine .php dosyanda login sayfasını bir çek öncelikle bak bakalım istediğin gibi <td> ler ile <tr> ler ile oynayarak istediğin şekle rahatlıkla getirebilirsin.
taam bende yukardaki mesajı degişene kadar sen yazmışsın tamam
şimdi çaktım mevzuyu tşk ettim saol canım
4. sayfadan anlatmış elmacık ama ben bu login bölümünü bir türlü yapamadım ya olmuyor.. sisi /forum dizininin içinde ne yaptımsa olmadı bide .. login bölümünü nasıl yapılacağı ayrıntılı anlatılmamış elmacık html ye göre anlatmış o yüzden olmuyor snaırım biri anlatabilirmi acaba ?
Teşekkürler güzel bir kaynak olmuş, sormak istediğim Forum UTF8 site iso-8859 dile sahip ve sitede karakter hatası veriyor.
Nasıl düzenleme yapmalıyım.
Teşekkürler
portala yollanan konuların altında
10 yorum | yorum yaz dior
bunu 10 yorumu silsek yorum yazıda resimlendirmek istesem nasıl olur acaba
1de
<?php ssi_topPoster(); ?>
burdaki konu var
bu bende 5 kişi var ama hepside yanyana
bunları altalta avatarlarıyla nasıl alabilirim
şimdiden teşekkürler
login bölümünü yaptimda son konulari nasil renklendirecez ?
Merhabalar.
Forumdaki son konuları sitede veriyorum ama Bölüm, Tarih ve Saat olmadan nasıl uygularım?
Teşekkürler
teşekkür ettim..
Merhabalar
Forum sitemdeki son mesajları baska bir siteme aşagıdaki kod ile cekebiliyorum
<?php
$sonmesajlar = implode("", file("http://www.sitem.com/forum/SSI.php?ssi_function=recentPosts"));
echo $sonmesajlar;
?>
Şimdi ben foruma yazılmış son 30 konuyu çekmek istiyorum
kodlarda anladıgım kadarıyla şöyle bir degişiklik yaptım
<?php
$sonmesajlar = implode("", file("http://www.sitem.com/forum/SSI.php?ssi_function=recentPosts($num_recent = 30)"));
echo $sonmesajlar;
?>
ama olmadı..
bunu yapmam için nasıl bir yol izlemem gerekli acaba?
genellikle aynı host isince SSI kullanımıyla ilgili ornekler verilmiş
SSI bence farklı sunucuya vercekmek içinde önemlidir
bilen arkadaslar bu konu hakkındada dokuman hazırlasalar super olur
diye düşünüyorum
Yardımınızı bekliyorum
iyi calısmalar..
Ben son konuları aldığımda tarih ve konuyu açan üyelerin adı da geçiyor. Sadece son konuları nasıl listeleyebilirim
http://www.simplemachines.org/community/index.php?topic=240521.0
Arkadaslar
SSI ile foruma en çok mesaj atan ilk 10 kişiyi göstermek istedim
ve şöyle bir kod kullandım..
$array = ssi_topPoster($topNumber = 10, $output_method = 'array')
foreach ($array as $member)
{
echo $member['realName'];
}
ama olmadı. Bu konuda yardım edermisiniz..
EDiT (Pijama): Sorun çözüldü..
$top_posters = ssi_topPoster(10, 'array');
echo '
<ol>';
foreach ($top_posters as $poster)
echo '
<li>', $poster['link'], ' - ', $poster['posts'], '</li>';
echo '
</ol>';
Iyi Calismalar..
Quote from: mk1977 on November 10, 2006, 04:42:38 AM
Herkese teşekkürler,
Sadece başlığı alabilmek mümkün mü peki?
yani kullanıcı adı, kategori adı tarih saat falan gözükmese
sadece konunun başlığı gözükse...
bayağı uzun zaman lmuş ama isteyen olursa
ssi_recentTopics fonksiyonudai şu kodu
echo '
<table border="0" class="ssi_table">';
foreach ($posts as $post)
echo '
<tr>
<td align="right" valign="top" nowrap="nowrap">
[', $post['board']['link'], ']
</td>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt['by'], ' ', $post['poster']['link'], '
', !$post['is_new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new" rel="nofollow"><img src="' . $settings['lang_images_url'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
echo '
</table>';
}
şununla değiştirsinler
echo '
<table border="0" class="ssi_table">';
foreach ($posts as $post)
echo '
<tr>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
</td>
</tr>';
echo '
</table>';
}
not:denedim,çalıştı.
Bazı sunucularda güvenlik gerekçesiyle php.ini dosyasındaki allow_url_include ve allow_url_fopen fonksiyonları devre dışı bırakılıyor.
Forumunuzu subdomain olarak belirlediyseniz (http://forum.example.com şeklinde ulaşıyorsanız) SSI.php'ye ulaşmakta sıkıntı yaşayabilirsiniz.
Bu durumda
<?php
require("/dosyaya/giden/yol/SSI.php?ssi_function=xyz");
?>
şeklinde de SSI.php den veri çekmek mümkün olamayabiliyor. Bu durumda cURL imdada yetişiyor.
CentOS işletim sistemli bir sistemde deneyip bu sıkıntı ile karşılaştım. Subdomaine "/path/" gibi bir ulaşımı blokladı. Alternatif bir şey yazdım olay çözüldü. Belki birilerine lazım olur.
<?php
$ch = curl_init(); // oturum başlat
curl_setopt($ch, CURLOPT_URL,"http://forum.example.com/SSI.php?ssi_function=recentPosts"); // urlyi ayarla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //veri transferini başlat ve değişkene aktarılabilir hale getir
$yaz=curl_exec($ch); //cURL uygulansın
curl_close ($ch); //cURL kapansın
echo $yaz; //sonucu ekrana bas
?>
Bunun yerine kolaycs o account icin open basedir restriction kaldirilabilird.
merhaba arkadaşlar ;
arcade scorları nı yazdırmak icin ne kullanmamız gerekli ? bu konuda yardımcı olabilirmisiniz
Quote from: hazret on January 11, 2010, 12:55:21 PM
merhaba arkadaşlar ;
arcade scorları nı yazdırmak icin ne kullanmamız gerekli ? bu konuda yardımcı olabilirmisiniz
SMF sürümünüz nedir?
Powered by SMF 1.1.11
SSI.php yede eklemelerim gerekenler varmı ?
şimdiden teşekkür ederim
Aşağıdaki kodları portalınızın dosyasına ekleyin.
global $db_prefix, $sourcedir, $scripturl, $settings, $txt;
static $mod;
$limit = 5;
$type = 1; // En çok oynanan oyunlar için: 0 // En iyi oyuncular için: 1 // En uzun süre şampiyonlar için 2 yazın.
if (!isset($mod))
{
if (file_exists($sourcedir . '/Arcade.php'))
$mod = 'smf_arcade';
else
$mod = '';
}
if (empty($mod))
{
echo 'SMF Arcade yüklü değil!';
}
elseif ($mod == 'smf_arcade')
{
require_once($sourcedir . '/ArcadeStats.php');
require_once($sourcedir . '/Subs-Arcade.php');
if (file_exists($sourcedir . '/ArcadeDbConnector.php'))
require_once($sourcedir . '/ArcadeDbConnector.php');
loadLanguage('Arcade');
if (empty($type))
$stats = ArcadeStats_MostPlayed($limit);
elseif ($type == 1)
$stats = ArcadeStats_BestPlayers($limit);
elseif ($type == 2)
$stats = ArcadeStats_LongestChampions($limit);
if (empty($stats))
{
echo '
', $txt['error_sp_no_stats_found'];
return;
}
else
$stats[count($stats) - 1]['last'] = true;
echo '
<ul class="sp_list">';
if (empty($type))
{
foreach ($stats as $stat)
{
echo '
<li>', $stat['link'], '</li>
<li class="smalltext">', $txt['sp-game_plays'], ': ', $stat['plays'], ' | ', $txt['sp-game_rating'], ': ', $stat['rating'], '</li>';
}
}
elseif ($type == 1)
{
$types = array(1 => 'gold', 'silver', 'bronze');
$current = 0;
foreach ($stats as $stat)
{
echo '
<li>', $stat['link'], '</li>
<li class="smalltext"><img src="', $settings['images_url'], '/bar.gif" width="', $stat['precent'], '" height="8" alt="" /> ', $stat['champions'], ' ', $txt['sp-games'], '</li>';
}
}
elseif ($type == 2)
{
$types = array(1 => 'gold', 'silver', 'bronze');
$current = 0;
foreach ($stats as $stat)
{
echo '
<li>', $stat['member_link'], '</li>
<li class="smalltext">', $stat['game_link'], '<br />', $stat['duration'], '</li>';
}
}
echo '
</ul>';
}
}
Kodlar SimplePortal'dan alıntıdır.
Quote from: grafitus... on January 12, 2010, 10:24:43 AM
Aşağıdaki kodları portalınızın dosyasına ekleyin.
global $db_prefix, $sourcedir, $scripturl, $settings, $txt;
static $mod;
$limit = 5;
$type = 1; // En çok oynanan oyunlar için: 0 // En iyi oyuncular için: 1 // En uzun süre şampiyonlar için 2 yazın.
if (!isset($mod))
{
if (file_exists($sourcedir . '/Arcade.php'))
$mod = 'smf_arcade';
else
$mod = '';
}
if (empty($mod))
{
echo 'SMF Arcade yüklü değil!';
}
elseif ($mod == 'smf_arcade')
{
require_once($sourcedir . '/ArcadeStats.php');
require_once($sourcedir . '/Subs-Arcade.php');
if (file_exists($sourcedir . '/ArcadeDbConnector.php'))
require_once($sourcedir . '/ArcadeDbConnector.php');
loadLanguage('Arcade');
if (empty($type))
$stats = ArcadeStats_MostPlayed($limit);
elseif ($type == 1)
$stats = ArcadeStats_BestPlayers($limit);
elseif ($type == 2)
$stats = ArcadeStats_LongestChampions($limit);
if (empty($stats))
{
echo '
', $txt['error_sp_no_stats_found'];
return;
}
else
$stats[count($stats) - 1]['last'] = true;
echo '
<ul class="sp_list">';
if (empty($type))
{
foreach ($stats as $stat)
{
echo '
<li>', $stat['link'], '</li>
<li class="smalltext">', $txt['sp-game_plays'], ': ', $stat['plays'], ' | ', $txt['sp-game_rating'], ': ', $stat['rating'], '</li>';
}
}
elseif ($type == 1)
{
$types = array(1 => 'gold', 'silver', 'bronze');
$current = 0;
foreach ($stats as $stat)
{
echo '
<li>', $stat['link'], '</li>
<li class="smalltext"><img src="', $settings['images_url'], '/bar.gif" width="', $stat['precent'], '" height="8" alt="" /> ', $stat['champions'], ' ', $txt['sp-games'], '</li>';
}
}
elseif ($type == 2)
{
$types = array(1 => 'gold', 'silver', 'bronze');
$current = 0;
foreach ($stats as $stat)
{
echo '
<li>', $stat['member_link'], '</li>
<li class="smalltext">', $stat['game_link'], '<br />', $stat['duration'], '</li>';
}
}
echo '
</ul>';
}
}
Kodlar SimplePortal'dan alıntıdır.
Teşekkür ederim yalnız ben mkportal kullanıyorum ve Statsı Eğer Mümkün Olursa Dışardan Çağırmak istiyorum SSI Kullanarak İframe İle Portala Yerleştirmeyi Planlıyorum Farklı Bir şey Gelmiyor Aklıma O Nedenle SSI Ye eklemem Gereken Kodlar VaRmı Ve Çağırırken Nasıl Çağırmamız Gerekiyor ?
Yardımlarınız için Şimdiden Teşekkür ederim
MkPortal'da PHp blok oluştuma özelliği vardı diye hatırlıyorum?
var yalnız sizin Verdiğiniz kodları eklediğim zaman Beyazbir sayfa ile karşılaşıyorum :S
Evet o kodlar çalışmayacaktır doğal olarak... Bunu çalıştırmak için bunu SSI.php ye bir fonksiyon olarak ekleyip o fonksiyonu çağırmanız gerekmekte.
Quote from: forsakenlad on January 12, 2010, 02:17:25 PM
Evet o kodlar çalışmayacaktır doğal olarak... Bunu çalıştırmak için bunu SSI.php ye bir fonksiyon olarak ekleyip o fonksiyonu çağırmanız gerekmekte.
Eren zaten veritabanı çekme işlemlerini ArcadeStats.php, Subs-Arcade.php, ArcadeDbConnector.php dosyalarından yapıyor?
İyide o dosyalar bunun çekildiği yerde çağrılmamış oluyor. Global olarka tanımlanmış o değişkenlerin bir yerden gelmiş olması lazım di mi? :D
Quote from: forsakenlad on January 12, 2010, 02:56:22 PM
İyide o dosyalar bunun çekildiği yerde çağrılmamış oluyor. Global olarka tanımlanmış o değişkenlerin bir yerden gelmiş olması lazım di mi? :D
Tamam. Arkadaşa dedim zaten portalınızın dosyasına ekleyin. Haliyle o dosyaya SSI.php'yi eklemiştir sanırım?
Quote from: grafitus... on January 12, 2010, 03:01:56 PM
Quote from: forsakenlad on January 12, 2010, 02:56:22 PM
İyide o dosyalar bunun çekildiği yerde çağrılmamış oluyor. Global olarka tanımlanmış o değişkenlerin bir yerden gelmiş olması lazım di mi? :D
Tamam. Arkadaşa dedim zaten portalınızın dosyasına ekleyin. Haliyle o dosyaya SSI.php'yi eklemiştir sanırım?
açıkcası kafam karıştı azıcık :D neyi nereye ekliyeceğim eğer toparlama şansımız olursa
Güncel Konu Bilgim Olsa Gerçekleştiricem Fakat Yardıma İhtiyacım var eğer mümkünse Yardım Ederseniz Sevinirm.
Şimdiden Teşekkür ederim
Spam değil Unutuldum ;)
Arkadaşlar login panelini buldumda yanlız bu kullanıcı adının yazılı olduğu kod nerede bilen varmıdır_?
Arkadaşlar ben joomla siteye smf nin recenttopics ile boardNews fonksiyonlarını ekliyorum.Bunları eklediğimde joomla sayfasında türkçe karekterleri tanımıyor.Smf de karekterlerde problem yok.Joomla 1.5.15 sürümünü kullanıyorum.Smfnin de 2.0 rc2 versiyonunu kullanıyorum.
2 gündür araştırıyorum bulamadım.Yardımcı olurmusunuz .
teşekkurler arkadaşım
teşekkürler rehber işimize yarayabilir :)
Çok güzel rehber işime yaradı.
Güzel bi bilgilendirme :)
<?php
/**
*
* Main file
*
* @version 1.0.0
* @package Gavern Framework
* @copyright Copyright (C) 2010 - 2011 GavickPro. All rights reserved.
*
*/
// No direct access.
defined('_JEXEC') or die;
// enable showing errors in PHP
ini_set('error_reporting', E_ALL);
ini_set('display_errors','On');
// include framework classes and files
require_once('lib/framework/gk.const.php');
require_once('lib/framework/gk.parser.php');
require_once('lib/gk.framework.php');
// run the framework
$tpl = new GKTemplate($this, $GK_TEMPLATE_MODULE_STYLES);
/* End of the file - index.php */
Bu da benim temanın index kodu. SSI.php kodunu nereye yerleştirmeliyim.