Jump to content



  • Posts

  • Joined

  • Last visited

 Content Type 



IPS4 Providers

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog



Posts posted by Ibai

  1. Hey there!

    I liked the new gamification achievements feature. However, do you think the current list of badges and ranks are enough items? Is there any new pack of badges, ranks and rules that could be installed in the forum?



  2. Hey there,

    Just upgraded to 4.6 and all my members are Newbies.

    Once I posted after 4.6 I saw I was given my badges. Anyhow, still Newbie.

    Is there a way to force full rebuild and also assign Ranks? Is sth rebuilding in the background as it is just upgraded or do I have to force it from Achievements Settings?


  3. 1 hour ago, Jimi Wikman said:

    May I ask why you care so much about these tests?

    Are you trying to grab an extra position or two or do you just want to have things in the green?

    Not trying to mock you or anything, just wondering what the end goal is for you to increase completion of these tests because I am always curious to learn what drives these type of completion chases.

    Maybe SEO recommendations? Page Speed?

    I agree there are several things that might be improved in IPS.

  4. 1 hour ago, Jordan Invision said:

    Feeling this. I'd love the option for this on topics, too! 

    I'd love that. I regret to enable the attachment system globally as I know my community will abuse uploading images every now and then. However it would be interesting to let users to set "header images" to every content unit so it would be used when sharing in social networks.

  5. 11 hours ago, Eudemon said:

    just few point of improvement base on your code

    you can just have one of this, this pushes all adsbygoogle globally

    (adsbygoogle = window.adsbygoogle || []).push({});

    you can also store `article:eq(0)` to a variable then select whatever within it, so you don't have to repeat the same code, you can also shorten all the statements above with one line tenant condition

    Hey Eudemon,

    Thanks for your tips. Yeah, definitely the code was optimizable, that was the first approach. I applied your second suggestion.

    However, are you sure that one line of push is enough? I've been testing and when I code just one line of push, it shows only the last ad. I put back that line for each ad and now is showing all of them.


    Thanks for your support!

  6. Thanks for the idea @Eudemon

    This is my final code for long articles, which I inserted in a advertisement block and then I load wherever I want with {advertisement="myad"}


      const yoyo = '<ins class="adsbygoogle"........ADSENSE INS TAG.......></ins>';
      window.addEventListener('load', function () {
        if($("article:eq(0) p").size()>10){
          $("article:eq(0) p:eq(8)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});
        if($("article:eq(0) p").size()>25){
          $("article:eq(0) p:eq(20)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});
        if($("article:eq(0) p").size()>50){
          $("article:eq(0) p:eq(43)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});
        if($("article:eq(0) p").size()>75){
          $("article:eq(0) p:eq(69)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});
        if($("article:eq(0) p").size()>100){
          $("article:eq(0) p:eq(98)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});
        if($("article:eq(0) p").size()>130){
          $("article:eq(0) p:eq(128)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});
        if($("article:eq(0) p").size()>170){
          $("article:eq(0) p:eq(167)").after(yoyo);
          (adsbygoogle = window.adsbygoogle || []).push({});


  7. 10 minutes ago, Eudemon said:

    use JS to inject your ad code into post via something like

    $("article.cPost:eq(0) [data-role='commentContent'] p:eq(2)").after("your code here")

    above shows ad in first post, after 3rd paragraph

    Hey thanks @Eudemon!

    I understand the code. However, how can I embed adsense code? Just copy and paste their code there escaping the quote mark? Would that work?

  8. 11 hours ago, Nathan Explosion said:

    Or I may be wrong? Taken a look at it a little closer this morning and it has the following comment:

    * Text for use with data-ipsTruncate

    So maybe it's not used the way I indicated. Try it, see if it makes a difference.

    Definitely didn't work hehe.

    I think IPS should develop sth. If you have a list of 20 LONG articles, the webpage load is very heavy and suboptimal. Potentially would make it worse in SEO terms. The browser has to wait until the whole page is downloaded and then execute the javascript to perform the lines cut.

    Anyhow, thanks for the workaround!

  9. 9 hours ago, Nathan Explosion said:

    Take a look at the optional $length parameter that truncated() has, which defaults to 500 when not specified....


    The false is the default value of the $oneLine parameter for truncated()

    Wow thanks!

    Then if 500 is the default length for truncated, why is not truncating my content and instead it shows the full content? Maybe this is a bug?



  10. Hey,

    Just if somebody was in the same point as me. This is the code that I'm currently using.

    The template is in Category Articles -> entry. Find:


    Replace with:


    Warning! This is working for me and for my structure with a sidebar. If you are not using a sidebar, maybe you have to increment the 700 to your desired chars number.

  11. 4 hours ago, opentype said:

    Yes. If you just cut off the content field, you can cut off HTML tags and brake the page. But you can shorten the truncated text. 

    I know it's possible to break HTML code. However, I guess, the "truncate()" function already "simplifies" the HTML that is being shown, there's no HTML special tags. In fact, there's only <br>s.

    I mean, wouldn't it be a good idea to cut the text to 500 chars even if it's more that what's going to be shown? Just as a matter of optimization. If you post contents of thousands of chars, all of them are sent to the response.

    Thanks for the advice and idea, I'm going to apply it to my forum 🙂 

  12. Hey there,

    I'm using Pages as a blog with 1 column design. 

    When something is working slow (internet, server, client browser...), during the load of the web, the full article text is shown. Finally, when the webpage finishes loading, some javascript is run and the content of each article is truncated to N lines.

    What fires this truncation is this attributes in the section HTML tag: data-ipsTruncate data-ipsTruncate-size='7 lines'

    First question: Why is this being cut in the client and not in the backend? That makes the HTML heavier, CLS issues and so on.

    Is there any workaround? 

    Then, I see this function which cleans the HTML {$record->truncated()|raw}, but does not cut the text. Is it possible to cut the text in there?



  13. Hey!

    Previousloy with IPS <4.5, when a user was adding images to a post, they weren't enabling lightbox feature unless the image was bigger than the post box dimensions.

    Now in 4.5, the lightbox is always binding to any image even if the image is just a button such as this, let my try here:


    As you can see, the Invision logo is smaller than the post size, so I think it does not make sense to enable the lightbox system.

    This is a simple example, my users build posts with lots of images in a icon basis way, so it's very unconfortable to load the lightbox feature to them.

    Is there a way to lock this feature with small images?


  14. I loved this plugin and it's a pity all of this.

    Installed last version and I sth is not working fine. First the plugin was not saving my settings, then I unistalled and installed back again and most of the settings are saving fine (some of them not). However, the footer is not being displayed in my forum 😞 

  15. 4 hours ago, bfarber said:

    It's far easier for us to advise if we can get in and see your configuration. That said, the legacy handler is never "automatically" used. It was set during a 3.x upgrade in the file storage handler configuration, and if the /screenshots folder (in your case) is web accessible, it should not be necessary. You should be able to edit the storage handler and adjust the "Custom URL" option to remove the PHP loader.

    Fine! That's the case, web accesible yeah.

    I've searching in the ACP and I don't find any setting for that custom url. Could you tell me where is it exactly? I've looked into Advanced Configuration, under Data Storage tab


  16. 17 hours ago, bfarber said:

    This means your file storage handler is configured to use the legacy loader (which was necessary when moving to 4.x from 3.x if you were storing the screenshots outside of your web root directory).

    If those files are now web accessible, you can adjust the file storage handler custom URL option approriately.

    Hey bfarber!

    I think it might be a bug. I saw that in the past I had stored the files under /uploads and then I moved to /screenshots. When I moved back to uploads, the files were moved back to the uploads folder and the URLs came back to the static resource. However, it's not working with the widget "top downloaded files".

    Anyhow, you see... only setting up the screenshots folder to the original one "solved" partially the issue.

    Should I place a ticket? Or is this something I missed in settings? Where to I change the storage handler you mention?

  17. Hey there,

    Sorry for bother you again with this topic... I'm a bit lost and I don't know if this is something that you guys can help me to solve or if I need to place a ticket for this.

    The point is that my Files system is loading all images using somehow IPS's legacy proxy image. All the image URLs are like this:


    That's not good for SEO as it's not able to cache as an static image resource.

    All the images in my site are stored just as the Files screenshots system. In fact, they may be loaded statically just like this: https://www.fmsite.net/screenshots/monthly_2021_01/fmsite-fm21-real-name-fix-corregir-licencias.thumb.jpg.363b3512baedc1704ccac072b07b112d.jpg

    Can you help me to fix this? Why the system is loading the image that way?

    I've been searching and reached to this template bit: core->global->thumbImag. It is converting the URL using the legacy screenshot link.

    The issue is in this line:

    {{$image = ( $image instanceof \IPS\File ) ? (string) $image->url : $image;}}



  18. 1 minute ago, Charles said:

    I would suggest using AWS S3 storage in that case. It's designed for storage and very CDN friendly.

    Hey Charls, thanks for your reply.

    I don't get the point of storing files in s3 in this case. I don't have any issue storing them in my server just like I do with articles attachments and images.

    The thing is that when I use those File's widgets, instead of pointing to the resource directly, the core->global->thumbImage template bit is converting the URL using the legacy screenshot link.

    The issue is in this line:

    {{$image = ( $image instanceof \IPS\File ) ? (string) $image->url : $image;}}

    Which I am able to comment. Then, the widget uses the real and direct link to the resource. However, those links returns error 500.

    Any ideas?

  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy