THREE – Alpha 1 – Hartnell

We are super excited to announce that our Ninja Forms 3.0 ALPHA release is now available for download! This release is the first public-facing step towards the soon-to-be completed Ninja Forms 3.0, and represents many months worth of virtually around the clock work by our development team. We honestly cannot adequately voice how excited we are to finally reach the stage of development where we can show our efforts off to you and hear your feedback!

This release is not in a complete state. It is very much an early-release alpha version. You could almost call it a pre-alpha. Please keep a few things in mind going into this:

  • DO NOT attempt to install this release on a live website.
  • DO install this on a clean WordPress install; by this we mean a completely new WordPress installation to which Ninja Forms 2.9.x or earlier has never been installed.
  • There will be database conflicts if you install this alongside 2.9.x, even if 2.9.x has been deactivated or deleted.
  • Please see the section immediately below for a list of current alpha release functionality. If it’s not listed there, it’s not working yet. We’re hard at work to bring you more features asap!

Alpha Testing Ninja Forms 3.0

Ninja Forms 3.0 Alpha will generate several forms for you to play in, and within these forms you can edit the form data and experience our new user interface. This alpha version does not yet include many of the features that the full release of Ninja Forms 3.0 will have. Our primary goal at this early stage is to get your feedback on the user interface and user experience. So, what all can you do?

  • Edit the default forms
  • Create fields
  • Change field settings
  • Duplicate fields
  • Reorder fields
  • Delete fields
  • Preview the default form that you’ve edited on the front end
  • **If you need to reset your forms back to their default state for any reason, go to Forms in the WordPress dashboard and click Mock Data.

Anything outside the above certainly isn’t discouraged, but it’s outside the parameters of our testing at this point, so don’t be surprised if something breaks and you are sucked into a blackhole and lost for all eternity. We’re not liable for lost souls.

Giving Feedback

Our primary purpose in releasing Ninja Forms 3.0 Alpha at this stage is to gather feedback on the UI from “non-us” (to quote our CTO Kevin Stover) users. How can you give us feedback and what kind of feedback are we looking for?

  • Please leave your feedback in the comments below.
  • We’d love to see what you’re experiencing. If relevant, please leave screenshots so that we can see what you see!
  • Specifically, we’d like to hear about:
    • What is your overall impression of the new user interface?
    • Does the styling look good on a general level?
    • Is there any specific styling elements that don’t look right?
    • Do styles hold up well with non-default WordPress themes that you tried?
    • What bugs did you encounter and how can we reproduce them?

So How Do I Get It Already?

Click the button of course…

Download Now

Thank you so much for participating in this with us! We look forward to hearing your feedback and cannot wait to be able to present you with the fully armed and operational Ninja Forms 3.0!

*Notes*

  • If you see this error upon activation, your version of PHP is 5.2 or lower:
    Parse error: syntax error, unexpected T_FUNCTION in /Users/Dev/WordPress/wp-content/plugins/ninja-forms-alpha-1-hartnell/includes/Database/Models/Form.php on line 117
  • While we don’t currently plan on supporting PHP before version 5.3, we’re trying to determine how many of our users are on those older versions. If you do see this error, please let us know in a comment below, however, there isn’t a fix for this other than updating to a newer version of PHP.

*Bug Fixes*

  • “invalid plugin header” error
  • PHP 5.3 compatibility fatal error issues
  • Mock Data forms should now be installed on activation

 

30 thoughts on “THREE – Alpha 1 – Hartnell”

  1. Tried to run download and got ‘Fatal error: Cannot redeclare class Ninja_Forms in /html/wp-content/plugins/ninja-forms-alpha-1-hartnell/ninja-forms.php on line 27’

    Any ideas?

      1. Hmm – I uninstalled prior to attempting Alpha. By clean install do you mean a fresh WP installation or no existing Ninja installs?

  2. Tried installing it in a couple different sub directories and getting the same error. First the “This plugin does not have a valid header…” and then when I try to activate from the plugins page I get an error:

    Parse error: syntax error, unexpected ‘[‘ in …/ninja/wp-content/plugins/ninja-forms-alpha-1-hartnell/includes/Display/Shortcodes/tmp-file-upload.php on line 6

    1. Hey Dustin,

      We found an array syntax issue that is not supported in all version of PHP. That line has been fixed.

      Kevin is working on updating the Alpha-1-Hartnell tag on Github.

    2. We were able to track down the issue. The install script for the zip uploader was finding old headers inside of the deprecated folder, before finding the new headers in the main level of the folder.

  3. Okay just fired up a fresh local WP dev site in DesktopServer with TwentySixteen as the active theme and the only plugin active in the Alpha version of Ninja Forms 3.0 and I still get the same error message.

    /wp-admin/plugins.php?action=activate&plugin=ninja-forms-alpha%2Fdeprecated%2Fninja-forms.php&_wpnonce=ad3f9d4d0c

    The plugin does not have a valid header.

    1. We were able to track down the issue. The install script for the zip uploader was finding old headers inside of the deprecated folder, before finding the new headers in the main level of the folder. Alpha-1-Hartnell is being re-tagged.

  4. But if I go back to plugins and then activate the plugin it is now fine.

    Ninja Forms 3.0 – ALPHA

    NOTICE: Installed is an Alpha Release of Ninja Forms. This is not intended for production.
    Please submit all feedback to respective blog post on developer.ninjaforms.com

  5. Installed the alpha release fine, installed the mock data forms, but can not edit emails or actions or publish the form.

  6. Installed Ninja Forms 3.0 – ALPHA on a local WP 4.4beta-1.
    No forms. Had first to “Mock Data” and then had six forms.
    This is no problem of course but not exactly as expected from description: Ninja Forms 3.0 Alpha will generate three forms for you to play in…

    Then clicking on edit lead to only a blank screen (within the backend, so not totally blank, menu was there) but the previews looked ok. Didn’t play with it but immediately update to WP 4.4beta-3 – and then it looked much better 😉

    Interface looks VERY, very nice!

    Although what disturbed me:
    Clicking on the little “down arrow” on the label position field didn’t show up the dropdown. I had to click left of the arrow symbol.

    Clicking on the menu Icon top right did nothing and no way to save or preview or anything else.

    Still a long way to go but looks very promising.

    1. After some more playing around there was suddenly a real menu at the top (with publish, edit emails and actions and preview forms buttons) that was not there before…
      Still edit Emails and Actions didn’t do anything and althought the “publish” button looks nice I’d prefer a default looking WordPress style (metabox) for a default function. Similar to publish/preview etc. in any post type.

      So, I’m not sure if the alpha of Ninja forms or beta of WP 4.4 was the reason for unexpected behaviour. I was logged out of WP every few minutes….

    2. There were some initial bugs with the forms being created on activation. This has been corrected and you can grab a fresh copy above to get that fix.

      The dropdown issue you mentions is a known bug and will be corrected shortly. I tried to take a CSS shortcut and it didn’t pay off. 😉

      The menu icon did;t work because you were view the site with your browser less than 1039ox wide and we haven’t added our responsive stuff yet. If you view it in a larger view you should see what we have available to show currently.

      Edit Emails and Actions button was simply there as a nod to what will be there, but we are not yet ready to show off that section. We’re still focused on the builder at this time. Sorry for the confusion.

      Concerning the Publish button, I don’t see us using the Meta box because we need very different conventions and that UI just won’t fit into what we are building. We do have some plans for that button that can’t been seen currently as all it does is save your staged changes. We appreciate the feedback and will consider that as we further develop the publish process.

      Your log out issues would have to be WordPress related as Ninja Forms doesn’t have anything within it that would affect that.

      Thanks again for your feedback.

  7. My first impression: WOW WOW WOW! Feels easy and intuitive!

    Couple of thoughts, not sure if they’re known/already being addressed/etc:

    I feel like I want another option besides Publish for the form, or maybe it’s because the button says Publish instead of Save? But I feel like I want a button to let me cancel, at least?

    Related: if I add fields to the form and then click to go to a different part of the admin, I think I should be warned that my changes won’t be saved, if I haven’t saved/published. Right now there is no warning.

    I would love to click on the name of the form field and have it open the field editor, instead of having to go over and click the wheel.

    I think the .nf-fields select class having a height of 48px should maybe be removed–it’s cutting off the select options in Twenty Fifteen.

    Looking good guys!!!

  8. Fresh local install, click on the a form builder and get a blank screen. Js error on require.js line 165

    Uncaught Error: Mismatched anonymous define() module: function (a){var b=0,c=Array.prototype.slice;return a.cleanData=function(b){return function(c){var d,e,f;for(f=0;null!=(e=c[f]);f++)try{d=a._data(e,”events”),d&&d.remove&&a(e).triggerHandler(“remove”)}catch(g){}b(c)}}(a.cleanData),a.widget=function(b,c,d){var e,f,g,h,i={},j=b.split(“.”)[0];return b=b.split(“.”)[1],e=j+”-“+b,d||(d=c,c=a.Widget),a.expr[“:”][e.toLowerCase()]=function(b){return!!a.data(b,e)},a[j]=a[j]||{},f=a[j][b],g=a[j][b]=function(a,b){return this._createWidget?void(arguments.length&&this._createWidget(a,b)):new g(a,b)},a.extend(g,f,{version:d.version,_proto:a.extend({},d),_childConstructors:[]}),h=new c,h.options=a.widget.extend({},h.options),a.each(d,function(b,d){return a.isFunction(d)?void(i[b]=function(){var a=function(){return c.prototype[b].apply(this,arguments)},e=function(a){return c.prototype[b].apply(this,a)};return function(){var b,c=this._super,f=this._superApply;return this._super=a,this._superApply=e,b=d.apply(this,arguments),this._super=c,this._superApply=f,b}}()):void(i[b]=d)}),g.prototype=a.widget.extend(h,{widgetEventPrefix:f?h.widgetEventPrefix||b:b},i,{constructor:g,namespace:j,widgetName:b,widgetFullName:e}),f?(a.each(f._childConstructors,function(b,c){var d=c.prototype;a.widget(d.namespace+”.”+d.widgetName,g,c._proto)}),delete f._childConstructors):c._childConstructors.push(g),a.widget.bridge(b,g),g},a.widget.extend=function(b){for(var d,e,f=c.call(arguments,1),g=0,h=f.length;h>g;g++)for(d in f[g])e=f[g][d],f[g].hasOwnProperty(d)&&void 0!==e&&(a.isPlainObject(e)?b[d]=a.isPlainObject(b[d])?a.widget.extend({},b[d],e):a.widget.extend({},e):b[d]=e);return b},a.widget.bridge=function(b,d){var e=d.prototype.widgetFullName||b;a.fn[b]=function(f){var g=”string”==typeof f,h=c.call(arguments,1),i=this;return g?this.each(function(){var c,d=a.data(this,e);return”instance”===f?(i=d,!1):d?a.isFunction(d[f])&&”_”!==f.charAt(0)?(c=d[f].apply(d,h),c!==d&&void 0!==c?(i=c&&c.jquery?i.pushStack(c.get()):c,!1):void 0):a.error(“no such method ‘”+f+”‘ for “+b+” widget instance”):a.error(“cannot call methods on “+b+” prior to initialization; attempted to call method ‘”+f+”‘”)}):(h.length&&(f=a.widget.extend.apply(null,[f].concat(h))),this.each(function(){var b=a.data(this,e);b?(b.option(f||{}),b._init&&b._init()):a.data(this,e,new d(f,this))})),i}},a.Widget=function(){},a.Widget._childConstructors=[],a.Widget.prototype={widgetName:”widget”,widgetEventPrefix:””,defaultElement:””,options:{disabled:!1,create:null},_createWidget:function(c,d){d=a(d||this.defaultElement||this)[0],this.element=a(d),this.uuid=b++,this.eventNamespace=”.”+this.widgetName+this.uuid,this.bindings=a(),this.hoverable=a(),this.focusable=a(),d!==this&&(a.data(d,this.widgetFullName,this),this._on(!0,this.element,{remove:function(a){a.target===d&&this.destroy()}}),this.document=a(d.style?d.ownerDocument:d.document||d),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this.options=a.widget.extend({},this.options,this._getCreateOptions(),c),this._create(),this._trigger(“create”,null,this._getCreateEventData()),this._init()},_getCreateOptions:a.noop,_getCreateEventData:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr(“aria-disabled”).removeClass(this.widgetFullName+”-disabled ui-state-disabled”),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass(“ui-state-hover”),this.focusable.removeClass(“ui-state-focus”)},_destroy:a.noop,widget:function(){return this.element},option:function(b,c){var d,e,f,g=b;if(0===arguments.length)return a.widget.extend({},this.options);if(“string”==typeof b)if(g={},d=b.split(“.”),b=d.shift(),d.length){for(e=g[b]=a.widget.extend({},this.options[b]),f=0;f<d.length-1;f++)e[d[f]]=e[d[f]]||{},e=e[d[f]];if(b=d.pop(),1===arguments.length)return void 0===e[b]?null:e[b];e[b]=c}else{if(1===arguments.length)return void 0===this.options[b]?null:this.options[b];g[b]=c}return this._setOptions(g),this},_setOptions:function(a){var b;for(b in a)this._setOption(b,a[b]);return this},_setOption:function(a,b){return this.options[a]=b,"disabled"===a&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!b),b&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(b,c,d){var e,f=this;"boolean"!=typeof b&&(d=c,c=b,b=!1),d?(c=e=a(c),this.bindings=this.bindings.add(c)):(d=c,c=this.element,e=this.widget()),a.each(d,function(d,g){function h(){return b||f.options.disabled!==!0&&!a(this).hasClass("ui-state-disabled")?("string"==typeof g?f[g]:g).apply(f,arguments):void 0}"string"!=typeof g&&(h.guid=g.guid=g.guid||h.guid||a.guid++);var i=d.match(/^([\w:-]*)\s*(.*)$/),j=i[1]+f.eventNamespace,k=i[2];k?e.delegate(k,j,h):c.bind(j,h)})},_off:function(b,c){c=(c||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,b.unbind(c).undelegate(c),this.bindings=a(this.bindings.not(b).get()),this.focusable=a(this.focusable.not(b).get()),this.hoverable=a(this.hoverable.not(b).get())},_delay:function(a,b){function c(){return("string"==typeof a?d[a]:a).apply(d,arguments)}var d=this;return setTimeout(c,b||0)},_hoverable:function(b){this.hoverable=this.hoverable.add(b),this._on(b,{mouseenter:function(b){a(b.currentTarget).addClass("ui-state-hover")},mouseleave:function(b){a(b.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(b){this.focusable=this.focusable.add(b),this._on(b,{focusin:function(b){a(b.currentTarget).addClass("ui-state-focus")},focusout:function(b){a(b.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(b,c,d){var e,f,g=this.options[b];if(d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.apply(this.element[0],[c].concat(d))===!1||c.isDefaultPrevented())}},a.each({show:"fadeIn",hide:"fadeOut"},function(b,c){a.Widget.prototype["_"+b]=function(d,e,f){"string"==typeof e&&(e={effect:e});var g,h=e?e===!0||"number"==typeof e?c:e.effect||c:b;e=e||{},"number"==typeof e&&(e={duration:e}),g=!a.isEmptyObject(e),e.complete=f,e.delay&&d.delay(e.delay),g&&a.effects&&a.effects.effect[h]?d[b](e):h!==b&&d[h]?d[h](e.duration,e.easing,f):d.queue(function(c){a(this)[b](),f&&f.call(d[0]),c()})}}),a.widget}
    http://requirejs.org/docs/errors.html#mismatch

  9. Great job, looks really cool.

    Tried delete plugin:
    Fatal error: Uncaught Error: Call to undefined method Ninja_Forms::get_plugin_settings() in /srv/users/serverpilot/apps/testing/public/wp-content/plugins/ninja-forms-alpha-1-hartnell/uninstall.php:20 Stack trace: #0 /srv/users/serverpilot/apps/testing/public/wp-admin/includes/plugin.php(973): include() #1 /srv/users/serverpilot/apps/testing/public/wp-admin/includes/plugin.php(816): uninstall_plugin(‘ninja-forms-alp…’) #2 /srv/users/serverpilot/apps/testing/public/wp-admin/plugins.php(375): delete_plugins(Array) #3 {main} thrown in /srv/users/serverpilot/apps/testing/public/wp-content/plugins/ninja-forms-alpha-1-hartnell/uninstall.php on line 20

Leave a Reply to Kyle B. Johnson Cancel Reply

Your email address will not be published. Required fields are marked *