\r\n \r\n \r\n\r\n\r\n\r\n","bodyAsHTML":"
\r\n                              | \r\n  +----------------------------------------------------------------------+ \r\n*/ \r\n     \r\n/* $Id: SofeeScriptDecoder.php,v 1.1 2005/06/14 06:30:14 wenlong Exp $ */ \r\n\r\n/** \r\n* Sofee Script Decoder class -    Decodes JScript/VBscript data encoded with the \r\n*                                MS ScriptEncoder in true crossbrowser manner. \r\n* \r\n* This script was influenced by the C version (scrdec1x.c) by Mr.Brownstone, \r\n* and is distributed under the terms of the BSD License. \r\n* \r\n* scrdec1x.c is copyright(c) Mr.Brownstone  \r\n* http://www.virtualconspiracy.com/scrdec.html \r\n* \r\n* @package        SofeeFramework \r\n* @access        public \r\n* @version        $Revision: 1.1 $ \r\n* @author        Justin Wu  \r\n* @homepage        http://www.sofee.cn \r\n* @copyright    Copyright (c) 2004-2005 Sofee Development Team.(http://www.sofee.cn) \r\n* @since        2005-06-14 \r\n*/ \r\n\r\ndefine('STATE_COPY_INPUT',        100); \r\ndefine('STATE_READLEN',            101); \r\ndefine('STATE_DECODE',            102); \r\ndefine('STATE_UNESCAPE',        103); \r\n\r\nclass SofeeScriptDecoder { \r\n    var $rawData = array ( \r\n        0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72, \r\n        0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C, \r\n        0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43, \r\n        0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63, \r\n        0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79, \r\n        0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B, \r\n        0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D, \r\n        0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F, \r\n        0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E, \r\n        0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77, \r\n        0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78, \r\n        0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67, \r\n        0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22, \r\n        0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A, \r\n        0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C, \r\n        0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25, \r\n        0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28, \r\n        0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36, \r\n        0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E, \r\n        0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09, \r\n        0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D, \r\n        0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37, \r\n        0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E, \r\n        0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F \r\n    ); \r\n\r\n    var $pick_encoding = array ( \r\n        1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0, \r\n        1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2, \r\n        1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2, \r\n        1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2 \r\n    ); \r\n\r\n    var $transformed = array(); \r\n\r\n    /** \r\n    * 说明 \r\n    * \r\n    * @access    private \r\n    * @var        string \r\n    */ \r\n    var $digits; \r\n\r\n     \r\n    /** \r\n    * Constructor \r\n    * \r\n    * @access        public \r\n    * @return        void     \r\n    */ \r\n    function SofeeScriptDecoder() { \r\n        $this->maketrans(); \r\n        $this->makedigits(); \r\n    } \r\n     \r\n    /** \r\n    * unescape a char \r\n    * \r\n    * @access        public \r\n    * @param        string        [$char] \r\n    * @return        string \r\n    */ \r\n    function unescape($char) { \r\n        $escapes = \"#&!*$\"; \r\n        $escaped = \"\\r\\n<>@\"; \r\n        $i = 0; \r\n\r\n        if (ord($char) > 126) { \r\n            return $char; \r\n        } \r\n         \r\n        while ($escapes[$i]) { \r\n            if ($escapes[$i] == $char) \r\n                return $escaped[$i]; \r\n            $i++; \r\n        } \r\n        return '?'; \r\n    } \r\n     \r\n    /** \r\n    * pre-building the char-matrix \r\n    * \r\n    * @access        public \r\n    * @return        void     \r\n    */ \r\n    function maketrans() { \r\n        for ($i=0; $i<3; $i++) { \r\n            $this->transformed[$i] = array(); \r\n        } \r\n\r\n        for ($i=31; $i<=126; $i++) { \r\n            for ($j=0; $j<3; $j++) { \r\n                $this->transformed[$j][$this->rawData[($i-31)*3 + $j]] = ($i==31) ? 9 : $i; \r\n            } \r\n        } \r\n    } \r\n     \r\n    /** \r\n    * pre-building the char-matrix \r\n    * \r\n    * @access        public \r\n    * @return        void     \r\n    */ \r\n    function makedigits() { \r\n        for ($i=0; $i<26; $i++) { \r\n            $this->digits[ord('A')+$i] = $i; \r\n            $this->digits[ord('a')+$i] = $i+26; \r\n        } \r\n        for ($i=0; $i<10; $i++) { \r\n            $this->digits[ord('0')+$i] = $i+52; \r\n        } \r\n        $this->digits[0x2b] = 62; \r\n        $this->digits[0x2f] = 63; \r\n    } \r\n     \r\n    /** \r\n    * decode string length \r\n    * \r\n    * @access        public \r\n    * @param        string        [$str] \r\n    * @return        integer \r\n    */ \r\n    function decodeBase64($str) { \r\n        $val = 0; \r\n        $val += ($this->digits[ord($str[0])] << 2); \r\n        $val += ($this->digits[ord($str[1])] >> 4); \r\n        $val += ($this->digits[ord($str[1])] & 0xf) << 12; \r\n        $val += (($this->digits[ord($str[2])] >> 2) << 8); \r\n        $val += (($this->digits[ord($str[2])] & 0x3) << 22); \r\n        $val += ($this->digits[ord($str[3])] << 16); \r\n        return $val; \r\n    } \r\n\r\n    /** \r\n    * Decodes JScript/VBscript data encoded with the MS ScriptEncoder in true crossbrowser manner. \r\n    * \r\n    * @access        public \r\n    * @param        string        [$str] \r\n    * @return        string     \r\n    */ \r\n    function decode($str) { \r\n        $marker = \"#@~^\"; \r\n        $strIdx = 0; \r\n        $scrIdx = 0; \r\n        $decIdx = 0; \r\n        $char = null; \r\n        $strLen = $scrLen = 0; \r\n        $state = STATE_COPY_INPUT; \r\n        $ret = \"\"; \r\n\r\n        while ($state) { \r\n            switch ($state) { \r\n                case STATE_COPY_INPUT : \r\n                    $scrIdx = strpos($str, $marker, $strIdx); \r\n                    if ($scrIdx !== false) { \r\n                        $ret .= substr($str, $strIdx, $scrIdx); \r\n                        $scrIdx += strlen($marker); \r\n                        $state = STATE_READLEN; \r\n                    } else { \r\n                        $strIdx = $strIdx==0 ? 0 : $strIdx; \r\n                        $ret .= substr($str, $strIdx, strlen($str)); \r\n                        $state = 0; \r\n                    } \r\n                    break; \r\n                         \r\n                case STATE_READLEN : \r\n                    $strLen = substr($str, $scrIdx, 6); \r\n                    $scrLen = $this->decodeBase64($strLen); \r\n                    $scrIdx += (6 + strlen(\"==\")); \r\n                    $state = STATE_DECODE; \r\n                    break; \r\n                 \r\n                case STATE_DECODE : \r\n                    if (!$scrLen) { \r\n                        $strIdx = $scrIdx + strlen(\"DQgAAA==^#~@\"); \r\n                        $decIdx = 0; \r\n                        $state = STATE_COPY_INPUT; \r\n                        break; \r\n                    } \r\n                    $char = substr($str, $scrIdx, 1); \r\n                    if ($char == \"@\") { \r\n                        $state = STATE_UNESCAPE; \r\n                    } else { \r\n                        if (ord($char[0]) < 0x80) { \r\n                            $ret .= chr($this->transformed[$this->pick_encoding[$decIdx%64]][ord($char)]); \r\n                            $decIdx++; \r\n                        } else { \r\n                            $ret .= $char; \r\n                            if ( \r\n                                (ord($char) > 0xa0) && (ord($char) < 0xff)    // 936 - Simplified Chinese GBK    -    0xa1-0xfe \r\n                                || (ord($char) > 0x80) && (ord($char) < 0xff)    // 950 - Traditional Chinese Big5    -    0x81-0xfe \r\n                            ) { \r\n                                $scrIdx++; \r\n                                $scrLen--; \r\n                                $ret .= substr($str, $scrIdx, 1); \r\n                            } \r\n                        } \r\n                        $scrIdx++; \r\n                        $scrLen--; \r\n                        break; \r\n                    } \r\n                     \r\n                case STATE_UNESCAPE: \r\n                    $ret .= $this->unescape(substr($str, ++$scrIdx, 1)); \r\n                    $scrIdx++; \r\n                    $scrLen -= 2; \r\n                    $decIdx++; \r\n                    $state = STATE_DECODE; \r\n                    break; \r\n            } \r\n        } \r\n        return ($ret); \r\n    } \r\n} \r\n?> \r\n\r\n调用方法:\r\ndecode($str); \r\n?> \r\n\r\ntest.txt文件内容:\r\n#@~^8wIAAA==@!4Yh^@*@#@&@!DkDs+@*nunUlsG RmKh@!JYkDsn@*@#@&@!4GNz@*@#@&@!/1.kaY~smxo;CT+xJNC7ld1DbwYr@*@#@&0!x^YbWU~T+YohV}4L^O`*PP@#@&d-CMPG4N~',x;s^i@#@&7DDzPP@#@&d7K4NP',xAPzmOk7+p6(L+1O`rH/Xhs c(tSuKPKr#I@#@&78,mCO1t`nb, @#@&i7DDz, @#@&didK8L,'~xh~)1Yk7n(}4L^O`rHbm.WdG6Y (tJC:KKE*i@#@&7i8~mmO1tcKm*P @#@&i7db0~`DX2nK0Po\\S_YYa]n;!+kY~\"x~rEUNWk +[E,#P`@#@&d7diG(L~{P +h,(tJCDY2I;;nkY`*I@#@&ddiN@#@&id)@#@&dN@#@&d.+D;D PG8Ni@#@&N@#@&@#@&6; mObW PoY}8LmO`bNb~P@#@&ir0,`NK^;:xDRL+O3^+h+ OAHq[b, @#@&7iDnY!. P[Km!:+ YcL+D2s+s+UO~Xq9ck9#i@#@&78,+^/nPrW,`[W1;:xO mVVb~P@#@&di.Y;Mx,NW1EsnxDRCV^$r[Yi@#@&78,+Vkn~k6PvNGm;hxOR^CXDdb, @#@&7iDnY!. P[Km!:+ YcslH+./]k[Dp@#@&iN@#@&8@#@&@#@&l^+MYcB n^mG:~YKPKuh?lsG R^WsZE#I@#@&@!z/1Db2Y@*@#@&@!J4G[H@*@#@&@!z4Y:^@*Hs8AAA==^#~@\r\n\r\n\r\n\r\n解密结果:\r\n \r\nPHPSalon.com \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n
","author":{"id":1018055,"username":"Snippets_User","realname":null,"emailHash":"7c2a6e78db5bc42c725740ccc54d15b6","avatar":"https://secure.gravatar.com/avatar/7c2a6e78db5bc42c725740ccc54d15b6?d=identicon&r=PG","reputation":0},"activeRevisionId":982514,"revisionIds":[982514],"lastActiveUserId":1018055,"lastActiveDate":1144618529000,"parentId":null,"parentAuthor":null,"originalParentId":null,"childrenIds":[],"commentIds":[],"marked":true,"topics":[],"primaryContainerId":8,"containerIds":[],"plug":"php-javascript-class-encode","wiki":false,"score":0,"depth":0},"enableThreadedComments":true,"contentType":"article"}],"loadedStyles":[["/lib/bootstrap/bootstrap.less","/lib/font-awesome/font-awesome.less","/lib/fontello/css/fontello.css","/lib/fontello/css/animation.css","/lib/angular-ui/select.css","/lib/ngDialog/css/ngDialog.css","/less/ngDialog-theme.less","/lib/bootstrap-switch/bootstrap-switch.css","/less/dzone20.less","/less/fonts.less","/less/directives.less","/lib/slick/slick.css","/lib/bootstrap-slider/bootstrap-slider.css","/less/layout.less","/widgets/article/content/article-content.less","/widgets/article/infoBar/widget.less","/widgets/components/slider/widget.less","/widgets/content/commentsSlider/widget.less","/widgets/header/blackBar/widget.less","/widgets/header/main/header-common.less","/widgets/header/main/widget.less","/widgets/sidebar/content/list/list.less","/widgets/sidebar/tapBar/sidebar-list.less","/widgets/sidebar/tapBar/widget.less","/widgets/users/UserHomeMiniProfile/widget.less"]],"loadedScripts":[["/lib/jquery/jquery.js","/lib/lodash/lodash.js","/lib/moment/moment.js","/scripts/utils.js","/lib/angular/angular.js","/lib/angular/angular-sanitize.js","/lib/local-storage/angular-local-storage.js","/lib/bootstrap/bootstrap.js","/lib/angular-ui/bootstrap.js","/lib/angular-ui/select.js","/lib/bootstrap-switch/bootstrap-switch.js","/lib/ngDialog/js/ngDialog.js","/lib/angular-moment/angular-moment.js","/scripts/app.js","/scripts/socket.js","/scripts/services.js","/scripts/ui-services.js","/scripts/directives.js","/scripts/filters.js","/lib/angular-touch/angular-touch.min.js","/lib/elastic/elastic.js","/lib/ng-file-upload/angular-file-upload-all.js","/lib/angular-deckgrid/angular-deckgrid.js","/scripts/dzone.js","/scripts/ads.js","/scripts/head.js","/scripts/links.js","/scripts/utilities/directives.js","/scripts/utilities/services.js","/scripts/utilities/image-editor.js","/lib/bootstrap-slider/bootstrap-slider.js","/lib/bootstrap-slider/directive.js","/lib/angular-draganddrop/draganddrop.js","/widgets/article/content/utils.js","/widgets/article/infoBar/services.js","/widgets/components/slider/service.js","/widgets/header/main/angulartics-ga.js","/widgets/header/main/angulartics.js","/widgets/header/main/resize.js","/widgets/sidebar/content/list/service.js","/widgets/sidebar/tapBar/directive.js","/widgets/sidebar/tapBar/service.js"]],"TH_CSRF":"-3719317579063986955","botInfo":[{"isRenderBot":false}],"request":[{"site":{"id":7,"title":"DZone: Programming & DevOps news, tutorials & tools","keywords":"programming, software development, devops, java, agile, web, iot, database, mobile, big data, cloud","description":"Programming, Web Development, and DevOps news, tutorials and tools for beginners to experts. Hundreds of free publications, over 1M members, totally free.","name":"DZone.com"},"dev":false,"cdn":["dz2cdn1.dzone.com","dz2cdn2.dzone.com","dz2cdn3.dzone.com","dz2cdn4.dzone.com"],"theme":"dz20","context":"","user":{"id":2500002,"authenticated":false,"name":"Anonymous","realName":null,"avatar":"https://secure.gravatar.com/avatar/?d=identicon&r=PG","profile":"/users/2500002/anon-user.html"}}],"portals":[[{"topic":8,"id":2,"shortTitle":"agile-methodology-training-tools-news","color":"red","name":"Agile","code":"agile","url":"/agile-methodology-training-tools-news"},{"topic":6129,"id":3,"shortTitle":"big-data-analytics-tutorials-tools-news","color":"green","name":"Big Data","code":"big-data","url":"/big-data-analytics-tutorials-tools-news"},{"topic":30,"id":4,"shortTitle":"cloud-computing-tutorials-tools-news","color":"orange","name":"Cloud","code":"cloud","url":"/cloud-computing-tutorials-tools-news"},{"topic":59,"id":5,"shortTitle":"database-sql-nosql-tutorials-tools-news","color":"purple","name":"Database","code":"database","url":"/database-sql-nosql-tutorials-tools-news"},{"topic":31,"id":6,"shortTitle":"devops-tutorials-tools-news","color":"yellow","name":"DevOps","code":"devops","url":"/devops-tutorials-tools-news"},{"topic":1138,"id":7,"shortTitle":"enterprise-integration-training-tools-news","color":"green","name":"Integration","code":"integration","url":"/enterprise-integration-training-tools-news"},{"topic":48,"id":8,"shortTitle":"iot-developer-tutorials-tools-news-reviews","color":"orange","name":"IoT","code":"iot","url":"/iot-developer-tutorials-tools-news-reviews"},{"topic":1,"id":1,"shortTitle":"java-jdk-development-tutorials-tools-news","color":"purple","name":"Java","code":"java","url":"/java-jdk-development-tutorials-tools-news"},{"topic":29,"id":9,"shortTitle":"mobile-app-developer-tutorials-tools-news","color":"yellow","name":"Mobile","code":"mobile","url":"/mobile-app-developer-tutorials-tools-news"},{"topic":653,"id":10,"shortTitle":"apm-tools-performance-monitoring-optimization","color":"red","name":"Performance","code":"performance","url":"/apm-tools-performance-monitoring-optimization"},{"topic":35,"id":11,"shortTitle":"web-development-programming-tutorials-tools-news","color":"orange","name":"Web Dev","code":"webdev","url":"/web-development-programming-tutorials-tools-news"}]],"matchedUrl":{"name":"dzone:articles:view","mapping":"/articles/**","mappingPatterns":{}},"requiresModule":["angulartics","angulartics.google.analytics","dndLists","generalDirectives","monospaced.elastic","angularFileUpload","akoenig.deckgrid","ui.bootstrap-slider","ngSanitize","ui.select","ui.bootstrap","angularMoment","ngTouch","ngDialog","LocalStorageModule"]}; } catch(e) { console.error(e); }
4
Notification
  • Adam Van Grack started following you

  • Jessica Conaghan, Gumption Scott and 6 commented on a link you posted

    T-Mobile Unvells Cheaper, More Basic 'Simple Prepaid' Phone Plans

  • Jessica Conaghan replied on a comment you posted

    CSS counters are one of those "oh neat, didn't know CSS could do that" features with a lot of Xubuntu 14.10 Utopic Unicorn is the latest release of xubuntu based on Ubuntu 14.10

  • Jessica Conaghan started following you

See All
POWERED BY DZone TeamHub
\r\n \r\n \r\n\r\n\r\n\r\n","source":null,"views":7,"articleDate":1144618529000,"tldr":null,"originalSource":"","published":true,"nComments":0,"articleType":"snippet"}]; WMODEL_DATA.perms = {"canDecidePick":false,"canPublish":false}; WMODEL_DATA.isPreview = false; WMODEL_DATA.OPTIONS = {}; TH.installWidgetController('article.content', 'articleContent7', WMODEL_DATA, typeof controller == 'function' ? controller : null, [{name: 'partners', data: true},{name: 'DEFAULT', data: true}], ' oUhbblYOaqbcblYOaqbcC', null); })(); (function() { function controller($scope, $service, $location, SideBarService, TH$Request) { SideBarService.ctx.pageSize = $scope.pageSize; SideBarService.ctx.isPreview = $scope.isPreview; SideBarService.ctx.mode = $scope.mode; SideBarService.fn.loader = $service; SideBarService.fn.scrollCheck = function() { $scope.$emit('thIfScrollCheck'); }; var currentFilter; $scope.$on('$locationChangeSuccess', function() { if (!$location.search().filter) { $scope.filter = 'latest'; } else { $scope.filter = $location.search().filter; if ($scope.filter == 'latest') { $location.search('filter', null); } } if (currentFilter == $scope.filter) { return; } currentFilter = $scope.filter; SideBarService.ctx.filter = $scope.filter; }); $scope.display = SideBarService.getList(); $scope.$watchCollection(function() { return SideBarService.getList(); }, function (n) { $scope.display = n; }); $scope.isActive = SideBarService.isActive; $scope.isExcluded = SideBarService.isExcluded; $scope.loadMore = SideBarService.load; $scope.loading = function() { return SideBarService.ctx.loading; } } var WMODEL_DATA = {}; WMODEL_DATA.pageSize = 20; WMODEL_DATA.isPreview = false; WMODEL_DATA.OPTIONS = {}; WMODEL_DATA.mode = null; TH.installWidgetController('sidebar.content.list', 'sidebarContentList10', WMODEL_DATA, typeof controller == 'function' ? controller : null, [{name: 'DEFAULT', data: true}], ' oUhbkSMaaqbcdvVkcC', null); })(); (function() { var WMODEL_DATA = {}; WMODEL_DATA.OPTIONS = {}; TH.installWidgetController('sidebar.tapBar', 'sidebar', WMODEL_DATA, typeof controller == 'function' ? controller : null, null, ' oUhbkSMadabfWVcC oUhbkSMadabbWQbVkcC', null); })(); (function() { function controller($scope, shareThis, TH$Dialog, TH$Service) { $scope.getEditUrl = function(id, type) { if (!type || type == 'article') { return '/content/' + id + '/edit.html'; } else { return '/dzone/staff/' + type + (type == 'refcard' ? 'z' : 's') + '/' + id + '/edit.html'; } } $scope.share = function(socialNet, url, title){ shareThis.shareThis(socialNet, url, title); }; $scope.canDelete = function(article) { return article.canDelete; } $scope.edit = function(link) { TH$Dialog.open({ loadWidget: 'links.postPreview', widgetArgs: { edit: link.id }, size: 'xbig' }).then(function (result) { $scope.link.title = result.title; $scope.link.linkDescription = result.content; $scope.link.thumb = result.thumb; $scope.link.tags = result.topics; }); }; $scope.deleteLink = function(article) { var title = article.title; var type = 'link'; if(article.header){ title = (article.header.type == 'article') ? article.header.title : article.title; type = (article.header.type == 'article') ? 'article' : 'link'; } TH$Dialog.confirm('Do you want to delete "' + title + '"?').then(function() { return TH$Service.action('delete', {type: type, id: article.id}); }).then(function() { article.deleted = true; }); }; } var WMODEL_DATA = {}; WMODEL_DATA.OPTIONS = {}; TH.installWidgetController('content.commentsSlider', 'contentCommentsSlider9', WMODEL_DATA, typeof controller == 'function' ? controller : null, null, ' oUhbaqbcaibvnWffWVcC', null); })(); (function() { var WMODEL_DATA = {}; WMODEL_DATA.name = "commentsSlider"; WMODEL_DATA.slot = null; WMODEL_DATA.OPTIONS = {"name":"commentsSlider"}; TH.installWidgetController('components.slider', 'componentsSlider8', WMODEL_DATA, typeof controller == 'function' ? controller : null, null, ' oUhballbvbdSaoUhM', null); })();