index.html 11.7 KB
<php>function _get_system_widget($name){</php>
<switch name="name">
    <case value="CmfHub">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">交流方式</h3>
            </div>
            <div class="panel-body home-info">
                <ul class="list-unstyled">
                    <li>
                        <em>官网</em> <span><a href="http://www.thinkcmf.com" target="_blank">www.thinkcmf.com</a></span>
                    </li>
                    <li><em>QQ 群</em> <span>100828313,316669417</span></li>
                    <li><em>联系邮箱</em> <span>catman@thinkcmf.com</span></li>
                </ul>
            </div>
        </div>
    </case>
    <case value="MainContributors">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">主要贡献者</h3>
            </div>
            <div class="panel-body home-info">
                <ul class="list-inline">
                    <li>老猫</li>
                    <li>Sam</li>
                    <li>Tuolaji</li>
                    <li>睡不醒的猪</li>
                    <li>小夏</li>
                    <li>Powerless</li>
                    <li>WelKinVan</li>
                    <li>Kane</li>
                    <li>iYting</li>
                    <li>pl125</li>
                    <li>五五</li>
                </ul>
            </div>
        </div>
    </case>
    <case value="Contributors">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title">贡献者</h3>
            </div>
            <div class="panel-body home-info">
                <ul class="list-inline">
                    <li>Kin Ho</li>
                    <li><a href="http://wzx.thinkcmf.com" target="_blank">Powerless</a></li>
                    <li>Jess</li>
                    <li>木兰情</li>
                    <li><a href="http://www.91freeweb.com/" target="_blank">Labulaka</a></li>
                    <li><a href="http://www.syousoft.com/" target="_blank">WelKinVan</a></li>
                    <li><a href="http://blog.sina.com.cn/u/1918098881" target="_blank">Jeson</a></li>
                    <li>Yim</li>
                    <li><a href="http://www.jamlee.cn/" target="_blank">Jamlee</a></li>
                    <li><a>香香咸蛋黄</a></li>
                    <li><a href="http://www.xdmeng.cn" target="_blank">小凯</a></li>
                    <li><a href="https://www.devmsg.com" target="_blank">Co</a></li>
                    <li>Rainfer</li>
                    <li><a href="http://www.yaoweixiu.cn/" target="_blank">Kane</a></li>
                    <li><a href="http://www.wuwenfu.cn/" target="_blank">北岸的云</a></li>
                    <li>pl125</li>
                    <li><a href="http://www.wuwuseo.com/" target="_blank">五五</a></li>
                </ul>
            </div>
        </div>
    </case>
</switch>
<php>}</php>

<include file="public@header"/>
<style>
    .home-info li em {
        float: left;
        width: 120px;
        font-style: normal;
        font-weight: bold;
    }

    .home-info ul {
        padding: 0;
        margin: 0;
    }

    .panel {
        margin-bottom: 0;
    }

    .grid-sizer {
        width: 10%;
    }

    .grid-item {
        margin-bottom: 5px;
        padding: 5px;
    }

    .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
        padding-left: 5px;
        padding-right: 5px;
        float: none;
    }

</style>
<hook name="admin_before_head_end"/>
</head>
<body>
<div class="wrap">
    <empty name="has_smtp_setting">
        <div class="grid-item col-md-12">
            <div class="alert alert-danger alert-dismissible fade in" role="alert" style="margin-bottom: 0;">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
                <strong>提示!</strong> 邮箱配置未完成,无法进行邮件发送!
                <a href="#" data-dismiss="alert" aria-label="Close"
                   onclick="parent.openapp('{:url('Mailer/index')}','admin_mailer_index','邮箱配置');">现在设置</a>
            </div>
        </div>
    </empty>

    <if condition="!extension_loaded('fileinfo')">
        <div class="grid-item col-md-12">
            <div class="alert alert-danger alert-dismissible fade in" role="alert" style="margin-bottom: 0;">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
                <strong>提示!</strong> php_fileinfo扩展没有开启,无法正常上传文件!
            </div>
        </div>
    </if>

    <div class="grid-item col-md-12" id="thinkcmf-notices-grid" style="display:none;">
        <div class="dashboard-box">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">{:lang('SYSTEM_NOTIFICATIONS')}</h3>
                </div>
                <div class="panel-body home-info">
                    <ul id="thinkcmf-notices" class="list-unstyled">
                        <li>
                            <img src="__TMPL__/public/assets/images/loading.gif" style="vertical-align: middle;"/>
                            <span style="display: inline-block; vertical-align: middle;">加载中...</span>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

    <div class="home-grid">
        <!-- width of .grid-sizer used for columnWidth -->
        <div class="grid-sizer"></div>
        <foreach name="dashboard_widgets" item="vo">
            <if condition="$vo.is_system">
                <div class="grid-item col-md-12" data-system="1" data-widget="{$vo.name}">
                    <div class="dashboard-box">{:_get_system_widget($vo.name)}</div>
                </div>
                <else/>
                <present name="dashboard_widget_plugins[$vo['name']]">
                    <div class="grid-item col-md-{$dashboard_widget_plugins[$vo['name']]['width']}" data-system="0"
                         data-widget="{$vo.name}">
                        <div class="dashboard-box">{$dashboard_widget_plugins[$vo.name]['view']}</div>
                    </div>
                </present>

            </if>

        </foreach>
    </div>
</div>
<script src="__STATIC__/js/admin.js"></script>
<php>
    $lang_set=defined('LANG_SET')?LANG_SET:'';
    $thinkcmf_version=defined('THINKCMF_VERSION')?THINKCMF_VERSION:'';
</php>
<script>

    Wind.css('dragula');
    Wind.use('masonry', 'imagesloaded', 'dragula', function () {
        var $homeGrid = $('.home-grid').masonry({
            // set itemSelector so .grid-sizer is not used in layout
            itemSelector: '.grid-item',
            // use element for option
            columnWidth: '.grid-sizer',
            percentPosition: true,
            horizontalOrder: false,
            transitionDuration: 0
        });

        $homeGrid.masonry('on', 'layoutComplete', function (event, laidOutItems) {
        });


        $homeGrid.masonry();

        var containers = [];
        $('.home-grid .grid-item').each(function () {
            containers.push(this);
        });
        dragula(containers, {
            isContainer: function (el) {
                return false; // only elements in drake.containers will be taken into account
            },
            moves: function (el, source, handle, sibling) {
                return true; // elements are always draggable by default
            },
            accepts: function (el, target, source, sibling) {
                return true; // elements can be dropped in any of the `containers` by default
            },
            invalid: function (el, handle) {
                return false; // don't prevent any drags from initiating by default
            },
            direction: 'vertical',             // Y axis is considered when determining where an element would be dropped
            copy: false,                       // elements are moved by default, not copied
            copySortSource: false,             // elements in copy-source containers can be reordered
            revertOnSpill: false,              // spilling will put the element back where it was dragged from, if this is true
            removeOnSpill: false,              // spilling will `.remove` the element, if this is true
            mirrorContainer: document.body,    // set the element that gets mirror elements appended
            ignoreInputTextSelection: true     // allows users to select input text, see details below
        }).on('drop', function (el, target, source, sibling) {
            var $target          = $(target);
            var targetClasses    = $target.attr('class');
            var targetDataWidget = $target.data('widget');
            var targetDataSystem = $target.data('system');
            var $source          = $(source);
            var sourceClasses    = $source.attr('class');
            var sourceDataWidget = $source.data('widget');
            var sourceDataSystem = $source.data('system');
            $(source).append($(target).find('.dashboard-box').not('.gu-transit'));
            $(target).append(el);
            $target.attr('class', sourceClasses);
            $target.data('widget', sourceDataWidget);
            $target.data('system', sourceDataSystem);

            $source.attr('class', targetClasses);
            $source.data('widget', targetDataWidget);
            $source.data('system', targetDataSystem);
            $homeGrid.masonry();

            _widgetSort();
        }).on('shadow', function (el, container, source) {
            $homeGrid.masonry();
        });


    });

    function _widgetSort() {

        var widgets = [];
        $('.home-grid .grid-item').each(function () {
            var $this = $(this);

            widgets.push({
                name: $this.data('widget'),
                is_system: $this.data('system')
            });
        });

        $.ajax({
            url: "{:url('main/dashboardWidget')}",
            type: 'post',
            dataType: 'json',
            data: {widgets: widgets},
            success: function (data) {

            },
            error: function () {

            },
            complete: function () {

            }
        });
    }

    //获取官方通知
    $.getJSON("//www.thinkcmf.com/service/sms_jsonp.php?lang={$lang_set}&v={$thinkcmf_version}&callback=?",
        function (data) {
            var tpl      = '<li><em class="title"></em><span class="content"></span></li>';
            var $notices = $("#thinkcmf-notices");
            $notices.empty();
            if (data.length > 0) {
                $('#thinkcmf-notices-grid').show();
                $.each(data, function (i, n) {
                    var $tpl = $(tpl);
                    $(".title", $tpl).html(n.title);
                    $(".content", $tpl).html(n.content);
                    $notices.append($tpl);
                });
            } else {
                $notices.append("<li>^_^,{:lang('NO_NOTICE')}~~</li>");
            }

        });
</script>
<hook name="admin_before_body_end"/>
</body>
</html>