Changeset 3027954
- Timestamp:
- 01/29/2024 02:07:31 AM (2 years ago)
- Location:
- genolve-toolkit/trunk
- Files:
-
- 7 edited
-
css/genolve-style.css (modified) (5 diffs)
-
genolve-toolkit.php (modified) (1 diff)
-
inc/functions.php (modified) (7 diffs)
-
inc/settings.php (modified) (3 diffs)
-
js/genolve-getsvg.js (modified) (4 diffs)
-
js/genolve-scripts.js (modified) (1 diff)
-
readme.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
genolve-toolkit/trunk/css/genolve-style.css
r2958759 r3027954 16 16 opacity: 1; 17 17 } 18 19 20 /* =============================================================== 21 For presets and Wordpress theme conflicts 22 NOTE duplicate any changes in plugin 23 =============================================================== */ 24 .gnlv-svg-icon { 25 position: relative; 26 background-color: transparent; 27 display: inline-block; 28 width: auto !important; 29 height: 100% !important; 30 overflow: visible; 31 cursor: pointer; 32 margin-left: -5px; 33 fill: #1c94c4; 34 } 35 .gnlv-svg-colors { 36 fill: #1c94c4; 37 } 38 .gnlv-svg-mask2 { 39 filter: blur(2px); 40 } 41 .gnlv-svg-mask3 { 42 filter: url(#g_maskinnershadow); 43 } 44 .gnlv-svg-mask4 { 45 transform:translate(100px,100px) scale(1.25) translate(-100px,-100px); 46 } /* these are in test_template_helpers */ 47 .gnlv-svg-mask5 { 48 filter: url(#g_maskinvert); 49 } 50 .gnlv-svg-mask6 { 51 filter: url(#g_maskjagged); 52 } 53 .gnlv-svg-mask7 { 54 filter: url(#g_maskjaggedani); 55 } 56 .gnlv-svg-mask8 { 57 filter: url(#g_maskvlines); 58 } 59 .gnlv-svg-mask9 { 60 filter: url(#g_maskvlinesani); 61 } 62 .gnlv-svg-maskt2 { 63 filter: blur(2px); 64 } 65 .gnlv-svg-maskt3 { 66 filter: blur(5px); 67 } 68 .gnlv-svg-maskt4 { 69 transform:translate(100px,100px) scale(1.2) translate(-100px,-100px); 70 } 71 .gnlv-svg-maskt5 { 72 transform:translate(100px,100px) scale(1.4) translate(-100px,-100px); 73 } 74 .gnlv-svg-maskt6 { 75 transform: translate(0px,-20px); 76 } 77 .gnlv-svg-maskt7 { 78 transform: translate(0px,20px); 79 } 80 .gnlv-svg-maskt8 { 81 filter: url(#g_maskjagged); 82 } 83 .gnlv-svg-maskt9 { 84 filter: url(#g_maskjaggedani); 85 } 86 .gnlv-fliph { 87 transform:translate(200px,0px) scale(-1,1) ; 88 } 89 .gnlv-flipv { 90 transform:translate(0px,200px) scale(1,-1) ; 91 } 92 .gnlv-flipb { 93 transform:translate(200px,200px) scale(-1,-1) ; 94 } 95 /* 96 .gnlv-zuum { 97 transform:translate(100px,100px) ; 98 } 99 .gnlv-zuum path{ 100 transform:translate(-500px,-500px) ; 101 } 102 */ 103 .gnlv-invrt { 104 fill-rule:evenodd; 105 } 106 .gnlv-invrt2 { 107 filter: url(#g_maskinvrt); 108 } 18 109 .gnlv-clickable { 19 cursor: pointer; 20 } 21 .gnlv-falling { pointer-events:none; 110 cursor: pointer; 111 } 112 .gnlv-clickable2 { 113 cursor: pointer; 114 padding:3px; 115 border-radius: 5px; 116 border: thin solid #FFFFFF; 117 } 118 .gnlv-clickable2:hover { 119 border: thin solid #AA7700; 120 } 121 .gnlv-modal { 122 color: #212529; 123 background-color: white; 124 } 125 .gnlv-modal-center { 126 justify-content:center !important; 127 } 128 .gnlv-falling { pointer-events:none; /* */ 22 129 position: fixed; 23 display block;130 display: block; 24 131 width:100%; 25 132 height:100%; … … 29 136 transform: translate3d(0,0,0); 30 137 } 138 .gnlv-aniwidth { 139 background: #FC3; 140 height: 30px; 141 animation: gnlv-width 2s linear forwards ; 142 } 31 143 .gnlv-font { 32 144 font-size:58px; 145 } 146 .gnlv-font28 { 147 font-size:28px; 148 font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; /* needed for icons to appear on mac */ 33 149 } 34 150 @media screen and (orientation:portrait) { … … 38 154 } 39 155 /* animations */ 156 @keyframes gnlv-width { 157 from { 158 width: 0%; 159 } 160 to { 161 width: 100%; 162 } 163 } 40 164 @keyframes gnlv-opacity-fade { 41 165 from { … … 44 168 to { 45 169 opacity: 0; 170 } 171 } 172 @keyframes gnlv-spin-ani { 173 from { 174 transform: rotateZ(0deg); 175 } 176 to { 177 transform: rotateZ(360deg); 46 178 } 47 179 } … … 69 201 transform: scale(0.0); 70 202 } 203 } 204 /* =============================================================== 205 genolve.com styles for SVG elements 206 NOTE need to modify code if gnlv prefix added 207 =============================================================== */ 208 .centerit { 209 text-anchor: middle; 210 } 211 .leftit { 212 text-anchor: start; 213 } 214 .rightit { 215 text-anchor: end; 216 } 217 .ignoreclicks { 218 pointer-events: none; 219 } 220 .gnlv-ignoreclicks { 221 pointer-events: none; 222 } 223 224 .gnlv-slot-marker { 225 fill: none; 226 stroke: #ff6666; 227 stroke-width: 1; 228 marker-start: url(#g_markerCircle); 229 marker-end: url(#g_markerArrow); 230 } 231 .gnlv-bone-marker { 232 fill: none; 233 stroke: #6666ff; 234 stroke-width: 1; 235 marker-start: url(#g_markerCircle); 236 marker-end: url(#g_markerArrow); 237 } 238 .gnlv-waypoints { 239 fill: none; 240 stroke: #000000; 241 stroke-width: 1; 242 } 243 .gnlv-joint { 244 fill: #FFCC33; 245 } 246 @keyframes flipin { 247 0% { 248 transform: perspective(400px) translateZ(0) rotateY(90deg) scale(1); 249 animation-timing-function: ease-in; 250 } 251 100% { 252 transform: perspective(400px) translateZ(0) rotateY(0deg) scale(1); 253 animation-timing-function: ease-in; 254 } 255 } 256 @keyframes flipout { 257 0% { 258 transform: perspective(400px) translateZ(0) rotateY(0deg) scale(1); 259 animation-timing-function: ease-in; 260 } 261 100% { 262 transform: perspective(400px) translateZ(0) rotateY(-90deg) scale(1); 263 animation-timing-function: ease-in; 264 } 265 } 266 .gnlv-flipin { 267 animation: 0.5s ease-out 0.5s 1 flipin forwards; 268 } 269 .gnlv-flipout { 270 animation: 0.5s ease-out 0s 1 flipout forwards; 271 } 272 .gnlv-flash { 273 animation: 0.5s ease-out infinite gnlv-opacity-fade alternate; 274 } 275 .gnlv-spin { 276 animation: 3.5s ease-out infinite gnlv-spin-ani alternate; 277 } 278 .gnlv-rotateYtran { 279 /*position: relative; transform-origin: top left; goes absolute */ 280 transition-property: rotate, opacity; 281 transition-duration: 1s, 1s; 282 transition-timing-function: ease-out, ease-out; 283 } 284 /* =============================================================== 285 jquery ui tooltips 286 ===============================================================*/ 287 .ui-tooltip, .gnlvarrow:after { 288 background: black; 289 border: 2px solid white; 290 } 291 .ui-tooltip { 292 padding: 10px 20px; 293 color: white; 294 border-radius: 20px; 295 font: 14px "Helvetica Neue", Sans-Serif; 296 text-transform: uppercase; 297 box-shadow: 0 0 7px black; 298 } 299 .gnlvarrow { 300 width: 70px; 301 height: 16px; 302 overflow: hidden; 303 position: absolute; 304 left: 50%; 305 margin-left: -35px; 306 bottom: -16px; 307 } 308 .gnlvarrow.top { 309 top: -16px; 310 bottom: auto; 311 } 312 .gnlvarrow.left { 313 left: 20%; 314 } 315 .gnlvarrow:after { 316 content: ""; 317 position: absolute; 318 left: 20px; 319 top: -20px; 320 width: 25px; 321 height: 25px; 322 box-shadow: 6px 5px 9px -9px black; 323 -webkit-transform: rotate(45deg); 324 -ms-transform: rotate(45deg); 325 transform: rotate(45deg); 326 } 327 .gnlvarrow.top:after { 328 bottom: -20px; 329 top: auto; 71 330 } 72 331 .gnlv-text { -
genolve-toolkit/trunk/genolve-toolkit.php
r3001892 r3027954 2 2 /* 3 3 * Plugin Name: Genolve AI image generator + Toolkit 4 * Version: 4.0. 64 * Version: 4.0.7 5 5 * Plugin URI: https://www.genolve.com/ 6 6 * Description: Stunning AI images from a prompt, AI-edit photos, plus amazing toolkit to make banners, collages, slideshows or music videos. -
genolve-toolkit/trunk/inc/functions.php
r3001892 r3027954 12 12 define( 'GENOLVE_MANAGE_GROUP', 'genolve-manage-group'); 13 13 define( 'GENOLVE_DASHBOARD_GROUP', 'genolve-dashboard-group'); 14 /* TEST 14 /* TEST 15 15 16 16 define( 'GENOLVE_ACTION_URL', 'http://localhost/widget/'); 17 17 define( 'GENOLVE_JS_URL', 'http://localhost/widget/js/' ); 18 18 define( 'GENOLVE_VER', '' ); 19 */19 */ 20 20 /* PRODUCTION also change version in genolve-toolkit.php,eloop and readme.txt */ 21 21 define( 'GENOLVE_ACTION_URL', 'https://www.genolve.com/'); 22 22 define( 'GENOLVE_JS_URL', 'https://www.genolve.com/js/' ); 23 define( 'GENOLVE_VER', '-4.0. 6' );23 define( 'GENOLVE_VER', '-4.0.7' ); 24 24 25 25 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * … … 136 136 $genolveO['vv']= 'true'; 137 137 $genolveO['genolve_use_mode']= get_option("genolve_use_mode") ?get_option("genolve_use_mode"):'none' ; 138 $genolveO['genolve_save_ai']= get_option("genolve_save_ai") ?get_option("genolve_save_ai"):'none' ; 138 139 $genolveO['genolve_color_bg']= get_option("genolve_color_bg") ?get_option("genolve_color_bg"):'none' ; 139 140 $genolveO['genolve_color_txt']= get_option("genolve_color_txt")?get_option("genolve_color_txt"):'none' ; … … 183 184 if(!get_option('genolve_use_mode')) 184 185 add_option("genolve_use_mode", $genolve_use_mode, '', 'yes'); 186 if(!get_option('genolve_save_ai')) 187 add_option("genolve_save_ai", $genolve_save_ai, '', 'yes'); 185 188 if(!get_option('genolve_color_bg')) 186 189 add_option("genolve_color_bg", $genolve_color_bg="#880000", '', 'yes'); … … 255 258 register_setting( $mygroup, 'genolve_apikey' ); 256 259 register_setting( $mygroup, 'genolve_use_mode' ); 260 register_setting( $mygroup, 'genolve_save_ai' ); 257 261 register_setting( $mygroup, 'genolve_color_bg' ); 258 262 register_setting( $mygroup, 'genolve_color_txt' ); … … 299 303 delete_option('genolve_version'); 300 304 delete_option('genolve_use_mode'); 305 delete_option('genolve_save_ai'); 301 306 delete_option('genolve_color_bg'); 302 307 delete_option('genolve_color_txt'); … … 580 585 $pid = intval($postO['thepost']); 581 586 $desc = sanitize_text_field($postO['thedesc']); 582 $themode = sanitize_key($postO['themode']); 583 $theslot = sanitize_text_field($postO['theslot']); 584 $thekey = sanitize_key($postO['thekey']); 585 587 $themode = ""; 588 if(array_key_exists('themode',$postO)) 589 $themode = sanitize_key($postO['themode']); 590 $theslot = ""; 591 if(array_key_exists('theslot',$postO)) 592 $theslot = sanitize_text_field($postO['theslot']); 593 $thekey = ""; 594 if(array_key_exists('thekey',$postO)) 595 $thekey = sanitize_key($postO['thekey']); 596 $dmsg = ""; 586 597 if($desc==null)$desc=""; 587 598 $origurl = $url; … … 616 627 $validLink = true; 617 628 } 618 else if(preg_match("/^http s:\/\/www\.genolve\.com/",$url)>0 || preg_match("/static\.genolve\.com/",$url)>0 ||629 else if(preg_match("/^http:\/\/localhost/",$url)>0 || preg_match("/^https:\/\/www\.genolve\.com/",$url)>0 || preg_match("/static\.genolve\.com/",$url)>0 || 619 630 preg_match("/^https:\/\/genolve-video/",$url)>0 ){ 620 631 $validLink = true; -
genolve-toolkit/trunk/inc/settings.php
r2973369 r3027954 185 185 </div> 186 186 187 <div class="card border-secondary mb-3" style="max-width: 450px;"> 188 <div class="card-header">Save AI Images</div> 189 <div class="card-body text-secondary"> 190 <p class="card-text form-check"><input name="genolve_save_ai" type="radio" id="save2wp" class="gnlv-radio-check gnlv-radio" value="save2wp" <?php if(get_option('genolve_save_ai')=="save2wp") echo 'checked="checked" '; ?> /><label for="save2wp" class="form-check-label"> Save to WP Media</label> 191 <br><input name="genolve_save_ai" type="radio" id="save2computer" class="gnlv-radio-check gnlv-radio" value="save2computer" <?php if(get_option('genolve_save_ai')=="save2computer") echo 'checked="checked" '; ?> /><label for="save2computer" class="form-check-label"> Save to Computer </label> </p> 192 </div> 193 </div> 187 194 188 195 <div class="card border-secondary mb-3" style="max-width: 450px;"> … … 198 205 199 206 <input type="hidden" name="action" value="update" /> 200 <input type="hidden" name="page_options" value="genolve_apikey,genolve_enabled,genolve_use_mode,genolve_ color_bg,genolve_color_txt,genolve_color_brdr" />207 <input type="hidden" name="page_options" value="genolve_apikey,genolve_enabled,genolve_use_mode,genolve_save_ai,genolve_color_bg,genolve_color_txt,genolve_color_brdr" /> 201 208 <p><button type="submit" class="btn my-btn-primary btn-sm ml-1" >Save Changes</button></p> 202 209 </form> … … 249 256 <div id="stagecenter" class="gnlv-stagecommon"> 250 257 251 <div id='cardsdiv' style="display:block;text-align:center;" gnlv-data="{'CMD':'GETCARDS', 'cardtype':' bloggraphic','order':'likes','number2sta':0,'number2get':12,'clickhandler':'json','showscratch':'once','showmore':'more','apikey':'<?php echo esc_html(get_option('genolve_apikey')); ?>','wpAjaxUrl':'<?php echo esc_html($wpAjaxUrl) ?>','getmenu':{'only':'menu_websites','menutype':'buttonrow','mine':'USERID','version':'<?php echo $genolve_version ?>','mode':'wrapul','date':'likes','selected':'bloggraphic'}}"></div>258 <div id='cardsdiv' style="display:block;text-align:center;" gnlv-data="{'CMD':'GETCARDS', 'cardtype':'featuredimage','order':'likes','number2sta':0,'number2get':12,'clickhandler':'json','showscratch':'once','showmore':'more','apikey':'<?php echo esc_html(get_option('genolve_apikey')); ?>','wpAjaxUrl':'<?php echo esc_html($wpAjaxUrl) ?>','getmenu':{'only':'menu_websites','menutype':'buttonrow','mine':'USERID','version':'<?php echo $genolve_version ?>','mode':'wrapul','date':'likes','selected':'featuredimage'}}"></div> 252 259 253 260 </div> -
genolve-toolkit/trunk/js/genolve-getsvg.js
r2918112 r3027954 287 287 success :function(response,textStatus, thecurreq) { 288 288 // modal dialog must have div called "message" 289 var payload,thisel,myclasses,imgsrc,imgw,imgh,mypclasses,el,key; 289 290 var newdiv,themusic={}; 290 291 vpr.vprint("gwpt","genolve-getsvg: = = = CALLBACK = = =had reponse?["+response+"]"); … … 317 318 myclasses = $img.prop('class'); 318 319 imgsrc = $img.prop('src'); 320 imgw = $img.width(); 321 imgh = $img.height(); 319 322 mypclasses = ""; 320 323 //mystyles = $img.css(); … … 371 374 //20210528 disable, ref: bV,p28 372 375 //newdiv.css({'width':$img.width()+'px','height':'auto'});// becuase div empty set exact w/h as image$img.height() 373 vpr.vprint("gwpt","genolve-getsvg: MUZ place div with width/h!"+newdiv.css('width')+","+newdiv.css('height')+" class list:"+myclasses+" theme:"+genolveO.wptheme );376 vpr.vprint("gwpt","genolve-getsvg: MUZ place div with width/h!"+newdiv.css('width')+","+newdiv.css('height')+" class list:"+myclasses+" theme:"+genolveO.wptheme+":"); 374 377 //gnlvSound.preload({batchFetch[key].music.mp3}); 375 378 // if(static2play) … … 401 404 newdiv.html(rsvg); 402 405 $img.replaceWith(newdiv);// < < -- replace image with svg 403 vpr.vprint("gwpt","genolve-getsvg["+key+"]: STD place div with width/h!"+newdiv.css('width')+","+newdiv.css('height')+" class list:"+myclasses+" theme:"+genolveO.wptheme+" anitype:"+batchFetch[key].anitype); 406 vpr.vprint("gwpt","genolve-getsvg["+key+"]: STD place div with width/h!"+newdiv.css('width')+","+newdiv.css('height')+" class list:"+myclasses+" theme:"+genolveO.wptheme+": anitype:"+batchFetch[key].anitype); 407 if( parseInt(newdiv.css('height')) > imgh 408 && genolveO.wptheme=="I Am One Pro") 409 newdiv.css('height',imgh); 404 410 // if > SCROLL < 405 411 if(batchFetch[key].anitype=="scroll" || batchFetch[key].anitype=="mouse"){ -
genolve-toolkit/trunk/js/genolve-scripts.js
r2944358 r3027954 16 16 window.setTimeout(function(){ 17 17 //alert('addGenolve fired'); 18 $('.components-panel__body-title').off('click.gnlv'); 19 $('.components-panel__body-title').on('click.gnlv',addGenolve); // for toggle featured image control 18 20 // might be able to get post from js var _wpMediaViewsL10n 19 21 //alert("genolve admin found? $('.editor-post-featured-image')"+$('.editor-post-featured-image').length); -
genolve-toolkit/trunk/readme.txt
r3010697 r3027954 1 === Genolve - AI image generation Midjourney, DALL-E 3, Stablility.ai - start with free credits===1 === Genolve - AI image generation Midjourney, DALL-E 3, Stablility.ai === 2 2 Contributors: genolve 3 3 Donate link: https://www.genolve.com/ 4 Tags: AI image, DALLE, Stable Diffusion, Midjourney, ChatGPT, music video, royalty-free photos4 Tags: AI image, Midjourney, DALLE, Stable Diffusion, ChatGPT, music video, slider 5 5 Requires at least: 5.0 6 Tested up to: 6.4. 17 Stable tag: 4.0. 66 Tested up to: 6.4.2 7 Stable tag: 4.0.7 8 8 Requires PHP: 5.2.4 9 9 License: GPLv2 or later … … 13 13 14 14 == Description == 15 This feature-packed AI art generator has prompt history, preset styles, variations, inpainting and outpainting. Additional tools to immediately use your generated images for social media, cover photos, multi-layered slideshows or even music videos. You also get SVG stickers and text to embellish your images or slideshow. ChatGPT integration helps craft ads or product descriptions. **Free AI image credits** to hit the ground running. After activating, auto-install the API key and you're all set.15 This feature-packed AI art generator has prompt history, preset styles, variations, inpainting and outpainting. Additional tools to immediately use your generated images for social media, cover photos, multi-layered slideshows or even music videos. You also get SVG stickers and text to embellish your images or slideshow. ChatGPT integration helps craft ads or product descriptions. **Free AI image credits** when you [make a Tweet] (https://www.genolve.com/svg/en/genolve-wordpress-plugin-premium.php#freeaicredits). After activating, auto-install the API key and you're all set. 16 16 17 17 ### All Your Favorite AI Image Models 18 Use top **AI image generators like DALLE3, Stability.ai and Midjourney** from one simple interface. Genolve's single interface saves registering and paying on multiple AI image sites and having to learn different interfaces. If your AI image prompt is missing the target with one model, switch to a different model with one click. Suggested prompts are automatically generated with ChatGPT. Your images are only seen by you instead of posting on a public interface. Several beta testers commented that they greatly prefer our interface over Midjourney's own interface. Start out with free AI image credits and refill credits at the same rate the vendor charges.18 Use top **AI image generators like DALLE3, Stability.ai and Midjourney** from one simple interface. Genolve's single interface saves registering and paying on multiple AI image sites and having to learn different interfaces. If your AI image prompt is missing the target with one model, switch to a different model with one click. Suggested prompts are automatically generated with ChatGPT. Your images are only seen by you instead of posting on a public interface. Several beta testers commented that they greatly prefer our interface over Midjourney's own interface. Refill credits at the same rate the vendor charges. 19 19 20 20 = AI Features = … … 26 26 * **Gutenberg Image** - Generate AI pictures right from the image block. 27 27 * **Current models** - As soon as a new version is released it's added in. 28 * **Free Credits** - Start out with FREE AI IMAGE CREDITS.29 28 * **At Cost** - You pay the posted rates as if you used the models directly from the AI model creator. 30 29 … … 33 32 * **Image Masks** - Hundreds of masks to shape your AI pics into animals, plants, polygons or text. 34 33 * **Image Tiles** - Put AI generated tiles straight into a tiled background. 34 * **Image Transitions** - lots of image transitions for slideshows; mask reveal, fade-in, blur-in, slide-in, brush stroke, etc. 35 35 * **Image Background remover** - Remove backgrounds from AI images or your own photos. 36 36 * **Royalty free photos** - Grab stock images from Wikimedia's vast collection or stock photos from Pixabay's sublime collection. 37 * **Panoramas** - autofit and scroll animation for panoramas in a slideshow. 37 38 38 39 = Bonus Features = … … 103 104 == Changelog == 104 105 106 = 4.0.7 = 107 * Auto detect panorama images, fit and scroll them perfectly. 108 * Awesome new animations for masked image reveal and other slider transitions. 109 105 110 = 4.0.6 = 106 111 * DALL-E 3 activated.
Note: See TracChangeset
for help on using the changeset viewer.