Jump to content

TDBF

Clients
  • Posts

    821
  • Joined

  • Days Won

    3

Reputation Activity

  1. Thanks
    TDBF got a reaction from bel303 in Trying to find plugin 'Website Footer by Catzwolf'   
    Website Footer v2 2.0.2.tar
    Sorry, I had to close down the site due to issues with the software which I was using. Sadly, I cannot use my own forum for downloads.
  2. Like
    TDBF got a reaction from SeNioR- in No Caps Topic Titles   
    New version waiting for approval in the marketplace.
  3. Like
    TDBF reacted to Marc Stridgen in Passkeys instead of passwords   
    Fair 😄 
  4. Haha
    TDBF got a reaction from Marc Stridgen in Passkeys instead of passwords   
    Sorry Marc, my comment was a little tongue in cheek. 🙂 
    However, Google also uses Passkey now.
  5. Like
    TDBF got a reaction from SeNioR- in Passkeys instead of passwords   
    Sorry Marc, my comment was a little tongue in cheek. 🙂 
    However, Google also uses Passkey now.
  6. Like
    TDBF got a reaction from SeNioR- in BULK_MAILS_PER_CYCLE Not working as expected.   
    I have set the constant BULK_MAILS_PER_CYCLE to 100, however bulk emails are still being sent out at 400 a time.
    \define( 'BULK_MAILS_PER_CYCLE', 100 );
    Thus my emails are getting temporarily deferred due to unexpected volume.
    Is this correct or am I missing something here? 🙂
  7. Haha
    TDBF got a reaction from Adriano Faria in Hook Error Extending ipsContentController   
    Thanks for reminding me that I have a short memory!! 🤣
  8. Like
    TDBF reacted to Runar in Call to undefined method ReflectionUnionType::getName()   
    I’m having the same issue, and I’ve traced it to this function on line 4353 in system/Content/Controller.php:
    protected function sendModerationAlert( array $values, \IPS\Content\Item|\IPS\Content\Comment $content ) : \IPS\core\Alerts\Alert { } More specifically, the second argument, the union types, causes issues for the editForm function in system/Plugin/Hook.php. On line 370, the editForm function loops through parameters and tries to get their types and names:
    $parameters[] = ( $parameter->getType() ? ( ( ( $parameter->allowsNull() ) ? '?' : '' ). '\\' . $parameter->getType()->getName() . ' ' ) : '' ) . ( $parameter->isPassedByReference() ? '&' : '' ) . '$' . $parameter->name . ( $parameter->isOptional() ? ( '=' . var_export( $parameter->getDefaultValue(), TRUE ) ) : '' ); This works with single types, but not with union types.
    A single type returns a ReflectionNamedType, while union types return ReflectionUnionType, and trying to call getName() on a ReflectionUnionType will not work. I assume a simple check for ReflectionUnionType inside the try block would solve the issue.
    As far as I can tell, this issue affects all hooks to \IPS\Content\Controller and every class extending that class.
    For the record, I’m using PHP 8.1.16.
  9. Like
    TDBF reacted to DawPi in Hook Error Extending ipsContentController   
    Me. 🙂
  10. Haha
  11. Like
    TDBF got a reaction from DawPi in Hook Error Extending ipsContentController   
    Hi,

    I'm not sure that this is an issue on my end or not.
    I have created a hook which extends class \IPS\Content\Controller, however when I try to edit the hook I get the following error.
    Anyone else getting this?
    Error: Call to undefined method ReflectionUnionType::getName() (0) #0 C:\wamp64\www\#\applications\core\modules\admin\applications\developer.php(3577): IPS\Plugin\_Hook->editForm() #1 C:\wamp64\www\#\system\Dispatcher\Controller.php(107): IPS\core\modules\admin\applications\_developer->editHook() #2 C:\wamp64\www\#\applications\core\modules\admin\applications\developer.php(69): IPS\Dispatcher\_Controller->execute() #3 C:\wamp64\www\#\system\Dispatcher\Dispatcher.php(153): IPS\core\modules\admin\applications\_developer->execute() #4 C:\wamp64\www\#\admin\index.php(13): IPS\_Dispatcher->run() #5 {main}  
  12. Like
    TDBF got a reaction from SeNioR- in Hook Error Extending ipsContentController   
    Hi,

    I'm not sure that this is an issue on my end or not.
    I have created a hook which extends class \IPS\Content\Controller, however when I try to edit the hook I get the following error.
    Anyone else getting this?
    Error: Call to undefined method ReflectionUnionType::getName() (0) #0 C:\wamp64\www\#\applications\core\modules\admin\applications\developer.php(3577): IPS\Plugin\_Hook->editForm() #1 C:\wamp64\www\#\system\Dispatcher\Controller.php(107): IPS\core\modules\admin\applications\_developer->editHook() #2 C:\wamp64\www\#\applications\core\modules\admin\applications\developer.php(69): IPS\Dispatcher\_Controller->execute() #3 C:\wamp64\www\#\system\Dispatcher\Dispatcher.php(153): IPS\core\modules\admin\applications\_developer->execute() #4 C:\wamp64\www\#\admin\index.php(13): IPS\_Dispatcher->run() #5 {main}  
  13. Agree
    TDBF reacted to Sonya* in Show anonymous signed-in in the Recently browsing widget   
    Since the upgrade to 4.7 we have lost the ability to see anonymous users in Recently browsing list. Before upgrade (4.5), we could see them in the list marked with crossed eye like this:

    After the upgrade, we cannot see anonymous logged users at all. I am logged in as administrator (anonymous login required). My moderators are logged as anonymous if they like. The most of them like. 😉 Now, I can see myself on the list without crossed eye and non-anonymous users. My moderators cannot see me. I cannot see my moderators.
    We have used this feature to see if there is a moderator online in the “critical” topics that are going to escalate. 
    Has the feature been removed? Or are there any settings that I miss? 
  14. Like
    TDBF reacted to Randy Calvert in Ban By IP Address   
    It’s been that way as long as I can remember!
  15. Like
    TDBF reacted to SeNioR- in Ban By IP Address   
    It works on a different principle. IP blocking only works with the registration form. The user can still browse the forum, e.g. by logging out of the account or opening it in incognito mode, but he will not be able to create a new account from this IP.
    The IP block is useless, if someone has a changing IP, all you need to do is reset the router or the Internet connection itself and you can create an account again.
  16. Like
    TDBF reacted to Randy Calvert in Ban By IP Address   
    Ban by IP prevents any username from signing in.  To be honest, blocking by IP nowadays is almost useless. I can switch IP addresses with my ISP with the click of a button, or use a VPN, or switch to a mobile device and wander around, etc. 
    The behavior of blocking only logged in accounts has been like this as long as I can remember. To be honest, if you want to block the entire IP… don’t try to use software. Either use the server (like htaccess or a server firewall like csf) or with a WAF (like cloudflare).
  17. Like
    TDBF reacted to Sonya* in Buy button for subscription is not shown   
    I had a subscription plan in the past that has been deleted. There were no active subscribers on the plan as I removed it. Now, the users who purchased this subscription in the past cannot buy another subscription on my site. They do not see the button “Buy”.
    I went and removed all previous expired subscriptions from one user. He has literally nothing in his client account now. But the user still cannot buy any subscription on my site. Is there anything else I should do, to allow users with a “deleted” subscription plan in the past to buy one that exists? 
    I know that I can create an invoice manually, but I would rather go through all inactive subscribes of the deleted plan and allow all of them to buy on my site again. 
    Thanks!
  18. Agree
    TDBF reacted to Jim M in Uses deprecated APIs ...   
    This is the removal timeline from the Google article:
    Deprecation means that it will be removed soon, not cease to function. Q1 2025 maybe that date of cease to function. However, that does not sound firmed up.
    Also, it is worth noting that a library we use has this function in it. Whether or not that we use the functionality it uses as a part of it is another thing that a developer can confirm. It also may not be detrimental to your sites at all so I wouldn't panic just yet 😉 
  19. Agree
    TDBF reacted to asigno in Feature request: Automate/Schedule recurring bulk email   
    It would be very useful if we were able to automate regular recurring bulk email. E.g I want to send a specific email to certain users when certain filters are met and would like to do this on a regular basis. Currently we can only do this as a one off email.
  20. Thanks
    TDBF reacted to Marc Stridgen in Bug: Form Text and 0 Values   
    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.
  21. Like
    TDBF got a reaction from Marc Stridgen in PHP 8 & MySQL version 5.7.34-cll-lve problem   
    It just means that you will have to update your MySQL Database at some point.
    PHP versions and MySQL are two different parts to your server. You have highlighted your PHP version, it's your Database (bottom left of the picture) which is the issue here.
    If you cannot update your server yourself, ask your hosting company if they will upgrade your MySQL version.
  22. Thanks
    TDBF reacted to Marc Stridgen in BUG: Widgets and Whoops Issue.   
    I have flagged this up to our developers for you
  23. Thanks
    TDBF reacted to Marc Stridgen in Bug: Form Text and 0 Values   
    It is indeed in the latest beta
  24. Like
    TDBF got a reaction from SeNioR- in Bug: Form Text and 0 Values   
    Can you let me know if this bug has been fixed in the next release?
  25. Like
    TDBF 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
×
×
  • Create New...