2013年12月9日 星期一

[Liferay] 使用SubscriptionSender透過 Gmail 寄信的方法


1.Server Setting:


%liferay_home%\tomcat-7.0.40\conf\Catalina\localhost\ROOT.xml

在<Context .....>的內容裡面加上

<Resource
 name="mail/MailSession"
 auth="Container"
type="javax.mail.Session"
mail.pop3.host="pop.gmail.com"
mail.pop3.port="110"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.user=user@gmail.com
mail.smtp.password="password"
mail.smtp.auth="true"
 mail.smtp.starttls.enable="true"
       mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
       mail.imap.host="imap.gmail.com"
       mail.imap.port="993"
       mail.transport.protocol="smtp"
       mail.store.protocol="imap"
    />
</Context>





在portal-ext.properties裡面加上



mail.session.jndi.name=mail/MailSession

2.SubscriptionSender

SubscriptionSender subscriptionSender = new SubscriptionSender();
  String body = "";

  subscriptionSender.setSubject("your mail subject");

  body ="your mail content"

  User   receiver = UserLocalServiceUtil.getUser(receiverUserId());
   subscriptionSender.setUserId(receiver .getUserId());
   subscriptionSender.setCompanyId(receiver.getCompanyId());
   subscriptionSender.setMailId("user", receiver .getUserId());
   subscriptionSender.addRuntimeSubscribers(receiver .getEmailAddress(),
     receiver .getFullName());


   subscriptionSender.setBody(body);
   subscriptionSender.setFrom("fake@com.tw", "your system name or something");
   subscriptionSender.setHtmlFormat(false);
   subscriptionSender.flushNotificationsAsync();

2013年11月7日 星期四

2013年10月23日 星期三

[筆記]Liferay 中使用aui:input type="checkbox"時,取不到正確的值的狀況

<Qusetion>
<aui:input type="checkbox" name="name" value="123">
<aui:input type="checkbox" name="name" value="456">
<aui:input type="checkbox" name="name" value="789">

這時候如果在後端使用一般的  request.getParameterValues("name");
不管客戶端是否有勾選Checkbox
取得的結果都會是這樣的陣列{ 123,456,789}
該怎麼解決?

 <answer>
解決方法是使用
 request.getParameterValues("nameCheckbox");
因為<aui:input> tag會在你的Checkbox的name上
幫你做name+Checkbox做為name的屬性,以作為與一般input tag的區別

當然若你想使用javascript來取值也是一樣的道理
所以javascript就要變成
 <script>
document.getElementsbyName("<portlet:namespace/>nameCheckbox")[0].value;
 </script>

被這個問題搞了兩天煩都煩死了XDrz

2013年10月2日 星期三

Liferay自訂portal的configuration畫面



有時候會要在頁面上做一些參數的控制

這時候需要利用到Portal本身的控制面板




但是原本右上角的控制面板功能可能不是你要的

(大部分都是權限控管,如果是多媒體Portal則可能是控制填入的檔案類型之類的)







這時候我們可以自訂自己的configuration


Liferay環境建立

基本的JAVA Machine跟環境都安裝完畢後

前往sourceforge下載
Liferay IDE
Liferay tomcat
Liferay sdk plugin

另外下載Tomcat Plugin v33

將Tomcat Plugin V33丟進Eclipse的plugin資料夾
這樣就可以在Eclipse中設定Tomcat

接下來
打開 Liferay IDE的 Eclipse,打開Preference
選擇Tomcat
將Tomcat的設定設為7.X,路徑指向liferay Tomcat解壓縮後的路徑
(例如:X:\liferay-portal-6.1.2-ce-ga3)
路徑正確下方的Context directory會自動帶入環境設定


接下來點選Liferay
會看到3個超連結
第一項點選後,按下add,選擇你Liferay sdk plugin的位置
下方Open in Eclipse設為在Ecllpse中開啟

第二項因為剛剛選Tomcat7.X,所以選擇7.X版的Liferay CE6.1版本

接下來Show View開啟  Server的視窗就可以新增LifeRay的Tomcat伺服器了。

若要使用自己的資料庫
必須在\tomcat-7.0.40\webapps\ROOT\WEB-INF\classes
這個資料夾下面
新增一個名為portal-ext.properties的檔案
以使用MySQL為範例
輸入如下的內容
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/testportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=1234

這樣就可以連結自己的資料庫了
當然localhost後面的資料庫名稱要使用自己的資料庫名稱







2013年8月20日 星期二

[轉載]無邊框模式時,呼叫SaveFileDialog 時出現ThreadStateException的解決方法

原網址 http://blog.csdn.net/fisher_china/article/details/6043475


//先製作一個DialogState的類別
 public class DialogState
{
        public DialogResult result;
        public FileDialog dialog;

        public void ThreadProcShowDialog()
        {
            result = dialog.ShowDialog();
        }
    }


//在你呼叫SaveFileDialog的類別裡面,加入這個方法
        private DialogResult STAShowDialog(FileDialog dialog)
       {

            DialogState state = new DialogState();

            state.dialog = dialog;

            System.Threading.Thread t = new System.Threading.Thread(state.ThreadProcShowDialog);

            t.SetApartmentState(System.Threading.ApartmentState.STA);
            t.Start();
            t.Join();
            return state.result;
        }


调用时:(使用時)

            OpenFileDialog openFileDlg= new OpenFileDialog();

            openFileDlg.InitializeLifetimeService();

            openFileDlg.Filter = "Config Files (*.config)|*.config| (*.xml)|*.xml";

            openFileDlg.Title = "选择配置文件";

            DialogResult ret = STAShowDialog(openFileDlg); //使用多執行緒的方式執行ShowDialog

            if (ret == DialogResult.OK)






2013年6月1日 星期六

[JAVA]轉換日期格式long to String,String to long

//方法-轉SQL日期到JAVA(String to long)


public String timetoString(long time) {

SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
Date date = new Date(time);
return sf.format(date);
}



//轉JAVA long to Sql(long  to Sql)




String sDt = "19910714";

SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMdd");
Date dt2=null;

try {
dt2 = sdf.parse(sDt);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long lTime = dt2.getTime();



2013年5月30日 星期四

2013年5月9日 星期四

[攝影]拍黑貓的小技巧

  養寵物的人通常也會蠻喜歡拍拍自己的寵物的,畢竟除了平常看寵物們賣萌之外,有時候把一些難能可貴的畫面用相機留下來以後回味,或者是留做自己和寵物的回憶也是很棒

2013年5月2日 星期四

[遊戲]行動遊戲小介紹




  自從換了智慧型手機後,對自己來說除了有一台方便的行動電腦可以隨時Google查地圖外,另外就是有了一台可以隨時打電動的掌機了雖然實在是非常的耗電

2013年5月1日 星期三

2013年4月30日 星期二

[漫畫]押切蓮介-畫風奇特的治癒系作家(?


  這個名字對於一般人來說應該都挺陌生,不過奇特的畫風在友人推薦下一看覺得不得了哇XD

2013年4月29日 星期一

[心情]生命的意義



  今天和國中死黨聊天,雖然不知不覺間已經長到需要考量成家立業養老的年紀,不過也許因為我家庭裡我不是老大吧,幾乎從來沒想過這件事情。  

2013年4月27日 星期六

[遊戲]不一樣的恐怖遊戲-《Ib》

  
  之前有介紹過RPG-MAKER製作出來的遊戲《屍體派對》的高人氣,不過好遊戲當然不只一片而已啦,

2013年4月24日 星期三

[遊戲]小遊戲中的鉅作-屍體派對(CORPSE PARTY)

屍體派對-blood Covered遊戲封面
  講到RPG-MAKER,大家想到的一定是看似其貌不揚的畫面

2013年4月23日 星期二

[動畫]上条當麻...你真是了不起阿

  平心而論,我覺得蠻多作品的主角都會讓人有種「你憑甚麼?」的感覺,不管是從外星來的公主想要上主角,國(高)中生拯救世界,或者是男主角明明甚麼也沒做可是卻忽然冒出了12個妹妹之類的,最令人火大的就是主角們不知道為何都像賢者聖人一般,不然就是感覺不到那躲在柱子後面濃濃的愛意。

2013年4月21日 星期日

[短篇] 千代



  門口掛著「高級療癒風俗」的門簾,還有日式的拉門,除此之外,沒有甚麼特別的地方。

  懷著忐忑不安的心情,我走進了店門。


[內心] 歇腳思考

  開始動筆後,忽然覺得寫這個主題實在是很麻煩,因為又要去翻以前的照片了XD,不過也正好藉這個機會整理改進一下自己應該要進步的部分。


2013年4月19日 星期五

[遊戲] WAR THUNDER


  WAR THUNDER(暫譯:戰爭雷霆)是一款主打擬真的二戰空戰遊戲,說起來飛行遊戲是很微妙的一個東西,

2013年4月18日 星期四

部落格開張

因為作業需要重新弄了一個部落格
說實在話好久沒用了
不過這個月就好好的來經營吧~

目前主要會分享遊戲,動畫還有一些攝影的相關資訊
不是很專業不過就這樣吧XD