Version Description
Download this release
Release Info
Developer | qqworld |
Plugin | QQWorld Auto Save Images |
Version | 1.5.6 |
Comparing to | |
See all releases |
Code changes from version 1.5.5 to 1.5.6
- css/jquery-ui/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
- css/jquery-ui/images/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
- css/jquery-ui/images/ui-bg_dots-small_20_333333_2x2.png +0 -0
- css/jquery-ui/images/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
- css/jquery-ui/images/ui-bg_dots-small_40_00498f_2x2.png +0 -0
- css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- css/jquery-ui/images/ui-bg_flat_40_292929_40x100.png +0 -0
- css/jquery-ui/images/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
- css/jquery-ui/images/ui-icons_00498f_256x240.png +0 -0
- css/jquery-ui/images/ui-icons_98d2fb_256x240.png +0 -0
- css/jquery-ui/images/ui-icons_9ccdfc_256x240.png +0 -0
- css/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
- css/jquery-ui/jquery-ui.min.css +7 -0
- css/style.css +24 -4
- lang/qqworld_auto_save_images-zh_CN.mo +0 -0
- lang/qqworld_auto_save_images-zh_CN.po +113 -20
- qqworld-auto-save-images.php +337 -51
css/jquery-ui/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_dots-medium_30_0b58a2_4x4.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_dots-small_20_333333_2x2.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_dots-small_30_a32d00_2x2.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_dots-small_40_00498f_2x2.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_flat_40_292929_40x100.png
ADDED
Binary file
|
css/jquery-ui/images/ui-bg_gloss-wave_20_111111_500x100.png
ADDED
Binary file
|
css/jquery-ui/images/ui-icons_00498f_256x240.png
ADDED
Binary file
|
css/jquery-ui/images/ui-icons_98d2fb_256x240.png
ADDED
Binary file
|
css/jquery-ui/images/ui-icons_9ccdfc_256x240.png
ADDED
Binary file
|
css/jquery-ui/images/ui-icons_ffffff_256x240.png
ADDED
Binary file
|
css/jquery-ui/jquery-ui.min.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.11.1 - 2014-08-15
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.3em&cornerRadius=4px&bgColorHeader=0b3e6f&bgTextureHeader=diagonals_thick&bgImgOpacityHeader=15&borderColorHeader=0b3e6f&fcHeader=f6f6f6&iconColorHeader=98d2fb&bgColorContent=111111&bgTextureContent=gloss_wave&bgImgOpacityContent=20&borderColorContent=000000&fcContent=d9d9d9&iconColorContent=9ccdfc&bgColorDefault=333333&bgTextureDefault=dots_small&bgImgOpacityDefault=20&borderColorDefault=333333&fcDefault=ffffff&iconColorDefault=9ccdfc&bgColorHover=00498f&bgTextureHover=dots_small&bgImgOpacityHover=40&borderColorHover=222222&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=292929&bgTextureActive=flat&bgImgOpacityActive=40&borderColorActive=096ac8&fcActive=75abff&iconColorActive=00498f&bgColorHighlight=0b58a2&bgTextureHighlight=dots_medium&bgImgOpacityHighlight=30&borderColorHighlight=052f57&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=a32d00&bgTextureError=dots_small&bgImgOpacityError=30&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
5 |
+
* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
+
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,sans-serif;font-size:1.3em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #000;background:#111 url("images/ui-bg_gloss-wave_20_111111_500x100.png") 50% top repeat-x;color:#d9d9d9}.ui-widget-content a{color:#d9d9d9}.ui-widget-header{border:1px solid #0b3e6f;background:#0b3e6f url("images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png") 50% 50% repeat;color:#f6f6f6;font-weight:bold}.ui-widget-header a{color:#f6f6f6}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #333;background:#333 url("images/ui-bg_dots-small_20_333333_2x2.png") 50% 50% repeat;font-weight:bold;color:#fff}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#fff;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #222;background:#00498f url("images/ui-bg_dots-small_40_00498f_2x2.png") 50% 50% repeat;font-weight:bold;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#fff;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #096ac8;background:#292929 url("images/ui-bg_flat_40_292929_40x100.png") 50% 50% repeat-x;font-weight:bold;color:#75abff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#75abff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #052f57;background:#0b58a2 url("images/ui-bg_dots-medium_30_0b58a2_4x4.png") 50% 50% repeat;color:#fff}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#fff}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#a32d00 url("images/ui-bg_dots-small_30_a32d00_2x2.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_9ccdfc_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_98d2fb_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_9ccdfc_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_00498f_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
|
css/style.css
CHANGED
@@ -22,6 +22,9 @@
|
|
22 |
#scan_old_post_list tbody tr:hover {
|
23 |
background: #fcfcb7;
|
24 |
}
|
|
|
|
|
|
|
25 |
#scan_old_post_list thead tr {
|
26 |
background: #2ea2cc;
|
27 |
border-bottom: 2px solid #0074a2;
|
@@ -31,10 +34,27 @@
|
|
31 |
padding: 5px 20px;
|
32 |
border-bottom: 1px solid #e4e4e4;
|
33 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
|
35 |
-
#
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
38 |
-
|
39 |
-
margin-
|
40 |
}
|
22 |
#scan_old_post_list tbody tr:hover {
|
23 |
background: #fcfcb7;
|
24 |
}
|
25 |
+
#scan_old_post_list tbody tr a {
|
26 |
+
text-decoration: none;
|
27 |
+
}
|
28 |
#scan_old_post_list thead tr {
|
29 |
background: #2ea2cc;
|
30 |
border-bottom: 2px solid #0074a2;
|
34 |
padding: 5px 20px;
|
35 |
border-bottom: 1px solid #e4e4e4;
|
36 |
}
|
37 |
+
#scan_old_post_list td.hr {
|
38 |
+
padding: 1px 0 0 0;
|
39 |
+
}
|
40 |
+
#scan_old_post_list .green {
|
41 |
+
color: green;
|
42 |
+
}
|
43 |
+
#scan_old_post_list .red {
|
44 |
+
color: red;
|
45 |
+
}
|
46 |
|
47 |
+
#scan-result {
|
48 |
+
margin-top: 20px;
|
49 |
+
}
|
50 |
+
span.icon.help {
|
51 |
+
width: 16px;
|
52 |
+
height: 16px;
|
53 |
+
display: inline-block;
|
54 |
+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWhQTFRF8vf7UJvOM32pAF2UzN3tf67JQorDRo/HdrPaWZHGYJq80ez3ksPcvN/vpsXhOH69tNXputzuRo20jbzYfLPQgK7Ke7HQTI26xuPyEWief6rTQIC9dKbFOX+9m8PfX5fCZqDHN328jszpv9XprcjjRYu0yODwerjdkbfXPIG+wOPzqcjjdK3WdLXcyef02ebyU5TJlrvcvOHycqLPb6LPmsLgl8jkn9LrqsrkDmWbap7NndDqgb7hnMrmZ6jUe7bbXaLSUJLIQITASoy4OH28ZaTSSpHIXZ/PudfrN3y7yuf0yeb0cafSSZHIx+TzcKTRgL7gS4y4fLLZUpXJocbia6zXQIbBaaDOYqLRZKPRs83lPIPARonDQofBqsnj5e72R4jBD2acn9DpuNfrmb3doNTtTIvDgbndZZnKWqHRbKTQm87oqsvkQYnDo9btSIvEUJC2S5XKMHuocKTDM3i54Ovy////////zvRcUAAAAHh0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AfFcYjAAAAPZJREFUeNosj9VuxEAUQ++Es8zMXGZm2C0zMzNNBpLfb9KtJcuWn3zAssVlLAhY5k4H23LI43W7vZ6Q3B5wpHfwqVT67lyPYGeIxraneg6W2c/R2EYsagGvJj5m0+dgSvrKfaLKIRMO7l5KZmoIbjqmg+EM4MBo/fRVX1jsg7X6TACDUJvTtOZZugypfu2lJoC4+oYQuiiD/oXQ/IMIJNdtGEZWkrJ27OcIuAojW6rqZ8yvqq3Dggt4cvxdUZhpMkXZ/ExysGi86+S4yFjxauc6Tp3rZM/3OHn7PDzgWyJtOHqXb1QqjfwE/ae1OCWiSOgf/q8AAwAHVUGvSjYh9gAAAABJRU5ErkJggg==);
|
55 |
+
vertical-align: middle;
|
56 |
+
cursor: help;
|
57 |
}
|
58 |
+
ul[id^="noty_"] li {
|
59 |
+
margin-bottom: 0;
|
60 |
}
|
lang/qqworld_auto_save_images-zh_CN.mo
CHANGED
Binary file
|
lang/qqworld_auto_save_images-zh_CN.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: QQworld Auto Save Images\n"
|
4 |
"Report-Msgid-Bugs-To: http://www.qqworld.org\n"
|
5 |
"POT-Creation-Date: 2011-12-10 19:47:15+00:00\n"
|
6 |
-
"PO-Revision-Date: 2014-
|
7 |
"Last-Translator: Michael Wang <admin@qqworld.org>\n"
|
8 |
"Language-Team: QQWorld <admin@qqworld.org>\n"
|
9 |
"Language: zh_CN\n"
|
@@ -24,7 +24,7 @@ msgid "When"
|
|
24 |
msgstr "什么时候"
|
25 |
|
26 |
msgid "Save post (Publish, save draft or pedding review)."
|
27 |
-
msgstr "
|
28 |
|
29 |
msgid "Publish post only."
|
30 |
msgstr "仅发布文章时。"
|
@@ -48,16 +48,19 @@ msgstr "当单击编辑器顶部的按钮时,手动将所有远程图像保存
|
|
48 |
msgid "Automatically Set Featured Image"
|
49 |
msgstr "自动设置特色图片"
|
50 |
|
51 |
-
msgid "Scan
|
52 |
-
msgstr "
|
53 |
|
54 |
-
msgid "
|
55 |
-
msgstr "
|
|
|
|
|
|
|
56 |
|
57 |
msgid ""
|
58 |
-
"Are you sure
|
59 |
-
"
|
60 |
-
msgstr "
|
61 |
|
62 |
msgid ""
|
63 |
"Scan posts and keep remote images in all posts to local media library. Maybe "
|
@@ -67,8 +70,11 @@ msgstr "扫描所有的文章,将所有远程图片保存到本地,可能需
|
|
67 |
msgid "Scanning..."
|
68 |
msgstr "扫描中……"
|
69 |
|
70 |
-
msgid "
|
71 |
-
msgstr "
|
|
|
|
|
|
|
72 |
|
73 |
msgid "All done."
|
74 |
msgstr "全部完成。"
|
@@ -76,21 +82,108 @@ msgstr "全部完成。"
|
|
76 |
msgid "Post Type"
|
77 |
msgstr "文章类型"
|
78 |
|
79 |
-
msgid "Please select
|
80 |
-
msgstr "
|
81 |
|
82 |
-
msgid "
|
83 |
-
msgstr "
|
84 |
|
85 |
-
msgid "Start from %s Scan"
|
86 |
msgstr "从 %s 开始扫描"
|
87 |
|
88 |
msgid ""
|
89 |
-
"If you want to scan 50-150 posts, please type
|
90 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
msgstr ""
|
92 |
-
"
|
93 |
-
"
|
94 |
|
95 |
msgid "Speed:"
|
96 |
msgstr "速度:"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
"Project-Id-Version: QQworld Auto Save Images\n"
|
4 |
"Report-Msgid-Bugs-To: http://www.qqworld.org\n"
|
5 |
"POT-Creation-Date: 2011-12-10 19:47:15+00:00\n"
|
6 |
+
"PO-Revision-Date: 2014-10-05 19:18+0800\n"
|
7 |
"Last-Translator: Michael Wang <admin@qqworld.org>\n"
|
8 |
"Language-Team: QQWorld <admin@qqworld.org>\n"
|
9 |
"Language: zh_CN\n"
|
24 |
msgstr "什么时候"
|
25 |
|
26 |
msgid "Save post (Publish, save draft or pedding review)."
|
27 |
+
msgstr "保存文章时(发布文章,保存草稿或提交审核)。"
|
28 |
|
29 |
msgid "Publish post only."
|
30 |
msgstr "仅发布文章时。"
|
48 |
msgid "Automatically Set Featured Image"
|
49 |
msgstr "自动设置特色图片"
|
50 |
|
51 |
+
msgid "Scan Posts"
|
52 |
+
msgstr "扫描文章"
|
53 |
|
54 |
+
msgid "Automatic"
|
55 |
+
msgstr "自动"
|
56 |
+
|
57 |
+
msgid "Manual"
|
58 |
+
msgstr "手动"
|
59 |
|
60 |
msgid ""
|
61 |
+
"Are you sure?<br />Before you click the yes button, I recommend backup site "
|
62 |
+
"database."
|
63 |
+
msgstr "你确定吗?<br />在点击确定按钮之前,我建议你备份网站的数据库。"
|
64 |
|
65 |
msgid ""
|
66 |
"Scan posts and keep remote images in all posts to local media library. Maybe "
|
70 |
msgid "Scanning..."
|
71 |
msgstr "扫描中……"
|
72 |
|
73 |
+
msgid "Listing..."
|
74 |
+
msgstr "显示列表中……"
|
75 |
+
|
76 |
+
msgid "Select post types:"
|
77 |
+
msgstr "选择文章类型:"
|
78 |
|
79 |
msgid "All done."
|
80 |
msgstr "全部完成。"
|
82 |
msgid "Post Type"
|
83 |
msgstr "文章类型"
|
84 |
|
85 |
+
msgid "Please select post types."
|
86 |
+
msgstr "请选择文章类型。"
|
87 |
|
88 |
+
msgid "Offset:"
|
89 |
+
msgstr "偏移:"
|
90 |
|
91 |
+
msgid "Start from %s to Scan"
|
92 |
msgstr "从 %s 开始扫描"
|
93 |
|
94 |
msgid ""
|
95 |
+
"Default scan all posts. If you want to scan 50-150 posts, please type '50' "
|
96 |
+
"in the textfield and select '100'."
|
97 |
+
msgstr ""
|
98 |
+
"默认扫秒全部文章,如果想扫描50-150篇文章,请在文本框中输入“50”并在下拉菜单中"
|
99 |
+
"选择“100”。"
|
100 |
+
|
101 |
+
msgid ""
|
102 |
+
"If you have too many posts to be scan, sometimes in process looks like "
|
103 |
+
"stopping, but it may be fake. please be patient."
|
104 |
msgstr ""
|
105 |
+
"如果有太多文章需要扫描,有时候在扫描过程中看起来像是停止了,但可能是假停止,"
|
106 |
+
"请耐心等待。"
|
107 |
|
108 |
msgid "Speed:"
|
109 |
msgstr "速度:"
|
110 |
+
|
111 |
+
msgid ""
|
112 |
+
"The list displayed will show you which posts including remote images, then "
|
113 |
+
"you can keep them to local manually via click \"Fetch\" button."
|
114 |
+
msgstr ""
|
115 |
+
"显示的列表中将告诉你哪些文章包含远程图片,然后你可以通过点击“抓取”按钮手动保"
|
116 |
+
"存。"
|
117 |
+
|
118 |
+
msgid "Fetch"
|
119 |
+
msgstr "抓取"
|
120 |
+
|
121 |
+
msgid "No post has remote images found."
|
122 |
+
msgstr "没有文章包含远程图像。"
|
123 |
+
|
124 |
+
msgid "No remote images found."
|
125 |
+
msgstr "未包含远程图像"
|
126 |
+
|
127 |
+
msgid "Control"
|
128 |
+
msgstr "控制"
|
129 |
+
|
130 |
+
msgid "Normal"
|
131 |
+
msgstr "正常"
|
132 |
+
|
133 |
+
msgid "No posts found."
|
134 |
+
msgstr "未找到任何文章。"
|
135 |
+
|
136 |
+
msgid "Including remote images those not exist."
|
137 |
+
msgstr "有不存在的远程图像。"
|
138 |
+
|
139 |
+
msgid "All remote images have been saved."
|
140 |
+
msgstr "已保存所有远程图像。"
|
141 |
+
|
142 |
+
msgid "%d post has been scanned."
|
143 |
+
msgstr "已扫描%d篇文章。"
|
144 |
+
|
145 |
+
msgid "%d posts have been scanned."
|
146 |
+
msgstr "已扫描%d篇文章。"
|
147 |
+
|
148 |
+
msgid "%d post including remote images have been processed."
|
149 |
+
msgstr "已处理%d篇包含远程图像的文章。"
|
150 |
+
|
151 |
+
msgid "%d posts including remote images have been processed."
|
152 |
+
msgstr "已处理%d篇包含远程图像的文章。"
|
153 |
+
|
154 |
+
msgid "found %d post including remote images."
|
155 |
+
msgstr "找到%d篇包含远程图像的文章。"
|
156 |
+
|
157 |
+
msgid "found %d posts including remote images."
|
158 |
+
msgstr "找到%d篇包含远程图像的文章。"
|
159 |
+
|
160 |
+
msgid "And with %d post including remote images those not exist."
|
161 |
+
msgstr "其中有%d篇文章包含不存在的远程图像。"
|
162 |
+
|
163 |
+
msgid "And with %d posts including remote images those not exist."
|
164 |
+
msgstr "其中有%d篇文章包含不存在的远程图像。"
|
165 |
+
|
166 |
+
msgid "%d post including remote images those not exist couldn't be processed."
|
167 |
+
msgstr "%d篇包含不存在的远程图像的文章无法处理。"
|
168 |
+
|
169 |
+
msgid "%d posts including remote images those not exist couldn't be processed."
|
170 |
+
msgstr "%d篇包含不存在的远程图像的文章无法处理。"
|
171 |
+
|
172 |
+
msgid "Scope of Post ID:"
|
173 |
+
msgstr "文章ID范围:"
|
174 |
+
|
175 |
+
msgid "From %1$s to %2$s"
|
176 |
+
msgstr "从 %1$s 到 %2$s"
|
177 |
+
|
178 |
+
msgid ""
|
179 |
+
"Default empty for scan all posts ID. If you want to scan posts ID from 50 to "
|
180 |
+
"100. please type '50' and '100' or '100' and '50', The order in which two "
|
181 |
+
"numbers can be reversed. If you only type one number, system would only scan "
|
182 |
+
"that ID."
|
183 |
+
msgstr ""
|
184 |
+
"默认留空扫描所有文章ID,如果要扫描50-100的文章ID,请输入'50'和'100'或"
|
185 |
+
"者'100'和'50',两个数字的顺序可以颠倒。如果你只输入了1个数字,则系统只会扫描"
|
186 |
+
"该ID。"
|
187 |
+
|
188 |
+
msgid "If the server is too much stress may be appropriately reduced speed."
|
189 |
+
msgstr "如果服务器压力过大,可以适当调低速度。"
|
qqworld-auto-save-images.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: QQWorld Auto Save Images
|
4 |
Plugin URI: https://wordpress.org/plugins/qqworld-auto-save-images/
|
5 |
Description: Automatically keep the all remote picture to the local, and automatically set featured image. 自动保存远程图片到本地,自动设置特色图片,并且支持机器人采集软件从外部提交。
|
6 |
-
Version: 1.5.
|
7 |
Author: Michael Wang
|
8 |
Author URI: http://www.qqworld.org
|
9 |
*/
|
@@ -13,6 +13,7 @@ define('QQWORLD_AUTO_SAVE_IMAGES_URL', plugin_dir_url(__FILE__));
|
|
13 |
class QQWorld_auto_save_images {
|
14 |
var $using_action;
|
15 |
var $type;
|
|
|
16 |
function __construct() {
|
17 |
$this->using_action = get_option('using_action', 'publish');
|
18 |
$this->type = get_option('qqworld_auto_save_imagess_type', 'auto');
|
@@ -32,23 +33,54 @@ class QQWorld_auto_save_images {
|
|
32 |
add_action( 'wp_ajax_nopriv_get_scan_list', array($this, 'get_scan_list') );
|
33 |
add_action( 'wp_ajax_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
|
34 |
add_action( 'wp_ajax_nopriv_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
|
|
|
|
|
35 |
|
36 |
add_action( 'plugins_loaded', array($this, 'load_language') );
|
37 |
add_action( 'admin_menu', array($this, 'admin_menu') );
|
38 |
add_action( 'admin_init', array($this, 'register_settings') );
|
39 |
add_filter( 'plugin_row_meta', array($this, 'registerPluginLinks'),10,2 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
public function get_scan_list() {
|
43 |
if ( !current_user_can( 'manage_options' ) ) return;
|
44 |
$post_types = isset($_REQUEST['qqworld_auto_save_imagess_post_types']) ? $_REQUEST['qqworld_auto_save_imagess_post_types'] : 'post';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
$offset = empty($_REQUEST['offset']) ? 0 : $_POST['offset'];
|
46 |
$posts_per_page = $_REQUEST['posts_per_page'];
|
47 |
$args = array(
|
48 |
'posts_per_page' => $posts_per_page,
|
49 |
'offset' => $offset,
|
50 |
'order' => 'ASC',
|
51 |
-
'post_type' => $post_types
|
|
|
52 |
);
|
53 |
$posts = get_posts($args);
|
54 |
echo json_encode($posts);
|
@@ -65,28 +97,84 @@ class QQWorld_auto_save_images {
|
|
65 |
$post_type = $post->post_type;
|
66 |
$content = $post->post_content;
|
67 |
$title = $post->post_title;
|
68 |
-
$preg=preg_match_all(
|
|
|
|
|
69 |
if($preg){
|
70 |
foreach($matches[1] as $image_url){
|
71 |
if(empty($image_url)) continue;
|
72 |
$pos=strpos($image_url,get_bloginfo('url'));
|
73 |
if($pos===false){
|
|
|
74 |
if ($res=$this->save_images($image_url,$post_id)) {
|
75 |
$replace=$res['url'];
|
76 |
$content=str_replace($image_url,$replace,$content);
|
77 |
-
}
|
78 |
}
|
79 |
}
|
80 |
}
|
81 |
wp_update_post(array('ID' => $post_id, 'post_content' => $content));
|
|
|
|
|
|
|
82 |
?>
|
83 |
-
<tr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
<td><?php echo $post_id; ?></td>
|
85 |
-
<td><?php echo $
|
86 |
-
<td><a href="<?php echo get_edit_post_link($post_id); ?>" target="_blank"><?php echo $title;
|
87 |
-
<td><?php
|
|
|
88 |
</tr>
|
89 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
endforeach;
|
91 |
exit;
|
92 |
}
|
@@ -220,9 +308,7 @@ class QQWorld_auto_save_images {
|
|
220 |
?>
|
221 |
<div class="wrap">
|
222 |
<h2><?php _e('QQWorld Auto Save Images', 'qqworld_auto_save_images'); ?></h2>
|
223 |
-
|
224 |
-
<script src="<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>js/jquery.noty.packaged.min.js"></script>
|
225 |
-
<link rel='stylesheet' href='<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>css/style.css' type='text/css' media='all' />
|
226 |
<form action="options.php" method="post" id="form">
|
227 |
<?php settings_fields('qqworld_auto_save_images_settings'); ?>
|
228 |
<img src="https://ps.w.org/qqworld-auto-save-images/assets/banner-772x250.png" width="772" height="250" id="banner" />
|
@@ -274,57 +360,135 @@ class QQWorld_auto_save_images {
|
|
274 |
</tr>
|
275 |
|
276 |
<tr valign="top">
|
277 |
-
<th scope="row"><label><?php _e('Scan
|
278 |
<td>
|
279 |
<div id="post_types_list">
|
280 |
-
<p><?php _e('Select post types
|
281 |
-
$post_types = get_post_types('', 'objects');
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
<?php for ($i=1; $i<=10; $i++) : ?>
|
290 |
-
<option value="<?php echo $i*100; ?>"><?php echo $i*100; ?></option>
|
291 |
-
<?php endfor; ?>
|
292 |
-
</select> <?php _e('Posts'); ?>
|
293 |
-
</p>
|
294 |
-
<p class="description"><?php _e("If you want to scan 50-150 posts, please type \"50\" in the textfield and choose \"100\" in the select, and do not choose \"all\".", 'qqworld_auto_save_images'); ?></p>
|
295 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
|
297 |
<fieldset>
|
298 |
-
<legend class="screen-reader-text"><span><?php _e('Scan
|
299 |
<?php _e('Speed:', 'qqworld_auto_save_images'); ?>
|
300 |
<select name="speed">
|
301 |
-
<?php for ($i=1; $i
|
302 |
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
|
303 |
<?php endfor; ?>
|
304 |
-
|
|
|
305 |
<label for="scan_old_posts">
|
306 |
-
<input name="scan_old_posts" type="button" class="button-primary" id="scan_old_posts" value="<?php _e('
|
307 |
-
</label>
|
308 |
-
<
|
|
|
|
|
309 |
</fieldset>
|
310 |
</td>
|
311 |
</tr>
|
312 |
</tbody>
|
313 |
</table>
|
314 |
<script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
if (!QQWorld_auto_save_images) var QQWorld_auto_save_images = {};
|
316 |
-
QQWorld_auto_save_images.are_your_sure = '<?php _e('Are you sure
|
|
|
317 |
QQWorld_auto_save_images.scan = function(respond, r) {
|
318 |
var $ = jQuery;
|
319 |
if (typeof respond[r] == 'undefined') {
|
|
|
|
|
320 |
$('body').data('noty').close();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
321 |
noty({
|
322 |
-
text: '<?php _e('All done.', 'qqworld_auto_save_images');
|
323 |
type: 'success',
|
324 |
-
layout: '
|
325 |
-
dismissQueue: true
|
|
|
326 |
});
|
327 |
$('#scan_old_posts').removeAttr('disabled');
|
|
|
328 |
return;
|
329 |
}
|
330 |
var speed = parseInt($('select[name="speed"]').val()),
|
@@ -346,8 +510,85 @@ class QQWorld_auto_save_images {
|
|
346 |
}
|
347 |
});
|
348 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
QQWorld_auto_save_images.events = function() {
|
350 |
var $ = jQuery;
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
$('select[name="posts_per_page"]').on('change', function() {
|
352 |
if ($(this).val() == '-1') $('input[name="offset"]').attr('disabled', true);
|
353 |
else $('input[name="offset"]').removeAttr('disabled', true);
|
@@ -371,8 +612,10 @@ class QQWorld_auto_save_images {
|
|
371 |
addClass: 'button button-primary',
|
372 |
text: '<?php _e('Yes'); ?>',
|
373 |
onClick: function ($noty) {
|
|
|
374 |
$noty.close();
|
375 |
$('#scan_old_posts').attr('disabled', true);
|
|
|
376 |
var data = $('#form').serialize()+'&action=get_scan_list';
|
377 |
$.ajax({
|
378 |
type: 'POST',
|
@@ -393,7 +636,7 @@ class QQWorld_auto_save_images {
|
|
393 |
$('body').data('noty', noty({
|
394 |
text: '<?php _e('Scanning...', 'qqworld_auto_save_images'); ?>',
|
395 |
type: 'notification',
|
396 |
-
layout: '
|
397 |
dismissQueue: true
|
398 |
}) );
|
399 |
QQWorld_auto_save_images.scan(respond, 0);
|
@@ -410,22 +653,63 @@ class QQWorld_auto_save_images {
|
|
410 |
}
|
411 |
]
|
412 |
});
|
413 |
-
} else
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
});
|
421 |
-
}
|
422 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
423 |
};
|
424 |
-
|
|
|
|
|
425 |
</script>
|
426 |
<p class="submit"><input type="submit" value="<?php _e('Save Changes') ?>" class="button-primary" name="Submit" /></p>
|
427 |
</form>
|
428 |
-
<div id="scan-result"></div>
|
429 |
<?php
|
430 |
}
|
431 |
|
@@ -481,13 +765,14 @@ class QQWorld_auto_save_images {
|
|
481 |
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
|
482 |
return;
|
483 |
|
|
|
|
|
484 |
if ( !current_user_can('edit_post', $post_id) )
|
485 |
return;
|
486 |
|
487 |
-
$post_id = $_POST['post_id'];
|
488 |
$content = $this->js_unescape($_POST['content']);
|
489 |
|
490 |
-
$preg=preg_match_all(
|
491 |
if($preg){
|
492 |
foreach($matches[1] as $image_url){
|
493 |
if(empty($image_url)) continue;
|
@@ -518,7 +803,7 @@ class QQWorld_auto_save_images {
|
|
518 |
|
519 |
$post=get_post($post_id);
|
520 |
$content=$post->post_content;
|
521 |
-
$preg=preg_match_all(
|
522 |
if($preg){
|
523 |
foreach($matches[1] as $image_url){
|
524 |
if(empty($image_url)) continue;
|
@@ -538,6 +823,7 @@ class QQWorld_auto_save_images {
|
|
538 |
|
539 |
//save exterior images
|
540 |
function save_images($image_url, $post_id){
|
|
|
541 |
if ( $file=@file_get_contents($image_url) ) {
|
542 |
$filename=basename($image_url);
|
543 |
preg_match( '/(.*?)(\.\w+)$/', $filename, $match );
|
3 |
Plugin Name: QQWorld Auto Save Images
|
4 |
Plugin URI: https://wordpress.org/plugins/qqworld-auto-save-images/
|
5 |
Description: Automatically keep the all remote picture to the local, and automatically set featured image. 自动保存远程图片到本地,自动设置特色图片,并且支持机器人采集软件从外部提交。
|
6 |
+
Version: 1.5.6
|
7 |
Author: Michael Wang
|
8 |
Author URI: http://www.qqworld.org
|
9 |
*/
|
13 |
class QQWorld_auto_save_images {
|
14 |
var $using_action;
|
15 |
var $type;
|
16 |
+
var $preg = '/<img.*?src="((?![\"\']).*?)((?![\"\'])\?.*?)?".*?>/';
|
17 |
function __construct() {
|
18 |
$this->using_action = get_option('using_action', 'publish');
|
19 |
$this->type = get_option('qqworld_auto_save_imagess_type', 'auto');
|
33 |
add_action( 'wp_ajax_nopriv_get_scan_list', array($this, 'get_scan_list') );
|
34 |
add_action( 'wp_ajax_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
|
35 |
add_action( 'wp_ajax_nopriv_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
|
36 |
+
add_action( 'wp_ajax_save_remote_images_list_all_posts', array($this, 'save_remote_images_list_all_posts') );
|
37 |
+
add_action( 'wp_ajax_nopriv_save_remote_images_list_all_posts', array($this, 'save_remote_images_list_all_posts') );
|
38 |
|
39 |
add_action( 'plugins_loaded', array($this, 'load_language') );
|
40 |
add_action( 'admin_menu', array($this, 'admin_menu') );
|
41 |
add_action( 'admin_init', array($this, 'register_settings') );
|
42 |
add_filter( 'plugin_row_meta', array($this, 'registerPluginLinks'),10,2 );
|
43 |
+
|
44 |
+
add_action( 'admin_head', array($this, 'options_general_add_js') );
|
45 |
+
|
46 |
+
}
|
47 |
+
|
48 |
+
public function options_general_add_js() {
|
49 |
+
?><script src="<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>js/jquery.noty.packaged.min.js"></script>
|
50 |
+
<link rel='stylesheet' href='<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>css/style.css' type='text/css' media='all' />
|
51 |
+
<link rel='stylesheet' href='<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>css/jquery-ui/jquery-ui.min.css' type='text/css' media='all' /><?php
|
52 |
+
wp_enqueue_script('jquery-ui-tooltip');
|
53 |
+
wp_enqueue_script('jquery-effects-core');
|
54 |
+
wp_enqueue_script('jquery-effects-shake');
|
55 |
}
|
56 |
|
57 |
public function get_scan_list() {
|
58 |
if ( !current_user_can( 'manage_options' ) ) return;
|
59 |
$post_types = isset($_REQUEST['qqworld_auto_save_imagess_post_types']) ? $_REQUEST['qqworld_auto_save_imagess_post_types'] : 'post';
|
60 |
+
// Scope of ID
|
61 |
+
$id_from = $_REQUEST['id_from'];
|
62 |
+
$id_to = $_REQUEST['id_to'];
|
63 |
+
$id_from = $id_from=='0' ? 1 : $id_from;
|
64 |
+
$id_to = $id_to=='0' ? 1 : $id_to;
|
65 |
+
$post__in = array();
|
66 |
+
if (!empty($id_from) && is_numeric($id_from) && empty($id_to)) {
|
67 |
+
$post__in[] = $id_from;
|
68 |
+
} elseif (empty($id_from) && !empty($id_to) && is_numeric($id_to)) {
|
69 |
+
$post__in[] = $id_to;
|
70 |
+
} elseif (!empty($id_from) && is_numeric($id_from) && !empty($id_to) && is_numeric($id_to)) {
|
71 |
+
if ($id_from == $id_to) $post__in[] = $id_from;
|
72 |
+
elseif ($id_from < $id_to) for ($s=$id_from; $s<=$id_to; $s++) $post__in[]=$s;
|
73 |
+
elseif($id_from > $id_to) for ($s=$id_from; $s>=$id_to; $s--) $post__in[]=$s;
|
74 |
+
}
|
75 |
+
// Offset
|
76 |
$offset = empty($_REQUEST['offset']) ? 0 : $_POST['offset'];
|
77 |
$posts_per_page = $_REQUEST['posts_per_page'];
|
78 |
$args = array(
|
79 |
'posts_per_page' => $posts_per_page,
|
80 |
'offset' => $offset,
|
81 |
'order' => 'ASC',
|
82 |
+
'post_type' => $post_types,
|
83 |
+
'post__in' => $post__in
|
84 |
);
|
85 |
$posts = get_posts($args);
|
86 |
echo json_encode($posts);
|
97 |
$post_type = $post->post_type;
|
98 |
$content = $post->post_content;
|
99 |
$title = $post->post_title;
|
100 |
+
$preg=preg_match_all($this->preg,stripslashes($content),$matches);
|
101 |
+
$has_remote_images = false;
|
102 |
+
$has_not_exits_remote_images = false;
|
103 |
if($preg){
|
104 |
foreach($matches[1] as $image_url){
|
105 |
if(empty($image_url)) continue;
|
106 |
$pos=strpos($image_url,get_bloginfo('url'));
|
107 |
if($pos===false){
|
108 |
+
$has_remote_images = true;
|
109 |
if ($res=$this->save_images($image_url,$post_id)) {
|
110 |
$replace=$res['url'];
|
111 |
$content=str_replace($image_url,$replace,$content);
|
112 |
+
} else $has_not_exits_remote_images = true;
|
113 |
}
|
114 |
}
|
115 |
}
|
116 |
wp_update_post(array('ID' => $post_id, 'post_content' => $content));
|
117 |
+
$post_type_object = get_post_type_object($post_type);
|
118 |
+
if ($has_remote_images && $has_not_exits_remote_images) $class =' class="has_remote_images has_not_exits_remote_images"';
|
119 |
+
else $class = $has_remote_images ? ' class="has_remote_images"' : '';
|
120 |
?>
|
121 |
+
<tr<?php echo $class; ?>>
|
122 |
+
<td><?php echo $post_id; ?></td>
|
123 |
+
<td><?php echo $post_type_object->labels->name; ?></td>
|
124 |
+
<td><a href="<?php echo get_edit_post_link($post_id); ?>" target="_blank"><?php echo $title; ?> ⇛</a></td>
|
125 |
+
<td><?php
|
126 |
+
if ($has_remote_images) {
|
127 |
+
echo $has_not_exits_remote_images ? '<span class="red">'.__('Including remote images those not exist.', 'qqworld_auto_save_images').'</span>' : '<span class="green">'.__('All remote images have been saved.', 'qqworld_auto_save_images').'</span>';
|
128 |
+
} else _e('No remote images found.', 'qqworld_auto_save_images')
|
129 |
+
?></td>
|
130 |
+
</tr>
|
131 |
+
<?php
|
132 |
+
endforeach;
|
133 |
+
exit;
|
134 |
+
}
|
135 |
+
|
136 |
+
public function save_remote_images_list_all_posts() {
|
137 |
+
set_time_limit(0);
|
138 |
+
if ( !current_user_can( 'manage_options' ) ) return;
|
139 |
+
$post_ids = $_REQUEST['post_id'];
|
140 |
+
echo 1;
|
141 |
+
if (!empty($post_ids)) foreach ($post_ids as $post_id) :
|
142 |
+
$post = get_post($post_id);
|
143 |
+
$post_id = $post->ID;
|
144 |
+
$post_type = $post->post_type;
|
145 |
+
$content = $post->post_content;
|
146 |
+
$title = $post->post_title;
|
147 |
+
$preg=preg_match_all($this->preg,stripslashes($content),$matches);
|
148 |
+
$has_remote_images = false;
|
149 |
+
$has_not_exits_remote_images = false;
|
150 |
+
if($preg){
|
151 |
+
foreach($matches[1] as $image_url){
|
152 |
+
if(empty($image_url)) continue;
|
153 |
+
$pos=strpos($image_url,get_bloginfo('url'));
|
154 |
+
if($pos===false) {
|
155 |
+
$has_remote_images = true;
|
156 |
+
$has_not_exits_remote_images = @!fopen( $image_url, 'r' );
|
157 |
+
}
|
158 |
+
}
|
159 |
+
}
|
160 |
+
if ($has_remote_images) :
|
161 |
+
$post_type_object = get_post_type_object($post_type);
|
162 |
+
$class = $has_not_exits_remote_images ? ' has_not_exits_remote_images' : '';
|
163 |
+
?>
|
164 |
+
<tr class="has_remote_images<?php echo $class; ?>">
|
165 |
<td><?php echo $post_id; ?></td>
|
166 |
+
<td><?php echo $post_type_object->labels->name; ?></td>
|
167 |
+
<td><a href="<?php echo get_edit_post_link($post_id); ?>" target="_blank"><?php echo $title; ?> ⇛</a></td>
|
168 |
+
<td><?php echo $has_not_exits_remote_images ? '<span class="red">'.__('Including remote images those not exist.', 'qqworld_auto_save_images').'</span>' : __('Normal', 'qqworld_auto_save_images'); ?></a></td>
|
169 |
+
<td id="list-<?php echo $post_id; ?>"><input type="button" post-id="<?php echo $post_id; ?>" class="fetch-remote-images button button-primary" value="✍ <?php _e('Fetch', 'qqworld_auto_save_images'); ?>" /></td>
|
170 |
</tr>
|
171 |
<?php
|
172 |
+
else:
|
173 |
+
?>
|
174 |
+
<tr>
|
175 |
+
<td colspan="5" class="hr"></td>
|
176 |
+
</tr>
|
177 |
+
<?php endif;
|
178 |
endforeach;
|
179 |
exit;
|
180 |
}
|
308 |
?>
|
309 |
<div class="wrap">
|
310 |
<h2><?php _e('QQWorld Auto Save Images', 'qqworld_auto_save_images'); ?></h2>
|
311 |
+
<div id="scan-result"></div>
|
|
|
|
|
312 |
<form action="options.php" method="post" id="form">
|
313 |
<?php settings_fields('qqworld_auto_save_images_settings'); ?>
|
314 |
<img src="https://ps.w.org/qqworld-auto-save-images/assets/banner-772x250.png" width="772" height="250" id="banner" />
|
360 |
</tr>
|
361 |
|
362 |
<tr valign="top">
|
363 |
+
<th scope="row"><label><?php _e('Scan Posts', 'qqworld_auto_save_images'); ?></label> <span class="icon help" title="<?php _e("If you have too many posts to be scan, sometimes in process looks like stopping, but it may be fake. please be patient.", 'qqworld_auto_save_images') ?>"></span></th>
|
364 |
<td>
|
365 |
<div id="post_types_list">
|
366 |
+
<p><?php _e('Select post types:', 'qqworld_auto_save_images'); ?> <?php
|
367 |
+
$post_types = get_post_types('', 'objects'); ?>
|
368 |
+
<ul>
|
369 |
+
<?php foreach ($post_types as $name => $post_type) :
|
370 |
+
if ( !in_array($name, array('attachment', 'revision', 'nav_menu_item') )) : ?>
|
371 |
+
<li><label><input name="qqworld_auto_save_imagess_post_types[]" type="checkbox" value="<?php echo $name; ?>" /> <?php echo $post_type->labels->name; ?> (<?php $count = wp_count_posts($name); echo $count->publish; ?>)</label></li>
|
372 |
+
<?php endif;
|
373 |
+
endforeach;
|
374 |
+
?></ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
</div>
|
376 |
+
|
377 |
+
<p id="scope-id"><?php _e('Scope of Post ID:', 'qqworld_auto_save_images'); ?> <?php printf(__('From %1$s to %2$s', 'qqworld_auto_save_images'), '<input type="number" class="small-text" name="id_from" />', '<input type="number" class="small-text" name="id_to" />'); ?> <span class="icon help" title="<?php _e("Default empty for scan all posts ID. If you want to scan posts ID from 50 to 100. please type '50' and '100' or '100' and '50', The order in which two numbers can be reversed. If you only type one number, system would only scan that ID.", 'qqworld_auto_save_images'); ?>"></span></p>
|
378 |
+
|
379 |
+
<p><?php _e('Offset:', 'qqworld_auto_save_images'); ?> <?php printf(__('Start from %s to Scan', 'qqworld_auto_save_images'), '<input type="number" class="small-text" name="offset" value="0" disabled />'); ?>
|
380 |
+
<select name="posts_per_page">
|
381 |
+
<option value="-1"><?php _e('All'); ?></option>
|
382 |
+
<?php for ($i=1; $i<=10; $i++) : ?>
|
383 |
+
<option value="<?php echo $i*100; ?>"><?php echo $i*100; ?></option>
|
384 |
+
<?php endfor; ?>
|
385 |
+
</select> <?php _e('Posts'); ?> <span class="icon help" title="<?php _e("Default scan all posts. If you want to scan 50-150 posts, please type '50' in the textfield and select '100'.", 'qqworld_auto_save_images'); ?>"></span>
|
386 |
+
</p>
|
387 |
|
388 |
<fieldset>
|
389 |
+
<legend class="screen-reader-text"><span><?php _e('Scan Posts', 'qqworld_auto_save_images'); ?></span></legend>
|
390 |
<?php _e('Speed:', 'qqworld_auto_save_images'); ?>
|
391 |
<select name="speed">
|
392 |
+
<?php for ($i=1; $i<10; $i++) : ?>
|
393 |
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
|
394 |
<?php endfor; ?>
|
395 |
+
<option value="10" selected>10</option>
|
396 |
+
</select> <span class="icon help" title="<?php _e('If the server is too much stress may be appropriately reduced speed.', 'qqworld_auto_save_images'); ?>"></span><br />
|
397 |
<label for="scan_old_posts">
|
398 |
+
<input name="scan_old_posts" type="button" class="button-primary" id="scan_old_posts" value="<?php _e('Automatic', 'qqworld_auto_save_images'); ?> ⇛" />
|
399 |
+
</label> <span class="icon help" title="<?php _e('Scan posts and keep remote images in all posts to local media library. Maybe take a long time.', 'qqworld_auto_save_images'); ?>"></span>
|
400 |
+
<label for="print_all_posts">
|
401 |
+
<input name="list_all_posts" type="button" class="button-primary" id="list_all_posts" value="<?php _e('Manual', 'qqworld_auto_save_images'); ?> ☰" />
|
402 |
+
</label> <span class="icon help" title="<?php _e("The list displayed will show you which posts including remote images, then you can keep them to local manually via click \"Fetch\" button.", 'qqworld_auto_save_images'); ?>"></span>
|
403 |
</fieldset>
|
404 |
</td>
|
405 |
</tr>
|
406 |
</tbody>
|
407 |
</table>
|
408 |
<script>
|
409 |
+
function str_repeat(i, m) {
|
410 |
+
for (var o = []; m > 0; o[--m] = i);
|
411 |
+
return o.join('');
|
412 |
+
}
|
413 |
+
function sprintf() {
|
414 |
+
var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = '';
|
415 |
+
while (f) {
|
416 |
+
if (m = /^[^\x25]+/.exec(f)) {
|
417 |
+
o.push(m[0]);
|
418 |
+
}
|
419 |
+
else if (m = /^\x25{2}/.exec(f)) {
|
420 |
+
o.push('%');
|
421 |
+
}
|
422 |
+
else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) {
|
423 |
+
if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) {
|
424 |
+
throw('Too few arguments.');
|
425 |
+
}
|
426 |
+
if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) {
|
427 |
+
throw('Expecting number but found ' + typeof(a));
|
428 |
+
}
|
429 |
+
switch (m[7]) {
|
430 |
+
case 'b': a = a.toString(2); break;
|
431 |
+
case 'c': a = String.fromCharCode(a); break;
|
432 |
+
case 'd': a = parseInt(a); break;
|
433 |
+
case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break;
|
434 |
+
case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break;
|
435 |
+
case 'o': a = a.toString(8); break;
|
436 |
+
case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break;
|
437 |
+
case 'u': a = Math.abs(a); break;
|
438 |
+
case 'x': a = a.toString(16); break;
|
439 |
+
case 'X': a = a.toString(16).toUpperCase(); break;
|
440 |
+
}
|
441 |
+
a = (/[def]/.test(m[7]) && m[2] && a >= 0 ? '+'+ a : a);
|
442 |
+
c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' ';
|
443 |
+
x = m[5] - String(a).length - s.length;
|
444 |
+
p = m[5] ? str_repeat(c, x) : '';
|
445 |
+
o.push(s + (m[4] ? a + p : p + a));
|
446 |
+
}
|
447 |
+
else {
|
448 |
+
throw('Huh ?!');
|
449 |
+
}
|
450 |
+
f = f.substring(m[0].length);
|
451 |
+
}
|
452 |
+
return o.join('');
|
453 |
+
}
|
454 |
if (!QQWorld_auto_save_images) var QQWorld_auto_save_images = {};
|
455 |
+
QQWorld_auto_save_images.are_your_sure = '<?php _e('Are you sure?<br />Before you click the yes button, I recommend backup site database.', 'qqworld_auto_save_images'); ?>';
|
456 |
+
QQWorld_auto_save_images.pls_select_post_types = '<?php _e('Please select post types.', 'qqworld_auto_save_images'); ?>';
|
457 |
QQWorld_auto_save_images.scan = function(respond, r) {
|
458 |
var $ = jQuery;
|
459 |
if (typeof respond[r] == 'undefined') {
|
460 |
+
$('#scan-result').effect( 'shake', null, 500 );
|
461 |
+
$('#form').slideDown('slow');
|
462 |
$('body').data('noty').close();
|
463 |
+
var count = $('#scan_old_post_list tbody tr').length;
|
464 |
+
var count_remote_images = $('#scan_old_post_list tbody tr.has_remote_images').length;
|
465 |
+
var count_not_exits_remote_images = $('#scan_old_post_list tbody tr.has_not_exits_remote_images').length;
|
466 |
+
var count = $('#scan_old_post_list tbody tr').length;
|
467 |
+
if (count) {
|
468 |
+
if (count==1) count_html = sprintf("<?php _e( '%d post has been scanned.', 'qqworld_auto_save_images'); ?>", count);
|
469 |
+
else count_html = sprintf("<?php _e( '%d posts have been scanned.', 'qqworld_auto_save_images'); ?>", count);
|
470 |
+
if (count_remote_images) {
|
471 |
+
count_remote_images = count_remote_images - count_not_exits_remote_images;
|
472 |
+
if (count_remote_images<=1) count_html += sprintf("<br /><?php _e( '%d post including remote images have been processed.', 'qqworld_auto_save_images'); ?>", count_remote_images);
|
473 |
+
else count_html += sprintf("<br /><?php _e( '%d posts including remote images have been processed.', 'qqworld_auto_save_images'); ?>", count_remote_images);
|
474 |
+
if (count_not_exits_remote_images) {
|
475 |
+
if (count_remote_images==1) count_html += sprintf("<br /><?php _e( "%d post including remote images those not exist couldn't be processed.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
|
476 |
+
else count_html += sprintf("<br /><?php _e( "%d posts including remote images those not exist couldn't be processed.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
|
477 |
+
}
|
478 |
+
}
|
479 |
+
} else {
|
480 |
+
$('#scan_old_post_list').slideUp('slow');
|
481 |
+
count_html = '<?php _e('No posts found.', 'qqworld_auto_save_images'); ?>';
|
482 |
+
}
|
483 |
noty({
|
484 |
+
text: '<?php _e('All done.', 'qqworld_auto_save_images'); ?><br />'+count_html,
|
485 |
type: 'success',
|
486 |
+
layout: 'center',
|
487 |
+
dismissQueue: true,
|
488 |
+
modal: true
|
489 |
});
|
490 |
$('#scan_old_posts').removeAttr('disabled');
|
491 |
+
$('#list_all_posts').removeAttr('disabled');
|
492 |
return;
|
493 |
}
|
494 |
var speed = parseInt($('select[name="speed"]').val()),
|
510 |
}
|
511 |
});
|
512 |
};
|
513 |
+
QQWorld_auto_save_images.list = function(respond, r) {
|
514 |
+
var $ = jQuery;
|
515 |
+
if (typeof respond[r] == 'undefined') {
|
516 |
+
$('#scan-result').effect( 'shake', null, 500 );
|
517 |
+
$('#form').slideDown('slow');
|
518 |
+
$('body').data('noty').close();
|
519 |
+
var count = $('#scan_old_post_list tbody tr').length;
|
520 |
+
var count_remote_images = $('#scan_old_post_list tbody tr.has_remote_images').length;
|
521 |
+
var count_not_exits_remote_images = $('#scan_old_post_list tbody tr.has_not_exits_remote_images').length;
|
522 |
+
if (count) {
|
523 |
+
if (count==1) count_html = sprintf("<?php _e( '%d post has been scanned.', 'qqworld_auto_save_images'); ?>", count);
|
524 |
+
else count_html = sprintf("<?php _e( '%d posts have been scanned.', 'qqworld_auto_save_images'); ?>", count);
|
525 |
+
if (count_remote_images) {
|
526 |
+
if (count_remote_images==1) count_html += sprintf("<br /><?php _e( 'found %d post including remote images.', 'qqworld_auto_save_images'); ?>", count_remote_images);
|
527 |
+
else count_html += sprintf("<br /><?php _e( 'found %d posts including remote images.', 'qqworld_auto_save_images'); ?>", count_remote_images);
|
528 |
+
if (count_not_exits_remote_images) {
|
529 |
+
if (count_remote_images==1) count_html += sprintf("<br /><?php _e( "And with %d post including remote images those not exist.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
|
530 |
+
else count_html += sprintf("<br /><?php _e( "And with %d posts including remote images those not exist.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
|
531 |
+
}
|
532 |
+
} else count_html += '<br /><?php _e('No post has remote images found.', 'qqworld_auto_save_images'); ?>';
|
533 |
+
} else {
|
534 |
+
$('#scan_old_post_list').slideUp('slow');
|
535 |
+
count_html = '<?php _e('No posts found.', 'qqworld_auto_save_images'); ?>';
|
536 |
+
}
|
537 |
+
noty({
|
538 |
+
text: '<?php _e('All done.', 'qqworld_auto_save_images'); ?><br />'+count_html,
|
539 |
+
type: 'success',
|
540 |
+
layout: 'center',
|
541 |
+
dismissQueue: true,
|
542 |
+
modal: true
|
543 |
+
});
|
544 |
+
$('#scan_old_posts').removeAttr('disabled');
|
545 |
+
$('#list_all_posts').removeAttr('disabled');
|
546 |
+
return;
|
547 |
+
}
|
548 |
+
var speed = parseInt($('select[name="speed"]').val()),
|
549 |
+
post_id = new Array;
|
550 |
+
var data = 'action=save_remote_images_list_all_posts';
|
551 |
+
for (var p=r; p<r+speed; p++) {
|
552 |
+
if (typeof respond[p] != 'undefined') data += '&post_id[]='+respond[p]['ID'];
|
553 |
+
}
|
554 |
+
$.ajax({
|
555 |
+
type: 'POST',
|
556 |
+
url: ajaxurl,
|
557 |
+
data: data,
|
558 |
+
success: function(data) {
|
559 |
+
data = $(data);
|
560 |
+
$('#scan_old_post_list tbody').append(data);
|
561 |
+
data.hide().fadeIn('fast');
|
562 |
+
r += speed;
|
563 |
+
QQWorld_auto_save_images.list(respond, r);
|
564 |
+
},
|
565 |
+
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
566 |
+
if (XMLHttpRequest) console.log('XMLHttpRequest: ' + XMLHttpRequest);
|
567 |
+
else if (textStatus) console.log('textStatus: ' + textStatus);
|
568 |
+
else if (errorThrown) console.log('errorThrown' + errorThrown);
|
569 |
+
console.log(this);
|
570 |
+
}
|
571 |
+
});
|
572 |
+
};
|
573 |
+
QQWorld_auto_save_images.if_not_select_post_type = function() {
|
574 |
+
var $ = jQuery;
|
575 |
+
$('#post_types_list').effect( 'shake', null, 500 );
|
576 |
+
var n = noty({
|
577 |
+
text: QQWorld_auto_save_images.pls_select_post_types,
|
578 |
+
type: 'error',
|
579 |
+
dismissQueue: true,
|
580 |
+
layout: 'bottomCenter',
|
581 |
+
timeout: 3000
|
582 |
+
});
|
583 |
+
}
|
584 |
QQWorld_auto_save_images.events = function() {
|
585 |
var $ = jQuery;
|
586 |
+
$(".icon.help").tooltip({
|
587 |
+
show: {
|
588 |
+
effect: "slideDown",
|
589 |
+
delay: 250
|
590 |
+
}
|
591 |
+
});
|
592 |
$('select[name="posts_per_page"]').on('change', function() {
|
593 |
if ($(this).val() == '-1') $('input[name="offset"]').attr('disabled', true);
|
594 |
else $('input[name="offset"]').removeAttr('disabled', true);
|
612 |
addClass: 'button button-primary',
|
613 |
text: '<?php _e('Yes'); ?>',
|
614 |
onClick: function ($noty) {
|
615 |
+
$('#form').slideUp('slow');
|
616 |
$noty.close();
|
617 |
$('#scan_old_posts').attr('disabled', true);
|
618 |
+
$('#list_all_posts').attr('disabled', true);
|
619 |
var data = $('#form').serialize()+'&action=get_scan_list';
|
620 |
$.ajax({
|
621 |
type: 'POST',
|
636 |
$('body').data('noty', noty({
|
637 |
text: '<?php _e('Scanning...', 'qqworld_auto_save_images'); ?>',
|
638 |
type: 'notification',
|
639 |
+
layout: 'center',
|
640 |
dismissQueue: true
|
641 |
}) );
|
642 |
QQWorld_auto_save_images.scan(respond, 0);
|
653 |
}
|
654 |
]
|
655 |
});
|
656 |
+
} else QQWorld_auto_save_images.if_not_select_post_type();
|
657 |
+
});
|
658 |
+
$('#list_all_posts').on('click', function() {
|
659 |
+
if (jQuery('input[name="qqworld_auto_save_imagess_post_types[]"]:checked').length) {
|
660 |
+
$('#form').slideUp('slow');
|
661 |
+
$('#scan_old_posts').attr('disabled', true);
|
662 |
+
$('#list_all_posts').attr('disabled', true);
|
663 |
+
var data = $('#form').serialize()+'&action=get_scan_list';
|
664 |
+
$.ajax({
|
665 |
+
type: 'POST',
|
666 |
+
url: ajaxurl,
|
667 |
+
data: data,
|
668 |
+
dataType: 'json',
|
669 |
+
success: function(respond) {
|
670 |
+
$('#scan-result').html('<table id="scan_old_post_list">\
|
671 |
+
\ <thead>\
|
672 |
+
\ <th><?php _e('ID'); ?></th>\
|
673 |
+
\ <th><?php _e('Post Type', 'qqworld_auto_save_images'); ?></th>\
|
674 |
+
\ <th><?php _e('Title'); ?></th>\
|
675 |
+
\ <th><?php _e('Status'); ?></th>\
|
676 |
+
\ <th><?php _e('Control', 'qqworld_auto_save_images'); ?></th>\
|
677 |
+
\ </thead>\
|
678 |
+
\ <tbody>\
|
679 |
+
\ </tbody>\
|
680 |
+
\</table>');
|
681 |
+
$('body').data('noty', noty({
|
682 |
+
text: '<?php _e('Listing...', 'qqworld_auto_save_images'); ?>',
|
683 |
+
type: 'notification',
|
684 |
+
layout: 'center',
|
685 |
+
dismissQueue: true
|
686 |
+
}) );
|
687 |
+
QQWorld_auto_save_images.list(respond, 0);
|
688 |
+
}
|
689 |
});
|
690 |
+
} else QQWorld_auto_save_images.if_not_select_post_type();
|
691 |
});
|
692 |
+
$(document).on('click', '#scan_old_post_list .fetch-remote-images', function() {
|
693 |
+
var wait = '<img src="data:image/gif;base64,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" />';
|
694 |
+
var post_id = $(this).attr('post-id');
|
695 |
+
$(this).hide().after(wait);
|
696 |
+
var data = 'action=save_remote_images_after_scan&post_id[]='+post_id;
|
697 |
+
$.ajax({
|
698 |
+
type: 'POST',
|
699 |
+
url: ajaxurl,
|
700 |
+
data: data,
|
701 |
+
success: function(data) {
|
702 |
+
$('#list-'+post_id).html('<span class="green"><?php _e('Done'); ?></span>');
|
703 |
+
}
|
704 |
+
});
|
705 |
+
})
|
706 |
};
|
707 |
+
jQuery(function($) {
|
708 |
+
QQWorld_auto_save_images.events();
|
709 |
+
});
|
710 |
</script>
|
711 |
<p class="submit"><input type="submit" value="<?php _e('Save Changes') ?>" class="button-primary" name="Submit" /></p>
|
712 |
</form>
|
|
|
713 |
<?php
|
714 |
}
|
715 |
|
765 |
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
|
766 |
return;
|
767 |
|
768 |
+
$post_id = $_POST['post_id'];
|
769 |
+
|
770 |
if ( !current_user_can('edit_post', $post_id) )
|
771 |
return;
|
772 |
|
|
|
773 |
$content = $this->js_unescape($_POST['content']);
|
774 |
|
775 |
+
$preg=preg_match_all($this->preg,stripslashes($content),$matches);
|
776 |
if($preg){
|
777 |
foreach($matches[1] as $image_url){
|
778 |
if(empty($image_url)) continue;
|
803 |
|
804 |
$post=get_post($post_id);
|
805 |
$content=$post->post_content;
|
806 |
+
$preg=preg_match_all($this->preg,stripslashes($content),$matches);
|
807 |
if($preg){
|
808 |
foreach($matches[1] as $image_url){
|
809 |
if(empty($image_url)) continue;
|
823 |
|
824 |
//save exterior images
|
825 |
function save_images($image_url, $post_id){
|
826 |
+
set_time_limit(0);
|
827 |
if ( $file=@file_get_contents($image_url) ) {
|
828 |
$filename=basename($image_url);
|
829 |
preg_match( '/(.*?)(\.\w+)$/', $filename, $match );
|