Linux Mint Türkiye
Genel Kategori => İstek, Öneri ve Şikayetler => Konuyu başlatan: Liva - 12 Ağustos 2016, 16:57:52
-
Selamunaleykum. Bazı forum sitelerinde hoşuma giden bir özellik var. Burada yeni konu oluştururken konu başlığına bir şeyler yazmaya başlayınca daha önceden açılmış ona yakın olan konular altta öneri olarak gösteriliyor. Bu da kullanıcının aynı konuda yeniden bir konu açmasını bir nevi engellemiş gibi oluyor. Bunu acaba forumumuza entegre edebilir miyiz?
-
Merhaba, bu özelliği içeren örnek bir site verebilir misiniz.
-
Ubuntu forumda var örnek olarak. Bir tane de ekran görüntüsü koydum bakabilirsiniz.
(http://i.hizliresim.com/Xd2Q2k.png)
-
Oldukça güzel bir özellikmiş, zannediyorum ki [member=1340]alquirel[/member] kendisi yazmış. kaynak kodlardan baktığımda javascript ile yazdığını ayrıca onunla beraber otomatik taslak özelliğini de kullanılmış olduğunu gördüm.
https://forum.ubuntu-tr.net/Themes/ubuntu/scripts/baslik-oneri.js (https://forum.ubuntu-tr.net/Themes/ubuntu/scripts/baslik-oneri.js)
https://forum.ubuntu-tr.net/Themes/ubuntu/scripts/taslak-sistemi.js?v=0.9 (https://forum.ubuntu-tr.net/Themes/ubuntu/scripts/taslak-sistemi.js?v=0.9)
Bu özellik sayesinde aynı konu için defalarca farklı başlık açılmasının da önüne geçilebilir.
Açık konuşmak gerekirse, javascript yazma konusunda yeterli bilgi ve tecrübeye sahip değilim. Genelde hazır javascript'ler kullandığımızdan yazma kısmına hiç girişmedik.
Ancak kendisine bizimle paylaşıp paylaşmayacağını, sorabiliriz.
-
Tabi. Umarım sorunsuzca buradaki foruma da entegre edebilmiş oluruz. Güzel haberlerinizi bekliyor olacağım. :)
-
Merhaba,
Taslak sistemini fazlaca test edemedim, ama fazla etkin çalışmıyor sanırım. Mesela iletiyi göndermiş olsanız bile taslak silinmiyor galiba, bana denk geldiği oldu ama hiç geri bildirim de almadığım için üstüne fazlaca eğilemedim.
Başlık öneri sistemini de kolaylıkla buraya entegre edebileceğimizi düşünüyorum. Burada da SMF'nin kendi arama sistemi kullanılıyor gördüğüm kadarıyla. JS kodu zaten açık, geriye PHP kodu kalıyor. Onu da uygun görürseniz burada paylaşabilirim. Veya farklı bir iletişim seçeneği düşünürseniz öyle de olabilir.
-
Merhaba [member=1340]alquirel[/member], öncelikle hoş geldin.
Ben taslak sistemini test ettiğimde herhangi bir sorun görmedim, olağan şekilde olması gerektiği gibi çalışıyordu, ancak ileti göndermeyi denemedim. Evet biz de SMF'nin kendi varsayılan arama sistemini kullanıyoruz.
Bu arada paylaşımcı kişiliğin için, tüm forum adına teşekkür ederim. Daha önce de çözüldü etiketini de paylaşmıştın bizimle, PHP kodu paylaşım alanı için de dilersen buradan, dilersen de özel mesaj yolu ile yazabilirsin, tekrar teşekkür ederiz.
-
Geç cevabım için kusura bakmayın.
Burada paylaşayım o halde.
Öncelikle SMF'nin index.php dosyasındaki $actionArray dizisine şu satır eklenecek:
'baslikoneri' => array ( 'PHP_DOSYASI.php', 'BaslikOneri' ),
Tabii ki PHP_DOSYASI yerine kendi dosyanızın adını yazarsınız. O dosyanın içine de şu kod yazılacak.
<?php
function BaslikOneri(){
global $smcFunc, $sourcedir, $messages_request, $scripturl;
require_once($sourcedir . '/Search.php');
$_SESSION['last_ss'] = $_GET['search'];
// $_REQUEST['subject_only'] = 1;
PlushSearch2();
$ss = 0;
$out = '<?xml version="1.0"?'.'><subjects>';
while($ss < 7 && $messages_request != null && $message = $smcFunc['db_fetch_assoc']($messages_request)){
$out .= '<subject link="'.$scripturl.'?topic='.$message['id_topic'].'"><![CDATA[' . $message['subject'] . ']]></subject>';
$ss++;
}
$out .= '</subjects>';
header("Content-Type:text/xml; charset=UTF-8");
echo $out;
die();
}
?>
Bu kodda "comment" olarak bıraktığım satır etkinleştirilirse sadece başlıklarda arama yapar. Ama 40-50bin başlıklı bizim forumda bile bu seçeneği kullandığımda bazen sonuç döndürmediği bile oluyordu, o yüzden hem başlık hem içerik olarak arama yaptırıyorum ben, yani size de tavsiye etmem ama sonuç döndürmesi daha yavaş olur derseniz sadece başlıkta arama da yaptırabilirsiniz tabii.
while döngüsünün içinde de 7 tane sonuç döndürüyorum. Bu sayı da size kalmış.
Aslında bunun için hazır kurulum paketi de hazırlanabilir ama böylesi daha kolayıma geliyor ;)
İyi forumlar.
Mesajlar Birleştirildi.
Bu arada baslik-oneri.js dosyasının sadece yeni konu açılırken sayfaya dahil edilmesini de şu şekilde sağlayabilirsiniz. Ben öyle yapıyorum. Temanızın index.template.php dosyasında template_html_above() fonksiyonunun içinde uygun bir yere şu satırları eklersiniz.
if ( $context['current_action'] == 'post' && isset( $context['is_new_topic'] ) && $context['is_new_topic'] ) {
echo '
<script type="text/javascript" src="' . $settings['theme_url'] . '/scripts/baslik-oneri.js"></script>';
}
baslik-oneri.js dosyasını uygun yere yerleştirirsiniz. Bir de bu template_html_above() fonksiyonunda $context ve $settings global değişkenleri tanımlı değilse tanımlamanız gerekir.
Ha bir de açılan kutucuğun biçimlemesi var. Benim kullandığım şu şekilde:
#baslik-oneri {
background: #fff none repeat scroll 0 0;
border: 1px solid #ccc;
box-shadow: 0 0 2px 2px #ccc;
display: none;
margin-top: 3px;
min-width: 500px;
padding: 10px;
position: absolute;
}
#baslik-oneri ul {
list-style: outside none none;
margin: 0;
padding: 0;
}
#baslik-oneri h4 {
cursor: pointer;
float: right;
}
İyi forumlar.
-
Ben de her şeyi yapmama rağmen sonuçlar balon (tooltip) şeklinde çıkmayınca, herhangi bir .css düzenlemesi var mı acaba diye soracaktım ki, sonra farkettim mesajını düzenlediğini :) şuan sorunsuz bir şekilde çalışıyor, önce kendi adıma sonra forum adına tekrar teşekkür ederim [member=1340]alquirel[/member]
(http://4.1m.yt/mmC6TGc.png)
-
[member=1340]alquirel[/member], desteğiniz için kendi adıma çok teşekkür ediyorum.
-
Gece geç vakitte yazdığım için ilk başta o kısmı unutmuşum. Dediğim gibi yaptığım düzenlemeleri tek parça kurulum dosyası şeklinde değil de böyle aklımda tuta tuta yaptığım için ilk mesajda atlamış bulundum.
Teşekkür ederim.