Changeset 17629 for platform

Show
Ignore:
Timestamp:
08/15/08 00:38:33 (6 years ago)
Author:
kan
Message:

簡易テンプレートエンジン vc.kan.util.Templateを実装
フィードのHTML出力をテンプレートを使うようにした

Location:
platform/air/wasaco/src
Files:
3 added
1 modified

Legend:

Unmodified
Added
Removed
  • platform/air/wasaco/src/wasaco.mxml

    r16897 r17629  
    1010    <mx:Script> 
    1111    <![CDATA[ 
     12        import vc.kan.util.Template; 
    1213        import mx.events.CloseEvent; 
    1314        import flash.net.URLRequestDefaults; 
     
    2223        import vc.kan.data.DBObject; 
    2324            import mx.formatters.DateFormatter; 
     25             
     26            [Embed(source="assets/feed.tt", mimeType="application/octet-stream")] 
     27            private var feedTmpl:Class; 
    2428         
    2529        private const feedStyle:String = "<style>" + 
     
    261265                private function makeFeedHTML(feed_item:Object):String 
    262266                { 
     267                        var template:Template = new Template(); 
    263268                        var html:String = feedStyle; 
    264269                        var pattern:RegExp = /(?<!src=")https?:\/\/[-_.!~*'()\w;\/?:@&=+$,%#]+/g; 
     
    266271                        for (var j:int=0; j<20; j++) { 
    267272                                if (feed_item[j]) { 
    268                                         var reply:String = ""; 
     273                                        var vars:Object = feed_item[j]; 
    269274                                        if (feed_item[j].reply_message) { 
    270                                                 reply = "<a class=\"reply\" href=\"" + feed_item[j].reply_status_url + "\"> &gt;" +  
    271                                                                 feed_item[j].reply_message.replace(pattern, "[URL]") + " by " + 
    272                                                                 feed_item[j].reply_user_nick + "</a><br />"; 
     275                                                vars.reply_message = feed_item[j].reply_message.replace(pattern, "[URL]"); 
    273276                                        } 
    274                                         var image:String = ""; 
    275                                         if (feed_item[j].photo_url) { 
    276                                                 image = "<br /><img src=\"" + feed_item[j].photo_url + "\" width=\"100px\" />"; 
    277                                         } 
    278                                         var tmpl:XML = feedTemplate.copy(); 
    279                                         var text:String = feed_item[j].html; 
    280                                         tmpl.tr[0].td[0].a.img.@src = feed_item[j].user.profile_image_url; 
    281                                         tmpl.tr[0].td[0].a.@href = "http://wassr.jp/user/" + feed_item[j].user_login_id 
    282                                         try { 
    283                                                 tmpl.tr[0].td[1] = XML("<td class=\"text\">" + reply + text.replace(pattern, "<a href=\"$&\" target=\"_blank\">[URL]</a>") + image + "</td>"); 
    284                                         } catch (err:Error) { } 
    285                                         tmpl.tr[1].td.span[0] = XML("<span class=\"user\">by <a href=\"http://wassr.jp/user/" + feed_item[j].user_login_id + "\">" + feed_item[j].user.screen_name + "</a></span>"); 
     277                                        vars.html = feed_item[j].html.replace(pattern, "<a href=\"$&\" target=\"_blank\">[URL]</a>"); 
     278                                        vars.profile_url = feed_item[j].user.profile_image_url; 
     279                                        vars.user_screen_name = feed_item[j].user.screen_name; 
    286280                                        var fmt:DateFormatter = new DateFormatter(); 
    287281                                        fmt.formatString = "YYYY/MM/DD JJ:NN"; 
    288                                         tmpl.tr[1].td.span[1] = XML("<span class=\"time\">" + fmt.format(new Date(int(feed_item[j].epoch) * 1000)) + "</span>"); 
    289                                         tmpl.tr[1].td.a[0].img.@title = feed_item[j].rid; 
     282                                        vars.time = fmt.format(new Date(int(feed_item[j].epoch) * 1000)); 
    290283                                        if (feed_item[j].user.protected) { 
    291                                                 tmpl.tr[1].td.a[1].@href = "javascript:void(0)"; 
    292                                                 tmpl.tr[1].td.a[1].img.@src = "app:/assets/secret.png"; 
     284                                                vars.iine_icon = "app:/assets/secret.png"; 
    293285                                        } else { 
    294                                                 tmpl.tr[1].td.a[1].img.@title = feed_item[j].rid; 
    295286                                                if ( iine_map[feed_item[j].rid] == 1 ) { 
    296                                                         tmpl.tr[1].td.a[1].img.@src = "app:/assets/good.png"; 
     287                                                        vars.iine_icon = "app:/assets/good.png"; 
    297288                                                } else { 
    298                                                         tmpl.tr[1].td.a[1].img.@src = "app:/assets/normal.png"; 
     289                                                        vars.iine_icon = "app:/assets/normal.png"; 
    299290                                                } 
    300291                                        } 
    301                                         if (feed_item[j].photo_url) { 
    302                                                 tmpl.tr[1].td.a[2].@href = feed_item[j].photo_url; 
    303                                         } else { 
    304                                                 tmpl.tr[1].td.a[2].@style = "display:none"; 
    305                                         } 
    306                                         if (feed_item[j].areacode) { 
    307                                                 tmpl.tr[1].td.a[3].@href = "http://wassr.jp/area/code/" + feed_item[j].areacode; 
    308                                                 tmpl.tr[1].td.a[3].span = XML("<span class=\"area_name\">" + feed_item[j].areaname + "</span>"); 
    309                                         } else { 
    310                                                 tmpl.tr[1].td.a[3].@style = "display:none"; 
    311                                         } 
    312                                         if (feed_item[j].slurl) { 
    313                                                 tmpl.tr[1].td.a[4].@href = feed_item[j].slurl; 
    314                                         } else { 
    315                                                 tmpl.tr[1].td.a[4].@style = "display:none"; 
    316                                                 } 
    317                                                 trace(tmpl.toXMLString()); 
    318                                         html += tmpl.toXMLString(); 
    319                                 } 
    320                         } 
    321                          
     292                                        html += template.process(String(new feedTmpl()), vars); 
     293                                } 
     294                        } 
     295                        trace(html); 
    322296                        return html + "</table>"; 
    323297                }