├── README.md ├── app ├── admin_config.php ├── ajax.php ├── chk.php ├── img │ ├── admin.css │ ├── bgico.png │ ├── ico.ico │ ├── jquery.min.js │ ├── js.js │ ├── kindeditor.js │ ├── kindeditor │ │ ├── anchor │ │ │ └── anchor.js │ │ ├── autoheight │ │ │ └── autoheight.js │ │ ├── baidumap │ │ │ ├── baidumap.js │ │ │ ├── index.html │ │ │ └── map.html │ │ ├── clearhtml │ │ │ └── clearhtml.js │ │ ├── code │ │ │ └── code.js │ │ ├── common │ │ │ ├── anchor.gif │ │ │ ├── blank.gif │ │ │ ├── flash.gif │ │ │ ├── loading.gif │ │ │ ├── media.gif │ │ │ └── rm.gif │ │ ├── default │ │ │ ├── background.png │ │ │ ├── default.css │ │ │ └── default.png │ │ ├── filemanager │ │ │ ├── filemanager.js │ │ │ └── images │ │ │ │ ├── file-16.gif │ │ │ │ ├── file-64.gif │ │ │ │ ├── folder-16.gif │ │ │ │ ├── folder-64.gif │ │ │ │ └── go-up.gif │ │ ├── flash │ │ │ └── flash.js │ │ ├── image │ │ │ ├── image.js │ │ │ └── images │ │ │ │ ├── align_left.gif │ │ │ │ ├── align_right.gif │ │ │ │ ├── align_top.gif │ │ │ │ └── refresh.png │ │ ├── insertfile │ │ │ └── insertfile.js │ │ ├── lineheight │ │ │ └── lineheight.js │ │ ├── link │ │ │ └── link.js │ │ ├── map │ │ │ ├── map.html │ │ │ └── map.js │ │ ├── media │ │ │ └── media.js │ │ ├── multiimage │ │ │ ├── images │ │ │ │ ├── image.png │ │ │ │ ├── select-files-en.png │ │ │ │ ├── select-files-zh_CN.png │ │ │ │ └── swfupload.swf │ │ │ └── multiimage.js │ │ ├── pagebreak │ │ │ └── pagebreak.js │ │ ├── plainpaste │ │ │ └── plainpaste.js │ │ ├── preview │ │ │ └── preview.js │ │ ├── quickformat │ │ │ └── quickformat.js │ │ ├── simple │ │ │ └── simple.css │ │ ├── table │ │ │ └── table.js │ │ ├── template │ │ │ ├── html │ │ │ │ ├── 1.html │ │ │ │ ├── 2.html │ │ │ │ └── 3.html │ │ │ └── template.js │ │ ├── wordpaste │ │ │ └── wordpaste.js │ │ └── zh_CN.js │ └── loading.gif ├── index.php ├── input │ ├── 1.php │ ├── 10.php │ ├── 11.php │ ├── 12.php │ ├── 14.php │ ├── 15.php │ ├── 16.php │ ├── 17.php │ ├── 18.php │ ├── 19.php │ ├── 2.php │ ├── 21.php │ ├── 22.php │ ├── 23.php │ ├── 24.php │ ├── 26.php │ ├── 27.php │ ├── 28.php │ ├── 29.php │ ├── 3.php │ ├── 30.php │ ├── 4.php │ ├── 5.php │ ├── 6.php │ ├── 7.php │ ├── 8.php │ ├── 9.php │ └── kses.php ├── install │ └── index.php ├── list │ ├── add.php │ ├── addpost.php │ ├── del.php │ ├── edit.php │ ├── editpost.php │ ├── index.php │ └── move.php ├── login.php ├── sadmin │ ├── aaddpost.php │ ├── adel.php │ ├── aedit.php │ ├── aeditpost.php │ ├── ain.php │ ├── aindex.php │ ├── cadd.php │ ├── caddpost.php │ ├── cdel.php │ ├── cedit.php │ ├── ceditpost.php │ ├── cin.php │ ├── cinedit.php │ ├── cineditjs.php │ ├── cineditpost.php │ ├── code.php │ ├── corder.php │ ├── cout.php │ ├── file.php │ ├── fileedit.php │ ├── index.php │ ├── saddpost.php │ ├── sbasic.php │ ├── sbasicedit.php │ ├── sdel.php │ ├── seditpost.php │ └── url.php ├── str │ ├── cache.php │ ├── editpost.php │ └── index.php ├── top.php ├── upload.php └── user │ ├── add.php │ ├── addpost.php │ ├── del.php │ ├── edit.php │ ├── editpost.php │ ├── index.php │ ├── my.php │ └── mypost.php ├── article.png ├── composer.json ├── composer.lock ├── delete.php ├── index.php ├── lilith_com.sql ├── myyjjpp.js ├── proxy_ip.php ├── robots.txt ├── token.php ├── uploads └── images │ ├── 20240924 │ ├── article.png │ ├── qiang-zhe-zhi-lu-tan-xun-wu-shu-guan-jun-de-bei-hou-gu-shi.webp │ ├── song-shan-shao-lin-wu-shu-zhi-ye-xue-yuan-chuan-tong-yu-xian-dai-rong-he-de-wu-shu-dian-tang.webp │ ├── tan-suo-chuan-tong-wu-shu-de-jing-sui-ji-yi.webp │ └── tan-xun-zhong-hua-wu-shu-gui-bao-chuan-tong-yu-xian-dai-de-rong-he-lu-jing.webp │ ├── about │ └── fa-xian-guan-jian-ci-1.png │ ├── ask │ ├── ling-qian-ping.png │ ├── wang-lu-xue.png │ ├── yan-qing-meng.png │ ├── yong-hen-yun.png │ └── zhuang-xiao-jie.png │ ├── banner │ ├── rang-wo-men-yi-qi-zai-qing-che-de-yong-chi-li-chang-you-ba.png │ ├── shi-fang-ya-li-jin-qing-chang-you.png │ ├── tiao-zhan-shui-yu-chao-yue-ji-xian.png │ ├── wu-xian-ke-neng-de-you-yong-zhi-lyu-zhi-deng-ni-lai-kai-qi.png │ └── you-yong-chuan-di-jian-kang-yu-huo-li-de-li-liang.png │ ├── column │ ├── fa-xian-guan-jian-ci-1.png │ ├── gong-si-fu-wu.png │ ├── jing-pin-xiang-mu.png │ ├── qi-ye-wen-hua.png │ └── zhao-dao-guan-jian-ci-2.png │ ├── icon │ └── favicon.ico │ ├── logo │ └── wang-zhan-biao-ti.png │ └── partner │ ├── 20240924233301062cd55f0b.png │ ├── 202409242333011f516d8ee0.png │ ├── 20240924233301338b443656.png │ ├── 202409242333014ef2c00d32.png │ ├── 2024092423330155cff655c7.png │ ├── 2024092423330158e9a4ef9c.png │ ├── 20240924233301690403badd.png │ ├── 2024092423330170d012997b.png │ ├── 2024092423330178a0a0a73d.png │ ├── 202409242333017b7350555a.png │ ├── 202409242333018831229985.png │ └── 202409242333018e34674647.png └── vendor ├── autoload.php ├── composer ├── ClassLoader.php ├── InstalledVersions.php ├── LICENSE ├── autoload_classmap.php ├── autoload_files.php ├── autoload_namespaces.php ├── autoload_psr4.php ├── autoload_real.php ├── autoload_static.php ├── installed.json ├── installed.php └── platform_check.php ├── font ├── PingFangMedium.ttf ├── cour.ttf ├── cuti.ttf └── shouxie.ttf ├── guzzlehttp ├── guzzle │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── UPGRADING.md │ ├── composer.json │ └── src │ │ ├── BodySummarizer.php │ │ ├── BodySummarizerInterface.php │ │ ├── Client.php │ │ ├── ClientInterface.php │ │ ├── ClientTrait.php │ │ ├── Cookie │ │ ├── CookieJar.php │ │ ├── CookieJarInterface.php │ │ ├── FileCookieJar.php │ │ ├── SessionCookieJar.php │ │ └── SetCookie.php │ │ ├── Exception │ │ ├── BadResponseException.php │ │ ├── ClientException.php │ │ ├── ConnectException.php │ │ ├── GuzzleException.php │ │ ├── InvalidArgumentException.php │ │ ├── RequestException.php │ │ ├── ServerException.php │ │ ├── TooManyRedirectsException.php │ │ └── TransferException.php │ │ ├── Handler │ │ ├── CurlFactory.php │ │ ├── CurlFactoryInterface.php │ │ ├── CurlHandler.php │ │ ├── CurlMultiHandler.php │ │ ├── EasyHandle.php │ │ ├── HeaderProcessor.php │ │ ├── MockHandler.php │ │ ├── Proxy.php │ │ └── StreamHandler.php │ │ ├── HandlerStack.php │ │ ├── MessageFormatter.php │ │ ├── MessageFormatterInterface.php │ │ ├── Middleware.php │ │ ├── Pool.php │ │ ├── PrepareBodyMiddleware.php │ │ ├── RedirectMiddleware.php │ │ ├── RequestOptions.php │ │ ├── RetryMiddleware.php │ │ ├── TransferStats.php │ │ ├── Utils.php │ │ ├── functions.php │ │ └── functions_include.php ├── promises │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── AggregateException.php │ │ ├── CancellationException.php │ │ ├── Coroutine.php │ │ ├── Create.php │ │ ├── Each.php │ │ ├── EachPromise.php │ │ ├── FulfilledPromise.php │ │ ├── Is.php │ │ ├── Promise.php │ │ ├── PromiseInterface.php │ │ ├── PromisorInterface.php │ │ ├── RejectedPromise.php │ │ ├── RejectionException.php │ │ ├── TaskQueue.php │ │ ├── TaskQueueInterface.php │ │ └── Utils.php └── psr7 │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ ├── AppendStream.php │ ├── BufferStream.php │ ├── CachingStream.php │ ├── DroppingStream.php │ ├── Exception │ └── MalformedUriException.php │ ├── FnStream.php │ ├── Header.php │ ├── HttpFactory.php │ ├── InflateStream.php │ ├── LazyOpenStream.php │ ├── LimitStream.php │ ├── Message.php │ ├── MessageTrait.php │ ├── MimeType.php │ ├── MultipartStream.php │ ├── NoSeekStream.php │ ├── PumpStream.php │ ├── Query.php │ ├── Request.php │ ├── Response.php │ ├── Rfc7230.php │ ├── ServerRequest.php │ ├── Stream.php │ ├── StreamDecoratorTrait.php │ ├── StreamWrapper.php │ ├── UploadedFile.php │ ├── Uri.php │ ├── UriComparator.php │ ├── UriNormalizer.php │ ├── UriResolver.php │ └── Utils.php ├── intervention └── image │ ├── LICENSE │ ├── composer.json │ ├── provides.json │ └── src │ ├── Intervention │ └── Image │ │ ├── AbstractColor.php │ │ ├── AbstractDecoder.php │ │ ├── AbstractDriver.php │ │ ├── AbstractEncoder.php │ │ ├── AbstractFont.php │ │ ├── AbstractShape.php │ │ ├── Commands │ │ ├── AbstractCommand.php │ │ ├── Argument.php │ │ ├── ChecksumCommand.php │ │ ├── CircleCommand.php │ │ ├── EllipseCommand.php │ │ ├── ExifCommand.php │ │ ├── IptcCommand.php │ │ ├── LineCommand.php │ │ ├── OrientateCommand.php │ │ ├── PolygonCommand.php │ │ ├── PsrResponseCommand.php │ │ ├── RectangleCommand.php │ │ ├── ResponseCommand.php │ │ ├── StreamCommand.php │ │ └── TextCommand.php │ │ ├── Constraint.php │ │ ├── Exception │ │ ├── ImageException.php │ │ ├── InvalidArgumentException.php │ │ ├── MissingDependencyException.php │ │ ├── NotFoundException.php │ │ ├── NotReadableException.php │ │ ├── NotSupportedException.php │ │ ├── NotWritableException.php │ │ └── RuntimeException.php │ │ ├── Facades │ │ └── Image.php │ │ ├── File.php │ │ ├── Filters │ │ ├── DemoFilter.php │ │ └── FilterInterface.php │ │ ├── Gd │ │ ├── Color.php │ │ ├── Commands │ │ │ ├── BackupCommand.php │ │ │ ├── BlurCommand.php │ │ │ ├── BrightnessCommand.php │ │ │ ├── ColorizeCommand.php │ │ │ ├── ContrastCommand.php │ │ │ ├── CropCommand.php │ │ │ ├── DestroyCommand.php │ │ │ ├── FillCommand.php │ │ │ ├── FitCommand.php │ │ │ ├── FlipCommand.php │ │ │ ├── GammaCommand.php │ │ │ ├── GetSizeCommand.php │ │ │ ├── GreyscaleCommand.php │ │ │ ├── HeightenCommand.php │ │ │ ├── InsertCommand.php │ │ │ ├── InterlaceCommand.php │ │ │ ├── InvertCommand.php │ │ │ ├── LimitColorsCommand.php │ │ │ ├── MaskCommand.php │ │ │ ├── OpacityCommand.php │ │ │ ├── PickColorCommand.php │ │ │ ├── PixelCommand.php │ │ │ ├── PixelateCommand.php │ │ │ ├── ResetCommand.php │ │ │ ├── ResizeCanvasCommand.php │ │ │ ├── ResizeCommand.php │ │ │ ├── RotateCommand.php │ │ │ ├── SharpenCommand.php │ │ │ ├── TrimCommand.php │ │ │ └── WidenCommand.php │ │ ├── Decoder.php │ │ ├── Driver.php │ │ ├── Encoder.php │ │ ├── Font.php │ │ └── Shapes │ │ │ ├── CircleShape.php │ │ │ ├── EllipseShape.php │ │ │ ├── LineShape.php │ │ │ ├── PolygonShape.php │ │ │ └── RectangleShape.php │ │ ├── Image.php │ │ ├── ImageManager.php │ │ ├── ImageManagerStatic.php │ │ ├── ImageServiceProvider.php │ │ ├── ImageServiceProviderLaravel4.php │ │ ├── ImageServiceProviderLaravelRecent.php │ │ ├── ImageServiceProviderLeague.php │ │ ├── ImageServiceProviderLumen.php │ │ ├── Imagick │ │ ├── Color.php │ │ ├── Commands │ │ │ ├── BackupCommand.php │ │ │ ├── BlurCommand.php │ │ │ ├── BrightnessCommand.php │ │ │ ├── ColorizeCommand.php │ │ │ ├── ContrastCommand.php │ │ │ ├── CropCommand.php │ │ │ ├── DestroyCommand.php │ │ │ ├── ExifCommand.php │ │ │ ├── FillCommand.php │ │ │ ├── FitCommand.php │ │ │ ├── FlipCommand.php │ │ │ ├── GammaCommand.php │ │ │ ├── GetSizeCommand.php │ │ │ ├── GreyscaleCommand.php │ │ │ ├── HeightenCommand.php │ │ │ ├── InsertCommand.php │ │ │ ├── InterlaceCommand.php │ │ │ ├── InvertCommand.php │ │ │ ├── LimitColorsCommand.php │ │ │ ├── MaskCommand.php │ │ │ ├── OpacityCommand.php │ │ │ ├── PickColorCommand.php │ │ │ ├── PixelCommand.php │ │ │ ├── PixelateCommand.php │ │ │ ├── ResetCommand.php │ │ │ ├── ResizeCanvasCommand.php │ │ │ ├── ResizeCommand.php │ │ │ ├── RotateCommand.php │ │ │ ├── SharpenCommand.php │ │ │ ├── TrimCommand.php │ │ │ └── WidenCommand.php │ │ ├── Decoder.php │ │ ├── Driver.php │ │ ├── Encoder.php │ │ ├── Font.php │ │ └── Shapes │ │ │ ├── CircleShape.php │ │ │ ├── EllipseShape.php │ │ │ ├── LineShape.php │ │ │ ├── PolygonShape.php │ │ │ └── RectangleShape.php │ │ ├── Point.php │ │ ├── Response.php │ │ └── Size.php │ └── config │ └── config.php ├── overtrue └── pinyin │ ├── .github │ ├── FUNDING.yml │ └── dependabot.yml │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── data │ ├── surnames │ ├── words_0 │ ├── words_1 │ ├── words_2 │ ├── words_3 │ ├── words_4 │ └── words_5 │ └── src │ ├── DictLoaderInterface.php │ ├── FileDictLoader.php │ ├── GeneratorFileDictLoader.php │ ├── MemoryFileDictLoader.php │ ├── Pinyin.php │ └── const.php ├── psr ├── http-client │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── ClientExceptionInterface.php │ │ ├── ClientInterface.php │ │ ├── NetworkExceptionInterface.php │ │ └── RequestExceptionInterface.php ├── http-factory │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── RequestFactoryInterface.php │ │ ├── ResponseFactoryInterface.php │ │ ├── ServerRequestFactoryInterface.php │ │ ├── StreamFactoryInterface.php │ │ ├── UploadedFileFactoryInterface.php │ │ └── UriFactoryInterface.php └── http-message │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── docs │ ├── PSR7-Interfaces.md │ └── PSR7-Usage.md │ └── src │ ├── MessageInterface.php │ ├── RequestInterface.php │ ├── ResponseInterface.php │ ├── ServerRequestInterface.php │ ├── StreamInterface.php │ ├── UploadedFileInterface.php │ └── UriInterface.php ├── ralouphie └── getallheaders │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ └── getallheaders.php └── symfony └── deprecation-contracts ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── composer.json └── function.php /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | license MIT 5 | version 2.0.4 6 | php80 7 | Telegram: myyjjpp 8 |

9 | 10 | 11 | 12 | ## 更新 13 | - 新增TOKEN认证,站点操作所有权归站长本人. 14 | - TOKEN自定义 `token.php`. 15 | 16 | 17 | ## 安装篇 18 | - [宝塔安装教程](https://github.com/program-myyjjpp/TIM/wiki) 19 | 20 | ## 联系方式 21 | Telegram: myyjjpp 22 | -------------------------------------------------------------------------------- /app/img/bgico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/bgico.png -------------------------------------------------------------------------------- /app/img/ico.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/ico.ico -------------------------------------------------------------------------------- /app/img/kindeditor/anchor/anchor.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('anchor', function(K) { 11 | var self = this, name = 'anchor', lang = self.lang(name + '.'); 12 | self.plugin.anchor = { 13 | edit : function() { 14 | var html = ['
', 15 | '
', 16 | '', 17 | '', 18 | '
', 19 | '
'].join(''); 20 | var dialog = self.createDialog({ 21 | name : name, 22 | width : 300, 23 | title : self.lang(name), 24 | body : html, 25 | yesBtn : { 26 | name : self.lang('yes'), 27 | click : function(e) { 28 | self.insertHtml('').hideDialog().focus(); 29 | } 30 | } 31 | }); 32 | var div = dialog.div, 33 | nameBox = K('input[name="name"]', div); 34 | var img = self.plugin.getSelectedAnchor(); 35 | if (img) { 36 | nameBox.val(unescape(img.attr('data-ke-name'))); 37 | } 38 | nameBox[0].focus(); 39 | nameBox[0].select(); 40 | }, 41 | 'delete' : function() { 42 | self.plugin.getSelectedAnchor().remove(); 43 | } 44 | }; 45 | self.clickToolbar(name, self.plugin.anchor.edit); 46 | }); 47 | -------------------------------------------------------------------------------- /app/img/kindeditor/autoheight/autoheight.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('autoheight', function(K) { 11 | var self = this; 12 | 13 | if (!self.autoHeightMode) { 14 | return; 15 | } 16 | 17 | var minHeight; 18 | 19 | function hideScroll() { 20 | var edit = self.edit; 21 | var body = edit.doc.body; 22 | edit.iframe[0].scroll = 'no'; 23 | body.style.overflowY = 'hidden'; 24 | } 25 | 26 | function resetHeight() { 27 | var edit = self.edit; 28 | var body = edit.doc.body; 29 | edit.iframe.height(minHeight); 30 | self.resize(null, Math.max((K.IE ? body.scrollHeight : body.offsetHeight) + 76, minHeight)); 31 | } 32 | 33 | function init() { 34 | minHeight = K.removeUnit(self.height); 35 | 36 | self.edit.afterChange(resetHeight); 37 | hideScroll(); 38 | resetHeight(); 39 | } 40 | 41 | if (self.isCreated) { 42 | init(); 43 | } else { 44 | self.afterCreate(init); 45 | } 46 | }); 47 | 48 | /* 49 | * 如何实现真正的自动高度? 50 | * 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。 51 | * 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。 52 | * 由此就实现了真正的自动高度 53 | * 测试:chrome、firefox、IE9、IE8 54 | * */ 55 | -------------------------------------------------------------------------------- /app/img/kindeditor/baidumap/map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Baidu Maps 6 | 10 | 11 | 39 | 40 | 41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /app/img/kindeditor/clearhtml/clearhtml.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('clearhtml', function(K) { 11 | var self = this, name = 'clearhtml'; 12 | self.clickToolbar(name, function() { 13 | self.focus(); 14 | var html = self.html(); 15 | html = html.replace(/(]*>)([\s\S]*?)(<\/script>)/ig, ''); 16 | html = html.replace(/(]*>)([\s\S]*?)(<\/style>)/ig, ''); 17 | html = K.formatHtml(html, { 18 | a : ['href', 'target'], 19 | embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], 20 | img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], 21 | table : ['border'], 22 | 'td,th' : ['rowspan', 'colspan'], 23 | 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] 24 | }); 25 | self.html(html); 26 | self.cmd.selection(true); 27 | self.addBookmark(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /app/img/kindeditor/common/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/common/anchor.gif -------------------------------------------------------------------------------- /app/img/kindeditor/common/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/common/blank.gif -------------------------------------------------------------------------------- /app/img/kindeditor/common/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/common/flash.gif -------------------------------------------------------------------------------- /app/img/kindeditor/common/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/common/loading.gif -------------------------------------------------------------------------------- /app/img/kindeditor/common/media.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/common/media.gif -------------------------------------------------------------------------------- /app/img/kindeditor/common/rm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/common/rm.gif -------------------------------------------------------------------------------- /app/img/kindeditor/default/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/default/background.png -------------------------------------------------------------------------------- /app/img/kindeditor/default/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/default/default.png -------------------------------------------------------------------------------- /app/img/kindeditor/filemanager/images/file-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/filemanager/images/file-16.gif -------------------------------------------------------------------------------- /app/img/kindeditor/filemanager/images/file-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/filemanager/images/file-64.gif -------------------------------------------------------------------------------- /app/img/kindeditor/filemanager/images/folder-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/filemanager/images/folder-16.gif -------------------------------------------------------------------------------- /app/img/kindeditor/filemanager/images/folder-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/filemanager/images/folder-64.gif -------------------------------------------------------------------------------- /app/img/kindeditor/filemanager/images/go-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/filemanager/images/go-up.gif -------------------------------------------------------------------------------- /app/img/kindeditor/image/images/align_left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/image/images/align_left.gif -------------------------------------------------------------------------------- /app/img/kindeditor/image/images/align_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/image/images/align_right.gif -------------------------------------------------------------------------------- /app/img/kindeditor/image/images/align_top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/image/images/align_top.gif -------------------------------------------------------------------------------- /app/img/kindeditor/image/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/image/images/refresh.png -------------------------------------------------------------------------------- /app/img/kindeditor/lineheight/lineheight.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('lineheight', function(K) { 11 | var self = this, name = 'lineheight', lang = self.lang(name + '.'); 12 | self.clickToolbar(name, function() { 13 | var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'}); 14 | if (commonNode) { 15 | curVal = commonNode.css('line-height'); 16 | } 17 | var menu = self.createMenu({ 18 | name : name, 19 | width : 150 20 | }); 21 | K.each(lang.lineHeight, function(i, row) { 22 | K.each(row, function(key, val) { 23 | menu.addItem({ 24 | title : val, 25 | checked : curVal === key, 26 | click : function() { 27 | self.cmd.toggle('', { 28 | span : '.line-height=' + key 29 | }); 30 | self.updateState(); 31 | self.addBookmark(); 32 | self.hideMenu(); 33 | } 34 | }); 35 | }); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /app/img/kindeditor/multiimage/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/multiimage/images/image.png -------------------------------------------------------------------------------- /app/img/kindeditor/multiimage/images/select-files-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/multiimage/images/select-files-en.png -------------------------------------------------------------------------------- /app/img/kindeditor/multiimage/images/select-files-zh_CN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/multiimage/images/select-files-zh_CN.png -------------------------------------------------------------------------------- /app/img/kindeditor/multiimage/images/swfupload.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/kindeditor/multiimage/images/swfupload.swf -------------------------------------------------------------------------------- /app/img/kindeditor/pagebreak/pagebreak.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('pagebreak', function(K) { 11 | var self = this; 12 | var name = 'pagebreak'; 13 | var pagebreakHtml = K.undef(self.pagebreakHtml, '
'); 14 | 15 | self.clickToolbar(name, function() { 16 | var cmd = self.cmd, range = cmd.range; 17 | self.focus(); 18 | var tail = self.newlineTag == 'br' || K.WEBKIT ? '' : ''; 19 | self.insertHtml(pagebreakHtml + tail); 20 | if (tail !== '') { 21 | var p = K('#__kindeditor_tail_tag__', self.edit.doc); 22 | range.selectNodeContents(p[0]); 23 | p.removeAttr('id'); 24 | cmd.select(); 25 | } 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /app/img/kindeditor/plainpaste/plainpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('plainpaste', function(K) { 11 | var self = this, name = 'plainpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var html = textarea.val(); 27 | html = K.escape(html); 28 | html = html.replace(/ {2}/g, '  '); 29 | if (self.newlineTag == 'p') { 30 | html = html.replace(/^/, '

').replace(/$/, '

').replace(/\n/g, '

'); 31 | } else { 32 | html = html.replace(/\n/g, '
$&'); 33 | } 34 | self.insertHtml(html).hideDialog().focus(); 35 | } 36 | } 37 | }), 38 | textarea = K('textarea', dialog.div); 39 | textarea[0].focus(); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /app/img/kindeditor/preview/preview.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('preview', function(K) { 11 | var self = this, name = 'preview', undefined; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '

' + 15 | '' + 16 | '
', 17 | dialog = self.createDialog({ 18 | name : name, 19 | width : 750, 20 | title : self.lang(name), 21 | body : html 22 | }), 23 | iframe = K('iframe', dialog.div), 24 | doc = K.iframeDoc(iframe); 25 | doc.open(); 26 | doc.write(self.fullHtml()); 27 | doc.close(); 28 | K(doc.body).css('background-color', '#FFF'); 29 | iframe[0].contentWindow.focus(); 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /app/img/kindeditor/template/html/1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入标题 9 |

10 |

11 | 在此处输入内容 12 |

13 | 14 | -------------------------------------------------------------------------------- /app/img/kindeditor/template/html/2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 标题 9 |

10 | 11 | 12 | 13 | 16 | 19 | 20 | 21 | 24 | 27 | 28 | 29 | 32 | 35 | 36 | 37 |
14 |

标题1

15 |
17 |

标题1

18 |
22 | 内容1 23 | 25 | 内容2 26 |
30 | 内容3 31 | 33 | 内容4 34 |
38 |

39 | 表格说明 40 |

41 | 42 | -------------------------------------------------------------------------------- /app/img/kindeditor/template/html/3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入内容 9 |

10 |
    11 |
  1. 12 | 描述1 13 |
  2. 14 |
  3. 15 | 描述2 16 |
  4. 17 |
  5. 18 | 描述3 19 |
  6. 20 |
21 |

22 | 在此处输入内容 23 |

24 |
    25 |
  • 26 | 描述1 27 |
  • 28 |
  • 29 | 描述2 30 |
  • 31 |
  • 32 | 描述3 33 |
  • 34 |
35 | 36 | -------------------------------------------------------------------------------- /app/img/kindeditor/wordpaste/wordpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('wordpaste', function(K) { 11 | var self = this, name = 'wordpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var str = doc.body.innerHTML; 27 | str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); 28 | self.insertHtml(str).hideDialog().focus(); 29 | } 30 | } 31 | }), 32 | div = dialog.div, 33 | iframe = K('iframe', div), 34 | doc = K.iframeDoc(iframe); 35 | if (!K.IE) { 36 | doc.designMode = 'on'; 37 | } 38 | doc.open(); 39 | doc.write('WordPaste'); 40 | doc.write(''); 41 | if (!K.IE) { 42 | doc.write('
'); 43 | } 44 | doc.write(''); 45 | doc.close(); 46 | if (K.IE) { 47 | doc.body.contentEditable = 'true'; 48 | } 49 | iframe[0].contentWindow.focus(); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /app/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/app/img/loading.gif -------------------------------------------------------------------------------- /app/input/1.php: -------------------------------------------------------------------------------- 1 | name="" type="text" value="" size="60" class="inputtext"> -------------------------------------------------------------------------------- /app/input/10.php: -------------------------------------------------------------------------------- 1 | 17 | 18 | query("SELECT id,$mname FROM $thisarticletable where cid='$cid' $thisorder limit 1000;"); 26 | $strarray = $GLOBALS['db'] -> fetchall($query); 27 | foreach ($strarray as $value) 28 | { 29 | if(is_array($inputvalues) && in_array($value[0],$inputvalues)) { 30 | echo(''); 31 | }else { 32 | echo(''); 33 | } 34 | } 35 | }else {htmlinput_error($inputarray['from'],$inputarray['id']);} 36 | ?> -------------------------------------------------------------------------------- /app/input/11.php: -------------------------------------------------------------------------------- 1 | '); 17 | $cid=$strarray[0]; 18 | $mname=$strarray[1]; 19 | $channel=adminchannelcache($cid); 20 | if($channel) { 21 | $thisarticletable=$channel['csetting']['articletable']; 22 | $thisorder=$channel['csetting']['temppage_order']; 23 | $query = $GLOBALS['db'] -> query("SELECT id,$mname FROM $thisarticletable where cid='$cid' $thisorder limit 1000;"); 24 | $strarray = $GLOBALS['db'] -> fetchall($query); 25 | foreach ($strarray as $value) 26 | { 27 | if($value['id']==$inputvalue) { 28 | $thisselected=true; 29 | echo(''); 30 | }else { 31 | echo(''); 32 | } 33 | } 34 | }else {echo('');htmlinput_error($inputarray['from'],$inputarray['id']);} 35 | if($thisselected==false) { 36 | echo(''); 37 | }else { 38 | echo(''); 39 | } 40 | echo(''); 41 | ?> -------------------------------------------------------------------------------- /app/input/12.php: -------------------------------------------------------------------------------- 1 | query("SELECT id,$mname FROM $thisarticletable where cid='$cid' $thisorder limit 1000;"); 22 | $strarray = $GLOBALS['db'] -> fetchall($query); 23 | foreach ($strarray as $value) 24 | { 25 | if($value['id']==$inputvalue) { 26 | echo(' '); 27 | }else { 28 | echo(' '); 29 | } 30 | } 31 | }else {htmlinput_error($inputarray['from'],$inputarray['id']);} 32 | ?> -------------------------------------------------------------------------------- /app/input/18.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |
    4 | '') { 9 | echo('

  • '); 10 | } 11 | } 12 | }else { 13 | echo('

  • '); 14 | } 15 | ?> 16 |
17 |

18 |
19 | -------------------------------------------------------------------------------- /app/input/19.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |
    4 | '') { 9 | echo('
  • '); 10 | } 11 | } 12 | }else { 13 | echo('
  • '); 14 | } 15 | ?> 16 |
17 |

18 |
19 | -------------------------------------------------------------------------------- /app/input/2.php: -------------------------------------------------------------------------------- 1 | name="" cols="60" rows="6" class="textarea"> -------------------------------------------------------------------------------- /app/input/26.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /app/input/28.php: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /app/input/29.php: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /app/input/3.php: -------------------------------------------------------------------------------- 1 | '); 16 | $GLOBALS['kindeditor']=1; 17 | } 18 | ?> 19 | id="" name="" cols="30" rows="6"> 20 | -------------------------------------------------------------------------------- /app/input/30.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/input/4.php: -------------------------------------------------------------------------------- 1 | '); 16 | $GLOBALS['kindeditor']=1; 17 | } 18 | ?> 19 | name="" id=""> 20 | -------------------------------------------------------------------------------- /app/input/7.php: -------------------------------------------------------------------------------- 1 | 18 | name="" type="text" value="" size="10" class="inputtext"> -------------------------------------------------------------------------------- /app/input/8.php: -------------------------------------------------------------------------------- 1 | query("SELECT id,$mname,fid FROM $thisarticletable where cid='$cid' $thisorder limit 3000;"); 22 | $strarray = $GLOBALS['db'] -> fetchall($query); 23 | echo(''); 27 | }else {htmlinput_error($inputarray['from'],$inputarray['id']);} -------------------------------------------------------------------------------- /app/sadmin/adel.php: -------------------------------------------------------------------------------- 1 | query("delete from `".tableex('moudle')."` WHERE id='$id'"); 19 | if($query) { 20 | if(!isset($_SERVER["HTTP_REFERER"])) {$_SERVER["HTTP_REFERER"]='';} 21 | adminmsg($_SERVER["HTTP_REFERER"],'删除成功',1); 22 | }else { 23 | adminmsg('','删除失败',3); 24 | } 25 | 26 | ?> 27 | -------------------------------------------------------------------------------- /app/sadmin/cdel.php: -------------------------------------------------------------------------------- 1 | fetchcount("SELECT count(cid) FROM ".tableex('channel')." where fid='$cid'"); 19 | if($pagecount>0) { 20 | adminmsg('','请先删除下属栏目',1); 21 | } 22 | $query = $GLOBALS['db'] -> query("delete from `".tableex('str')."` WHERE strcid='$cid'"); 23 | if($query) { 24 | $query = $GLOBALS['db'] -> query("delete from `".tableex('moudle')."` WHERE cid='$cid'"); 25 | if($query) { 26 | $query = $GLOBALS['db'] -> query("delete from `".tableex('channel')."` WHERE cid='$cid'"); 27 | if($query) { 28 | $msg='删除成功'; 29 | channelrouter(); 30 | cachedel('channelscache','channel'); 31 | cachedel('channelcache_'.$cid,'channel'); 32 | }else { 33 | $msg='删除栏目失败'; 34 | } 35 | }else { 36 | $msg='删除栏目模型失败'; 37 | } 38 | }else { 39 | $msg='删除栏目参数失败'; 40 | } 41 | if(!isset($_SERVER["HTTP_REFERER"])) {$_SERVER["HTTP_REFERER"]='';} 42 | adminmsg($_SERVER["HTTP_REFERER"],$msg,1); 43 | ?> -------------------------------------------------------------------------------- /app/sadmin/corder.php: -------------------------------------------------------------------------------- 1 | query("UPDATE ".tableex('channel')." SET corder='$corder' WHERE cid='$cid'"); 20 | if($query) { 21 | $msg='修改成功'; 22 | }else { 23 | $msg='修改失败'; 24 | } 25 | if(!isset($_SERVER["HTTP_REFERER"])) {$_SERVER["HTTP_REFERER"]='';} 26 | adminmsg($_SERVER["HTTP_REFERER"],$msg,1); 27 | ?> -------------------------------------------------------------------------------- /app/sadmin/sdel.php: -------------------------------------------------------------------------------- 1 | query("delete from `".tableex('str')."` WHERE id='$id' and inputkind>0"); 19 | if(!isset($_SERVER["HTTP_REFERER"])) {$_SERVER["HTTP_REFERER"]='';} 20 | $url=$_SERVER["HTTP_REFERER"]; 21 | if($query) { 22 | $msg='删除成功'; 23 | }else { 24 | $msg='删除失败'; 25 | } 26 | adminmsg($url,$msg,1); 27 | ?> 28 | -------------------------------------------------------------------------------- /app/str/cache.php: -------------------------------------------------------------------------------- 1 | 250) { 42 | closedir($dh); 43 | echo(''); 44 | exit; 45 | } 46 | } else { 47 | deldir($fullpath); 48 | } 49 | } 50 | } 51 | closedir($dh); 52 | if($dir!==CacheDir) { 53 | if(@rmdir($dir)) { 54 | $filecount++; 55 | return true; 56 | } else { 57 | adminmsg('','无法删除缓存目录'.$dir.',请设置目录权限',1); 58 | return false; 59 | } 60 | } 61 | Return true; 62 | 63 | } -------------------------------------------------------------------------------- /app/user/del.php: -------------------------------------------------------------------------------- 1 | one("SELECT * FROM `".tableex('admin')."` where id='$id' limit 1"); 31 | if($thisname==$delinfo['username']) { 32 | adminmsg('','不能删除自己的账号',3); 33 | } 34 | if($alevel==2) { 35 | if($delinfo['alevel']>=$alevel) { 36 | adminmsg('','无权限',3); 37 | } 38 | } 39 | $superadmincount = $GLOBALS['db'] -> fetchcount("SELECT count(id) FROM `".tableex('admin')."` where id<>'$id' and alevel='3'"); 40 | if($superadmincount<1) { 41 | adminmsg('','系统必须拥有一位超级管理员',3); 42 | } 43 | $query = $GLOBALS['db'] -> query("delete from `".tableex('admin')."` WHERE id='$id' and alevel<='$alevel' and username<>'$thisname'"); 44 | if($query) { 45 | $msg='删除成功'; 46 | }else { 47 | $msg='删除失败'; 48 | } 49 | adminmsg('?do=user',$msg,3); 50 | ?> -------------------------------------------------------------------------------- /app/user/index.php: -------------------------------------------------------------------------------- 1 | 28 |
29 |
后台管理>管理员列表
30 |

添加管理员后台帐户管理

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | all("SELECT * FROM ".tableex('admin')." where alevel<='$alevel'"); 40 | foreach($alluser as $link) { 41 | ?> 42 | 43 | 44 | 47 | 61 | 64 | 65 | 68 | 69 |
编号管理员名称管理员账号操作
45 | 46 | 48 | 49 | (超级管理员)'); 57 | } 58 | } 59 | ?> 60 | 62 | 修改 | 63 | 删除
70 |
71 |
72 | 73 | -------------------------------------------------------------------------------- /app/user/mypost.php: -------------------------------------------------------------------------------- 1 | 0) { 22 | $psd1=trim($_POST['psd1']); 23 | if($psd<>$psd1) { 24 | adminmsg('','两次输入密码不一致',3); 25 | } 26 | } 27 | $thisname=getadminname(); 28 | if(isset($_SERVER['HTTP_REFERER'])) { 29 | if(stripos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST'])===false) { 30 | die('error referer'); 31 | } 32 | if(stripos($_SERVER['HTTP_REFERER'],'?do=user_my')===false) { 33 | die('error referer'); 34 | } 35 | } 36 | if($psd=='') { 37 | $query = $GLOBALS['db'] -> query("UPDATE ".tableex('admin')." SET nickname='$nickname' WHERE username='$thisname'"); 38 | if($query) { 39 | $msg='修改成功'; 40 | }else { 41 | $msg='修改失败'; 42 | } 43 | }else { 44 | $psd=password_md5($psd); 45 | $query = $GLOBALS['db'] -> query("UPDATE ".tableex('admin')." SET nickname='$nickname',psd='$psd' WHERE username='$thisname'"); 46 | if($query) { 47 | $msg='修改成功,请重新登录'; 48 | adminmsg('?do=user_my',$msg,3,'登录页');//setadminpsd($psd); 49 | }else { 50 | $msg='修改失败'; 51 | } 52 | } 53 | adminmsg('?do=user_my',$msg,3); 54 | ?> 55 | -------------------------------------------------------------------------------- /article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/article.png -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "overtrue/pinyin": "^4.1", 4 | "intervention/image": "^2.7", 5 | "guzzlehttp/guzzle": "^7.8" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 'tunnel5.qg.net',//代理IP 5 | 'proxyPort' => 22111,//端口号 6 | 'proxyUser' => '22111',//username 7 | 'proxyPassword' => '22111',//password 8 | ]; -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | Sitemap: https://91kuihjbb.net/sitemap.xml 4 | Sitemap: https://91kuihjbb.net/sitemap.html 5 | Sitemap: https://91kuihjbb.net/sitemap.txt -------------------------------------------------------------------------------- /token.php: -------------------------------------------------------------------------------- 1 | 'e90bdae271edcf90a206118d4b050da05a42394e6cd9bc75e8628bfd727faabb', 8 | 9 | ]; -------------------------------------------------------------------------------- /uploads/images/20240924/article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/20240924/article.png -------------------------------------------------------------------------------- /uploads/images/20240924/qiang-zhe-zhi-lu-tan-xun-wu-shu-guan-jun-de-bei-hou-gu-shi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/20240924/qiang-zhe-zhi-lu-tan-xun-wu-shu-guan-jun-de-bei-hou-gu-shi.webp -------------------------------------------------------------------------------- /uploads/images/20240924/song-shan-shao-lin-wu-shu-zhi-ye-xue-yuan-chuan-tong-yu-xian-dai-rong-he-de-wu-shu-dian-tang.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/20240924/song-shan-shao-lin-wu-shu-zhi-ye-xue-yuan-chuan-tong-yu-xian-dai-rong-he-de-wu-shu-dian-tang.webp -------------------------------------------------------------------------------- /uploads/images/20240924/tan-suo-chuan-tong-wu-shu-de-jing-sui-ji-yi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/20240924/tan-suo-chuan-tong-wu-shu-de-jing-sui-ji-yi.webp -------------------------------------------------------------------------------- /uploads/images/20240924/tan-xun-zhong-hua-wu-shu-gui-bao-chuan-tong-yu-xian-dai-de-rong-he-lu-jing.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/20240924/tan-xun-zhong-hua-wu-shu-gui-bao-chuan-tong-yu-xian-dai-de-rong-he-lu-jing.webp -------------------------------------------------------------------------------- /uploads/images/about/fa-xian-guan-jian-ci-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/about/fa-xian-guan-jian-ci-1.png -------------------------------------------------------------------------------- /uploads/images/ask/ling-qian-ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/ask/ling-qian-ping.png -------------------------------------------------------------------------------- /uploads/images/ask/wang-lu-xue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/ask/wang-lu-xue.png -------------------------------------------------------------------------------- /uploads/images/ask/yan-qing-meng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/ask/yan-qing-meng.png -------------------------------------------------------------------------------- /uploads/images/ask/yong-hen-yun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/ask/yong-hen-yun.png -------------------------------------------------------------------------------- /uploads/images/ask/zhuang-xiao-jie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/ask/zhuang-xiao-jie.png -------------------------------------------------------------------------------- /uploads/images/banner/rang-wo-men-yi-qi-zai-qing-che-de-yong-chi-li-chang-you-ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/banner/rang-wo-men-yi-qi-zai-qing-che-de-yong-chi-li-chang-you-ba.png -------------------------------------------------------------------------------- /uploads/images/banner/shi-fang-ya-li-jin-qing-chang-you.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/banner/shi-fang-ya-li-jin-qing-chang-you.png -------------------------------------------------------------------------------- /uploads/images/banner/tiao-zhan-shui-yu-chao-yue-ji-xian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/banner/tiao-zhan-shui-yu-chao-yue-ji-xian.png -------------------------------------------------------------------------------- /uploads/images/banner/wu-xian-ke-neng-de-you-yong-zhi-lyu-zhi-deng-ni-lai-kai-qi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/banner/wu-xian-ke-neng-de-you-yong-zhi-lyu-zhi-deng-ni-lai-kai-qi.png -------------------------------------------------------------------------------- /uploads/images/banner/you-yong-chuan-di-jian-kang-yu-huo-li-de-li-liang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/banner/you-yong-chuan-di-jian-kang-yu-huo-li-de-li-liang.png -------------------------------------------------------------------------------- /uploads/images/column/fa-xian-guan-jian-ci-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/column/fa-xian-guan-jian-ci-1.png -------------------------------------------------------------------------------- /uploads/images/column/gong-si-fu-wu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/column/gong-si-fu-wu.png -------------------------------------------------------------------------------- /uploads/images/column/jing-pin-xiang-mu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/column/jing-pin-xiang-mu.png -------------------------------------------------------------------------------- /uploads/images/column/qi-ye-wen-hua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/column/qi-ye-wen-hua.png -------------------------------------------------------------------------------- /uploads/images/column/zhao-dao-guan-jian-ci-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/column/zhao-dao-guan-jian-ci-2.png -------------------------------------------------------------------------------- /uploads/images/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/icon/favicon.ico -------------------------------------------------------------------------------- /uploads/images/logo/wang-zhan-biao-ti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/logo/wang-zhan-biao-ti.png -------------------------------------------------------------------------------- /uploads/images/partner/20240924233301062cd55f0b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/20240924233301062cd55f0b.png -------------------------------------------------------------------------------- /uploads/images/partner/202409242333011f516d8ee0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/202409242333011f516d8ee0.png -------------------------------------------------------------------------------- /uploads/images/partner/20240924233301338b443656.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/20240924233301338b443656.png -------------------------------------------------------------------------------- /uploads/images/partner/202409242333014ef2c00d32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/202409242333014ef2c00d32.png -------------------------------------------------------------------------------- /uploads/images/partner/2024092423330155cff655c7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/2024092423330155cff655c7.png -------------------------------------------------------------------------------- /uploads/images/partner/2024092423330158e9a4ef9c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/2024092423330158e9a4ef9c.png -------------------------------------------------------------------------------- /uploads/images/partner/20240924233301690403badd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/20240924233301690403badd.png -------------------------------------------------------------------------------- /uploads/images/partner/2024092423330170d012997b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/2024092423330170d012997b.png -------------------------------------------------------------------------------- /uploads/images/partner/2024092423330178a0a0a73d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/2024092423330178a0a0a73d.png -------------------------------------------------------------------------------- /uploads/images/partner/202409242333017b7350555a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/202409242333017b7350555a.png -------------------------------------------------------------------------------- /uploads/images/partner/202409242333018831229985.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/202409242333018831229985.png -------------------------------------------------------------------------------- /uploads/images/partner/202409242333018e34674647.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/uploads/images/partner/202409242333018e34674647.png -------------------------------------------------------------------------------- /vendor/autoload.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/composer/InstalledVersions.php', 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 10 | '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', 11 | '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', 12 | 'dc1275c308c5b416beb314b6317daca2' => $vendorDir . '/overtrue/pinyin/src/const.php', 13 | ); 14 | -------------------------------------------------------------------------------- /vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'), 10 | 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'), 11 | 'Overtrue\\Pinyin\\' => array($vendorDir . '/overtrue/pinyin/src'), 12 | 'Intervention\\Image\\' => array($vendorDir . '/intervention/image/src/Intervention/Image'), 13 | 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 14 | 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), 15 | 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), 16 | ); 17 | -------------------------------------------------------------------------------- /vendor/composer/platform_check.php: -------------------------------------------------------------------------------- 1 | = 80002)) { 8 | $issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.2". You are running ' . PHP_VERSION . '.'; 9 | } 10 | 11 | if ($issues) { 12 | if (!headers_sent()) { 13 | header('HTTP/1.1 500 Internal Server Error'); 14 | } 15 | if (!ini_get('display_errors')) { 16 | if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 17 | fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); 18 | } elseif (!headers_sent()) { 19 | echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; 20 | } 21 | } 22 | trigger_error( 23 | 'Composer detected issues in your platform: ' . implode(' ', $issues), 24 | E_USER_ERROR 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /vendor/font/PingFangMedium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/vendor/font/PingFangMedium.ttf -------------------------------------------------------------------------------- /vendor/font/cour.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/vendor/font/cour.ttf -------------------------------------------------------------------------------- /vendor/font/cuti.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/vendor/font/cuti.ttf -------------------------------------------------------------------------------- /vendor/font/shouxie.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/program-myyjjpp/TIM/8165143b75d3d7b4a34e708c26881aee3b5eab3d/vendor/font/shouxie.ttf -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011 Michael Dowling 4 | Copyright (c) 2012 Jeremy Lindblom 5 | Copyright (c) 2014 Graham Campbell 6 | Copyright (c) 2015 Márk Sági-Kazár 7 | Copyright (c) 2015 Tobias Schultze 8 | Copyright (c) 2016 Tobias Nyholm 9 | Copyright (c) 2016 George Mponos 10 | 11 | Permission is hereby granted, free of charge, to any person obtaining a copy 12 | of this software and associated documentation files (the "Software"), to deal 13 | in the Software without restriction, including without limitation the rights 14 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the Software is 16 | furnished to do so, subject to the following conditions: 17 | 18 | The above copyright notice and this permission notice shall be included in 19 | all copies or substantial portions of the Software. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | THE SOFTWARE. 28 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/src/BodySummarizer.php: -------------------------------------------------------------------------------- 1 | truncateAt = $truncateAt; 17 | } 18 | 19 | /** 20 | * Returns a summarized message body. 21 | */ 22 | public function summarize(MessageInterface $message): ?string 23 | { 24 | return $this->truncateAt === null 25 | ? \GuzzleHttp\Psr7\Message::bodySummary($message) 26 | : \GuzzleHttp\Psr7\Message::bodySummary($message, $this->truncateAt); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/src/BodySummarizerInterface.php: -------------------------------------------------------------------------------- 1 | request = $request; 33 | $this->handlerContext = $handlerContext; 34 | } 35 | 36 | /** 37 | * Get the request that caused the exception 38 | */ 39 | public function getRequest(): RequestInterface 40 | { 41 | return $this->request; 42 | } 43 | 44 | /** 45 | * Get contextual information about the error from the underlying handler. 46 | * 47 | * The contents of this array will vary depending on which handler you are 48 | * using. It may also be just an empty array. Relying on this data will 49 | * couple you to a specific handler, but can give more debug information 50 | * when needed. 51 | */ 52 | public function getHandlerContext(): array 53 | { 54 | return $this->handlerContext; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php: -------------------------------------------------------------------------------- 1 | factory = $options['handle_factory'] 34 | ?? new CurlFactory(3); 35 | } 36 | 37 | public function __invoke(RequestInterface $request, array $options): PromiseInterface 38 | { 39 | if (isset($options['delay'])) { 40 | \usleep($options['delay'] * 1000); 41 | } 42 | 43 | $easy = $this->factory->create($request, $options); 44 | \curl_exec($easy->handle); 45 | $easy->errno = \curl_errno($easy->handle); 46 | 47 | return CurlFactory::finish($this, $easy, $this->factory); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/src/Handler/HeaderProcessor.php: -------------------------------------------------------------------------------- 1 | 4 | Copyright (c) 2015 Graham Campbell 5 | Copyright (c) 2017 Tobias Schultze 6 | Copyright (c) 2020 Tobias Nyholm 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/promises/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guzzlehttp/promises", 3 | "description": "Guzzle promises library", 4 | "keywords": ["promise"], 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Graham Campbell", 9 | "email": "hello@gjcampbell.co.uk", 10 | "homepage": "https://github.com/GrahamCampbell" 11 | }, 12 | { 13 | "name": "Michael Dowling", 14 | "email": "mtdowling@gmail.com", 15 | "homepage": "https://github.com/mtdowling" 16 | }, 17 | { 18 | "name": "Tobias Nyholm", 19 | "email": "tobias.nyholm@gmail.com", 20 | "homepage": "https://github.com/Nyholm" 21 | }, 22 | { 23 | "name": "Tobias Schultze", 24 | "email": "webmaster@tubo-world.de", 25 | "homepage": "https://github.com/Tobion" 26 | } 27 | ], 28 | "require": { 29 | "php": "^7.2.5 || ^8.0" 30 | }, 31 | "require-dev": { 32 | "bamarni/composer-bin-plugin": "^1.8.1", 33 | "phpunit/phpunit": "^8.5.29 || ^9.5.23" 34 | }, 35 | "autoload": { 36 | "psr-4": { 37 | "GuzzleHttp\\Promise\\": "src/" 38 | } 39 | }, 40 | "autoload-dev": { 41 | "psr-4": { 42 | "GuzzleHttp\\Promise\\Tests\\": "tests/" 43 | } 44 | }, 45 | "extra": { 46 | "bamarni-bin": { 47 | "bin-links": true, 48 | "forward-command": false 49 | } 50 | }, 51 | "config": { 52 | "allow-plugins": { 53 | "bamarni/composer-bin-plugin": true 54 | }, 55 | "preferred-install": "dist", 56 | "sort-packages": true 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/promises/src/AggregateException.php: -------------------------------------------------------------------------------- 1 | getState() === PromiseInterface::PENDING; 15 | } 16 | 17 | /** 18 | * Returns true if a promise is fulfilled or rejected. 19 | */ 20 | public static function settled(PromiseInterface $promise): bool 21 | { 22 | return $promise->getState() !== PromiseInterface::PENDING; 23 | } 24 | 25 | /** 26 | * Returns true if a promise is fulfilled. 27 | */ 28 | public static function fulfilled(PromiseInterface $promise): bool 29 | { 30 | return $promise->getState() === PromiseInterface::FULFILLED; 31 | } 32 | 33 | /** 34 | * Returns true if a promise is rejected. 35 | */ 36 | public static function rejected(PromiseInterface $promise): bool 37 | { 38 | return $promise->getState() === PromiseInterface::REJECTED; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/promises/src/PromisorInterface.php: -------------------------------------------------------------------------------- 1 | reason = $reason; 24 | 25 | $message = 'The promise was rejected'; 26 | 27 | if ($description) { 28 | $message .= ' with reason: '.$description; 29 | } elseif (is_string($reason) 30 | || (is_object($reason) && method_exists($reason, '__toString')) 31 | ) { 32 | $message .= ' with reason: '.$this->reason; 33 | } elseif ($reason instanceof \JsonSerializable) { 34 | $message .= ' with reason: '.json_encode($this->reason, JSON_PRETTY_PRINT); 35 | } 36 | 37 | parent::__construct($message); 38 | } 39 | 40 | /** 41 | * Returns the rejection reason. 42 | * 43 | * @return mixed 44 | */ 45 | public function getReason() 46 | { 47 | return $this->reason; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/promises/src/TaskQueueInterface.php: -------------------------------------------------------------------------------- 1 | 4 | Copyright (c) 2015 Márk Sági-Kazár 5 | Copyright (c) 2015 Graham Campbell 6 | Copyright (c) 2016 Tobias Schultze 7 | Copyright (c) 2016 George Mponos 8 | Copyright (c) 2018 Tobias Nyholm 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in 18 | all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/src/DroppingStream.php: -------------------------------------------------------------------------------- 1 | stream = $stream; 30 | $this->maxLength = $maxLength; 31 | } 32 | 33 | public function write($string): int 34 | { 35 | $diff = $this->maxLength - $this->stream->getSize(); 36 | 37 | // Begin returning 0 when the underlying stream is too large. 38 | if ($diff <= 0) { 39 | return 0; 40 | } 41 | 42 | // Write the stream or a subset of the stream if needed. 43 | if (strlen($string) < $diff) { 44 | return $this->stream->write($string); 45 | } 46 | 47 | return $this->stream->write(substr($string, 0, $diff)); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/src/Exception/MalformedUriException.php: -------------------------------------------------------------------------------- 1 | 15 + 32]); 35 | $this->stream = $stream->isSeekable() ? new Stream($resource) : new NoSeekStream(new Stream($resource)); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/src/LazyOpenStream.php: -------------------------------------------------------------------------------- 1 | filename = $filename; 35 | $this->mode = $mode; 36 | 37 | // unsetting the property forces the first access to go through 38 | // __get(). 39 | unset($this->stream); 40 | } 41 | 42 | /** 43 | * Creates the underlying stream lazily when required. 44 | */ 45 | protected function createStream(): StreamInterface 46 | { 47 | return Utils::streamFor(Utils::tryFopen($this->filename, $this->mode)); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/src/NoSeekStream.php: -------------------------------------------------------------------------------- 1 | @,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m"; 22 | public const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; 23 | } 24 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/src/UriComparator.php: -------------------------------------------------------------------------------- 1 | getHost(), $modified->getHost()) !== 0) { 23 | return true; 24 | } 25 | 26 | if ($original->getScheme() !== $modified->getScheme()) { 27 | return true; 28 | } 29 | 30 | if (self::computePort($original) !== self::computePort($modified)) { 31 | return true; 32 | } 33 | 34 | return false; 35 | } 36 | 37 | private static function computePort(UriInterface $uri): int 38 | { 39 | $port = $uri->getPort(); 40 | 41 | if (null !== $port) { 42 | return $port; 43 | } 44 | 45 | return 'https' === $uri->getScheme() ? 443 : 80; 46 | } 47 | 48 | private function __construct() 49 | { 50 | // cannot be instantiated 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /vendor/intervention/image/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Oliver Vogel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /vendor/intervention/image/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "intervention/image", 3 | "description": "Image handling and manipulation library with support for Laravel integration", 4 | "homepage": "http://image.intervention.io/", 5 | "keywords": ["image", "gd", "imagick", "laravel", "watermark", "thumbnail"], 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "Oliver Vogel", 10 | "email": "oliver@intervention.io", 11 | "homepage": "https://intervention.io/" 12 | } 13 | ], 14 | "require": { 15 | "php": ">=5.4.0", 16 | "ext-fileinfo": "*", 17 | "guzzlehttp/psr7": "~1.1 || ^2.0" 18 | }, 19 | "require-dev": { 20 | "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15", 21 | "mockery/mockery": "~0.9.2" 22 | }, 23 | "suggest": { 24 | "ext-gd": "to use GD library based image processing.", 25 | "ext-imagick": "to use Imagick based image processing.", 26 | "intervention/imagecache": "Caching extension for the Intervention Image library" 27 | }, 28 | "autoload": { 29 | "psr-4": { 30 | "Intervention\\Image\\": "src/Intervention/Image" 31 | } 32 | }, 33 | "extra": { 34 | "branch-alias": { 35 | "dev-master": "2.4-dev" 36 | }, 37 | "laravel": { 38 | "providers": [ 39 | "Intervention\\Image\\ImageServiceProvider" 40 | ], 41 | "aliases": { 42 | "Image": "Intervention\\Image\\Facades\\Image" 43 | } 44 | } 45 | }, 46 | "minimum-stability": "stable" 47 | } 48 | -------------------------------------------------------------------------------- /vendor/intervention/image/provides.json: -------------------------------------------------------------------------------- 1 | { 2 | "providers": [ 3 | "Intervention\\Image\\ImageServiceProvider" 4 | ], 5 | "aliases": [ 6 | { 7 | "alias": "Image", 8 | "facade": "Intervention\\Image\\Facades\\Image" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/AbstractShape.php: -------------------------------------------------------------------------------- 1 | background = $color; 47 | } 48 | 49 | /** 50 | * Set border width and color of current shape 51 | * 52 | * @param int $width 53 | * @param string $color 54 | * @return void 55 | */ 56 | public function border($width, $color = null) 57 | { 58 | $this->border_width = is_numeric($width) ? intval($width) : 0; 59 | $this->border_color = is_null($color) ? '#000000' : $color; 60 | } 61 | 62 | /** 63 | * Determines if current shape has border 64 | * 65 | * @return boolean 66 | */ 67 | public function hasBorder() 68 | { 69 | return ($this->border_width >= 1); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php: -------------------------------------------------------------------------------- 1 | getSize(); 18 | 19 | for ($x=0; $x <= ($size->width-1); $x++) { 20 | for ($y=0; $y <= ($size->height-1); $y++) { 21 | $colors[] = $image->pickColor($x, $y, 'array'); 22 | } 23 | } 24 | 25 | $this->setOutput(md5(serialize($colors))); 26 | 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/CircleCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 18 | $x = $this->argument(1)->type('numeric')->required()->value(); 19 | $y = $this->argument(2)->type('numeric')->required()->value(); 20 | $callback = $this->argument(3)->type('closure')->value(); 21 | 22 | $circle_classname = sprintf('\Intervention\Image\%s\Shapes\CircleShape', 23 | $image->getDriver()->getDriverName()); 24 | 25 | $circle = new $circle_classname($diameter); 26 | 27 | if ($callback instanceof Closure) { 28 | $callback($circle); 29 | } 30 | 31 | $circle->applyToImage($image, $x, $y); 32 | 33 | return true; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 18 | $height = $this->argument(1)->type('numeric')->required()->value(); 19 | $x = $this->argument(2)->type('numeric')->required()->value(); 20 | $y = $this->argument(3)->type('numeric')->required()->value(); 21 | $callback = $this->argument(4)->type('closure')->value(); 22 | 23 | $ellipse_classname = sprintf('\Intervention\Image\%s\Shapes\EllipseShape', 24 | $image->getDriver()->getDriverName()); 25 | 26 | $ellipse = new $ellipse_classname($width, $height); 27 | 28 | if ($callback instanceof Closure) { 29 | $callback($ellipse); 30 | } 31 | 32 | $ellipse->applyToImage($image, $x, $y); 33 | 34 | return true; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/LineCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 18 | $y1 = $this->argument(1)->type('numeric')->required()->value(); 19 | $x2 = $this->argument(2)->type('numeric')->required()->value(); 20 | $y2 = $this->argument(3)->type('numeric')->required()->value(); 21 | $callback = $this->argument(4)->type('closure')->value(); 22 | 23 | $line_classname = sprintf('\Intervention\Image\%s\Shapes\LineShape', 24 | $image->getDriver()->getDriverName()); 25 | 26 | $line = new $line_classname($x2, $y2); 27 | 28 | if ($callback instanceof Closure) { 29 | $callback($line); 30 | } 31 | 32 | $line->applyToImage($image, $x1, $y1); 33 | 34 | return true; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php: -------------------------------------------------------------------------------- 1 | exif('Orientation')) { 16 | 17 | case 2: 18 | $image->flip(); 19 | break; 20 | 21 | case 3: 22 | $image->rotate(180); 23 | break; 24 | 25 | case 4: 26 | $image->rotate(180)->flip(); 27 | break; 28 | 29 | case 5: 30 | $image->rotate(270)->flip(); 31 | break; 32 | 33 | case 6: 34 | $image->rotate(270); 35 | break; 36 | 37 | case 7: 38 | $image->rotate(90)->flip(); 39 | break; 40 | 41 | case 8: 42 | $image->rotate(90); 43 | break; 44 | } 45 | 46 | return true; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('array')->required()->value(); 19 | $callback = $this->argument(1)->type('closure')->value(); 20 | 21 | $vertices_count = count($points); 22 | 23 | // check if number if coordinates is even 24 | if ($vertices_count % 2 !== 0) { 25 | throw new InvalidArgumentException( 26 | "The number of given polygon vertices must be even." 27 | ); 28 | } 29 | 30 | if ($vertices_count < 6) { 31 | throw new InvalidArgumentException( 32 | "You must have at least 3 points in your array." 33 | ); 34 | } 35 | 36 | $polygon_classname = sprintf('\Intervention\Image\%s\Shapes\PolygonShape', 37 | $image->getDriver()->getDriverName()); 38 | 39 | $polygon = new $polygon_classname($points); 40 | 41 | if ($callback instanceof Closure) { 42 | $callback($polygon); 43 | } 44 | 45 | $polygon->applyToImage($image); 46 | 47 | return true; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 24 | $quality = $this->argument(1)->between(0, 100)->value(); 25 | 26 | //Encoded property will be populated at this moment 27 | $stream = $image->stream($format, $quality); 28 | 29 | $mimetype = finfo_buffer( 30 | finfo_open(FILEINFO_MIME_TYPE), 31 | $image->getEncoded() 32 | ); 33 | 34 | $this->setOutput(new Response( 35 | 200, 36 | [ 37 | 'Content-Type' => $mimetype, 38 | 'Content-Length' => strlen($image->getEncoded()) 39 | ], 40 | $stream 41 | )); 42 | 43 | return true; 44 | } 45 | } -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 18 | $y1 = $this->argument(1)->type('numeric')->required()->value(); 19 | $x2 = $this->argument(2)->type('numeric')->required()->value(); 20 | $y2 = $this->argument(3)->type('numeric')->required()->value(); 21 | $callback = $this->argument(4)->type('closure')->value(); 22 | 23 | $rectangle_classname = sprintf('\Intervention\Image\%s\Shapes\RectangleShape', 24 | $image->getDriver()->getDriverName()); 25 | 26 | $rectangle = new $rectangle_classname($x1, $y1, $x2, $y2); 27 | 28 | if ($callback instanceof Closure) { 29 | $callback($rectangle); 30 | } 31 | 32 | $rectangle->applyToImage($image, $x1, $y1); 33 | 34 | return true; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 18 | $quality = $this->argument(1)->between(0, 100)->value(); 19 | 20 | $response = new Response($image, $format, $quality); 21 | 22 | $this->setOutput($response->make()); 23 | 24 | return true; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/StreamCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 17 | $quality = $this->argument(1)->between(0, 100)->value(); 18 | $data = $image->encode($format, $quality)->getEncoded(); 19 | 20 | $this->setOutput($this->getStream($data)); 21 | 22 | return true; 23 | } 24 | 25 | /** 26 | * Create stream from given data 27 | * 28 | * @param string $data 29 | * @return \Psr\Http\Message\StreamInterface 30 | */ 31 | protected function getStream($data) 32 | { 33 | if (class_exists(\GuzzleHttp\Psr7\Utils::class)) { 34 | return \GuzzleHttp\Psr7\Utils::streamFor($data); // guzzlehttp/psr7 >= 2.0 35 | } 36 | 37 | return \GuzzleHttp\Psr7\stream_for($data); // guzzlehttp/psr7 < 2.0 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Commands/TextCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->required()->value(); 17 | $x = $this->argument(1)->type('numeric')->value(0); 18 | $y = $this->argument(2)->type('numeric')->value(0); 19 | $callback = $this->argument(3)->type('closure')->value(); 20 | 21 | $fontclassname = sprintf('\Intervention\Image\%s\Font', 22 | $image->getDriver()->getDriverName()); 23 | 24 | $font = new $fontclassname($text); 25 | 26 | if ($callback instanceof Closure) { 27 | $callback($font); 28 | } 29 | 30 | $font->applyToImage($image, $x, $y); 31 | 32 | return true; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Exception/ImageException.php: -------------------------------------------------------------------------------- 1 | size = is_numeric($size) ? intval($size) : self::DEFAULT_SIZE; 29 | } 30 | 31 | /** 32 | * Applies filter effects to given image 33 | * 34 | * @param \Intervention\Image\Image $image 35 | * @return \Intervention\Image\Image 36 | */ 37 | public function applyFilter(Image $image) 38 | { 39 | $image->pixelate($this->size); 40 | $image->greyscale(); 41 | 42 | return $image; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Filters/FilterInterface.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 18 | 19 | // clone current image resource 20 | $clone = clone $image; 21 | $image->setBackup($clone->getCore(), $backupName); 22 | 23 | return true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(0, 100)->value(1); 18 | 19 | for ($i=0; $i < intval($amount); $i++) { 20 | imagefilter($image->getCore(), IMG_FILTER_GAUSSIAN_BLUR); 21 | } 22 | 23 | return true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(-100, 100)->required()->value(); 18 | 19 | return imagefilter($image->getCore(), IMG_FILTER_BRIGHTNESS, ($level * 2.55)); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(-100, 100)->required()->value(); 18 | $green = $this->argument(1)->between(-100, 100)->required()->value(); 19 | $blue = $this->argument(2)->between(-100, 100)->required()->value(); 20 | 21 | // normalize colorize levels 22 | $red = round($red * 2.55); 23 | $green = round($green * 2.55); 24 | $blue = round($blue * 2.55); 25 | 26 | // apply filter 27 | return imagefilter($image->getCore(), IMG_FILTER_COLORIZE, $red, $green, $blue); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(-100, 100)->required()->value(); 18 | 19 | return imagefilter($image->getCore(), IMG_FILTER_CONTRAST, ($level * -1)); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 19 | $height = $this->argument(1)->type('digit')->required()->value(); 20 | $x = $this->argument(2)->type('digit')->value(); 21 | $y = $this->argument(3)->type('digit')->value(); 22 | 23 | if (is_null($width) || is_null($height)) { 24 | throw new \Intervention\Image\Exception\InvalidArgumentException( 25 | "Width and height of cutout needs to be defined." 26 | ); 27 | } 28 | 29 | $cropped = new Size($width, $height); 30 | $position = new Point($x, $y); 31 | 32 | // align boxes 33 | if (is_null($x) && is_null($y)) { 34 | $position = $image->getSize()->align('center')->relativePosition($cropped->align('center')); 35 | } 36 | 37 | // crop image core 38 | return $this->modify($image, 0, 0, $position->x, $position->y, $cropped->width, $cropped->height, $cropped->width, $cropped->height); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php: -------------------------------------------------------------------------------- 1 | getCore()); 19 | 20 | // destroy backups 21 | foreach ($image->getBackups() as $backup) { 22 | imagedestroy($backup); 23 | } 24 | 25 | return true; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 18 | $height = $this->argument(1)->type('digit')->value($width); 19 | $constraints = $this->argument(2)->type('closure')->value(); 20 | $position = $this->argument(3)->type('string')->value('center'); 21 | 22 | // calculate size 23 | $cropped = $image->getSize()->fit(new Size($width, $height), $position); 24 | $resized = clone $cropped; 25 | $resized = $resized->resize($width, $height, $constraints); 26 | 27 | // modify image 28 | $this->modify($image, 0, 0, $cropped->pivot->x, $cropped->pivot->y, $resized->getWidth(), $resized->getHeight(), $cropped->getWidth(), $cropped->getHeight()); 29 | 30 | return true; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value('h'); 16 | 17 | $size = $image->getSize(); 18 | $dst = clone $size; 19 | 20 | switch (strtolower($mode)) { 21 | case 2: 22 | case 'v': 23 | case 'vert': 24 | case 'vertical': 25 | $size->pivot->y = $size->height - 1; 26 | $size->height = $size->height * (-1); 27 | break; 28 | 29 | default: 30 | $size->pivot->x = $size->width - 1; 31 | $size->width = $size->width * (-1); 32 | break; 33 | } 34 | 35 | return $this->modify($image, 0, 0, $size->pivot->x, $size->pivot->y, $dst->width, $dst->height, $size->width, $size->height); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 18 | 19 | return imagegammacorrect($image->getCore(), 1, $gamma); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php: -------------------------------------------------------------------------------- 1 | setOutput(new Size( 19 | imagesx($image->getCore()), 20 | imagesy($image->getCore()) 21 | )); 22 | 23 | return true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php: -------------------------------------------------------------------------------- 1 | getCore(), IMG_FILTER_GRAYSCALE); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 16 | $additionalConstraints = $this->argument(1)->type('closure')->value(); 17 | 18 | $this->arguments[0] = null; 19 | $this->arguments[1] = $height; 20 | $this->arguments[2] = function ($constraint) use ($additionalConstraints) { 21 | $constraint->aspectRatio(); 22 | if(is_callable($additionalConstraints)) 23 | $additionalConstraints($constraint); 24 | }; 25 | 26 | return parent::execute($image); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->required()->value(); 18 | $position = $this->argument(1)->type('string')->value(); 19 | $x = $this->argument(2)->type('digit')->value(0); 20 | $y = $this->argument(3)->type('digit')->value(0); 21 | 22 | // build watermark 23 | $watermark = $image->getDriver()->init($source); 24 | 25 | // define insertion point 26 | $image_size = $image->getSize()->align($position, $x, $y); 27 | $watermark_size = $watermark->getSize()->align($position); 28 | $target = $image_size->relativePosition($watermark_size); 29 | 30 | // insert image at position 31 | imagealphablending($image->getCore(), true); 32 | return imagecopy($image->getCore(), $watermark->getCore(), $target->x, $target->y, 0, 0, $watermark_size->width, $watermark_size->height); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('bool')->value(true); 18 | 19 | imageinterlace($image->getCore(), $mode); 20 | 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php: -------------------------------------------------------------------------------- 1 | getCore(), IMG_FILTER_NEGATE); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 19 | $matte = $this->argument(1)->value(); 20 | 21 | // get current image size 22 | $size = $image->getSize(); 23 | 24 | // create empty canvas 25 | $resource = imagecreatetruecolor($size->width, $size->height); 26 | 27 | // define matte 28 | if (is_null($matte)) { 29 | $matte = imagecolorallocatealpha($resource, 255, 255, 255, 127); 30 | } else { 31 | $matte = $image->getDriver()->parseColor($matte)->getInt(); 32 | } 33 | 34 | // fill with matte and copy original image 35 | imagefill($resource, 0, 0, $matte); 36 | 37 | // set transparency 38 | imagecolortransparent($resource, $matte); 39 | 40 | // copy original image 41 | imagecopy($resource, $image->getCore(), 0, 0, 0, 0, $size->width, $size->height); 42 | 43 | if (is_numeric($count) && $count <= 256) { 44 | // decrease colors 45 | imagetruecolortopalette($resource, true, $count); 46 | } 47 | 48 | // set new resource 49 | $image->setCore($resource); 50 | 51 | return true; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(0, 100)->required()->value(); 18 | 19 | // get size of image 20 | $size = $image->getSize(); 21 | 22 | // build temp alpha mask 23 | $mask_color = sprintf('rgba(0, 0, 0, %.1F)', $transparency / 100); 24 | $mask = $image->getDriver()->newImage($size->width, $size->height, $mask_color); 25 | 26 | // mask image 27 | $image->mask($mask->getCore(), true); 28 | 29 | return true; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 19 | $y = $this->argument(1)->type('digit')->required()->value(); 20 | $format = $this->argument(2)->type('string')->value('array'); 21 | 22 | // pick color 23 | $color = imagecolorat($image->getCore(), $x, $y); 24 | 25 | if ( ! imageistruecolor($image->getCore())) { 26 | $color = imagecolorsforindex($image->getCore(), $color); 27 | $color['alpha'] = round(1 - $color['alpha'] / 127, 2); 28 | } 29 | 30 | $color = new Color($color); 31 | 32 | // format to output 33 | $this->setOutput($color->format($format)); 34 | 35 | return true; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->required()->value(); 19 | $color = new Color($color); 20 | $x = $this->argument(1)->type('digit')->required()->value(); 21 | $y = $this->argument(2)->type('digit')->required()->value(); 22 | 23 | return imagesetpixel($image->getCore(), $x, $y, $color->getInt()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->value(10); 18 | 19 | return imagefilter($image->getCore(), IMG_FILTER_PIXELATE, $size, true); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 19 | $backup = $image->getBackup($backupName); 20 | 21 | if (is_resource($backup) || $backup instanceof \GdImage) { 22 | 23 | // destroy current resource 24 | imagedestroy($image->getCore()); 25 | 26 | // clone backup 27 | $backup = $image->getDriver()->cloneCore($backup); 28 | 29 | // reset to new resource 30 | $image->setCore($backup); 31 | 32 | return true; 33 | } 34 | 35 | throw new RuntimeException( 36 | "Backup not available. Call backup() before reset()." 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 19 | $color = $this->argument(1)->value(); 20 | $color = new Color($color); 21 | 22 | // restrict rotations beyond 360 degrees, since the end result is the same 23 | $angle = fmod($angle, 360); 24 | 25 | // rotate image 26 | $image->setCore(imagerotate($image->getCore(), $angle, $color->getInt())); 27 | 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(0, 100)->value(10); 18 | 19 | // build matrix 20 | $min = $amount >= 10 ? $amount * -0.01 : 0; 21 | $max = $amount * -0.025; 22 | $abs = ((4 * $min + 4 * $max) * -1) + 1; 23 | $div = 1; 24 | 25 | $matrix = [ 26 | [$min, $max, $min], 27 | [$max, $abs, $max], 28 | [$min, $max, $min] 29 | ]; 30 | 31 | // apply the matrix 32 | return imageconvolution($image->getCore(), $matrix, $div, 0); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 16 | $additionalConstraints = $this->argument(1)->type('closure')->value(); 17 | 18 | $this->arguments[0] = $width; 19 | $this->arguments[1] = null; 20 | $this->arguments[2] = function ($constraint) use ($additionalConstraints) { 21 | $constraint->aspectRatio(); 22 | if(is_callable($additionalConstraints)) 23 | $additionalConstraints($constraint); 24 | }; 25 | 26 | return parent::execute($image); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php: -------------------------------------------------------------------------------- 1 | width = is_numeric($diameter) ? intval($diameter) : $this->diameter; 24 | $this->height = is_numeric($diameter) ? intval($diameter) : $this->diameter; 25 | $this->diameter = is_numeric($diameter) ? intval($diameter) : $this->diameter; 26 | } 27 | 28 | /** 29 | * Draw current circle on given image 30 | * 31 | * @param Image $image 32 | * @param int $x 33 | * @param int $y 34 | * @return boolean 35 | */ 36 | public function applyToImage(Image $image, $x = 0, $y = 0) 37 | { 38 | return parent::applyToImage($image, $x, $y); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php: -------------------------------------------------------------------------------- 1 | points = $points; 26 | } 27 | 28 | /** 29 | * Draw polygon on given image 30 | * 31 | * @param Image $image 32 | * @param int $x 33 | * @param int $y 34 | * @return boolean 35 | */ 36 | public function applyToImage(Image $image, $x = 0, $y = 0) 37 | { 38 | $background = new Color($this->background); 39 | imagefilledpolygon($image->getCore(), $this->points, intval(count($this->points) / 2), $background->getInt()); 40 | 41 | if ($this->hasBorder()) { 42 | $border_color = new Color($this->border_color); 43 | imagesetthickness($image->getCore(), $this->border_width); 44 | imagepolygon($image->getCore(), $this->points, intval(count($this->points) / 2), $border_color->getInt()); 45 | } 46 | 47 | return true; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php: -------------------------------------------------------------------------------- 1 | config = $config; 29 | } 30 | 31 | /** 32 | * Register the server provider. 33 | * 34 | * @return void 35 | */ 36 | public function register() 37 | { 38 | $this->getContainer()->share('Intervention\Image\ImageManager', function () { 39 | return new ImageManager($this->config); 40 | }); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php: -------------------------------------------------------------------------------- 1 | app; 17 | 18 | // merge default config 19 | $this->mergeConfigFrom( 20 | __DIR__.'/../../config/config.php', 21 | 'image' 22 | ); 23 | 24 | // set configuration 25 | $app->configure('image'); 26 | 27 | // create image 28 | $app->singleton('image',function ($app) { 29 | return new ImageManager($app['config']->get('image')); 30 | }); 31 | 32 | $app->alias('image', 'Intervention\Image\ImageManager'); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 18 | 19 | // clone current image resource 20 | $clone = clone $image; 21 | $image->setBackup($clone->getCore(), $backupName); 22 | 23 | return true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(0, 100)->value(1); 18 | 19 | return $image->getCore()->blurImage(1 * $amount, 0.5 * $amount); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(-100, 100)->required()->value(); 18 | 19 | return $image->getCore()->modulateImage(100 + $level, 100, 100); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(-100, 100)->required()->value(); 18 | $green = $this->argument(1)->between(-100, 100)->required()->value(); 19 | $blue = $this->argument(2)->between(-100, 100)->required()->value(); 20 | 21 | // normalize colorize levels 22 | $red = $this->normalizeLevel($red); 23 | $green = $this->normalizeLevel($green); 24 | $blue = $this->normalizeLevel($blue); 25 | 26 | $qrange = $image->getCore()->getQuantumRange(); 27 | 28 | // apply 29 | $image->getCore()->levelImage(0, $red, $qrange['quantumRangeLong'], \Imagick::CHANNEL_RED); 30 | $image->getCore()->levelImage(0, $green, $qrange['quantumRangeLong'], \Imagick::CHANNEL_GREEN); 31 | $image->getCore()->levelImage(0, $blue, $qrange['quantumRangeLong'], \Imagick::CHANNEL_BLUE); 32 | 33 | return true; 34 | } 35 | 36 | private function normalizeLevel($level) 37 | { 38 | if ($level > 0) { 39 | return $level/5; 40 | } else { 41 | return ($level+100)/100; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(-100, 100)->required()->value(); 18 | 19 | return $image->getCore()->sigmoidalContrastImage($level > 0, $level / 4, 0); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 21 | $height = $this->argument(1)->type('digit')->required()->value(); 22 | $x = $this->argument(2)->type('digit')->value(); 23 | $y = $this->argument(3)->type('digit')->value(); 24 | 25 | if (is_null($width) || is_null($height)) { 26 | throw new InvalidArgumentException( 27 | "Width and height of cutout needs to be defined." 28 | ); 29 | } 30 | 31 | $cropped = new Size($width, $height); 32 | $position = new Point($x, $y); 33 | 34 | // align boxes 35 | if (is_null($x) && is_null($y)) { 36 | $position = $image->getSize()->align('center')->relativePosition($cropped->align('center')); 37 | } 38 | 39 | // crop image core 40 | $image->getCore()->cropImage($cropped->width, $cropped->height, $position->x, $position->y); 41 | $image->getCore()->setImagePage(0,0,0,0); 42 | 43 | return true; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php: -------------------------------------------------------------------------------- 1 | getCore()->clear(); 19 | 20 | // destroy backups 21 | foreach ($image->getBackups() as $backup) { 22 | $backup->clear(); 23 | } 24 | 25 | return true; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php: -------------------------------------------------------------------------------- 1 | preferExtension = false; 22 | } 23 | 24 | /** 25 | * Read Exif data from the given image 26 | * 27 | * @param \Intervention\Image\Image $image 28 | * @return boolean 29 | */ 30 | public function execute($image) 31 | { 32 | if ($this->preferExtension && function_exists('exif_read_data')) { 33 | return parent::execute($image); 34 | } 35 | 36 | $core = $image->getCore(); 37 | 38 | if ( ! method_exists($core, 'getImageProperties')) { 39 | throw new NotSupportedException( 40 | "Reading Exif data is not supported by this PHP installation." 41 | ); 42 | } 43 | 44 | $requestedKey = $this->argument(0)->value(); 45 | if ($requestedKey !== null) { 46 | $this->setOutput($core->getImageProperty('exif:' . $requestedKey)); 47 | return true; 48 | } 49 | 50 | $exif = []; 51 | $properties = $core->getImageProperties(); 52 | foreach ($properties as $key => $value) { 53 | if (substr($key, 0, 5) !== 'exif:') { 54 | continue; 55 | } 56 | 57 | $exif[substr($key, 5)] = $value; 58 | } 59 | 60 | $this->setOutput($exif); 61 | return true; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 19 | $height = $this->argument(1)->type('digit')->value($width); 20 | $constraints = $this->argument(2)->type('closure')->value(); 21 | $position = $this->argument(3)->type('string')->value('center'); 22 | 23 | // calculate size 24 | $cropped = $image->getSize()->fit(new Size($width, $height), $position); 25 | $resized = clone $cropped; 26 | $resized = $resized->resize($width, $height, $constraints); 27 | 28 | // crop image 29 | $image->getCore()->cropImage( 30 | $cropped->width, 31 | $cropped->height, 32 | $cropped->pivot->x, 33 | $cropped->pivot->y 34 | ); 35 | 36 | // resize image 37 | $image->getCore()->scaleImage($resized->getWidth(), $resized->getHeight()); 38 | $image->getCore()->setImagePage(0,0,0,0); 39 | 40 | return true; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value('h'); 18 | 19 | if (in_array(strtolower($mode), [2, 'v', 'vert', 'vertical'])) { 20 | // flip vertical 21 | return $image->getCore()->flipImage(); 22 | } else { 23 | // flip horizontal 24 | return $image->getCore()->flopImage(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 18 | 19 | return $image->getCore()->gammaImage($gamma); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php: -------------------------------------------------------------------------------- 1 | getCore(); 20 | 21 | $this->setOutput(new Size( 22 | $core->getImageWidth(), 23 | $core->getImageHeight() 24 | )); 25 | 26 | return true; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php: -------------------------------------------------------------------------------- 1 | getCore()->modulateImage(100, 0, 100); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 16 | $additionalConstraints = $this->argument(1)->type('closure')->value(); 17 | 18 | $this->arguments[0] = null; 19 | $this->arguments[1] = $height; 20 | $this->arguments[2] = function ($constraint) use ($additionalConstraints) { 21 | $constraint->aspectRatio(); 22 | if(is_callable($additionalConstraints)) 23 | $additionalConstraints($constraint); 24 | }; 25 | 26 | return parent::execute($image); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->required()->value(); 18 | $position = $this->argument(1)->type('string')->value(); 19 | $x = $this->argument(2)->type('digit')->value(0); 20 | $y = $this->argument(3)->type('digit')->value(0); 21 | 22 | // build watermark 23 | $watermark = $image->getDriver()->init($source); 24 | 25 | // define insertion point 26 | $image_size = $image->getSize()->align($position, $x, $y); 27 | $watermark_size = $watermark->getSize()->align($position); 28 | $target = $image_size->relativePosition($watermark_size); 29 | 30 | // insert image at position 31 | return $image->getCore()->compositeImage($watermark->getCore(), \Imagick::COMPOSITE_DEFAULT, $target->x, $target->y); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('bool')->value(true); 18 | 19 | if ($mode) { 20 | $mode = \Imagick::INTERLACE_LINE; 21 | } else { 22 | $mode = \Imagick::INTERLACE_NO; 23 | } 24 | 25 | $image->getCore()->setInterlaceScheme($mode); 26 | 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php: -------------------------------------------------------------------------------- 1 | getCore()->negateImage(false); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(0, 100)->required()->value(); 18 | 19 | $transparency = $transparency > 0 ? (100 / $transparency) : 1000; 20 | 21 | return $image->getCore()->evaluateImage(\Imagick::EVALUATE_DIVIDE, $transparency, \Imagick::CHANNEL_ALPHA); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 19 | $y = $this->argument(1)->type('digit')->required()->value(); 20 | $format = $this->argument(2)->type('string')->value('array'); 21 | 22 | // pick color 23 | $color = new Color($image->getCore()->getImagePixelColor($x, $y)); 24 | 25 | // format to output 26 | $this->setOutput($color->format($format)); 27 | 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->required()->value(); 19 | $color = new Color($color); 20 | $x = $this->argument(1)->type('digit')->required()->value(); 21 | $y = $this->argument(2)->type('digit')->required()->value(); 22 | 23 | // prepare pixel 24 | $draw = new \ImagickDraw; 25 | $draw->setFillColor($color->getPixel()); 26 | $draw->point($x, $y); 27 | 28 | // apply pixel 29 | return $image->getCore()->drawImage($draw); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->value(10); 18 | 19 | $width = $image->getWidth(); 20 | $height = $image->getHeight(); 21 | 22 | $image->getCore()->scaleImage(max(1, intval($width / $size)), max(1, intval($height / $size))); 23 | $image->getCore()->scaleImage($width, $height); 24 | 25 | return true; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 19 | 20 | $backup = $image->getBackup($backupName); 21 | 22 | if ($backup instanceof \Imagick) { 23 | 24 | // destroy current core 25 | $image->getCore()->clear(); 26 | 27 | // clone backup 28 | $backup = clone $backup; 29 | 30 | // reset to new resource 31 | $image->setCore($backup); 32 | 33 | return true; 34 | } 35 | 36 | throw new RuntimeException( 37 | "Backup not available. Call backup({$backupName}) before reset()." 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->value(); 18 | $height = $this->argument(1)->value(); 19 | $constraints = $this->argument(2)->type('closure')->value(); 20 | 21 | // resize box 22 | $resized = $image->getSize()->resize($width, $height, $constraints); 23 | 24 | // modify image 25 | $image->getCore()->scaleImage($resized->getWidth(), $resized->getHeight()); 26 | 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('numeric')->required()->value(); 19 | $color = $this->argument(1)->value(); 20 | $color = new Color($color); 21 | 22 | // restrict rotations beyond 360 degrees, since the end result is the same 23 | $angle = fmod($angle, 360); 24 | 25 | // rotate image 26 | $image->getCore()->rotateImage($color->getPixel(), ($angle * -1)); 27 | 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->between(0, 100)->value(10); 18 | 19 | return $image->getCore()->unsharpMaskImage(1, 1, $amount / 6.25, 0); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php: -------------------------------------------------------------------------------- 1 | argument(0)->type('digit')->required()->value(); 16 | $additionalConstraints = $this->argument(1)->type('closure')->value(); 17 | 18 | $this->arguments[0] = $width; 19 | $this->arguments[1] = null; 20 | $this->arguments[2] = function ($constraint) use ($additionalConstraints) { 21 | $constraint->aspectRatio(); 22 | if(is_callable($additionalConstraints)) 23 | $additionalConstraints($constraint); 24 | }; 25 | 26 | return parent::execute($image); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php: -------------------------------------------------------------------------------- 1 | width = is_numeric($diameter) ? intval($diameter) : $this->diameter; 24 | $this->height = is_numeric($diameter) ? intval($diameter) : $this->diameter; 25 | $this->diameter = is_numeric($diameter) ? intval($diameter) : $this->diameter; 26 | } 27 | 28 | /** 29 | * Draw current circle on given image 30 | * 31 | * @param Image $image 32 | * @param int $x 33 | * @param int $y 34 | * @return boolean 35 | */ 36 | public function applyToImage(Image $image, $x = 0, $y = 0) 37 | { 38 | return parent::applyToImage($image, $x, $y); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/Intervention/Image/Point.php: -------------------------------------------------------------------------------- 1 | x = is_numeric($x) ? intval($x) : 0; 30 | $this->y = is_numeric($y) ? intval($y) : 0; 31 | } 32 | 33 | /** 34 | * Sets X coordinate 35 | * 36 | * @param int $x 37 | */ 38 | public function setX($x) 39 | { 40 | $this->x = intval($x); 41 | } 42 | 43 | /** 44 | * Sets Y coordinate 45 | * 46 | * @param int $y 47 | */ 48 | public function setY($y) 49 | { 50 | $this->y = intval($y); 51 | } 52 | 53 | /** 54 | * Sets both X and Y coordinate 55 | * 56 | * @param int $x 57 | * @param int $y 58 | */ 59 | public function setPosition($x, $y) 60 | { 61 | $this->setX($x); 62 | $this->setY($y); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /vendor/intervention/image/src/config/config.php: -------------------------------------------------------------------------------- 1 | 'gd' 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: overtrue 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | custom: # Replace with a single custom sponsorship URL 10 | -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: composer 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "21:00" 8 | open-pull-requests-limit: 10 9 | ignore: 10 | - dependency-name: phpunit/phpunit 11 | versions: 12 | - ">= 8.a, < 9" 13 | -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 安正超 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/data/surnames: -------------------------------------------------------------------------------- 1 | ' mò qí', 4 | '尉迟' => ' yù chí', 5 | '单于' => ' chán yú', 6 | '不' => ' fǒu', 7 | '沈' => ' shěn', 8 | '称' => ' chēng', 9 | '车' => ' chē', 10 | '万' => ' wàn', 11 | '汤' => ' tāng', 12 | '阿' => ' ā', 13 | '丁' => ' dīng', 14 | '强' => ' qiáng', 15 | '仇' => ' qiú', 16 | '叶' => ' yè', 17 | '阚' => ' kàn', 18 | '乐' => ' yuè', 19 | '乜' => ' niè', 20 | '陆' => ' lù', 21 | '殷' => ' yīn', 22 | '牟' => ' móu', 23 | '区' => ' ōu', 24 | '宿' => ' sù', 25 | '俞' => ' yú', 26 | '余' => ' yú', 27 | '齐' => ' qí', 28 | '许' => ' xǔ', 29 | '信' => ' xìn', 30 | '无' => ' wú', 31 | '浣' => ' wǎn', 32 | '艾' => ' ài', 33 | '浅' => ' qiǎn', 34 | '烟' => ' yān', 35 | '蓝' => ' lán', 36 | '於' => ' yú', 37 | '寻' => ' xún', 38 | '殳' => ' shū', 39 | '思' => ' sī', 40 | '鸟' => ' niǎo', 41 | '卜' => ' bǔ', 42 | '单' => ' shàn', 43 | '南' => ' nán', 44 | '柏' => ' bǎi', 45 | '朴' => ' piáo', 46 | '繁' => ' pó', 47 | '曾' => ' zēng', 48 | '瞿' => ' qú', 49 | '缪' => ' miào', 50 | '石' => ' shí', 51 | '冯' => ' féng', 52 | '覃' => ' qín', 53 | '幺' => ' yāo', 54 | '种' => ' chóng', 55 | '折' => ' shè', 56 | '燕' => ' yān', 57 | '纪' => ' jǐ', 58 | '过' => ' guō', 59 | '华' => ' huà', 60 | '冼' => ' xiǎn', 61 | '秘' => ' bì', 62 | '重' => ' chóng', 63 | '解' => ' xiè', 64 | '那' => ' nā', 65 | '和' => ' hé', 66 | '贾' => ' jiǎ', 67 | '塔' => ' tǎ', 68 | '盛' => ' shèng', 69 | '查' => ' zhā', 70 | '盖' => ' gě', 71 | '居' => ' jū', 72 | '哈' => ' hǎ', 73 | '的' => ' dē', 74 | '薄' => ' bó', 75 | '佴' => ' nài', 76 | '六' => ' lù', 77 | '都' => ' dū', 78 | '翟' => ' zhái', 79 | '扎' => ' zā', 80 | '藏' => ' zàng', 81 | '粘' => ' niàn', 82 | '难' => ' nàn', 83 | '若' => ' ruò', 84 | '貟' => ' yùn', 85 | '贠' => ' yùn', 86 | ); -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/src/DictLoaderInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * This source file is subject to the MIT license that is bundled 9 | * with this source code in the file LICENSE. 10 | */ 11 | 12 | namespace Overtrue\Pinyin; 13 | 14 | use Closure; 15 | 16 | /** 17 | * Dict loader interface. 18 | */ 19 | interface DictLoaderInterface 20 | { 21 | /** 22 | * Load dict. 23 | * 24 | *
25 |      * [
26 |      *     '响应时间' => "[\t]xiǎng[\t]yìng[\t]shí[\t]jiān",
27 |      *     '长篇连载' => '[\t]cháng[\t]piān[\t]lián[\t]zǎi',
28 |      *     //...
29 |      * ]
30 |      * 
31 | * 32 | * @param Closure $callback 33 | */ 34 | public function map(Closure $callback); 35 | 36 | /** 37 | * Load surname dict. 38 | * 39 | * @param Closure $callback 40 | */ 41 | public function mapSurname(Closure $callback); 42 | } 43 | -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/src/FileDictLoader.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * This source file is subject to the MIT license that is bundled 9 | * with this source code in the file LICENSE. 10 | */ 11 | 12 | namespace Overtrue\Pinyin; 13 | 14 | use Closure; 15 | 16 | class FileDictLoader implements DictLoaderInterface 17 | { 18 | /** 19 | * Words segment name. 20 | * 21 | * @var string 22 | */ 23 | protected $segmentName = 'words_%s'; 24 | 25 | /** 26 | * Dict path. 27 | * 28 | * @var string 29 | */ 30 | protected $path; 31 | 32 | /** 33 | * Constructor. 34 | * 35 | * @param string $path 36 | */ 37 | public function __construct($path) 38 | { 39 | $this->path = $path; 40 | } 41 | 42 | /** 43 | * Load dict. 44 | * 45 | * @param Closure $callback 46 | */ 47 | public function map(Closure $callback) 48 | { 49 | for ($i = 0; $i < 100; ++$i) { 50 | $segment = $this->path . '/' . sprintf($this->segmentName, $i); 51 | 52 | if (file_exists($segment)) { 53 | $dictionary = (array) include $segment; 54 | $callback($dictionary); 55 | } 56 | } 57 | } 58 | 59 | /** 60 | * Load surname dict. 61 | * 62 | * @param Closure $callback 63 | */ 64 | public function mapSurname(Closure $callback) 65 | { 66 | $surnames = $this->path . '/surnames'; 67 | 68 | if (file_exists($surnames)) { 69 | $dictionary = (array) include $surnames; 70 | $callback($dictionary); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /vendor/overtrue/pinyin/src/const.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * This source file is subject to the MIT license that is bundled 9 | * with this source code in the file LICENSE. 10 | */ 11 | 12 | define('PINYIN_DEFAULT', 4096); 13 | define('PINYIN_TONE', 2); 14 | define('PINYIN_NO_TONE', 4); 15 | define('PINYIN_ASCII_TONE', 8); 16 | define('PINYIN_NAME', 16); 17 | define('PINYIN_KEEP_NUMBER', 32); 18 | define('PINYIN_KEEP_ENGLISH', 64); 19 | define('PINYIN_UMLAUT_V', 128); 20 | define('PINYIN_KEEP_PUNCTUATION', 256); 21 | -------------------------------------------------------------------------------- /vendor/psr/http-client/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file, in reverse chronological order by release. 4 | 5 | ## 1.0.3 6 | 7 | Add `source` link in composer.json. No code changes. 8 | 9 | ## 1.0.2 10 | 11 | Allow PSR-7 (psr/http-message) 2.0. No code changes. 12 | 13 | ## 1.0.1 14 | 15 | Allow installation with PHP 8. No code changes. 16 | 17 | ## 1.0.0 18 | 19 | First stable release. No changes since 0.3.0. 20 | 21 | ## 0.3.0 22 | 23 | Added Interface suffix on exceptions 24 | 25 | ## 0.2.0 26 | 27 | All exceptions are in `Psr\Http\Client` namespace 28 | 29 | ## 0.1.0 30 | 31 | First release 32 | -------------------------------------------------------------------------------- /vendor/psr/http-client/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 PHP Framework Interoperability Group 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/psr/http-client/README.md: -------------------------------------------------------------------------------- 1 | HTTP Client 2 | =========== 3 | 4 | This repository holds all the common code related to [PSR-18 (HTTP Client)][psr-url]. 5 | 6 | Note that this is not a HTTP Client implementation of its own. It is merely abstractions that describe the components of a HTTP Client. 7 | 8 | The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. 9 | 10 | [psr-url]: https://www.php-fig.org/psr/psr-18 11 | [package-url]: https://packagist.org/packages/psr/http-client 12 | [implementation-url]: https://packagist.org/providers/psr/http-client-implementation 13 | -------------------------------------------------------------------------------- /vendor/psr/http-client/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "psr/http-client", 3 | "description": "Common interface for HTTP clients", 4 | "keywords": ["psr", "psr-18", "http", "http-client"], 5 | "homepage": "https://github.com/php-fig/http-client", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "PHP-FIG", 10 | "homepage": "https://www.php-fig.org/" 11 | } 12 | ], 13 | "support": { 14 | "source": "https://github.com/php-fig/http-client" 15 | }, 16 | "require": { 17 | "php": "^7.0 || ^8.0", 18 | "psr/http-message": "^1.0 || ^2.0" 19 | }, 20 | "autoload": { 21 | "psr-4": { 22 | "Psr\\Http\\Client\\": "src/" 23 | } 24 | }, 25 | "extra": { 26 | "branch-alias": { 27 | "dev-master": "1.0.x-dev" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vendor/psr/http-client/src/ClientExceptionInterface.php: -------------------------------------------------------------------------------- 1 | =7.0.0", 23 | "psr/http-message": "^1.0 || ^2.0" 24 | }, 25 | "autoload": { 26 | "psr-4": { 27 | "Psr\\Http\\Message\\": "src/" 28 | } 29 | }, 30 | "extra": { 31 | "branch-alias": { 32 | "dev-master": "1.0.x-dev" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /vendor/psr/http-factory/src/RequestFactoryInterface.php: -------------------------------------------------------------------------------- 1 | = 5.3. 5 | 6 | [![Build Status](https://travis-ci.org/ralouphie/getallheaders.svg?branch=master)](https://travis-ci.org/ralouphie/getallheaders) 7 | [![Coverage Status](https://coveralls.io/repos/ralouphie/getallheaders/badge.png?branch=master)](https://coveralls.io/r/ralouphie/getallheaders?branch=master) 8 | [![Latest Stable Version](https://poser.pugx.org/ralouphie/getallheaders/v/stable.png)](https://packagist.org/packages/ralouphie/getallheaders) 9 | [![Latest Unstable Version](https://poser.pugx.org/ralouphie/getallheaders/v/unstable.png)](https://packagist.org/packages/ralouphie/getallheaders) 10 | [![License](https://poser.pugx.org/ralouphie/getallheaders/license.png)](https://packagist.org/packages/ralouphie/getallheaders) 11 | 12 | 13 | This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php). 14 | 15 | ## Install 16 | 17 | For PHP version **`>= 5.6`**: 18 | 19 | ``` 20 | composer require ralouphie/getallheaders 21 | ``` 22 | 23 | For PHP version **`< 5.6`**: 24 | 25 | ``` 26 | composer require ralouphie/getallheaders "^2" 27 | ``` 28 | -------------------------------------------------------------------------------- /vendor/ralouphie/getallheaders/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ralouphie/getallheaders", 3 | "description": "A polyfill for getallheaders.", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "Ralph Khattar", 8 | "email": "ralph.khattar@gmail.com" 9 | } 10 | ], 11 | "require": { 12 | "php": ">=5.6" 13 | }, 14 | "require-dev": { 15 | "phpunit/phpunit": "^5 || ^6.5", 16 | "php-coveralls/php-coveralls": "^2.1" 17 | }, 18 | "autoload": { 19 | "files": ["src/getallheaders.php"] 20 | }, 21 | "autoload-dev": { 22 | "psr-4": { 23 | "getallheaders\\Tests\\": "tests/" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/ralouphie/getallheaders/src/getallheaders.php: -------------------------------------------------------------------------------- 1 | 'Content-Type', 16 | 'CONTENT_LENGTH' => 'Content-Length', 17 | 'CONTENT_MD5' => 'Content-Md5', 18 | ); 19 | 20 | foreach ($_SERVER as $key => $value) { 21 | if (substr($key, 0, 5) === 'HTTP_') { 22 | $key = substr($key, 5); 23 | if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { 24 | $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key)))); 25 | $headers[$key] = $value; 26 | } 27 | } elseif (isset($copy_server[$key])) { 28 | $headers[$copy_server[$key]] = $value; 29 | } 30 | } 31 | 32 | if (!isset($headers['Authorization'])) { 33 | if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { 34 | $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; 35 | } elseif (isset($_SERVER['PHP_AUTH_USER'])) { 36 | $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : ''; 37 | $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass); 38 | } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) { 39 | $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST']; 40 | } 41 | } 42 | 43 | return $headers; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | composer.lock 3 | phpunit.xml 4 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | CHANGELOG 2 | ========= 3 | 4 | The changelog is maintained for all Symfony contracts at the following URL: 5 | https://github.com/symfony/contracts/blob/main/CHANGELOG.md 6 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020-2022 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/README.md: -------------------------------------------------------------------------------- 1 | Symfony Deprecation Contracts 2 | ============================= 3 | 4 | A generic function and convention to trigger deprecation notices. 5 | 6 | This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices. 7 | 8 | By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component, 9 | the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments. 10 | 11 | The function requires at least 3 arguments: 12 | - the name of the Composer package that is triggering the deprecation 13 | - the version of the package that introduced the deprecation 14 | - the message of the deprecation 15 | - more arguments can be provided: they will be inserted in the message using `printf()` formatting 16 | 17 | Example: 18 | ```php 19 | trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin'); 20 | ``` 21 | 22 | This will generate the following message: 23 | `Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.` 24 | 25 | While not necessarily recommended, the deprecation notices can be completely ignored by declaring an empty 26 | `function trigger_deprecation() {}` in your application. 27 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/deprecation-contracts", 3 | "type": "library", 4 | "description": "A generic function and convention to trigger deprecation notices", 5 | "homepage": "https://symfony.com", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "Nicolas Grekas", 10 | "email": "p@tchwork.com" 11 | }, 12 | { 13 | "name": "Symfony Community", 14 | "homepage": "https://symfony.com/contributors" 15 | } 16 | ], 17 | "require": { 18 | "php": ">=8.0.2" 19 | }, 20 | "autoload": { 21 | "files": [ 22 | "function.php" 23 | ] 24 | }, 25 | "minimum-stability": "dev", 26 | "extra": { 27 | "branch-alias": { 28 | "dev-main": "3.0-dev" 29 | }, 30 | "thanks": { 31 | "name": "symfony/contracts", 32 | "url": "https://github.com/symfony/contracts" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/function.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | if (!function_exists('trigger_deprecation')) { 13 | /** 14 | * Triggers a silenced deprecation notice. 15 | * 16 | * @param string $package The name of the Composer package that is triggering the deprecation 17 | * @param string $version The version of the package that introduced the deprecation 18 | * @param string $message The message of the deprecation 19 | * @param mixed ...$args Values to insert in the message using printf() formatting 20 | * 21 | * @author Nicolas Grekas 22 | */ 23 | function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void 24 | { 25 | @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED); 26 | } 27 | } 28 | --------------------------------------------------------------------------------