Jump to content

Esther E.

Invision Community Team
  • Posts

  • Joined

  • Last visited

  • Days Won


Esther E. last won the day on February 21

Esther E. had the most liked content!


About Esther E.

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Custom applications will remain untouched. That includes files and data. For development environments, you would upgrade to v5 and then start with updating your files. It was mentioned above that this might be impractical, but the reality is that every file must be modified regardless; at the very least, the class needs to be renamed to remove the underscore. In a live environment, your application would be disabled and locked until a new version is uploaded. Note that we did this when upgrading to 4.5 as well. Plugins will be deleted completely, as the entire table is dropped. Your local files should still be present, though.
  2. Request granted. I've been working on this today.
  3. Good question. As of this moment, I'm not sure that would be possible, but that just means we need to think about how to allow that. Thank you for bringing that up.
  4. Esther E.

    IC5: Commerce

    You'll need a custom application for v5 regardless, so you might be better served with creating a separate location in the ACP to upload this software and link it to a purchase. Then, use a template hook to display the download in the client area when the user views the purchase. OR... have a separate, dedicated front-end controller that displays the user's own files. Much cleaner from a coding perspective.
  5. Coming at this from the perspective of a 3rd party developer (since 2007)... what kind of sensitive data could possibly be there? The only type of scenario coming to my head is a government contract, something classified (I've worked on one of those). Something like that would be installed on a server so secure, that the json files are not exactly a concern. And probably would be within a VPN.
  6. Esther E.

    IC5: Commerce

    That functionality is not supported at the moment.
  7. Yes, it checks all of those things. To clarify: It actually does NOT scan for used language strings. It scans for required/suggested language strings. So for example, it reads your acpmenu.json and makes sure that you have all the 'menu__' strings set up.
  8. As part of our commitment to encourage 3rd party development and extension, we have given our Developer Center a much needed makeover. A picture is worth a thousand words, but how about a video? Highlights The Developer Center now has its own dedicated tab in the ACP. What were previously tabs are now displayed on individual screens, making for a far less cluttered UI. You can easily switch from one application to another using the main menu or the button at the top right of the screen. We've implemented UI for some JSON files that previously had to be manually created; specifically acpsearch.json and furl.json We've replaced the "Support" button at the top of the ACP with a more helpful "Quick Links" dropdown menu. While this is not specific to developers, with easy access to things like the Task Manager and clearing caches, it's very handy for troubleshooting! Application Landing Page When you open the Developer Center for a particular application, the landing page is designed to help you quickly access common functions, and to help you find any potential issues within your code. The Application Scanner currently checks for: Missing Admin CP Language Strings Missing Front-End Language Strings Missing EditorLocations extensions Missing FileStorage extensions Missing FrontNavigation extensions Missing FURLs Missing Email Templates Language strings are grouped so that can you easily see where the missing strings were detected. We will continue to expand the scanners over the course of the next few months. Thoughts? What do you think? Are there any other useful features you'd like to see added to the Dev Center? What kind of scans can we implement on the landing page?
  9. Esther E.

    IC5: Commerce

    Not at this time.
  10. Esther E.

    IC5: Commerce

    We can look into the first one. The second one is not on the road map at the moment.
  11. Esther E.

    IC5: Commerce

    I hadn't realized that, thanks. Not at this time. The changes in this blog have been applied to our own custom items (courses/subscriptions/etc) where it makes sense. For now we've decided to leave the other items as "buy now". But it will definitely work with your own items. Can you clarify please?
  12. Esther E.

    IC5: Commerce

    Technically the cart will accept any item, you'd just have to add the button on your end to add it to the cart.
  13. Esther E.

    IC5: Commerce

    One of the areas we have reviewed in Commerce is the way that we handle custom items. Previously, many of our features were limited to Commerce Products. Even items such as Subscriptions and Download Files were not fully integrated. In Invision Community 5, we have looked at ways to improve the overall experience. Icons and Images A small, but important change: displaying the item icon when an image is not available. In previous versions, if no image was available, the checkout and client area displayed a standard "box" icon for all items. In IC5, we now show the icon defined in your Item extension. Product Details Line item details are displayed on the checkout screens, as well as on the Invoice. However, this functionality was restricted to custom package fields, which are only available for Commerce Products. This logic has been moved to a new extension method, detailsForDisplay. Coupons A very popular request is to create coupons for specific items that are not Commerce Products. Previously, coupons could either be applied to the entire purchase or to specific packages. We have added the following methods to the Item extensions to allow you to integrate your items with the coupon form. couponFormElements Returns an array of elements that will be shown on the coupon form. If no elements are returned, your item will not be listed. saveCouponForm Process the values of the fields defined in your couponFormElements method. This method returns an array of data that will be stored with the coupon. isCouponValid Check if the coupon is valid for this item. New default coupon form: Autopay When Commerce generates renewal invoices, we attempt to take a payment if a user has a card on file. We have moved this functionality to \IPS\nexus\Gateway::autopay(). Your gateway must also have the SUPPORTS_AUTOPAY constant set to true in order for this to work. With the new logic, when a renewal invoice is generated, the task will loop through all available methods. If autopay is supported, it will attempt to take payment using that payment method. We've tried to include the most popular requests that we've seen for custom items and payments. What do you think? Have we missed anything? What are some of the requests you've received for custom item integration?
  14. As we get closer to our first release, we'll be discussing how to update your custom applications to be compatible with IPS v5. We know this can seem like a daunting task, especially since not all changes will be immediately obvious, so we'll be walking through this step by step. Updating Source Classes Classnames should no longer start with an underscore. All our source classes are now strictly typed, so any of your classes that extend pretty much anything (Content Items, Nodes, Active Record) will need to be updated with the correct method signatures and property types. Almost all Content interfaces have been converted to traits (e.g. \IPS\Content\Pinnable, \IPS\Content\Lockable). Your content classes should have use statements instead of implements, and if you are overloading any trait methods, verify that it is properly declared. The following interfaces have not been moved to traits: \IPS\Content\Embeddable \IPS\Content\Filter \IPS\Node\Permissions \IPS\Content\Searchable has been removed entirely and replaced with a SearchContent extension. Recommended: We no longer use FQN in our code. This is not required for v5 compatibility, but a recommendation for best practice. A few examples of the changes to the code base, showing strictly typed function signatures and using traits versus interfaces Updating Extensions All extensions now have an abstract class that should be extended. Most of these can be found under \IPS\Extensions. The abstract class is typically the same name as the extension type (e.g. EditorLocations extend EditorLocationsAbstract). Verify that your extensions use the correct abstract class and that all your method signatures and properties are declared correctly. Remove deprecated extensions. See this blog entry for a complete list. Convert your CreateMenu extensions to a UserMenu extension. Convert your MemberSync extensions to a Listener. Replacing Code Hooks The following is a general list of the most common types of code hooks. Obviously, we cannot predict, nor support, all possibilities, but we have tried to cover the basics here. Hooks on content classes should be replaced with Listeners or UI Extensions. Hooks on the Dispatcher (e.g. for loading JS/CSS) should be converted to Loader Extensions. Hooks on commerce items should be replaced with Listeners. Hooks that add functionality (e.g. Commerce gateways, Login handlers) should be moved to the appropriate extensions. Replacing Theme Hooks As with code hooks, below is a list of common uses for theme hooks. Theme hooks that add to the user dropdown menu should be moved to a UserMenu extension. Theme hooks that add classes or attributes should be moved to UI Extensions. Theme hooks that insert HTML should be moved to template hooks. Please let us know in the comments if there is anything that we may have missed, or if something is unclear. We would like to make this transition as smooth as possible.
  15. Esther E.

    IC5: Theme Tools

    Current goal with ad placement is to implement additional locations where they make sense, and to make the existing ad locations a little more flexible. That said, we're open to suggestions. Can you elaborate on what your custom ads look like?
  • Create New...