Yii Framework Forum: [PLEASE HELP ME] Pencarian Berhirarki (tree) - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[PLEASE HELP ME] Pencarian Berhirarki (tree) GROUPING TREE Rate Topic: -----

#1 User is offline   andromeda 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 02-April 12

Posted 16 May 2012 - 02:40 AM

Agan" master Yii sekalian, mohon bantuannya.. :)
Saya ingin menambahkan fitur pencarian di aplikasi, pencarian yang digunakan di sini pencarian yang berhirarki /semacam tree.
Misalkan pencarian/search 'fulan' , harapannya hasil akan tampak seperti ini:

-> div. humas
---> bagian administrasi
-----> fulan super
-----> fulan kw 1
---> bagian publikasi
-----> fulan grade ori

Seperti yang terlihat di atas, hasil pencarian ditampilkan / dikelompokan sesuai dengan divisi / bagian masing".

Sebenarnya mau menggunakan pencarian biasa dengan model->search / semacam itu, tapi saya khawatir pencariannya ga efisien / ga optimal.,
Karenanya untuk saat ini saya menggunakan plugin dari zend framework, yaitu Zend lucene. dengan pencarian seperti di atas, hasilnya akan seperti berikut ini:

- div. humas bagian administrasi: fulan super
- div. humas bagian administrasi: fulan kw 1
- div. humas bagian publikasi: fulan grade ori

Yang saya ingin tanyakan bagaimana caranya memodifikasi Zend lucene agar bisa menampilkan hasil pencarian yang terkelompok seperti contoh di atas, soalnya sudah coba cari" tutorial modifikasi Zend lucene ga ketemu juga, coba buka lucene nya sendiri malah bingung yang mau diedit apanya.. T,T
Atau mungkin ada solusi selain mengedit Zend lucene..?
Terima kasih :)
0

#2 User is offline   andromeda 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 02-April 12

Posted 20 May 2012 - 09:34 PM

please, help me.! :-[
:(
para master2
0

#3 User is offline   ahmadroni 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 250
  • Joined: 14-June 09
  • Location:Yogyakarta-Indonesia

Posted 24 May 2012 - 12:23 AM

coba masukan kata kunci Yii dan CTreeView kayaknya sudah banyak tutorialnya deh..!
Hospital Cost Management System and
Hospital Management Information System
0

#4 User is offline   ahmadroni 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 250
  • Joined: 14-June 09
  • Location:Yogyakarta-Indonesia

Posted 24 May 2012 - 12:43 AM

mungkin ini bisa membantu ..
http://www.yiiframew...sing-ctreeview/
Hospital Cost Management System and
Hospital Management Information System
0

#5 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,353
  • Joined: 12-October 09
  • Location:Croatia

Posted 24 May 2012 - 01:45 AM

NOTE: merged duplicate posts
Find more about me.... btw. Do you know your WAN IP?
0

#6 User is offline   andromeda 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 02-April 12

Posted 30 May 2012 - 03:49 AM

View Postahmadroni, on 24 May 2012 - 12:23 AM, said:

coba masukan kata kunci Yii dan CTreeView kayaknya sudah banyak tutorialnya deh..!


search nya tuh udah jalan mas bro.. ini tinggal gmn caranya ngeGROUPING isi dari hasil pencarian..
sperti yg saya maksud diatas.
ini saya pake CTreeView + Zend Lucene(buat search ny).
0

#7 User is offline   andromeda 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 02-April 12

Posted 30 May 2012 - 03:57 AM

Ini potongan Codingnya bro..

Search Controler
public function init(){
        Yii::import('application.vendors.*');
        require_once('Zend/Search/Lucene.php');
        parent::init(); 
    }
 
    public function actionCreate()
    {
		$index = new Zend_Search_Lucene(Yii::getPathOfAlias('application.' . $this->_indexFiles), true);
 
        $butirs = Butir::model()->findAll();
        foreach($butirs as $butir){
            $doc = new Zend_Search_Lucene_Document();
			$doc->addField(Zend_Search_Lucene_Field::Text('id_butir',
		 CHtml::encode($butir->id_butir), 'utf-8')
            );
            $doc->addField(Zend_Search_Lucene_Field::Text('no_butir',
		 CHtml::encode($butir->no_butir), 'utf-8')
            );
            $doc->addField(Zend_Search_Lucene_Field::Text('isi_butir',
                 CHtml::encode($butir->isi_butir), 'utf-8')
            );
//			$doc->addField(Zend_Search_Lucene_Field::Text('id_pasal',
//                 CHtml::encode($butir->pasal->id_pasal), 'utf-8')
//            );
            $doc->addField(Zend_Search_Lucene_Field::Text('no_pasal',
                 CHtml::encode($butir->pasal->no_pasal), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('isi_pasal',
                 CHtml::encode($butir->pasal->isi_pasal), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('nama_kategori',
                 CHtml::encode($butir->pasal->prokum->kategori->nama_kategori), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('tentang_prokum',
                 CHtml::encode($butir->pasal->prokum->tentang_prokum), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('id_prokum',
                 CHtml::encode($butir->pasal->prokum->id_prokum), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('nama',
                 CHtml::encode($butir->pasal->prokum->generateFilename()), 'utf-8')
            );
			/*$doc->addField(Zend_Search_Lucene_Field::Text('tentang_prokum',
                 CHtml::encode($butir->pasal->prokum->generateFilename()), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('no_butir',
                 CHtml::encode($butir->pasal->butirs->no_butir), 'utf-8')
            );
			$doc->addField(Zend_Search_Lucene_Field::Text('isi_butir',
                 CHtml::encode($butir->pasals->butirs->isi_butir), 'utf-8')
            );*/
            $index->addDocument($doc);
        }
        $index->commit();
        echo 'Lucene index created';
    }
 
    public function actionSearch()
    {
        $this->layout='column2';
         if (($term = Yii::app()->getRequest()->getParam('q', null)) !== null) {
            $index = new Zend_Search_Lucene(Yii::getPathOfAlias('application.' . $this->_indexFiles));
            $results = $index->find($term);
            $query = Zend_Search_Lucene_Search_QueryParser::parse($term);       
 
            $this->render('search', compact('results', 'term', 'query'));
        }
    }


ini di view nya, buat nampilin hasil search berbentuk tree
search.php
<h3>Search Results for: "<?php echo CHtml::encode($term); ?>"</h3>
<?php
if (!empty($results)):
        foreach($results as $result):
                $dataArray = array(
                    array('text'=> $query->highlightMatches(CHtml::encode($result->nama)), 'children'=>array(
                        array('text'=>'Pasal Ke-'.$query->highlightMatches(CHtml::encode($result->no_pasal)), 'children'=>array(
                            array('text'=>'Butir Ke-'.$query->highlightMatches(CHtml::encode($result->no_butir)),  'children'=>array(
                                    array('text'=>$query->highlightMatches(CHtml::encode($result->isi_butir))),
                                )),
                            
                            // array('text'=>'Butir Ke-'),
                                )),
                        //array('text'=>'Pasal Ke-'),
                        )),
                );
		
$this->widget('CTreeView', array(
	'data'=>$dataArray,
    'animated' => 'fast',
    'collapsed' => true,
    //'url' => array('AjaxFillTree'),
    'htmlOptions' => array('class' => 'treeview-red',
    ))
);

?>
		
<?php endforeach; ?>

<?php else: ?>
	<p class="error">No results matched your search terms.</p>
<?php endif; ?>


dan hasil masih belum sperti yg diinginkan.
hasil tree masih belum mengGRUP jd satu.
contoh pencarian : 'pasal'
dan hasilnya :

-> undang - undang no 19 tahun 1935
---> pasal 1
-----> butir 1

-> undang - undang no 19 tahun 1935
---> pasal 2
-----> butir 1

-> undang - undang no 19 tahun 1935
---> pasal 3
-----> butir 1

-> undang - undang no 30 tahun 2034
---> pasal 1
-----> butir 1

-> undang - undang no 30 tahun 2034
---> pasal 2
-----> butir 1

masih seperti ini.
0

#8 User is offline   ahmadroni 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 250
  • Joined: 14-June 09
  • Location:Yogyakarta-Indonesia

Posted 28 June 2012 - 09:58 AM

ini udah solve belum ya... maaf sudah lama banget ga buka email mas bro..!
Hospital Cost Management System and
Hospital Management Information System
0

#9 User is offline   andromeda 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 02-April 12

Posted 29 June 2012 - 02:00 AM

blm solve gan ini...
tolong bimbingannya
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users