Gönderen Konu: Konu Oluşturulurken Arama Yapma  (Okunma sayısı 385 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Liva

  • Penguen
  • ***
  • İleti: 300
  • Basit Düzey Mint Kullanıcısı
  • Dağıtım: Mint 17.3
  • Masaüstü: Cinnamon
  • Grafik Kartı: AMD Radeon R4 and R5 Graphics
  • İşlemci: AMD A6 Quad Core 1.8 Ghz
Konu Oluşturulurken Arama Yapma
« : 12 Ağustos 2016, 17:57:52 »
Bizlere katkıda bulunmak istiyorsanız reklamlara tıklayabilirsiniz.

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?
~~~~~   Bazı insanlar o kadar fakir ki tek sahip oldukları şey para...   ~~~~~

Çevrimdışı Danny

  • Proje Sorumlusu
  • *****
  • İleti: 1659
  • Nihilist
  • Dağıtım: Linux Mint 18
  • Masaüstü: Cinnamon
  • Grafik Kartı: NVidia
  • İşlemci: Intel i5
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #1 : 13 Ağustos 2016, 11:05:54 »
Merhaba, bu özelliği içeren örnek bir site verebilir misiniz.
Gelip sağ yanağımdan öptü. Dindar değildim ama sol yanağımı da çevirmek istedim o an...

Çevrimdışı Liva

  • Penguen
  • ***
  • İleti: 300
  • Basit Düzey Mint Kullanıcısı
  • Dağıtım: Mint 17.3
  • Masaüstü: Cinnamon
  • Grafik Kartı: AMD Radeon R4 and R5 Graphics
  • İşlemci: AMD A6 Quad Core 1.8 Ghz
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #2 : 13 Ağustos 2016, 12:53:56 »
Ubuntu forumda var örnek olarak. Bir tane de ekran görüntüsü koydum bakabilirsiniz.
~~~~~   Bazı insanlar o kadar fakir ki tek sahip oldukları şey para...   ~~~~~

Çevrimdışı Danny

  • Proje Sorumlusu
  • *****
  • İleti: 1659
  • Nihilist
  • Dağıtım: Linux Mint 18
  • Masaüstü: Cinnamon
  • Grafik Kartı: NVidia
  • İşlemci: Intel i5
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #3 : 13 Ağustos 2016, 19:18:05 »
Oldukça güzel bir özellikmiş, zannediyorum ki @alquirel 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/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.
« Son Düzenleme: 13 Ağustos 2016, 19:19:43 Gönderen: Danny »
Gelip sağ yanağımdan öptü. Dindar değildim ama sol yanağımı da çevirmek istedim o an...

Çevrimdışı Liva

  • Penguen
  • ***
  • İleti: 300
  • Basit Düzey Mint Kullanıcısı
  • Dağıtım: Mint 17.3
  • Masaüstü: Cinnamon
  • Grafik Kartı: AMD Radeon R4 and R5 Graphics
  • İşlemci: AMD A6 Quad Core 1.8 Ghz
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #4 : 13 Ağustos 2016, 22:18:57 »
Tabi. Umarım sorunsuzca buradaki foruma da entegre edebilmiş oluruz. Güzel haberlerinizi bekliyor olacağım. :)
~~~~~   Bazı insanlar o kadar fakir ki tek sahip oldukları şey para...   ~~~~~

Çevrimdışı alquirel

  • Çok Yeni Penguen
  • *
  • İleti: 4
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #5 : 13 Ağustos 2016, 23:36:08 »
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.

Çevrimdışı Danny

  • Proje Sorumlusu
  • *****
  • İleti: 1659
  • Nihilist
  • Dağıtım: Linux Mint 18
  • Masaüstü: Cinnamon
  • Grafik Kartı: NVidia
  • İşlemci: Intel i5
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #6 : 14 Ağustos 2016, 15:11:36 »
Merhaba @alquirel, ö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.
Gelip sağ yanağımdan öptü. Dindar değildim ama sol yanağımı da çevirmek istedim o an...

Çevrimdışı alquirel

  • Çok Yeni Penguen
  • *
  • İleti: 4
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #7 : 17 Ağustos 2016, 00:25:43 »
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:

Kod: [Seç]
'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.

Kod: [Seç]
<?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 && $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.

Kod: [Seç]
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:

Kod: [Seç]
#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.
« Son Düzenleme: 17 Ağustos 2016, 15:15:40 Gönderen: alquirel »

Çevrimdışı Danny

  • Proje Sorumlusu
  • *****
  • İleti: 1659
  • Nihilist
  • Dağıtım: Linux Mint 18
  • Masaüstü: Cinnamon
  • Grafik Kartı: NVidia
  • İşlemci: Intel i5
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #8 : 17 Ağustos 2016, 16:43:34 »
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 @alquirel 

Gelip sağ yanağımdan öptü. Dindar değildim ama sol yanağımı da çevirmek istedim o an...

Çevrimdışı Butterfly

  • Proje Sorumlusu
  • *****
  • İleti: 11644
  • Linux Mint Türkiye
  • Dağıtım: Linux Mint 18 & LMDE 2
  • Masaüstü: Cinnamon & Mate
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #9 : 17 Ağustos 2016, 17:21:29 »
@alquirel, desteğiniz için kendi adıma çok teşekkür ediyorum.
Elimizden geldiğince dilimizin döndüğünce...


Çevrimdışı alquirel

  • Çok Yeni Penguen
  • *
  • İleti: 4
Ynt: Konu Oluşturulurken Arama Yapma
« Yanıtla #10 : 17 Ağustos 2016, 17:35:56 »
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.