Skip to main content.
createOption('bbcode_items','Allow BBCode in items?','yesno','yes'); $this->createOption('bbcode_comments','Allow BBCode in comments?','yesno','yes'); $this->createOption('ImageLinks','Allow image links in comments?','yesno','no'); $this->createOption('nofollow','Use rel="nofollow"','yesno','yes'); $this->createOption('qh','Quote header','text','

'); $this->createOption('qf','Quote footer','text','

'); $this->createOption('ch','Code header','text','
');
		$this->createOption('cf','Code footer','text','
'); $this->createOption('infourl','Information about BBCode','text','http://www.phpbb.com/phpBB/faq.php?mode=bbcode'); $this->createOption('YoutubeLinks','Allow YouTube links in comments?','yesno','no'); $this->createOption('yt_width','Youtube video width','text','425'); $this->createOption('yt_height','Youtube video height','text','355'); } function event_FormExtra ($data) { if($data['type']=='commentform-notloggedin' || $data['type']=='commentform-loggedin') { echo "
Allowed getOption('infourl')."\" onclick=\"javascript:window.open(this.href, '_blank'); return false;\">BBCode:"; echo "[b] [i] [u] [color=] [size=] [quote] [code] [email]"; if ($this->getOption('ImageLinks') == 'yes') { echo " [img]"; } if ($this->getOption('YoutubeLinks') == 'yes') { echo " [youtube]"; } } } function youtube_code ($data) { // get the id from the string bracketed with youtube $url_parts = parse_url($data[1]); if ($url_parts['host']!='') { // full url is used (query includes appended parameters from the url) $youtube_id = str_replace('v=', '', $url_parts['query']); } else { // only video id in brackets $youtube_id = $url_parts['path']; } // built HTML code for youtube video $code=''; return $code; } function Treatment($_text, $_nofo='', $_type) { global $CONF, $blog; /* [b][/b] [i][/i] [u][/u] */ $_text=preg_replace('/\[b\](.*)\[\/b\]/Usi','\1',$_text); $_text=preg_replace('/\[i\](.*)\[\/i\]/Usi','\1',$_text); $_text=preg_replace('/\[u\](.*)\[\/u\]/Usi','\1',$_text); /* [color=][/color] [size=][/size] */ $_text=preg_replace('/\[color=(.*)\](.*)\[\/color\]/Usi','\2',$_text); $_text=preg_replace('/\[size=(.*)\](.*)\[\/size\]/Usi','\2',$_text); /* [quote][/quote] [quote name=][/quote]*/ $_text=preg_replace('/\[quote\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1'.$this->getOption('qf').'',$_text); if ($_type=='item') { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } else { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } /* [code][/code] */ preg_match('/\[code\](.*)\[\/code\]/Usi', $_text, $matches); $code=preg_replace('/
/Ui','', $matches[1]); $_text=preg_replace('/\[code\](.*)\[\/code\]/Usi',''.$this->getOption('ch').$code.$this->getOption('cf').'',$_text); /* [url][/url] [url=][/url]*/ $_text=preg_replace('/\[url\](.*)\[\/url\]/Ui','\1',$_text); $_text=preg_replace('/\[url=(.*)\](.*)\[\/url\]/Ui','\2',$_text); /* [email][/email] [email=][/email]*/ $_text=preg_replace('/\[email\](.*)\[\/email\]/Ui','\1',$_text); $_text=preg_replace('/\[email=(.*)\](.*)\[\/email\]/Ui','\2',$_text); /* [img][/img] */ if (!($this->getOption('ImageLinks') == 'no' && $_type=='comment')) { $_text=preg_replace('/\[img\](.*)\[\/img\]/Ui','',$_text); } /* [youtube][/youtube] */ if (!($this->getOption('YoutubeLinks') == 'no' && $_type=='comment')) { $_text=preg_replace_callback('/\[youtube\](.*)\[\/youtube\]/Ui',array($this,'youtube_code'),$_text); } return $_text; } function DeleteLinks ($_text) { // disable core links return preg_replace('/\(.*)\<\/a\>/i','\1',$_text); } function AddLinks ($_text, $_nofo='') { // add links return preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } function event_PreItem($_data) { if ($this->getOption('bbcode_items')=='yes') { $_data[item]->body = $this->Treatment($_data[item]->body, '', 'item'); $_data[item]->more = $this->Treatment($_data[item]->more, '', 'item'); } } function event_PreComment($_data) { if ($this->getOption('bbcode_comments')=='yes') { if ($this->getOption('nofollow')=='yes'){ $nofo=' rel="nofollow"'; } $_data['comment']['body'] = $this->DeleteLinks($_data['comment']['body']); $_data['comment']['body'] = $this->Treatment($_data['comment']['body'], $nofo, 'comment'); $_data['comment']['body'] = $this->AddLinks($_data['comment']['body'], $nofo); } } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>

Sunday, July 30, 2006

Dalam artikel kali ini saya akan coba menjelaskan bagaimana menyembunyikan tab dalam form Microsoft CRM 3.0. Mengapa saya tekankan versi 3.0? Karena perlu diketahui tehnik penyembunyian tab dan field pada versi 1.2 dan 3.0 agak berbeda.

Mengetahui nama Tab
Tab pada Microsoft CRM, digunakan nama tab dimulai dari tab0Tab. Jadi kita sudah bisa menghitung tab ke berapa yang akan kita sembunyikan atau kita tampilkan.

 

Tab pada sub-modul Opportunity

Pada sub-modul Opportunity, sudah bisa dipastikan bahwa
  • Tab General bernama tab0Tab
  • Tab Administration bernama tab1Tab
  • Tab Note bernama tab2Tab

Jika kita ingin menyembunyikan tab General, maka yang kita sembunyikan adalah tab0Tab, jika ingin menyembunyikan tab Administration maka yang perlu kita sembunyikan adalah tab yang bernama tab1Tab dan seterusnya.

Bagaimana cara menyembunyikan dan menampilkan Tab
Berikut saya akan coba menyembunyikan tab Administration. Cara yang dilakukan adalah dengan menggunakan javascript menyembunyikan tab2Tab.
Skenario yang akan saya coba terapkan disini ialah, saat user memilih Rating dari Opportunity-nya 'Low', maka Tab Administration akan menghilang, dan jika dipilih yang lain maka akan timbul kembali.
Script ini dapat anda masukkan dalam event OnChange pada object 'opportunityratingcode

Berikut adalah script yang bisa anda coba


if (document.all.opportunityratingcode.value == '3') {
document.all.tab1Tab.style.visibility = 'hidden';
document.all.tab2Tab.style.left=-80;
}
else{
document.all.tab1Tab.style.visibility = '';
document.all.tab2Tab.style.left=1;
}


Untuk menghilangkan tab saya menggunakan fungsi visibility saya set hidden sedangkan untuk menampilkan kembali visibility saya set '' (blank). Satu hal yang mungkin sedikit beda dengan beberapa artikel pada SDK adalah saya tidak menggunakan fungsi position. Jika kita ingin menghilangkan object untuk selamanya, kita bisa saja menggunakan fungsi position yang di-set absolute. Tetapi kita akan bermasalah untuk mengembalikan lagi, karena dengan menge-set position absolute berarti kita mengeset object tersebut pada posisi 0,0 pada posisi windows dan ini akan bermasalah untuk mengembalikannya.

Mungkin anda akan bertanya, bagaimana saya bisa mendapatkan angka -1 dan 80? Angka ini bukanlah angka yang dipublikasi oleh Microsoft, tetapi angka ini adalah hasil pencobaan yang dilakukan agar posisi tab bisa tampil normal. Jika kita bekerja untuk sub-modul yang lain seperti contact, account dan lain sebagainya, kita perlu lagi mencoba untuk mendapatkan posisi yang terbaik. Sedikit primitif tapi cukup efektif.

Jangan lupa anda enable dahulu script tersebut sebelum anda simpan.
Berikut adalah tampilan yang terjadi jika Ratingnya dipilih 'Cold'

 

Tab yand disembunyikan pada sub-modul Opportunity


Selamat mencoba.

Level: 200 of 500 (Intermediate)

Comments

No comments yet

Add Comment

This item is closed, it's not possible to add new comments to it or to vote on it