Plugin Directory

Changeset 3027954


Ignore:
Timestamp:
01/29/2024 02:07:31 AM (2 years ago)
Author:
genolve
Message:
  • Auto detect panorama images, fit and scroll them perfectly.
  • Awesome new animations for masked image reveal and other slider transitions.
Location:
genolve-toolkit/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • genolve-toolkit/trunk/css/genolve-style.css

    r2958759 r3027954  
    1616opacity: 1;
    1717}
     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}
    18109.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; /*  */
    22129position: fixed;
    23 display block;
     130display: block;
    24131width:100%;
    25132height:100%;
     
    29136transform: translate3d(0,0,0);
    30137}
     138.gnlv-aniwidth {
     139  background: #FC3;
     140    height: 30px;
     141  animation: gnlv-width  2s linear  forwards  ;
     142}
    31143.gnlv-font {
    32144    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 */
    33149}
    34150@media screen and (orientation:portrait) {
     
    38154}
    39155/* animations */
     156@keyframes gnlv-width {
     157  from {
     158    width: 0%;
     159  }
     160  to {
     161    width: 100%;
     162  }
     163}
    40164@keyframes gnlv-opacity-fade {
    41165  from {
     
    44168  to {
    45169    opacity: 0;
     170  }
     171}
     172@keyframes gnlv-spin-ani {
     173  from {
     174    transform: rotateZ(0deg);
     175  }
     176  to {
     177    transform: rotateZ(360deg);
    46178  }
    47179}
     
    69201    transform: scale(0.0);
    70202    }
     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;
    71330}
    72331.gnlv-text {
  • genolve-toolkit/trunk/genolve-toolkit.php

    r3001892 r3027954  
    22/*
    33 * Plugin Name: Genolve AI image generator + Toolkit
    4  * Version: 4.0.6
     4 * Version: 4.0.7
    55 * Plugin URI: https://www.genolve.com/
    66 * 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  
    1212define( 'GENOLVE_MANAGE_GROUP', 'genolve-manage-group');
    1313define( 'GENOLVE_DASHBOARD_GROUP', 'genolve-dashboard-group');
    14 /* TEST  
     14/* TEST
    1515
    1616define( 'GENOLVE_ACTION_URL',  'http://localhost/widget/');
    1717define( 'GENOLVE_JS_URL',      'http://localhost/widget/js/' );
    1818define( 'GENOLVE_VER',      '' );
    19 */
     19  */
    2020/* PRODUCTION  also change version in genolve-toolkit.php,eloop and readme.txt */
    2121define( 'GENOLVE_ACTION_URL',  'https://www.genolve.com/');     
    2222define( 'GENOLVE_JS_URL',      'https://www.genolve.com/js/' );
    23 define( 'GENOLVE_VER',         '-4.0.6' );
     23define( 'GENOLVE_VER',         '-4.0.7' );
    2424
    2525/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     
    136136        $genolveO['vv']= 'true';   
    137137        $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' ;
    138139        $genolveO['genolve_color_bg']= get_option("genolve_color_bg") ?get_option("genolve_color_bg"):'none' ;
    139140        $genolveO['genolve_color_txt']= get_option("genolve_color_txt")?get_option("genolve_color_txt"):'none' ;
     
    183184    if(!get_option('genolve_use_mode'))
    184185        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');
    185188    if(!get_option('genolve_color_bg'))
    186189        add_option("genolve_color_bg", $genolve_color_bg="#880000", '', 'yes');
     
    255258    register_setting( $mygroup, 'genolve_apikey' );
    256259    register_setting( $mygroup, 'genolve_use_mode' );
     260    register_setting( $mygroup, 'genolve_save_ai' );
    257261    register_setting( $mygroup, 'genolve_color_bg' );
    258262    register_setting( $mygroup, 'genolve_color_txt' );
     
    299303    delete_option('genolve_version');
    300304    delete_option('genolve_use_mode');
     305    delete_option('genolve_save_ai');
    301306    delete_option('genolve_color_bg');
    302307    delete_option('genolve_color_txt');
     
    580585        $pid     = intval($postO['thepost']);   
    581586        $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    = "";
    586597        if($desc==null)$desc="";   
    587598        $origurl = $url;
     
    616627            $validLink = true;
    617628            }
    618         else if(preg_match("/^https:\/\/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 ||
    619630            preg_match("/^https:\/\/genolve-video/",$url)>0 ){
    620631            $validLink = true;
  • genolve-toolkit/trunk/inc/settings.php

    r2973369 r3027954  
    185185</div>
    186186
     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>
    187194         
    188195 <div class="card border-secondary mb-3" style="max-width: 450px;">
     
    198205       
    199206                    <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" />
    201208                    <p><button type="submit" class="btn my-btn-primary btn-sm ml-1" >Save Changes</button></p>
    202209          </form>
     
    249256      <div id="stagecenter" class="gnlv-stagecommon">
    250257     
    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>
    252259     
    253260      </div>
  • genolve-toolkit/trunk/js/genolve-getsvg.js

    r2918112 r3027954  
    287287            success :function(response,textStatus, thecurreq) {
    288288                    // modal dialog must have div called "message"
     289                    var payload,thisel,myclasses,imgsrc,imgw,imgh,mypclasses,el,key;
    289290                    var newdiv,themusic={};
    290291                    vpr.vprint("gwpt","genolve-getsvg: = = = CALLBACK = = =had reponse?["+response+"]");
     
    317318                        myclasses = $img.prop('class');
    318319                        imgsrc = $img.prop('src');
     320                                                imgw   = $img.width();
     321                                                imgh   = $img.height();
    319322                        mypclasses = "";
    320323                        //mystyles  = $img.css();
     
    371374                              //20210528 disable, ref: bV,p28
    372375                                                            //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+":");
    374377                              //gnlvSound.preload({batchFetch[key].music.mp3});
    375378                              // if(static2play)
     
    401404                              newdiv.html(rsvg);
    402405                              $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);
    404410                              // if > SCROLL <
    405411                              if(batchFetch[key].anitype=="scroll" || batchFetch[key].anitype=="mouse"){
  • genolve-toolkit/trunk/js/genolve-scripts.js

    r2944358 r3027954  
    1616    window.setTimeout(function(){
    1717      //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
    1820      // might be able to get post from js var _wpMediaViewsL10n
    1921      //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  ===
    22Contributors: genolve
    33Donate link: https://www.genolve.com/
    4 Tags: AI image, DALLE, Stable Diffusion, Midjourney, ChatGPT, music video, royalty-free photos
     4Tags: AI image, Midjourney, DALLE, Stable Diffusion, ChatGPT, music video, slider
    55Requires at least: 5.0
    6 Tested up to: 6.4.1
    7 Stable tag: 4.0.6
     6Tested up to: 6.4.2
     7Stable tag: 4.0.7
    88Requires PHP: 5.2.4
    99License: GPLv2 or later
     
    1313
    1414== 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.
     15This 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.
    1616 
    1717### 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.
     18Use 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.
    1919
    2020= AI Features =
     
    2626* **Gutenberg Image** - Generate AI pictures right from the image block.
    2727* **Current models** - As soon as a new version is released it's added in.
    28 * **Free Credits** - Start out with FREE AI IMAGE CREDITS.
    2928* **At Cost** - You pay the posted rates as if you used the models directly from the AI model creator.
    3029
     
    3332* **Image Masks** - Hundreds of masks to shape your AI pics into animals, plants, polygons or text.
    3433* **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.
    3535* **Image Background remover** - Remove backgrounds from AI images or your own photos.
    3636* **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.
    3738
    3839= Bonus Features =
     
    103104== Changelog ==
    104105
     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
    105110= 4.0.6 =
    106111* DALL-E 3 activated.
Note: See TracChangeset for help on using the changeset viewer.