├── resources ├── css │ └── app.css ├── js │ ├── app.js │ └── bootstrap.js ├── views │ ├── errors │ │ ├── 404.blade.php │ │ ├── 401.blade.php │ │ ├── 419.blade.php │ │ ├── 500.blade.php │ │ ├── 429.blade.php │ │ ├── 503.blade.php │ │ └── 403.blade.php │ ├── dashboard │ │ ├── iframes │ │ │ └── iframe.blade.php │ │ ├── visitor-logs │ │ │ └── date.blade.php │ │ └── layouts │ │ │ └── utils │ │ │ └── _table-sort-th.blade.php │ ├── common │ │ ├── users │ │ │ ├── _items-comment-card.blade.php │ │ │ └── _item-comment-card.blade.php │ │ ├── _google-analytics.blade.php │ │ └── _up-thumbs-card.blade.php │ └── vendor │ │ ├── flash │ │ ├── modal.blade.php │ │ └── message.blade.php │ │ └── pagination │ │ └── simple-default.blade.php └── lang │ └── zh_CN │ ├── pagination.php │ ├── validation-nova-inline.php │ ├── validation-nova.php │ ├── auth.php │ └── passwords.php ├── tests ├── Unit │ └── .gitkeep ├── TestCase.php ├── CreatesApplication.php └── Feature │ └── ApiOfUserTest.php ├── storage ├── logs │ ├── wechat │ │ └── .gitkeep │ ├── heycommunity │ │ └── .gitkeep │ └── .gitignore ├── app │ ├── uploads │ │ └── users │ │ │ └── avatars │ │ │ └── .gitkeep │ ├── public │ │ └── .gitignore │ └── .gitignore ├── debugbar │ └── .gitignore └── framework │ ├── testing │ └── .gitignore │ ├── views │ └── .gitignore │ ├── cache │ ├── data │ │ └── .gitignore │ └── .gitignore │ ├── sessions │ └── .gitignore │ └── .gitignore ├── Modules ├── Activity │ ├── Console │ │ └── .gitkeep │ ├── Tests │ │ └── Unit │ │ │ └── .gitkeep │ ├── Http │ │ ├── Middleware │ │ │ └── .gitkeep │ │ ├── Requests │ │ │ └── .gitkeep │ │ └── Controllers │ │ │ ├── Controller.php │ │ │ └── Web │ │ │ └── ActivityController.php │ ├── Resources │ │ ├── assets │ │ │ ├── js │ │ │ │ └── app.js │ │ │ └── sass │ │ │ │ └── app.scss │ │ ├── lang │ │ │ └── .gitkeep │ │ └── views │ │ │ ├── common │ │ │ ├── _activity-lite-card.blade.php │ │ │ └── _activity-profile.blade.php │ │ │ └── web │ │ │ └── index.blade.php │ ├── Config │ │ └── config.php │ ├── Routes │ │ ├── web.php │ │ ├── api.php │ │ └── dashboard.php │ ├── module.json │ ├── Entities │ │ └── ActivityMember.php │ ├── composer.json │ ├── webpack.mix.js │ ├── Database │ │ └── factories │ │ │ └── ActivityMemberFactory.php │ └── package.json ├── Article │ ├── Console │ │ └── .gitkeep │ ├── Http │ │ ├── Requests │ │ │ └── .gitkeep │ │ ├── Middleware │ │ │ └── .gitkeep │ │ └── Controllers │ │ │ ├── Controller.php │ │ │ └── Web │ │ │ └── ArticleController.php │ ├── Tests │ │ └── Unit │ │ │ └── .gitkeep │ ├── Resources │ │ ├── assets │ │ │ ├── js │ │ │ │ └── app.js │ │ │ └── sass │ │ │ │ └── app.scss │ │ ├── lang │ │ │ └── .gitkeep │ │ └── views │ │ │ ├── web │ │ │ └── _list-group-item-article-card.blade.php │ │ │ └── common │ │ │ └── _article-profile.blade.php │ ├── Config │ │ └── config.php │ ├── Entities │ │ ├── ArticleTagMap.php │ │ ├── ArticleCategoryMap.php │ │ ├── ArticleTag.php │ │ └── ArticleCategory.php │ ├── Routes │ │ ├── web.php │ │ └── api.php │ ├── module.json │ ├── composer.json │ ├── webpack.mix.js │ ├── package.json │ └── Database │ │ └── Migrations │ │ └── 2021_12_20_211845_create_article_tags_table.php └── Post │ ├── Console │ └── .gitkeep │ ├── Tests │ ├── Unit │ │ └── .gitkeep │ └── Feature │ │ └── PostWebTest.php │ ├── Http │ ├── Middleware │ │ └── .gitkeep │ ├── Requests │ │ └── .gitkeep │ └── Controllers │ │ ├── Controller.php │ │ └── Web │ │ └── PostController.php │ ├── Resources │ ├── lang │ │ └── .gitkeep │ ├── assets │ │ ├── js │ │ │ └── app.js │ │ └── sass │ │ │ └── app.scss │ └── views │ │ ├── common │ │ └── _post-list.blade.php │ │ └── web │ │ └── show.blade.php │ ├── Config │ └── config.php │ ├── Routes │ ├── web.php │ ├── dashboard.php │ └── api.php │ ├── module.json │ ├── composer.json │ ├── Entities │ ├── PostImage.php │ └── PostVideo.php │ ├── webpack.mix.js │ ├── Database │ └── factories │ │ ├── PostImageFactory.php │ │ └── PostFactory.php │ └── package.json ├── bootstrap └── cache │ └── .gitignore ├── database ├── .gitignore ├── seeders │ ├── FeedSeeder.php │ └── UserSeeder.php ├── migrations │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ ├── 2019_08_18_000000_create_jobs_table.php │ └── 2019_12_14_000001_create_personal_access_tokens_table.php └── factories │ └── Common │ └── CommentFactory.php ├── public ├── robots.txt ├── favicon.ico ├── images │ ├── wxapp │ │ └── banners │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ └── 3.png │ ├── heycommunity │ │ └── logo.png │ └── users │ │ ├── default-cover.jpg │ │ ├── profile-wave.gif │ │ └── default-avatar.jpg ├── assets │ └── dashkit │ │ ├── img │ │ ├── figma.jpg │ │ ├── files │ │ │ ├── file-1.jpg │ │ │ ├── file-2.jpg │ │ │ ├── file-3.jpg │ │ │ └── file-4.jpg │ │ ├── posts │ │ │ └── post-1.jpg │ │ ├── covers │ │ │ ├── team-cover.jpg │ │ │ ├── header-cover.jpg │ │ │ ├── auth-side-cover.jpg │ │ │ ├── profile-cover-1.jpg │ │ │ ├── profile-cover-2.jpg │ │ │ ├── profile-cover-3.jpg │ │ │ ├── profile-cover-4.jpg │ │ │ ├── profile-cover-5.jpg │ │ │ ├── profile-cover-6.jpg │ │ │ ├── profile-cover-7.jpg │ │ │ └── sidebar-cover.jpg │ │ ├── kanban │ │ │ ├── kanban-1.jpg │ │ │ └── kanban-2.jpg │ │ ├── avatars │ │ │ ├── products │ │ │ │ ├── product-1.jpg │ │ │ │ ├── product-2.jpg │ │ │ │ ├── product-3.jpg │ │ │ │ └── product-4.jpg │ │ │ ├── profiles │ │ │ │ ├── avatar-1.jpg │ │ │ │ ├── avatar-2.jpg │ │ │ │ ├── avatar-3.jpg │ │ │ │ ├── avatar-4.jpg │ │ │ │ ├── avatar-5.jpg │ │ │ │ ├── avatar-6.jpg │ │ │ │ ├── avatar-7.jpg │ │ │ │ └── avatar-8.jpg │ │ │ ├── projects │ │ │ │ ├── project-1.jpg │ │ │ │ ├── project-2.jpg │ │ │ │ ├── project-3.jpg │ │ │ │ ├── project-4.jpg │ │ │ │ ├── project-5.jpg │ │ │ │ └── project-6.jpg │ │ │ └── teams │ │ │ │ ├── team-logo-1.jpg │ │ │ │ ├── team-logo-2.jpg │ │ │ │ ├── team-logo-3.jpg │ │ │ │ ├── team-logo-4.jpg │ │ │ │ ├── team-logo-5.jpg │ │ │ │ ├── team-logo-6.jpg │ │ │ │ ├── team-logo-7.jpg │ │ │ │ └── team-logo-8.jpg │ │ ├── masks │ │ │ ├── icon-status.svg │ │ │ ├── avatar-group.svg │ │ │ ├── avatar-status.svg │ │ │ ├── avatar-group-hover-last.svg │ │ │ └── avatar-group-hover.svg │ │ └── logo.svg │ │ ├── favicon │ │ └── favicon.ico │ │ └── fonts │ │ ├── feather │ │ ├── Feather144f.ttf │ │ └── Feather144f.woff │ │ └── cerebrisans │ │ ├── cerebrisans-medium.eot │ │ ├── cerebrisans-medium.ttf │ │ ├── cerebrisans-medium.woff │ │ ├── cerebrisans-regular.eot │ │ ├── cerebrisans-regular.ttf │ │ ├── cerebrisans-regular.woff │ │ ├── cerebrisans-semibold.eot │ │ ├── cerebrisans-semibold.ttf │ │ ├── cerebrisans-mediumd41d.eot │ │ ├── cerebrisans-regulard41d.eot │ │ ├── cerebrisans-semibold.woff │ │ └── cerebrisans-semiboldd41d.eot ├── vendor │ ├── telescope │ │ ├── favicon.ico │ │ └── mix-manifest.json │ ├── laravel-admin │ │ ├── AdminLTE │ │ │ ├── plugins │ │ │ │ ├── input-mask │ │ │ │ │ └── phone-codes │ │ │ │ │ │ └── readme.txt │ │ │ │ ├── iCheck │ │ │ │ │ ├── flat │ │ │ │ │ │ ├── red.png │ │ │ │ │ │ ├── aero.png │ │ │ │ │ │ ├── blue.png │ │ │ │ │ │ ├── flat.png │ │ │ │ │ │ ├── green.png │ │ │ │ │ │ ├── grey.png │ │ │ │ │ │ ├── orange.png │ │ │ │ │ │ ├── pink.png │ │ │ │ │ │ ├── purple.png │ │ │ │ │ │ ├── red@2x.png │ │ │ │ │ │ ├── yellow.png │ │ │ │ │ │ ├── aero@2x.png │ │ │ │ │ │ ├── blue@2x.png │ │ │ │ │ │ ├── flat@2x.png │ │ │ │ │ │ ├── green@2x.png │ │ │ │ │ │ ├── grey@2x.png │ │ │ │ │ │ ├── pink@2x.png │ │ │ │ │ │ ├── orange@2x.png │ │ │ │ │ │ ├── purple@2x.png │ │ │ │ │ │ └── yellow@2x.png │ │ │ │ │ ├── line │ │ │ │ │ │ ├── line.png │ │ │ │ │ │ └── line@2x.png │ │ │ │ │ ├── minimal │ │ │ │ │ │ ├── red.png │ │ │ │ │ │ ├── aero.png │ │ │ │ │ │ ├── blue.png │ │ │ │ │ │ ├── green.png │ │ │ │ │ │ ├── grey.png │ │ │ │ │ │ ├── pink.png │ │ │ │ │ │ ├── aero@2x.png │ │ │ │ │ │ ├── blue@2x.png │ │ │ │ │ │ ├── green@2x.png │ │ │ │ │ │ ├── grey@2x.png │ │ │ │ │ │ ├── minimal.png │ │ │ │ │ │ ├── orange.png │ │ │ │ │ │ ├── pink@2x.png │ │ │ │ │ │ ├── purple.png │ │ │ │ │ │ ├── red@2x.png │ │ │ │ │ │ ├── yellow.png │ │ │ │ │ │ ├── minimal@2x.png │ │ │ │ │ │ ├── orange@2x.png │ │ │ │ │ │ ├── purple@2x.png │ │ │ │ │ │ └── yellow@2x.png │ │ │ │ │ ├── square │ │ │ │ │ │ ├── aero.png │ │ │ │ │ │ ├── blue.png │ │ │ │ │ │ ├── grey.png │ │ │ │ │ │ ├── pink.png │ │ │ │ │ │ ├── red.png │ │ │ │ │ │ ├── green.png │ │ │ │ │ │ ├── orange.png │ │ │ │ │ │ ├── purple.png │ │ │ │ │ │ ├── red@2x.png │ │ │ │ │ │ ├── square.png │ │ │ │ │ │ ├── yellow.png │ │ │ │ │ │ ├── aero@2x.png │ │ │ │ │ │ ├── blue@2x.png │ │ │ │ │ │ ├── green@2x.png │ │ │ │ │ │ ├── grey@2x.png │ │ │ │ │ │ ├── orange@2x.png │ │ │ │ │ │ ├── pink@2x.png │ │ │ │ │ │ ├── purple@2x.png │ │ │ │ │ │ ├── square@2x.png │ │ │ │ │ │ └── yellow@2x.png │ │ │ │ │ ├── polaris │ │ │ │ │ │ ├── polaris.png │ │ │ │ │ │ └── polaris@2x.png │ │ │ │ │ └── futurico │ │ │ │ │ │ ├── futurico.png │ │ │ │ │ │ └── futurico@2x.png │ │ │ │ ├── colorpicker │ │ │ │ │ └── img │ │ │ │ │ │ ├── hue.png │ │ │ │ │ │ ├── alpha.png │ │ │ │ │ │ ├── saturation.png │ │ │ │ │ │ ├── hue-horizontal.png │ │ │ │ │ │ └── alpha-horizontal.png │ │ │ │ ├── ionslider │ │ │ │ │ └── img │ │ │ │ │ │ ├── sprite-skin-flat.png │ │ │ │ │ │ └── sprite-skin-nice.png │ │ │ │ └── select2 │ │ │ │ │ └── i18n │ │ │ │ │ ├── zh-TW.js │ │ │ │ │ ├── az.js │ │ │ │ │ ├── zh-CN.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── is.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── ar.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── km.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── ms.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── eu.js │ │ │ │ │ ├── pt-BR.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── sr-Cyrl.js │ │ │ │ │ ├── uk.js │ │ │ │ │ └── ru.js │ │ │ ├── dist │ │ │ │ └── img │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── boxed-bg.jpg │ │ │ │ │ ├── boxed-bg.png │ │ │ │ │ ├── default-50x50.gif │ │ │ │ │ └── user2-160x160.jpg │ │ │ └── bootstrap │ │ │ │ └── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── bootstrap3-editable │ │ │ └── img │ │ │ │ ├── clear.png │ │ │ │ └── loading.gif │ │ ├── font-awesome │ │ │ └── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ ├── bootstrap-fileinput │ │ │ ├── img │ │ │ │ ├── loading.gif │ │ │ │ └── loading-sm.gif │ │ │ └── js │ │ │ │ └── plugins │ │ │ │ └── canvas-to-blob.min.js │ │ ├── google-fonts │ │ │ └── fonts │ │ │ │ ├── Source-Sans-Pro.eot │ │ │ │ ├── Source-Sans-Pro.ttf │ │ │ │ ├── Source-Sans-Pro.woff │ │ │ │ ├── Source-Sans-Pro.woff2 │ │ │ │ ├── Source-Sans-Pro-Bold.ttf │ │ │ │ ├── Source-Sans-Pro-Bold.woff │ │ │ │ ├── Source-Sans-Pro-Light.ttf │ │ │ │ ├── Source-Sans-Pro-Bold.woff2 │ │ │ │ ├── Source-Sans-Pro-Italic.ttf │ │ │ │ ├── Source-Sans-Pro-Italic.woff │ │ │ │ ├── Source-Sans-Pro-Light.woff │ │ │ │ ├── Source-Sans-Pro-Light.woff2 │ │ │ │ ├── Source-Sans-Pro-Italic.woff2 │ │ │ │ ├── Source-Sans-Pro-Semibold.ttf │ │ │ │ ├── Source-Sans-Pro-Semibold.woff │ │ │ │ ├── Source-Sans-Pro-Semibold.woff2 │ │ │ │ ├── Source-Sans-Pro-Light-Italic.ttf │ │ │ │ ├── Source-Sans-Pro-Light-Italic.woff │ │ │ │ ├── Source-Sans-Pro-Light-Italic.woff2 │ │ │ │ ├── Source-Sans-Pro-Semibold-Italic.ttf │ │ │ │ ├── Source-Sans-Pro-Semibold-Italic.woff │ │ │ │ └── Source-Sans-Pro-Semibold-Italic.woff2 │ │ └── flatpickr │ │ │ └── dist │ │ │ └── shortcut-buttons-flatpickr │ │ │ └── themes │ │ │ └── light.min.css │ ├── mckenziearts │ │ └── laravel-notify │ │ │ ├── images │ │ │ ├── drake-error.jpg │ │ │ ├── drake-success.jpg │ │ │ └── notifications.png │ │ │ └── mix-manifest.json │ └── laravel-admin-ext │ │ └── simditor │ │ └── simditor-2.3.28 │ │ └── styles │ │ └── customized.css └── .htaccess ├── modules_statuses.json ├── .gitattributes ├── README.md ├── app ├── Admin │ ├── Controllers │ │ ├── AuthController.php │ │ ├── SystemController.php │ │ └── HomeController.php │ ├── bootstrap.php │ └── routes.php ├── Http │ ├── Controllers │ │ ├── Web │ │ │ ├── HomeController.php │ │ │ ├── DebugController.php │ │ │ └── UserController.php │ │ ├── Controller.php │ │ ├── Api │ │ │ ├── FeedController.php │ │ │ ├── CarouselController.php │ │ │ └── UserReportController.php │ │ └── Dashboard │ │ │ ├── UserReportController.php │ │ │ ├── ThumbController.php │ │ │ └── PostController.php │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── TrustHosts.php │ │ ├── PreventRequestsDuringMaintenance.php │ │ ├── TrimStrings.php │ │ ├── Authenticate.php │ │ ├── TrustProxies.php │ │ ├── UserActiveRecord.php │ │ ├── DashboardAuthenticate.php │ │ ├── DashboardRedirectIfAuthenticated.php │ │ └── RedirectIfAuthenticated.php │ └── Resources │ │ ├── CommonResource.php │ │ ├── ThumbResource.php │ │ └── UserResource.php ├── Models │ ├── Setting.php │ ├── Feed.php │ ├── UserReport.php │ ├── Carousel.php │ └── Common │ │ └── EntityTrial.php ├── Providers │ ├── BroadcastServiceProvider.php │ ├── AuthServiceProvider.php │ ├── EventServiceProvider.php │ └── AppServiceProvider.php ├── Helpers │ └── heycommunity.php ├── Exceptions │ └── Handler.php ├── Console │ └── Kernel.php └── Events │ └── Notices │ └── Listeners │ └── writeNoticeTableHandler.php ├── .editorconfig ├── config ├── log-viewer.php ├── heycommunity.php ├── system.php ├── cors.php └── services.php ├── .gitignore ├── package.json ├── webpack.mix.js ├── routes ├── channels.php ├── console.php └── web.php ├── server.php └── .env.example /resources/css/app.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/Unit/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/logs/wechat/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Console/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Console/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Console/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Tests/Unit/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Tests/Unit/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Http/Requests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Tests/Unit/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Http/Middleware/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Http/Requests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Resources/lang/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/logs/heycommunity/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Http/Middleware/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Http/Requests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Resources/assets/js/app.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Resources/lang/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Http/Middleware/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Resources/assets/js/app.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Resources/lang/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Resources/assets/js/app.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Post/Resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/app/uploads/users/avatars/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Activity/Resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modules/Article/Resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /resources/js/app.js: -------------------------------------------------------------------------------- 1 | require('./bootstrap'); 2 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | *.sqlite-journal 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /Modules/Post/Config/config.php: -------------------------------------------------------------------------------- 1 | '动态' 5 | ]; 6 | -------------------------------------------------------------------------------- /Modules/Activity/Config/config.php: -------------------------------------------------------------------------------- 1 | '活动' 5 | ]; 6 | -------------------------------------------------------------------------------- /Modules/Article/Config/config.php: -------------------------------------------------------------------------------- 1 | '文章' 5 | ]; 6 | -------------------------------------------------------------------------------- /modules_statuses.json: -------------------------------------------------------------------------------- 1 | { 2 | "Post": true, 3 | "Article": true, 4 | "Activity": true 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/images/wxapp/banners/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/wxapp/banners/1.png -------------------------------------------------------------------------------- /public/images/wxapp/banners/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/wxapp/banners/2.png -------------------------------------------------------------------------------- /public/images/wxapp/banners/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/wxapp/banners/3.png -------------------------------------------------------------------------------- /public/assets/dashkit/img/figma.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/figma.jpg -------------------------------------------------------------------------------- /public/images/heycommunity/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/heycommunity/logo.png -------------------------------------------------------------------------------- /public/images/users/default-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/users/default-cover.jpg -------------------------------------------------------------------------------- /public/images/users/profile-wave.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/users/profile-wave.gif -------------------------------------------------------------------------------- /public/vendor/telescope/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/telescope/favicon.ico -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /public/images/users/default-avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/images/users/default-avatar.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/favicon/favicon.ico -------------------------------------------------------------------------------- /public/assets/dashkit/img/files/file-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/files/file-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/files/file-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/files/file-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/files/file-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/files/file-3.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/files/file-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/files/file-4.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/posts/post-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/posts/post-1.jpg -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/readme.txt: -------------------------------------------------------------------------------- 1 | more phone masks can be found at https://github.com/andr-04/inputmask-multi -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/team-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/team-cover.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/kanban/kanban-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/kanban/kanban-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/kanban/kanban-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/kanban/kanban-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/header-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/header-cover.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/fonts/feather/Feather144f.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/fonts/feather/Feather144f.ttf -------------------------------------------------------------------------------- /public/assets/dashkit/fonts/feather/Feather144f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/fonts/feather/Feather144f.woff -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/auth-side-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/auth-side-cover.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-3.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-4.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-5.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-6.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/profile-cover-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/profile-cover-7.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/covers/sidebar-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/covers/sidebar-cover.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/products/product-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/products/product-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/products/product-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/products/product-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/products/product-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/products/product-3.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/products/product-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/products/product-4.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-3.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-4.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-5.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-6.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-7.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/profiles/avatar-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/profiles/avatar-8.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/projects/project-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/projects/project-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/projects/project-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/projects/project-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/projects/project-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/projects/project-3.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/projects/project-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/projects/project-4.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/projects/project-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/projects/project-5.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/projects/project-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/projects/project-6.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-1.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-2.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-3.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-4.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-5.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-6.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-7.jpg -------------------------------------------------------------------------------- /public/assets/dashkit/img/avatars/teams/team-logo-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/assets/dashkit/img/avatars/teams/team-logo-8.jpg -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/dist/img/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/dist/img/icons.png -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.jpg -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.png -------------------------------------------------------------------------------- /Modules/Article/Entities/ArticleTagMap.php: -------------------------------------------------------------------------------- 1 | getMessage() ?: 'Forbidden')) 6 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/hue-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/hue-horizontal.png -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-flat.png -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-nice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-nice.png -------------------------------------------------------------------------------- /public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.ttf -------------------------------------------------------------------------------- /public/vendor/telescope/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/app.js": "/app.js?id=ff7aa0235e43ae0474e1", 3 | "/app-dark.css": "/app-dark.css?id=bc22d805b64b5a2ecaaa", 4 | "/app.css": "/app.css?id=d2d43f24f2a54d31e084" 5 | } 6 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/alpha-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/alpha-horizontal.png -------------------------------------------------------------------------------- /public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff -------------------------------------------------------------------------------- /public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff2 -------------------------------------------------------------------------------- /public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HeyCommunity/HeyCommunity-backend/HEAD/public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.ttf -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | isEmpty()) 2 |
暂无动态
3 | @else 4 | @foreach ($posts as $post) 5 | @include('post::common._post-profile') 6 | @endforeach 7 | @endif 8 | -------------------------------------------------------------------------------- /resources/views/dashboard/iframes/iframe.blade.php: -------------------------------------------------------------------------------- 1 | @extends('dashboard.layouts.default') 2 | 3 | @section('mainContent') 4 |
5 | 6 |
7 | @endsection 8 | -------------------------------------------------------------------------------- /Modules/Post/Routes/web.php: -------------------------------------------------------------------------------- 1 | group(function () { 4 | Route::get('/', 'PostController@index')->name('web.posts.index'); 5 | Route::get('{post}', 'PostController@show')->name('web.posts.show')->where('post', '[0-9]+'); 6 | }); 7 | -------------------------------------------------------------------------------- /Modules/Article/Routes/web.php: -------------------------------------------------------------------------------- 1 | group(function() { 4 | Route::get('/', 'ArticleController@index')->name('web.articles.index'); 5 | Route::get('{article}', 'ArticleController@show')->name('web.articles.show')->where('article', '[0-9]+'); 6 | }); 7 | -------------------------------------------------------------------------------- /app/Models/Setting.php: -------------------------------------------------------------------------------- 1 | isEmpty()) 2 |
暂无评论
3 | @else 4 | @foreach ($comments as $comment) 5 | @include('common.users._item-comment-card', ['comment' => $comment]) 6 | @endforeach 7 | @endif 8 | -------------------------------------------------------------------------------- /Modules/Activity/Routes/web.php: -------------------------------------------------------------------------------- 1 | group(function () { 4 | Route::get('/', 'ActivityController@index')->name('web.activities.index'); 5 | Route::get('{activity}', 'ActivityController@show')->name('web.activities.show')->where('activity', '[0-9]+'); 6 | }); 7 | -------------------------------------------------------------------------------- /app/Models/Feed.php: -------------------------------------------------------------------------------- 1 | morphTo('entity', 'entity_class', 'entity_id')->withTrashed(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /public/vendor/mckenziearts/laravel-notify/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/js/app.js": "/js/app.js?id=8dc7b1436df79e10f57a", 3 | "/js/notify.js": "/js/notify.js?id=2164f4c5d30905505e12", 4 | "/css/app.css": "/css/app.css?id=045b234f05600b46dfb7", 5 | "/css/notify.css": "/css/notify.css?id=677d5d408b96e1c37360" 6 | } 7 | -------------------------------------------------------------------------------- /Modules/Post/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Post", 3 | "alias": "post", 4 | "description": "", 5 | "keywords": [], 6 | "priority": 0, 7 | "providers": [ 8 | "Modules\\Post\\Providers\\PostServiceProvider" 9 | ], 10 | "aliases": {}, 11 | "files": [], 12 | "requires": [] 13 | } 14 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [*.blade.php] 18 | indent_size = 2 -------------------------------------------------------------------------------- /Modules/Article/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Article", 3 | "alias": "article", 4 | "description": "", 5 | "keywords": [], 6 | "priority": 0, 7 | "providers": [ 8 | "Modules\\Article\\Providers\\ArticleServiceProvider" 9 | ], 10 | "aliases": {}, 11 | "files": [], 12 | "requires": [] 13 | } 14 | -------------------------------------------------------------------------------- /Modules/Activity/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Activity", 3 | "alias": "activity", 4 | "description": "", 5 | "keywords": [], 6 | "priority": 0, 7 | "providers": [ 8 | "Modules\\Activity\\Providers\\ActivityServiceProvider" 9 | ], 10 | "aliases": {}, 11 | "files": [], 12 | "requires": [] 13 | } 14 | -------------------------------------------------------------------------------- /Modules/Article/Entities/ArticleTag.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Article::class, 'article_category_maps', 'category_id', 'article_id'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Modules/Article/Entities/ArticleCategory.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Article::class, 'article_category_maps', 'category_id', 'article_id'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin-ext/simditor/simditor-2.3.28/styles/customized.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * github.com/jxlwqq 3 | * 2020-11-20 4 | */ 5 | 6 | /*It prevents the used value of the width property from becoming larger than the value specified by max-width.*/ 7 | .simditor .simditor-body img { 8 | cursor: pointer; 9 | max-width: 100%; 10 | height: auto; 11 | } -------------------------------------------------------------------------------- /app/Http/Controllers/Web/UserController.php: -------------------------------------------------------------------------------- 1 | share('pageTitle', config('post.name')); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /config/log-viewer.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'enabled' => false, 6 | 7 | 'attributes' => [ 8 | 'prefix' => 'dashboard/log-viewer', 9 | 10 | 'middleware' => [ 11 | 'web', 12 | \App\Http\Middleware\DashboardAuthenticate::class, 13 | ], 14 | ], 15 | ], 16 | ]; 17 | -------------------------------------------------------------------------------- /database/seeders/FeedSeeder.php: -------------------------------------------------------------------------------- 1 | count(30)->create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | share('pageTitle', config('activity.name')); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Modules/Article/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | share('pageTitle', config('article.name')); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /config/heycommunity.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'admin_ids' => explode(',', env('HEYCOMMUNITY_DASHBOARD_ADMIN_IDS')), 6 | ], 7 | 8 | 'heartbeat' => [ 9 | 'enabled' => env('HEYCOMMUNITY_HEARTBEAT_ENABLED', true), 10 | ], 11 | 12 | 'google-analytics' => [ 13 | 'enabled' => env('HEYCOMMUNITY_GOOGLE_ANALYTICS_ENABLED', true), 14 | ], 15 | ]; 16 | -------------------------------------------------------------------------------- /public/assets/dashkit/img/masks/avatar-group.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /public/assets/dashkit/img/masks/avatar-status.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/hot 3 | /public/storage 4 | /storage/*.key 5 | /vendor 6 | .env 7 | .env.backup 8 | .env.testing 9 | .phpunit.result.cache 10 | docker-compose.override.yml 11 | Homestead.json 12 | Homestead.yaml 13 | npm-debug.log 14 | yarn-error.log 15 | 16 | 17 | .idea 18 | .DS_Store 19 | _ide_helper.php 20 | .phpstorm.meta.php 21 | 22 | database/backups 23 | storage/MaxMind-GeoIP 24 | 25 | public/uploads 26 | public/node_modules 27 | 28 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustHosts.php: -------------------------------------------------------------------------------- 1 | allSubdomainsOfApplicationUrl(), 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Http/Middleware/PreventRequestsDuringMaintenance.php: -------------------------------------------------------------------------------- 1 | belongsTo($this->entity_class)->withTrashed(); 13 | } 14 | 15 | /** 16 | * Get entity_content attr 17 | */ 18 | public function getEntityContentAttribute() 19 | { 20 | return $this->entity->content; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /resources/views/common/_google-analytics.blade.php: -------------------------------------------------------------------------------- 1 | @if (config('heycommunity.google-analytics.enabled')) 2 |
3 | 4 | 11 |
12 | @endif 13 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/Http/Controllers/Api/FeedController.php: -------------------------------------------------------------------------------- 1 | latest()->paginate(); 17 | 18 | return FeedResource::collection($feeds); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/CreatesApplication.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | Assert::class, 15 | ]; 16 | 17 | /** 18 | * newFactory 19 | */ 20 | protected static function newFactory() 21 | { 22 | return \Modules\Post\Database\factories\PostImageFactory::new(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Modules/Post/Entities/PostVideo.php: -------------------------------------------------------------------------------- 1 | Assert::class, 15 | ]; 16 | 17 | /** 18 | * newFactory 19 | */ 20 | protected static function newFactory() 21 | { 22 | return \Modules\Post\Database\factories\PostVideoFactory::new(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Modules/Post/webpack.mix.js: -------------------------------------------------------------------------------- 1 | const dotenvExpand = require('dotenv-expand'); 2 | dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/})); 3 | 4 | const mix = require('laravel-mix'); 5 | require('laravel-mix-merge-manifest'); 6 | 7 | mix.setPublicPath('../../public').mergeManifest(); 8 | 9 | mix.js(__dirname + '/Resources/assets/js/app.js', 'js/post.js') 10 | .sass( __dirname + '/Resources/assets/sass/app.scss', 'css/post.css'); 11 | 12 | if (mix.inProduction()) { 13 | mix.version(); 14 | } 15 | -------------------------------------------------------------------------------- /Modules/Activity/Routes/api.php: -------------------------------------------------------------------------------- 1 | group(function () { 4 | Route::get('/', 'ActivityController@index')->name('api.activities.index'); 5 | Route::get('{activity}', 'ActivityController@show')->name('api.activities.show')->where('activity', '[0-9]+'); 6 | 7 | Route::middleware(['auth:sanctum'])->group(function () { 8 | Route::post('{activity}/register', 'ActivityController@register')->name('api.activities.register')->where('activity', '[0-9]+'); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /resources/views/common/users/_item-comment-card.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
{{ $comment->content }}
3 | 13 |
14 | -------------------------------------------------------------------------------- /Modules/Activity/webpack.mix.js: -------------------------------------------------------------------------------- 1 | const dotenvExpand = require('dotenv-expand'); 2 | dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/})); 3 | 4 | const mix = require('laravel-mix'); 5 | require('laravel-mix-merge-manifest'); 6 | 7 | mix.setPublicPath('../../public').mergeManifest(); 8 | 9 | mix.js(__dirname + '/Resources/assets/js/app.js', 'js/activity.js') 10 | .sass( __dirname + '/Resources/assets/sass/app.scss', 'css/activity.css'); 11 | 12 | if (mix.inProduction()) { 13 | mix.version(); 14 | } 15 | -------------------------------------------------------------------------------- /Modules/Article/webpack.mix.js: -------------------------------------------------------------------------------- 1 | const dotenvExpand = require('dotenv-expand'); 2 | dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/})); 3 | 4 | const mix = require('laravel-mix'); 5 | require('laravel-mix-merge-manifest'); 6 | 7 | mix.setPublicPath('../../public').mergeManifest(); 8 | 9 | mix.js(__dirname + '/Resources/assets/js/app.js', 'js/article.js') 10 | .sass( __dirname + '/Resources/assets/sass/app.scss', 'css/article.css'); 11 | 12 | if (mix.inProduction()) { 13 | mix.version(); 14 | } 15 | -------------------------------------------------------------------------------- /app/Http/Controllers/Dashboard/UserReportController.php: -------------------------------------------------------------------------------- 1 | paginate(); 17 | 18 | return view('dashboard.user-reports.index', compact('userReports')); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /database/seeders/UserSeeder.php: -------------------------------------------------------------------------------- 1 | call(AdminUserSeeder::class); 20 | 21 | User::factory()->count(20)->create(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /public/assets/dashkit/img/masks/avatar-group-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "mix", 6 | "watch": "mix watch", 7 | "watch-poll": "mix watch -- --watch-options-poll=1000", 8 | "hot": "mix watch --hot", 9 | "prod": "npm run production", 10 | "production": "mix --production" 11 | }, 12 | "devDependencies": { 13 | "axios": "^0.21", 14 | "laravel-mix": "^6.0.6", 15 | "lodash": "^4.17.19", 16 | "postcss": "^8.1.14" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Modules/Post/Routes/dashboard.php: -------------------------------------------------------------------------------- 1 | group(function () { 4 | Route::get('/', 'PostController@index')->name('dashboard.posts.index'); 5 | Route::get('{post}', 'PostController@show')->name('dashboard.posts.show'); 6 | 7 | Route::any('{post}/set-visible', 'PostController@setVisible')->name('dashboard.posts.set-visible'); 8 | Route::any('{post}/set-hidden', 'PostController@setHidden')->name('dashboard.posts.set-hidden'); 9 | Route::any('{post}/destroy', 'PostController@destroy')->name('dashboard.posts.destroy'); 10 | }); 11 | -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 18 | return route('login'); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/lang/zh_CN/pagination.php: -------------------------------------------------------------------------------- 1 | '下一页 »', 16 | 'previous' => '« 上一页', 17 | ]; 18 | -------------------------------------------------------------------------------- /app/Helpers/heycommunity.php: -------------------------------------------------------------------------------- 1 | route()->getName(); 6 | $currentRoutePrefix = \Illuminate\Support\Str::before($currentRouteName, '.'); 7 | $name = $currentRoutePrefix . '.' . $name; 8 | 9 | return route($name, $parameters, $absolute); 10 | } 11 | 12 | /** 13 | * 路由活跃状态 14 | */ 15 | function routeActive($patterns, $activeClassName = 'active', $unactiveClassName = '') 16 | { 17 | return request()->routeIs($patterns) ? $activeClassName : $unactiveClassName; 18 | } 19 | -------------------------------------------------------------------------------- /resources/lang/zh_CN/validation-nova-inline.php: -------------------------------------------------------------------------------- 1 | '此字段已附加。', 16 | 'relatable' => '此字段可能与此资源不相关联。', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/zh_CN/validation-nova.php: -------------------------------------------------------------------------------- 1 | '这个 :attribute 已经连接。', 16 | 'relatable' => '此 :attribute 可能与此资源不相关联。', 17 | ]; 18 | -------------------------------------------------------------------------------- /Modules/Article/Resources/views/web/_list-group-item-article-card.blade.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 | 6 |
7 |
8 | 9 |
10 |

{{ $article->title }}

11 |

{{ $article->intro }}

12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /app/Admin/bootstrap.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * Bootstraper for Admin. 8 | * 9 | * Here you can remove builtin form field: 10 | * Encore\Admin\Form::forget(['map', 'editor']); 11 | * 12 | * Or extend custom form field: 13 | * Encore\Admin\Form::extend('php', PHPEditor::class); 14 | * 15 | * Or require js and css assets: 16 | * Admin::css('/packages/prettydocs/css/styles.css'); 17 | * Admin::js('/packages/prettydocs/js/main.js'); 18 | * 19 | */ 20 | 21 | Encore\Admin\Form::forget(['map', 'editor']); 22 | -------------------------------------------------------------------------------- /Modules/Post/Tests/Feature/PostWebTest.php: -------------------------------------------------------------------------------- 1 | get(route('web.posts.index'))->assertOk(); 16 | 17 | if ($post = Post::inRandomOrder()->first()) { 18 | $this->get(route('web.posts.show', $post))->assertOk(); 19 | } else { 20 | $this->get(route('web.posts.show', 1))->assertNotFound(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /resources/lang/zh_CN/auth.php: -------------------------------------------------------------------------------- 1 | '用户名或密码错误。', 16 | 'password' => '密码错误。', 17 | 'throttle' => '您尝试的登录次数过多,请 :seconds 秒后再试。', 18 | ]; 19 | -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | const mix = require('laravel-mix'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Mix Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Mix provides a clean, fluent API for defining some Webpack build steps 9 | | for your Laravel applications. By default, we are compiling the CSS 10 | | file for the application as well as bundling up all the JS files. 11 | | 12 | */ 13 | 14 | mix.js('resources/js/app.js', 'public/js') 15 | .postCss('resources/css/app.css', 'public/css', [ 16 | // 17 | ]); 18 | -------------------------------------------------------------------------------- /Modules/Article/Routes/api.php: -------------------------------------------------------------------------------- 1 | group(function () { 4 | Route::get('/', 'ArticleController@index')->name('api.articles.index'); 5 | Route::get('latest-5', 'ArticleController@latest5')->name('api.articles.latest-5'); 6 | Route::get('{article}', 'ArticleController@show')->name('api.articles.show')->where('article', '[0-9]+'); 7 | 8 | Route::middleware(['auth:sanctum'])->group(function () { 9 | }); 10 | }); 11 | 12 | Route::prefix('api/article-categories')->group(function () { 13 | Route::get('/', 'ArticleController@categories')->name('api.article-categories.index'); 14 | }); 15 | -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 18 | }); 19 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /config/system.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'enable' => env('CDN_ENABLE', false), 6 | 'domain' => env('CDN_DOMAIN', 'https://your-cdn-domain.com') 7 | ], 8 | 9 | 'wxapp' => [ 10 | 'subscribe_message' => [ 11 | 'enable' => env('WXAPP_SUBSCRIBE_MESSAGE_ENABLE', false), 12 | 'thumb_up_temp_id' => env('WXAPP_SUBSCRIBE_MESSAGE_THUMB_UP_TEMP_ID'), 13 | 'comment_temp_id' => env('WXAPP_SUBSCRIBE_MESSAGE_COMMENT_TEMP_ID'), 14 | 'reply_temp_id' => env('WXAPP_SUBSCRIBE_MESSAGE_REPLY_TEMP_ID'), 15 | ] 16 | ] 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/dashboard/visitor-logs/date.blade.php: -------------------------------------------------------------------------------- 1 | @extends('dashboard.layouts.default') 2 | 3 | @section('mainContent') 4 |
5 | @include('dashboard.visitor-logs._header') 6 | 7 |
8 |
9 |
10 |
11 |
12 | @include('dashboard.analytics.users._active-user-table', ['result' => $result]) 13 |
14 |
15 | 16 |
17 | {{ $result->links() }} 18 |
19 |
20 |
21 |
22 |
23 | @endsection 24 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 19 | })->purpose('Display an inspiring quote'); 20 | -------------------------------------------------------------------------------- /Modules/Article/Http/Controllers/Web/ArticleController.php: -------------------------------------------------------------------------------- 1 | paginate(); 16 | 17 | return view('article::web.index', compact('articles')); 18 | } 19 | 20 | /** 21 | * 文章详情页 22 | */ 23 | public function show(Article $article) 24 | { 25 | return view('article::web.show', compact('article')); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/lang/zh_CN/passwords.php: -------------------------------------------------------------------------------- 1 | '密码重置成功!', 16 | 'sent' => '密码重置邮件已发送!', 17 | 'throttled' => '请稍候再试。', 18 | 'token' => '密码重置令牌无效。', 19 | 'user' => '找不到该邮箱对应的用户。', 20 | ]; 21 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Send Requests To Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /public/assets/dashkit/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Modules/Activity/Http/Controllers/Web/ActivityController.php: -------------------------------------------------------------------------------- 1 | paginate(12); 16 | 17 | return view('activity::web.index', compact('activities')); 18 | } 19 | 20 | /** 21 | * 详情页 22 | */ 23 | public function show(Activity $activity) 24 | { 25 | return view('activity::web.show', compact('activity')); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustProxies.php: -------------------------------------------------------------------------------- 1 | Assert::class, 18 | ]; 19 | 20 | /** 21 | * 类别 22 | */ 23 | public static $types = [ 24 | 'web' => '网站', 25 | 'wxapp' => '微信小程序', 26 | ]; 27 | 28 | /** 29 | * Statuses 30 | */ 31 | public static $statuses = [ 32 | 0 => '未发布', 33 | 1 => '已发布', 34 | ]; 35 | } 36 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Http/Middleware/UserActiveRecord.php: -------------------------------------------------------------------------------- 1 | user(); 21 | 22 | if ($user) { 23 | $user->update([ 24 | 'last_active_at' => now(), 25 | ]); 26 | } 27 | 28 | return $next($request); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any authentication / authorization services. 21 | * 22 | * @return void 23 | */ 24 | public function boot() 25 | { 26 | $this->registerPolicies(); 27 | 28 | // 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ja.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME=HEY社区 2 | APP_ENV=production 3 | APP_KEY= 4 | APP_DEBUG=false 5 | APP_URL=http://v1.heycommunity.local 6 | 7 | DB_CONNECTION=mysql 8 | DB_HOST=127.0.0.1 9 | DB_PORT=3306 10 | DB_DATABASE=hc_heycommunity_v1 11 | DB_USERNAME=root 12 | DB_PASSWORD= 13 | 14 | ## 15 | ## Wechat Mini Program 16 | WECHAT_MINI_PROGRAM_APPID= 17 | WECHAT_MINI_PROGRAM_SECRET= 18 | 19 | ## 20 | ## Wechat Mini Program SubScribe Message 21 | WXAPP_SUBSCRIBE_MESSAGE_ENABLE=false 22 | WXAPP_SUBSCRIBE_MESSAGE_THUMB_UP_TEMP_ID= 23 | WXAPP_SUBSCRIBE_MESSAGE_COMMENT_TEMP_ID= 24 | WXAPP_SUBSCRIBE_MESSAGE_REPLY_TEMP_ID= 25 | 26 | ## 27 | ## HeyCommunity Configs 28 | HEYCOMMUNITY_DASHBOARD_ADMIN_IDS= 29 | CDN_ENABLE=false 30 | CDN_DOMAIN=https://your-cdn-domain.com 31 | -------------------------------------------------------------------------------- /app/Http/Resources/ThumbResource.php: -------------------------------------------------------------------------------- 1 | user->nickname; 23 | $data['user_avatar'] = $this->user->avatar; 24 | 25 | return $data; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Models/Common/EntityTrial.php: -------------------------------------------------------------------------------- 1 | entity_class) { 17 | case Comment::class: 18 | return '评论'; 19 | case Post::class: 20 | return '动态'; 21 | case Article::class: 22 | return '文章'; 23 | case Activity::class: 24 | return '活动'; 25 | default: 26 | return '未知'; 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Modules/Activity/Routes/dashboard.php: -------------------------------------------------------------------------------- 1 | group(function () { 4 | Route::get('/', 'ActivityController@index')->name('dashboard.activities.index'); 5 | Route::get('{activity}', 'ActivityController@show')->name('dashboard.activities.show')->where('activity', '[0-9]+'); 6 | 7 | Route::get('create', 'ActivityController@create')->name('dashboard.activities.create'); 8 | Route::post('/', 'ActivityController@store')->name('dashboard.activities.store'); 9 | 10 | Route::get('{activity}/edit', 'ActivityController@edit')->name('dashboard.activities.edit')->where('activity', '[0-9]+'); 11 | Route::post('{activity}', 'ActivityController@update')->name('dashboard.activities.update')->where('activity', '[0-9]+'); 12 | }); 13 | -------------------------------------------------------------------------------- /app/Http/Middleware/DashboardAuthenticate.php: -------------------------------------------------------------------------------- 1 | check() 21 | && in_array(Auth::guard('web')->id(), config('heycommunity.dashboard.admin_ids'))) { 22 | 23 | return $next($request); 24 | } 25 | 26 | return redirect()->route('dashboard.auth.login'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Http/Resources/UserResource.php: -------------------------------------------------------------------------------- 1 | posts()->sum('comment_num'); 21 | $data['got_post_thumb_up_num'] = $this->posts()->sum('thumb_up_num'); 22 | $data['unread_notice_num'] = $this->unread_notice_num; 23 | 24 | return $data; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /resources/views/vendor/flash/modal.blade.php: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Http/Middleware/DashboardRedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | check() 21 | && in_array(Auth::guard('web')->id(), config('heycommunity.dashboard.admin_ids'))) { 22 | 23 | return redirect()->route('dashboard.index'); 24 | } 25 | 26 | return $next($request); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Feature/ApiOfUserTest.php: -------------------------------------------------------------------------------- 1 | create(); 28 | 29 | $this->getJson('api/users/' . $user->getAttribute('id')) 30 | ->assertOk() 31 | ->assertJsonStructure(['data' => $this->userModelStructure]); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ar.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="الرجاء حذف "+t+" عناصر";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="الرجاء إضافة "+t+" عناصر";return n},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){var t="تستطيع إختيار "+e.maximum+" بنود فقط";return t},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/km.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ms.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /Modules/Post/Http/Controllers/Web/PostController.php: -------------------------------------------------------------------------------- 1 | latest()->paginate(); 16 | 17 | $lastCreatePost = Post::orderBy('created_at', 'desc')->first(); 18 | $lastUpdatePost = Post::orderBy('updated_at', 'desc')->first(); 19 | 20 | return view('post::web.index', compact('posts', 'lastCreatePost', 'lastUpdatePost')); 21 | } 22 | 23 | /** 24 | * 详情页面 25 | */ 26 | public function show(Post $post) 27 | { 28 | return view('post::web.show', compact('post')); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Http/Controllers/Dashboard/ThumbController.php: -------------------------------------------------------------------------------- 1 | function ($query) { 15 | $query->select('id', 'avatar', 'nickname'); 16 | }, 17 | 'thumbable' => function ($query) { 18 | $query->select('id', 'user_id'); 19 | }, 20 | 'thumbable.user' => function ($query) { 21 | $query->select('id', 'avatar', 'nickname'); 22 | }, 23 | ])->latest()->paginate(); 24 | 25 | return view('dashboard.thumbs.index', compact('thumbs')); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_resets_table.php: -------------------------------------------------------------------------------- 1 | string('email')->index(); 18 | $table->string('token'); 19 | $table->timestamp('created_at')->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('password_resets'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Http/Controllers/Api/CarouselController.php: -------------------------------------------------------------------------------- 1 | get('type'), array_keys(Carousel::$types))) { 15 | return redirect()->route($request->route()->getName(), ['type' => array_key_first(Carousel::$types)]); 16 | } 17 | 18 | $carousels = Carousel::where('type', $request->get('type')) 19 | ->where('status', 1) 20 | ->orderByRaw('ISNULL(sort), sort ASC') 21 | ->orderByDesc('id') 22 | ->get(); 23 | 24 | return CommonResource::collection($carousels); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /resources/views/vendor/pagination/simple-default.blade.php: -------------------------------------------------------------------------------- 1 | @if ($paginator->hasPages()) 2 | 19 | @endif 20 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | check()) { 26 | return redirect(RouteServiceProvider::HOME); 27 | } 28 | } 29 | 30 | return $next($request); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /Modules/Activity/Database/factories/ActivityMemberFactory.php: -------------------------------------------------------------------------------- 1 | null, 24 | 'activity_id' => null, 25 | 26 | 'status' => 1, 27 | 28 | 'created_at' => $this->faker->dateTimeThisMonth(), 29 | 'updated_at' => $this->faker->dateTimeThisMonth(), 30 | ]; 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Modules/Activity/Resources/views/common/_activity-lite-card.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 |
7 |

8 | {{ $activity->title }} 9 |

10 | 11 |
12 |
13 |
14 |
{{ $activity->started_at->diffForHumans() }}
15 |
16 | 17 |
18 |
{{ $activity->total_ticket_num - $activity->surplus_ticket_num }}/{{ $activity->total_ticket_num }}
19 |
20 |
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /resources/views/common/_up-thumbs-card.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
点赞的人
4 |
{{ $thumbs->count() }}
5 |
6 |
7 |
8 |
9 | @if ($thumbs->count()) 10 | @foreach ($thumbs as $thumb) 11 | 12 | {{ $thumb->user->nickname }} 13 | 14 | @endforeach 15 | @else 16 |
暂无数据
17 | @endif 18 |
19 |
20 |
21 |
22 | 23 | -------------------------------------------------------------------------------- /Modules/Post/Resources/views/web/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('web.layouts.default') 2 | 3 | @section('metaDescription', $post->content) 4 | 5 | @section('mainContent') 6 |
7 |
8 |
9 |
10 | @include('post::common._post-profile', ['post' => $post, 'showComments' => false]) 11 | 12 |
13 | @include('common._up-thumbs-card', ['thumbs' => $post->upThumbs]) 14 |
15 | 16 | @include('common._comments-card', ['comments' => $post->comments]) 17 |
18 | 19 |
20 | @include('post::common._post-info-card', ['post' => $post]) 21 | 22 | @include('common._up-thumbs-card', ['thumbs' => $post->upThumbs]) 23 |
24 |
25 |
26 |
27 | @endsection 28 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /routes/web.php: -------------------------------------------------------------------------------- 1 | group(function () { 8 | Route::get('login', 'AuthController@login')->name('web.auth.login'); 9 | Route::post('login', 'AuthController@loginHandler')->name('web.auth.login-handler'); 10 | }); 11 | Route::post('logout', 'AuthController@logoutHandler')->name('web.auth.logout-handler'); 12 | 13 | // 14 | // 首页 15 | Route::get('/', function () { 16 | return redirect()->route('web.posts.index'); 17 | })->name('web.home'); 18 | 19 | // 20 | // User routes 21 | Route::prefix('users')->group(function () { 22 | Route::get('{user}', 'UserController@show')->name('web.users.show'); 23 | }); 24 | 25 | // 26 | // dev routes 27 | if (app()->environment(['local'])) { 28 | Route::prefix('debug')->group(function () { 29 | Route::get('/', 'DebugController@index')->name('web.debug.index'); 30 | }); 31 | } 32 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /Modules/Post/Database/factories/PostImageFactory.php: -------------------------------------------------------------------------------- 1 | null, 25 | 'user_id' => function (array $attributes) { 26 | return Post::select('user_id')->find($attributes['post_id'])->user_id; 27 | }, 28 | 'file_path' => $this->faker->imageUrl(640, 480, true), 29 | ]; 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 19 | 'App\Events\Notices\Listeners\writeNoticeTableHandler', 20 | 'App\Events\Notices\Listeners\sendNotificationHandler', 21 | ], 22 | ]; 23 | 24 | /** 25 | * Register any events for your application. 26 | * 27 | * @return void 28 | */ 29 | public function boot() 30 | { 31 | // 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/el.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Admin/routes.php: -------------------------------------------------------------------------------- 1 | config('admin.route.prefix'), 9 | 'namespace' => config('admin.route.namespace'), 10 | 'middleware' => config('admin.route.middleware'), 11 | 'as' => config('admin.route.prefix') . '.', 12 | ], function (Router $router) { 13 | $router->get('/', 'HomeController@index')->name('home'); 14 | 15 | $router->resource('users', 'UserController'); 16 | $router->resource('posts', 'PostController'); 17 | $router->resource('comments', 'CommentController'); 18 | $router->resource('thumbs', 'ThumbController'); 19 | $router->resource('notices', 'NoticeController'); 20 | $router->resource('user-reports', 'UserReportController'); 21 | 22 | $router->resource('activities', 'ActivityController'); 23 | 24 | $router->get('system', 'SystemController@index')->name('admin.system'); 25 | }); 26 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /app/Admin/Controllers/SystemController.php: -------------------------------------------------------------------------------- 1 | title('系统配置')->description('System Configs') 18 | ->body(Tab::forms([ 19 | 'about' => AboutForm::class, 20 | 'regulation' => RegulationForm::class, 21 | 'marquee' => MarqueeForm::class, 22 | 'wechat_subscribe_notice' => WechatSubscribeNoticeConfigForm::class, 23 | ])); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/uk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /resources/views/dashboard/layouts/utils/_table-sort-th.blade.php: -------------------------------------------------------------------------------- 1 | @php 2 | $routeName = request()->route()->getName(); 3 | $requestOrderBy = request('order-by') ?: $requestOrderBy; 4 | $requestOrderDirection = request('order-direction') ?: $requestOrderDirection; 5 | @endphp 6 | 7 | 8 | @if ($requestOrderBy === $orderBy && $requestOrderDirection === 'ASC') 9 | 10 | {{ $name }} 11 | 12 | @elseif ($requestOrderBy === $orderBy && $requestOrderDirection === 'DESC') 13 | 14 | {{ $name }} 15 | 16 | @else 17 | 18 | {{ $name }} 19 | 20 | @endif 21 | 22 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | reportable(function (Throwable $e) { 38 | // 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | ['api/*', 'sanctum/csrf-cookie'], 19 | 20 | 'allowed_methods' => ['*'], 21 | 22 | 'allowed_origins' => ['*'], 23 | 24 | 'allowed_origins_patterns' => [], 25 | 26 | 'allowed_headers' => ['*'], 27 | 28 | 'exposed_headers' => [], 29 | 30 | 'max_age' => 0, 31 | 32 | 'supports_credentials' => false, 33 | 34 | ]; 35 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /resources/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | window._ = require('lodash'); 2 | 3 | /** 4 | * We'll load the axios HTTP library which allows us to easily issue requests 5 | * to our Laravel back-end. This library automatically handles sending the 6 | * CSRF token as a header based on the value of the "XSRF" token cookie. 7 | */ 8 | 9 | window.axios = require('axios'); 10 | 11 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 12 | 13 | /** 14 | * Echo exposes an expressive API for subscribing to channels and listening 15 | * for events that are broadcast by Laravel. Echo and event broadcasting 16 | * allows your team to easily build robust real-time web applications. 17 | */ 18 | 19 | // import Echo from 'laravel-echo'; 20 | 21 | // window.Pusher = require('pusher-js'); 22 | 23 | // window.Echo = new Echo({ 24 | // broadcaster: 'pusher', 25 | // key: process.env.MIX_PUSHER_APP_KEY, 26 | // cluster: process.env.MIX_PUSHER_APP_CLUSTER, 27 | // forceTLS: true 28 | // }); 29 | -------------------------------------------------------------------------------- /Modules/Post/Database/factories/PostFactory.php: -------------------------------------------------------------------------------- 1 | null, 25 | 'content' => $this->faker->paragraphs(random_int(1, 6), true), 26 | 27 | 'status' => $this->faker->randomElement(array_keys(Post::$statuses)), 28 | 'created_at' => $this->faker->dateTimeThisMonth(), 29 | 'updated_at' => $this->faker->dateTimeThisMonth(), 30 | ]; 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire')->hourly(); 28 | } 29 | 30 | /** 31 | * Register the commands for the application. 32 | * 33 | * @return void 34 | */ 35 | protected function commands() 36 | { 37 | $this->load(__DIR__.'/Commands'); 38 | 39 | require base_path('routes/console.php'); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /resources/views/vendor/flash/message.blade.php: -------------------------------------------------------------------------------- 1 | @foreach (session('flash_notification', collect())->toArray() as $message) 2 | @if ($message['overlay']) 3 | @include('flash::modal', [ 4 | 'modalClass' => 'flash-modal', 5 | 'title' => $message['title'], 6 | 'body' => $message['message'] 7 | ]) 8 | @else 9 | 24 | @endif 25 | @endforeach 26 | 27 | {{ session()->forget('flash_notification') }} 28 | -------------------------------------------------------------------------------- /Modules/Activity/Resources/views/web/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('web.layouts.default') 2 | 3 | @section('mainContent') 4 |
5 |
6 |
7 | @foreach ($activities as $activity) 8 |
9 | @include('activity::common._activity-lite-card', ['activity' => $activity]) 10 |
11 | @endforeach 12 | 13 | @unless ($activities->count()) 14 |
15 |
暂无活动
16 |
17 | @endunless 18 | 19 |
20 |
21 | {{ $activities->links() }} 22 |
23 |
24 | {{ $activities->links('pagination::simple-bootstrap-4') }} 25 |
26 |
27 |
28 |
29 |
30 | @endsection 31 | -------------------------------------------------------------------------------- /database/migrations/2019_08_19_000000_create_failed_jobs_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('uuid')->unique(); 19 | $table->text('connection'); 20 | $table->text('queue'); 21 | $table->longText('payload'); 22 | $table->longText('exception'); 23 | $table->timestamp('failed_at')->useCurrent(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('failed_jobs'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Modules/Post/Routes/api.php: -------------------------------------------------------------------------------- 1 | group(function () { 6 | Route::get('/', [PostController::class, 'index'])->name('api.posts.index'); 7 | Route::get('{post}', [PostController::class, 'show'])->name('api.posts.show')->where('post', '[0-9]+'); 8 | Route::get('user-posts', [PostController::class, 'userPosts'])->name('api.posts.user-posts'); 9 | 10 | Route::middleware(['auth:sanctum'])->group(function () { 11 | Route::post('/', [PostController::class, 'store'])->name('api.posts.store'); 12 | Route::post('delete', [PostController::class, 'destroy'])->name('api.posts.delete'); 13 | Route::post('hidden', [PostController::class, 'hidden'])->name('api.posts.hidden'); 14 | 15 | Route::post('upload-image', [PostController::class, 'uploadImage'])->name('api.posts.upload-image'); 16 | Route::post('upload-video', [PostController::class, 'uploadVideo'])->name('api.posts.upload-video'); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /app/Http/Controllers/Api/UserReportController.php: -------------------------------------------------------------------------------- 1 | validate([ 20 | 'entity_class' => 'required', 21 | 'entity_id' => 'required|integer', 22 | ]); 23 | 24 | $user = Auth::guard('sanctum')->user(); 25 | $data = [ 26 | 'user_id' => $user ? $user->id : null, 27 | 'entity_class' => $request->get('entity_class'), 28 | 'entity_id' => $request->get('entity_id'), 29 | ]; 30 | $userReport = UserReport::create($data); 31 | 32 | return new CommonResource($userReport); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->register(\Laravel\Telescope\TelescopeServiceProvider::class); 19 | } 20 | } 21 | 22 | /** 23 | * Bootstrap any application services. 24 | * 25 | * @return void 26 | */ 27 | public function boot() 28 | { 29 | // 使用 bootstrap 风格的分页 30 | \Illuminate\Pagination\Paginator::useBootstrap(); 31 | 32 | // 中国手机号码验证器 33 | Validator::extend('phone', function ($attribute, $value, $parameters, $validator) { 34 | return $validator->validateRegex($attribute, $value, ['/^1[3456789]\d{9}$/']); 35 | }, '手机号码格式不正确'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /database/migrations/2019_08_18_000000_create_jobs_table.php: -------------------------------------------------------------------------------- 1 | bigIncrements('id'); 18 | $table->string('queue')->index(); 19 | $table->longText('payload'); 20 | $table->unsignedTinyInteger('attempts'); 21 | $table->unsignedInteger('reserved_at')->nullable(); 22 | $table->unsignedInteger('available_at'); 23 | $table->unsignedInteger('created_at'); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('jobs'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/canvas-to-blob.min.js: -------------------------------------------------------------------------------- 1 | !function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h.shortcut-buttons-flatpickr-label{-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0 5px}.shortcut-buttons-flatpickr-wrapper>.shortcut-buttons-flatpickr-buttons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.shortcut-buttons-flatpickr-buttons>.shortcut-buttons-flatpickr-button{margin:2px}.light.shortcut-buttons-flatpickr-wrapper{background-color:#eceef1;color:#5a6171} -------------------------------------------------------------------------------- /app/Http/Controllers/Dashboard/PostController.php: -------------------------------------------------------------------------------- 1 | function ($query) { 18 | $query->select('id', 'avatar', 'nickname'); 19 | }, 20 | 'video' => function ($query) { 21 | $query->select('id', 'post_id', 'file_path'); 22 | }, 23 | 'images' => function ($query) { 24 | $query->select('id', 'post_id', 'file_path'); 25 | }, 26 | ])->latest()->paginate(); 27 | 28 | return view('dashboard.posts.index', compact('posts')); 29 | } 30 | 31 | /** 32 | * 详情页 33 | */ 34 | public function show(Post $post) 35 | { 36 | return view('dashboard.posts.show', compact('post')); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /database/factories/Common/CommentFactory.php: -------------------------------------------------------------------------------- 1 | faker = \Faker\Factory::create(config('app.faker_locale')); 25 | $this->faker->addProvider(new \SupGeekRod\FakerZh\ZhCnDataProvider($this->faker)); 26 | 27 | return [ 28 | 'floor_number' => 1, 29 | 30 | 'user_id' => null, 31 | 'entity_class' => null, 32 | 'entity_id' => null, 33 | 'content' => $this->faker->sentences(random_int(1, 3),true), 34 | 'status' => 1, 35 | ]; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => env('MAILGUN_DOMAIN'), 19 | 'secret' => env('MAILGUN_SECRET'), 20 | 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), 21 | ], 22 | 23 | 'postmark' => [ 24 | 'token' => env('POSTMARK_TOKEN'), 25 | ], 26 | 27 | 'ses' => [ 28 | 'key' => env('AWS_ACCESS_KEY_ID'), 29 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 30 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 31 | ], 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php: -------------------------------------------------------------------------------- 1 | bigIncrements('id'); 18 | $table->morphs('tokenable'); 19 | $table->string('name'); 20 | $table->string('token', 64)->unique(); 21 | $table->text('abilities')->nullable(); 22 | $table->timestamp('last_used_at')->nullable(); 23 | $table->timestamps(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('personal_access_tokens'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Events/Notices/Listeners/writeNoticeTableHandler.php: -------------------------------------------------------------------------------- 1 | $event->type, 32 | 'user_id' => $event->user->id, 33 | 'sender_id' => $event->sender->id, 34 | 35 | 'entity_class' => get_class($event->entity), 36 | 'entity_id' => class_basename($event->entity->id), 37 | ]); 38 | 39 | $event->notice = $notice; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Modules/Activity/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" 11 | }, 12 | "devDependencies": { 13 | "cross-env": "^7.0", 14 | "laravel-mix": "^5.0.1", 15 | "laravel-mix-merge-manifest": "^0.1.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Modules/Article/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" 11 | }, 12 | "devDependencies": { 13 | "cross-env": "^7.0", 14 | "laravel-mix": "^5.0.1", 15 | "laravel-mix-merge-manifest": "^0.1.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Modules/Post/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" 11 | }, 12 | "devDependencies": { 13 | "cross-env": "^7.0", 14 | "laravel-mix": "^5.0.1", 15 | "laravel-mix-merge-manifest": "^0.1.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Modules/Article/Database/Migrations/2021_12_20_211845_create_article_tags_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | 19 | $table->tinyInteger('sort')->nullable()->comment('排序'); 20 | 21 | $table->string('slug')->comment('SLUG'); 22 | $table->string('name')->comment('名称'); 23 | $table->string('description')->nullable()->comment('描述'); 24 | 25 | $table->timestamps(); 26 | $table->softDeletes(); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::dropIfExists('article_tags'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/Admin/Controllers/HomeController.php: -------------------------------------------------------------------------------- 1 | title('Dashboard') 17 | ->description('Description...') 18 | ->row(Dashboard::title()) 19 | ->row(function (Row $row) { 20 | 21 | $row->column(4, function (Column $column) { 22 | $column->append(Dashboard::environment()); 23 | }); 24 | 25 | $row->column(4, function (Column $column) { 26 | $column->append(Dashboard::extensions()); 27 | }); 28 | 29 | $row->column(4, function (Column $column) { 30 | $column->append(Dashboard::dependencies()); 31 | }); 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Modules/Activity/Resources/views/common/_activity-profile.blade.php: -------------------------------------------------------------------------------- 1 | @php 2 | if (! isset($showTopCover)) $showTopCover = true; 3 | @endphp 4 | 5 |
6 | @if ($showTopCover) 7 | 8 | @endif 9 |
10 |
11 |

{{ $activity->title }}

12 |
{{ $activity->user->nickname }}
13 |
14 |
15 |
#{{ $activity->id }}
16 |
{{ $activity->created_at }}
17 |
18 |
19 |
20 |
21 |
22 |
活动简介
23 |
{{ $activity->intro }}
24 |
25 |
26 |
{!! $activity->content !!}
27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /Modules/Article/Resources/views/common/_article-profile.blade.php: -------------------------------------------------------------------------------- 1 | @php 2 | if (! isset($showArticleTopCover)) $showArticleTopCover = true; 3 | @endphp 4 | 5 |
6 | @if ($showArticleTopCover) 7 | 8 | @endif 9 |
10 |
11 |

{{ $article->title }}

12 |
{{ $article->author }}
13 |
14 |
15 |
#{{ $article->id }}
16 |
{{ $article->created_at }}
17 |
18 |
19 | 20 |
21 |
22 |
23 |
文章简介
24 |
{{ $article->intro }}
25 |
26 |
27 |
{!! $article->content !!}
28 |
29 |
30 | 31 | --------------------------------------------------------------------------------