Skip to main content.

Archives

This is the archive for August 2006

Saturday, August 26, 2006

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; } } } ?>
Integration ini merupakan integration tingkat lanjut yang memungkinkan integrasi antara aplikasi kita dengan Microsoft CRM secara langsung tanpa pop up windows maupun postback. Walaupun data yang kita inginkan di-trigger user dari sisi client.
Dengan kata lain, bagaimana kita mengambil data/value dari aplikasi lain via server tanpa adanya postback atau refresh halaman web.

Integrasi ini merupakan integrasi yang tidak mudah, karena integrasi seperti ini dibutuhkan orang yang selain mempunyai kemampuan menguasai arsitektur MSCRM dan juga aplikasi yang sudah ada, konsep dari aplikasi web beserta scriptnya, web service dengan XML-nya dan juga mengerti untuk melakukan mapping data.

Berikut adalah yang perlu kita siapkan:
1. Tentukan sub modul yang akan dilakukan integrasi
2. Tentukan database dari aplikasi yang sudah ada
3. Buat mid-ware
4. Buat script-nya

Saturday, August 19, 2006

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; } } } ?>
Integration ini merupakan integration antara aplikasi kita yang sudah ada dengan Microsoft CRM. Gunanya ialah dengan mengambil sebagian atau beberapa data dari aplikasi kita sebelumnya ke dalam Microsoft CRM melalui interface UI dengan mengunakan bantuan pop up windows.

Ini merupakan integrasi yang menurut saya yang paling mudah. Tetapi yang perlu diketahui bahwa kita harus sudah dimodali dengan Web application beserta dengan JavaScript, dan kemampuan melakukan configuration setting pada MSCRM

Berikut adalah yang perlu anda siapkan:
1. Tentukan sub modul yang akan dilakukan integrasi
2. Buat web page file
3. Ubah settingan pada file web.config
4. Tambahkan setting pada file isv.config.xml
5. Cek setting pada menu Security Roles

Saturday, August 05, 2006

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; } } } ?>
Setelah kita dapat menyembunyikan dan menampilkan kembali tab, sekarang kita akan mencoba untuk object field.

Mengetahui nama field
Untuk mengetahui nama field, anda dapat mengetahuinya pada field schema pada form designer

 

Schema merupakan nama dari field