Developer Connection
Use this forum to interact with our development team on technical issues, suggestions and official best practices advice.
1,462 topics in this forum
-
-
- 2 followers
- 6 replies
- 280 views
The scheduled topic showing different dates everywhere. Some places it shows the time it was posted and scheduled, or it shows the time it was scheduled to be posted on, for example Forums viewing topics Viewing forums I believe it should show only the time that was scheduled to be posted on everywhere not the time you published and scheduled it.
Last reply by Afrodude, -
-
-
- 2 followers
- 2 replies
- 204 views
http://localhost/ips/admin/?app=nexus&module=subscriptions&controller=subscriptions&do=convertToSubscription&id=1&csrfKey=3ed05127f5b65a77dcf8987de5da8e5c causes a whoops error because the CSRF key is left in (and is required).
Last reply by Marc Stridgen, -
-
-
- 1 follower
- 1 reply
- 63 views
I'm not sure why, but recently the number of submissions with some issues related to guests and handling them increased a lot recently. Sometimes it's harmless, like showing some content and using \IPS\Member::loggedIn()->member_id in the where condition, but sometimes it's really dangerous because either you're allowing an attacker/or just random visitor to delete all the guest accounts,to spam the board as guest, to flood peoples member table with hundreds of guest accounts and and and... There are dozen of bad scenarios which I've seen in the last months. So, when working with the visitor object ( Member::loggedIn() ) in controllers, ask yourself=> Shou…
Last reply by Kirill Gromov, -
-
- 1 follower
- 0 replies
- 34 views
hi my lords, in Persian language, in profile, when I click on "community answers", URL display as topic title. Persian: English: with best regards!
Last reply by Wolf-Turk, -
If you have something like <div data-controller="foo"> <div data-controller="bar"></div> </div> ips.controller.register("foo", { initialize: function() { ips.controller.cleanContentsOf(this.scope); } }); The controller on bar will be initialized on the dead element, and never cleaned up: ips.controller.register("bar", { initialize: function() { console.log(document.contains(this.scope[0])); // => false }, destroy: function() { console.log("destroyed"); // never called } }); This happens because ips.controller#_findControllers is called once to get all controllers to load, then the controllers are run one …
Last reply by SeNioR-, -
Hello, I've discovered a bug in how IPS' lazyloading works on dynamic elements. in ./dev/js/library/app.js, line 61, you define a hook/override for $.fn.html. This makes sure that if dynamically loaded HTML contains lazyload elgible content, you instate the lazyload handler on it. The problem seems to be instead of looping each lazyload element, ips.utils.lazyLoad.observe is called on the entire element. This then registers the IntersectionObserver on the entire element, causing each lazyloading element to be loaded straight away, defeating the point of the lazyload. The fix is to instead call ips.utils.lazyLoad.observe on each lazyload capable element…
Last reply by Stuart Silvester, -
Just catch this on a test: Probably not included in the togglesOff or missing the field ID.
Last reply by Adriano Faria, -
- 2 followers
- 6 replies
- 388 views
First here a list of the plugins attached to this topic with a list of what they do in each upgrade step: 1.0.0 => Adds 1 setting (testing_upgrade_setting). The install script creates 1 table (aaaa_install) and updates the setting value to 3. 1.0.1 => The upgrade script updates the setting value to 4. 1.0.2 => The upgrade script creates 1 table (aaaa_upgrade). 2.0.0 => The upgrade scripts for versions 1.0.1 and 1.02 are removed (empty XML entries). The upgrade script for version 2.0.0 creates 1 table (aaaa_upgrade) and updates the setting value to 5. 2.0.1 => The upgrade scripts for versions 1.0.1 and 1.02 are restored (no empt…
Last reply by teraßyte, -
-
- 3 replies
- 196 views
Posting here since email support is no longer a thing. We noticed that L341 in the ips4.php requirements checker (ref https://invisioncommunity.com/files/file/7046-invision-community-requirements-checker/) attempts to communicate with the IPS licensing server through HTTP?? Is this not a security vulnerability by not using HTTPS - you're basically just transmitting the key in cleartext over unencrypted channels. The line in question: <?php if ( file_exists( 'conf_global.php' ) and isset( $mysql ) and $licensekey = @$mysql->query("SELECT * FROM core_sys_conf_settings WHERE conf_key='ipb_reg_number';") and $licensekey = @$licensekey->fetch_assoc() and …
Last reply by Aaron M, -
-
- 1 follower
- 0 replies
- 74 views
The reported content doesn't show any moderated actions that applied to the reported topic or post. For example: If you hide the post/topic, the "Hide" word doesn't change to "Unhide" or even show the hidden eye icon next to the title in order to inform the staff that the post/topic is hidden. Also, that apply to delete action. It doesn't change to "Restore" or show that the post/topic was deleted.
Last reply by Afrodude, -
-
- 1 follower
- 1 reply
- 116 views
Hello, Polls are left behind when you uninstall an application. To make life easier, core_polls should have a "class" column or any way to identify the source, like core_follow has (follow_app and follow_area), that would make easier to list only polls from an specific app or even to delete them when uninstalling an app. Thanks.
Last reply by Daniel F, -
-
- 1 follower
- 2 replies
- 106 views
It seems that the Secondary title bar background and Secondary title bar text settings are unused. There is no template that uses the ipsType_secondaryTitle class.
Last reply by SeNioR-, -
-
- 2 followers
- 2 replies
- 121 views
hi There is a responsive issue in all released versions on Firefox browser (android and desktop). I have checked most of the forums, but unfortunately this problem has not been solved yet! https://mega.nz/file/mENUwZbS#pS9Z8vM30rKHz69_sCYh4x2AcRi5yyx_v8GnAqScG6Y If you look at the video, you will see that there is no problem in LTR mode, but in RTL mode, the page has a responsive issue. please fix this problem in next release! thanks in advance.
Last reply by Wolf-Turk, -
-
-
- 2 followers
- 2 replies
- 115 views
hi 1. In the Firefox browser in RTL mode, when the registration button is clicked, the registration form does not open correctly and has a responsive problem. https://mega.nz/file/6E0kXBrS#-tPQ2eeL_sFpgYYBvGxZTCAtS0tURuijY1X8uvBAKX4 2. In the Chrome browser in RTL mode, when the registration button is clicked, you cannot scroll and fill the registration form. https://mega.nz/file/TQFnmDba#_KIODtE-8XDA0G3f5kfCenj0nun0UH-drTpBBmGemBI I've checked this issue in different browsers and it happens in all of them. please fix these issues in the next release. thanks in advance.
Last reply by Wolf-Turk, -
-
- 1 follower
- 2 replies
- 108 views
I am working on a custom php test app that validates the user for an API call using OATH2 with PKCE. I am able to successfully get the authorization_code from the invision server, but when I post that back to get the access_token to make the API calls I get the following error: "invalid_grant","error_description":400 For background I'm using the following code to get the authorization_code // Remove all previous session variables as they are not valid at this point session_unset(); // generate a random 16 digit string for the session $_SESSION['state']= bin2hex(random_bytes(16)); // Request the authorization code from the auth0 server $hr…
Last reply by Brian Peterson, -
- 1 follower
- 0 replies
- 106 views
Hey, devs. I have a question about converting image attachments. So, if we use Imagick, PNG images are not compressed at all. 8 out of 10 images that I uploaded to the post have a larger file size than before uploading (lol). I wrote some code to compress PNG images (by changing the format to webp) and the size dropped by about 80% (sic!), however I need code to save the output file in .webp format. Can anyone direct me how to change the output format after uploading? /* Get Format */ $format = $this->imagick->getImageFormat(); /* Set PNG */ if( mb_strtolower( $format ) == 'png' ) { $this->imagick->setImageFormat('webp'); $this->i…
Last reply by SeNioR-, -
- 0 replies
- 121 views
Hey there! I need to add an order bump to the final checkout process page (where the user enters payment info). (What is an order bump?) Basically, a button that edits the invoice currently displayed to add/remove a product. I can find a method "acpAddToInvoice", but that's for the admin side. Is there a method to edit the invoice? Or should I perhaps just alter the database record of the invoice and reload the page? Anyone encountered editing an invoice from the user side? Ty!
Last reply by Dominyka, -
When adding a new extra field in Downloads the option Include field in topics? is never saved correct. Enabling it will always show it as disabled when you go edit it again. The issue is caused by the code in \applications\downloads\sources\Field\Field.php on lines 152-157: if ( \IPS\Application::appIsEnabled( 'forums' ) AND isset( $values['cf_topic'] ) ) { /* Forcibly disable include in topic option if it is a paid field */ $values['topic'] = ( isset( $values['downloads_field_paid'] ) AND $values['downloads_field_paid'] ) ? $values['cf_topic'] : 0; unset( $values['cf_topic'] ); } The code checks if the paid field option is active and disables th…
Last reply by Daniel F, -
-
- 1 follower
- 0 replies
- 168 views
One of the biggest benefits from IPS is also one of the most annoying things.. The Proxy Classes and full IDE support! I have related a small script which generates a file with class aliases. https://github.com/DanielFatkic/ipsaliases This can be installed global on the system via composer composer global require danielfatkic/ipsaliases and then just call vendor/bin/generatealiases . inside your IPS dev instance, or you can also pass the full path to an IPS installation, which will generate a file called aliases.php
Last reply by Daniel F, -
-
-
- 1 follower
- 3 replies
- 176 views
There is a new option to rotate images in 4.7.7, but when you click on it, you get an error. Error: Oops! Something went wrong. Please try again. Link: https://invisioncommunity.com/attachments/?do=rotate&id=159223&direction=left¤t=
Last reply by SeNioR-, -
-
- 2 replies
- 161 views
Hi Guys. On many websites, when registering an account, there are only two fields, e-mail address and password. The username is set based on the email address, usually in its entirety or set based on what comes before the @ symbol e.g. emial: olivia.johnson@coldmail.com Username: Olivia.johnson My primitive working code looks like this: $GetNameEmail = substr($values['email_address'], 0, strrpos($values['email_address'], '@')); $member->name = ucfirst($GetNameEmail); I need to check if username is already in the database. How can I achieve it? Something like when registering via the social media method where if the nick is taken, we have t…
Last reply by SeNioR-, -
- 4 replies
- 190 views
I'm attempting to upgrade to the latest version of the forum software, so I'm porting over some of our customizations, but for some reason I can't get the theme to load a custom template file. In forums>front>topics>postContainer, on line 92, I've added an else condition to load a template bit: {{if !$comment->isAnonymous()}} <li data-role='group'>{expression="\IPS\Member\Group::load( $comment->author()->member_group_id )->formattedName" raw="true"}</li> {{if \IPS\Member\Group::load( $comment->author()->member_group_id )->g_icon }} <li data-role='group-icon'><img src='{file="$comment->author()->group['g_…
Last reply by Jyosua, -
- 0 replies
- 142 views
Since the topic author cannot mark his first post as solved, this code below should not show if there is no reply in the topic. {{if $topic->canSolve() AND ! $topic->isSolved() AND $topic->isNotModeratorButCanSolve()}} <div class='cContentMessage cContentMessage_color ipsMessage_success ipsMargin_vertical' data-controller='forums.front.topic.solved'> <h3 class='cContentMessage__header'>{lang="solved_did_it_tho_title" sprintf="\IPS\Member::loggedIn()->name"}</h3> <div class='ipsPadding'> {lang="solved_did_it_tho_desc"} {{if member.members_bitoptions['no_solved_reenage']}} <div class='ipsMargin_top'> …
Last reply by SeNioR-, -
- 1 follower
- 0 replies
- 135 views
I am trying to do a "From/To or Permanent" type of field. When saving, the following... $form->add(new \IPS\Helpers\Form\DateRange('daterange', array('start' => NULL, 'end' => NULL), TRUE, array('unlimited' => 1, 'unlimitedLang' => 'permanent'))); ...results in... I should be able to overcome it with some custom validation, but would be good if it could work as-is (you don't appear to use a DateRange with a required = true anywhere in the code I have availability to)
Last reply by Nathan Explosion, -
- 1 follower
- 5 replies
- 426 views
We recently decided to opt for an s3 compatible on-premise solution, namely https://min.io/. We would like to use a subdomain of our own domain to identify the storage, but the implementation made in IPS generates something like https://bucketname.file.example.com , which we were unable to do by using the free version of cloudflare. The alternative is to use the bucket as the path name, as supported by the official amazon SDK (see the javascript snippet below). const AWS = require('aws-sdk'); const fs = require('fs'); const s3 = new AWS.S3({ endpoint: 'https://files.example.com', //alternative compatible s3 software accessKeyId: 'foo', secretAc…
Last reply by G17 Media,