Jump to content

The Old Man

Clients
  • Posts

    3,952
  • Joined

  • Last visited

  • Days Won

    11

Reputation Activity

  1. Thanks
    The Old Man got a reaction from CiberBob in GPT API OpenAI + Invision Community (answers and create articles)   
    It would be nice to have AI providers like the ChatGPT, OpenAI APIs as Community Intergrations like Mapbox, Pixabay, Stripe etc, then allow permitted user groups to have an AI button that brings up a text prompt when composing a blog or pages article etc or even a forum/gallery image.
  2. Like
    The Old Man got a reaction from AlexWebsites in GPT API OpenAI + Invision Community (answers and create articles)   
    It would be nice to have AI providers like the ChatGPT, OpenAI APIs as Community Intergrations like Mapbox, Pixabay, Stripe etc, then allow permitted user groups to have an AI button that brings up a text prompt when composing a blog or pages article etc or even a forum/gallery image.
  3. Thanks
    The Old Man reacted to opentype in Pages in Clubs, observations so far   
    1. Member posting is now working with the latest patch 👍
    2. Database records made in clubs do not appear in feeds, not the club feed or the Activity feed. I have seen reactions to records though. 
    3. Pages Feed Blocks don’t honor club-level access permissions. On the club level, I turned off access for “Members not in this club” and the records can’t be accessed by non-club-members. But Pages Feed blocks for the database contain these records, despite “honor permission” being activated. The goal here would be to create a “latest news (or whatever the content is) from the clubs I am a member of” block. 
    4. Adding a category in a club is missing the Description field
    5. Not making a Pages category in a club public leads to a confusing, generic error message, which doesn’t tell the user to join the club to access the content. I think the error should be clearer, or the Pages category tab should be hidden from the club, as it is done with Forums in clubs. Right now, it’s inconsistent. Forum tabs disappear, Pages tabs lead to an error. 
  4. Thanks
    The Old Man reacted to Marc Stridgen in Blog Custom Sidebar blocks   
    Thank you for bringing this issue to our attention! I can confirm this should be further reviewed and I have logged an internal bug report for our development team to investigate and address as necessary, in a future maintenance release.
     
  5. Like
    The Old Man reacted to Matt in Invision Community 5: The story so far...   
    We have a few more things to announce, but we're just finalising our internal reviews. I want to do a status update on v5 early next week and outline the next steps.
  6. Like
    The Old Man reacted to Marc Stridgen in Bug: Multiple renewal reminders showing in AdminCP   
    Haha, no problem
  7. Thanks
    The Old Man reacted to Adlago in PHP 8.2 Thread   
    My live site with 4.7.14, and test site beta 2 4.7.15 is with PHP 8.2 - no issues.
  8. Haha
    The Old Man got a reaction from Marc Stridgen in Bug: Multiple renewal reminders showing in AdminCP   
    Thanks Neighbourino!
  9. Haha
  10. Thanks
    The Old Man reacted to Marc Stridgen in Bug: Multiple renewal reminders showing in AdminCP   
    Thank you for bringing this issue to our attention! I can confirm this should be further reviewed and I have logged an internal bug report for our development team to investigate and address as necessary, in a future maintenance release.
     
  11. Agree
    The Old Man reacted to Dreadknux in Invision Community 5: The story so far...   
    I'm enjoying the story so far, but can we get some more chapters to complete the book? 😄 I enjoyed the once-a-week cadence of reveals a few months ago, and I'm hoping we're near the end of our mid-season break and can return to that? 🙏
  12. Like
    The Old Man reacted to BN_IT_Support in Third Party API integration with Pages   
    As a general opinion on "Pages DB"...
    They are not really "databases" in SQL terms -- but SQL "tables" in the Invision database.
    When you are considering which sort of SQL table to use (within Invision) you have two choices:
    "Pages DB" (as you have mentioned) SQL tables as defined under the 'Database Schema' tab for an Application Pages DB works well for:
    Where you only need a single table for all your data - for example, in the classic database design if you only need a "products" table then it will work well. If you actually need a "products" table and a "suppliers" table with cross references then it does not work so well - and in any case you would need two Pages DB (one for products and one for suppliers)
      Where the solution involves a human adding and editing records it works well - for example, where you have a human adding products (descriptions, part numbers, prices, etc.) to a product table. We probably use between 5 and 10 Pages DB for various unrelated things such as "news articles", "places to go" and so on.
      Using Pages DB automatically gives you various widgets such as "Database filters" which is good.
      I would strongly recommend that you use the standard display templates wherever possible. If you create your own display templates based on the standard display templates then that effectively bases your template on a snapshot of the standard template - you don't benefit from future improvements and bug fixes to the standard. We have some of our own templates from 6 or 8 years ago and regret not putting more effort into display formatting for individual fields. With some clever display formats you can combine fields to produce complex output (for example, latitude and longitude fields to display a map) and if you need to do conditional display of some fields dependent upon the contents of others then you can add a dummy field (with a non-blank default value so it triggers display) and you can write custom code to display the contents of several other fields according to the rules that you want to apply. Do the fancy stuff in a field display rather than a template wherever possible.
      When you write a scheduled task (for example) to update the data in a Pages DB there are a couple of (minor) extra steps that you need to take in order to write the data. Firstly, you need to know the classname that will be used to write to the correct table and this will be something like \IPS\cms|\Records23 where 23 is the database number. So, you have to look up the database number from your database key (I recommend against hard coding the 23 😉 ). Secondly, if you have fields for name, address, region, country, phone, etc. then the names in the table will be something like field_91, field_92, field_93, field_94, etc so you have to 'map' from the field key to the real field name in the database. Not difficult, but that's what you have to do.
      Pages DB will work OK where you have a scheduled task to update the data once per day (for example - it could obviously be much more frequently if you wanted). A scheduled task will work fine where nearly all the data items/records are accessed every day - but what about a scenario where only 5% of records are accessed each day? Doing a daily scheduled update of all records means that 95% of what you retrieve is not going to be used in the next 24 hours. I rather liked Nathan's suggestion of retrieving data on demand (i.e. every record has a lifetime field that you add so if you want the record but the lifetime has expired then you retrieve the data through the API). That would mean that you would not waste resources retrieving data that is not being used. Unfortunately, "retrieval on demand" would be extremely difficult or impossible to implement using Pages DB - unless you write your own very fancy templates and in that case you could do better to write an Application to do the entire job. Updating Pages DB from a scheduled job would work easily. Application tables will work well for:
    You need several tables with relationships between them (e.g. products and suppliers)
      You need an application that does a lot of processing of records (rather than simple human entry of records as indicated previously)
      Access to records is more intuitive - field names are what you want to call them rather than being 'mapped'. Also, access to the correct table is very simple as you need to create a sub-class of \IPS\Patterns\ActiveRecord that will get you to the correct table plus a whole load more stuff.
      If you have hierarchical data (for example, categories and records) then you should consider using the Node/Model/Item/Content model although that gets a lot more complicated it does give you access to many of the features that you see time and again in Invision.
      You have complete control so retrieving data on demand is much more simple than it would be using Pages DB. Regards,
    John
     
  13. Like
    The Old Man reacted to Joel R in Invision Community 5: A more performant, polished UI   
    Really like the improvement to Tabs on Profiles on mobile, with the horizontal scroll. 
    The dropdown menu in v4 basically hid all of the tab options unless you knew of the tabs in advance.
  14. Like
    The Old Man reacted to Ehren in Invision Community 5: A more performant, polished UI   
    As showcased in our past blogs, Invision Community 5 introduces a brand new, modern interface which brings improvements to performance, aesthetics and mobile usability.
    An optional side navigation panel, new view modes, light/dark modes, customizable header layouts, a search modal and a mobile navigation bar are some of the things we've showcased previously. Today, lets take a closer look at some other miscellaneous changes that we've been working on while developing Version 5, including some of the code reductions and performance improvements that we've been able to achieve in the process.
    For those of you who are developers, we'll also give some simple explanations of how (and why) we've implemented these changes.
     
    Widgets
    Sidebar widgets are perfect for displaying content feeds, featured members, announcements, advertisements and more on your page. In version 4 however, the widget column would often become an empty space once the widgets had been scrolled past:
      widgets-v4.mp4  
    In version 5, widgets now stick to the screen once the last widget has been reached, ensuring your readers have more convenient  access to your widgets rather than a void space:
      sticky-widgets-v5.mp4  
     
    Messenger
    The Messenger is a great way to reach out to members when a private chat is more appropriate than a topic. Inspired by modern email clients, the messenger in Version 5 has been revamped with a full-height, sticky inbox, a longer message snippet, mini profiles and a more polished UI - all with a 25% reduction in CSS and a 100% reduction in Javascript.
    messenger-v5.mp4
     
    Sticky elements
    We've mentioned sticky elements a couple of times now, so lets take a look behind the scenes at how they're created, and some of the performance improvements with Version 5. Traditionally, sticky elements were created using Javascript which would calculate the position of the element on the page and adjust it's stickiness every time the page was scrolled. Scroll events can be quite taxing for browsers, and when it comes to Javascript, the less, the better (especially when aiming for great page speed scores)!
    With that in mind, all sticky elements are now handled using sticky positioning via CSS, which is a native and much more performant way of controlling these elements. We've been able to replace an entire 400 line Javascript component with just 3 lines of CSS.
     
    Grids and Masonry
    Grids have previously been handled in a similar fashion. Javascript would scan all elements within a grid to determine how many could fit on a single line, and would then shuffle these elements into position after the page was loaded or resized. CSS has since introduced its own grid properties, which has allowed us to replace more than 350 lines of Javascript with just a few lines of CSS, resulting in more performant page rendering and nicer looking grids (especially on small-medium displays such as mobiles and tablets).
     

     
    Fun fact: We first introduced a similar performance improvement to "masonry grids" in our Gallery update from January this year, by replacing more than 400 lines of Javascript with, you guessed it, just a few lines of CSS.
     

     
     
     
    Click targets
    We wanted to make Version 5 as simple as possible to navigate, and one way of doing that has been by implementing larger click targets. Clicking anywhere inside an entry in a table or grid will now take you to that entry (you can still click on other links like normal within the click target, such as subforums or profile links). Click targets are optional and can be disabled via your theme settings if necessary.
     
    click-targets.mp4
     
    Data Lists (tables)
    Speaking of tables, they too have been revamped. Tables automatically adapt to the space they've been assigned to (for those curious, this is done using CSS container-queries), so they're always neat regardless of the screen size, with no overflow or squashed layouts. Behind the scenes, the two columns below are created with identical code, yet they're quite different visually due to the size which they've been allocated. Even with these improvements, tables have received a 25% reduction in CSS.
     

     
    Profiles
    Profiles have been polished for Version 5 and include some nice improvements such as sticky widgets and tabs. 
    profile-desktop.mp4
     
    On mobiles, the side column collapses into a carousel, and the sticky tabs allow you to easily flick between content types without scrolling to the top of the page.
    profile-mobile.mp4
     

    Tabs
    You may have noticed in the above clip that tabs on mobiles are now scrollable, compared to a dropdown menu from version 4. We made this change to ensure that tabs are given more equal exposure on small devices, and have managed to reduce the CSS by a whopping 80%.
     
    Carousels
    Last and certainly not least, are carousels. Carousels are great for displaying large amounts of data in a confined space and they've been rewritten from scratch for version 5. Previously, a Javascript library was used to create the "scroll effect", however this has never been the smoothest experience on laptop trackpads and touch devices.
    In version 5, carousels are powered by native smooth-scrolling and scroll-snapping, which results in a much nicer user experience, especially on touchscreens. We've been able to remove a staggering 95% of the Javascript, substituting it with just a few lines of CSS.
     
    carousel.mp4
     
    To be honest, we've only just scratched the surface here! In addition to these changes, we've modernized (and reduced code) in almost every component throughout the suite including avatars, cover photos, dropdown menus, forms, inputs, buttons, lists, off-canvas menus, side menus, columns and more!
    Combined, these changes result in not only a significant reduction in code, but also a polished UI that performs smoothly on desktop and touch devices. We're excited to continue modernizing Invision Community well into the future as new technologies and techniques become available to us, and are looking forward to getting it in your hands in 2024.

    View full blog entry
  15. Haha
    The Old Man reacted to Matt in Invision Community 5: Live Topic Improvements   
    You won't be able to place ads anywhere on the Live Topics UI. The advertisement system has had an update for v5, but I don't think we've spoken about it much.

    I think I spent more time making up fake adverts than writing about it.


  16. Like
    The Old Man got a reaction from Marc Stridgen in Uncaught exception when editing guest Search Flood Control   
    Interesting thanks for that.
     
    I just checked and I'm using 10.11.7-MariaDB and apparently strict mode is enabled:
     
  17. Thanks
    The Old Man reacted to Marc Stridgen in Guest Group Issue   
    Thanks for the confirmation. I have added a bug report for that.
  18. Thanks
  19. Like
    The Old Man reacted to opentype in [Pages] Create a blog like wordpress   
    You would create a database with one category only and don’t set it to “article mode”. Then you can set certain fields (like the selectbox field) as a filter and drag a filter widget on the page. 
    The “articles” will only be shown in a list mode by default. You probably will not like that. 
    Alternative solution: Don’t use filters and create a category for “PC“, “Nintento”, “Xbox”. Then you can have the “article mode” front page looking like a blog and users would open the categories to see the articles belonging to these topics. 
  20. Like
    The Old Man got a reaction from Tikhonov Ivan in Add Captcha to Sign In   
    I've found that since you added the ability to use hCaptcha (set to difficult level) I've seen a large drop in spam registrations.
    There used to be a plug-in for this, but please add the option to show the Captcha on the Sign In modal/form, not just the Registration.
    Another tool in the arsenal is always useful and compliments existing security features like 2FA.
     
  21. Thanks
    The Old Man reacted to Marc Stridgen in theme_cookie seems to be missing from the cookies list   
    Dev has been flagged on this to see if we can get some info for you
  22. Thanks
    The Old Man reacted to teraßyte in Login and registrations options with 2 Standard methods   
    Older versions had all login methods listed by default, and during the upgrade, they were converted as disabled. You can safely delete them, but leaving them there disabled won't cause any issues, either.
  23. Thanks
    The Old Man reacted to Jim M in Correct IPS cookie settings for use with Cloudflare page caching   
    Wouldn't think this is a cookie issue but an IP validation issue. Likely your user's IP addresses are not being rendered correctly and you're getting CloudFlare's IP addresses somehow. If you're using mod_remoteip and it is correctly relaying this data as the source IP of the user, there is no need to have enabled the "Trust IP address provided by proxies"
  24. Thanks
    The Old Man reacted to Marc Stridgen in Registration switched off but guests can still post   
    This issue has been resolved in the recently released 4.7.15 version. Please update your site if you are still experiencing the issue, and let us know if you see any reoccurrence.
  25. Like
    The Old Man got a reaction from SJ77 in GPT API OpenAI + Invision Community (answers and create articles)   
    It would be nice to have AI providers like the ChatGPT, OpenAI APIs as Community Intergrations like Mapbox, Pixabay, Stripe etc, then allow permitted user groups to have an AI button that brings up a text prompt when composing a blog or pages article etc or even a forum/gallery image.
×
×
  • Create New...