Jump to content

teraßyte

Clients
  • Posts

    33,479
  • Joined

  • Days Won

    47

 Content Type 

Downloads

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Development Blog

Deprecation Tracker

Providers Directory

Projects

Release Notes v5

Forums

Events

Store

Gallery

Everything posted by teraßyte

  1. Just hit a "table already exists" error installing a plugin locally because this bug isn't fixed. 🙄 Adding a check in the upgrade file to not execute the create table query is an option, but that's just a workaround and not the proper fix.
  2. The only way would be to compare the list of tables to a fresh install and account for the additional tables added by installed modifications. That's how I usually do it, especially after a legacy upgrade.
  3. @Adriano Faria In case you want to add it in a future version, here's the code I added right before the code to uninstall the plugin in order to convert old background data: # Plugin column available? Convert the background data if ( \IPS\Db::i()->checkForColumn( 'core_members', 'ProfileBackgroundImage' ) ) { \IPS\Db::i()->insert( 'profilebackgrounds_data', \IPS\Db::i()->select( 'member_id, ProfileBackgroundImage', 'core_members', 'ProfileBackgroundImage IS NOT NULL' ) ); } Also, I had problems getting the image to display in the profile. I was receiving this error: Unknown column '' in 'where clause' After debugging, the problem is in the file /applications/profilebackgrounds/hooks/memberModel.php. The profileBackgroundImage() function currently uses this code to load the background data: return \IPS\Db::i()->select( 'pb_location', 'profilebackgrounds_data', array( 'pb_location!="" AND pb_member_id=?', $this->member_id ) )->first(); Unfortunately, some MySQL versions are picky and don't like double quotes in queries. Once I swapped around single and double quotes in the WHERE parameter it started working properly: array( "pb_location!='' AND pb_member_id=?", $this->member_id )
  4. Here's a guide on the options currently available: Also, as long as FB and/or Twitter are set up, when posting a new item (topic, file, etc) there is also a checkbox you can select to automatically share the content: As shown above, you have to manually do it though, there is no option to automatically do it in specific forums right now. You can either contact the developer of the previous modification to see if they're willing to update it or hire another developer to make it for you: https://invisioncommunity.com/third-party/providers/
  5. @Daniel F No idea honestly. I'm just helping someone upgrade their site from 4.4. There are 5 such items in the table. And after you mentioned it I looked also for \IPS\gallery\Album\Item and there is 1 such record. Looking at the database there are 5 albums like that, all promoted in the second half of 2017. And based on the upgrade history table, the suite was on version 4.2.3. An old bug maybe? I guess the proper fix here then would be to update any \IPS\gallery\Album in the promote_class column to \IPS\gallery\Album\Item instead.
  6. Starting the process to rebuild achievements from ACP throws an error rebuilding a gallery album as promoted content. The issue specifically happens in the file /applications/core/extensions/core/AchievementAction/ContentPromotion.php inside the function rebuildRow() on lines 249-255: case 'core_social_promote': $promote = \IPS\core\Promote::load( $row['promote_id'] ); $promote->object()->author()->achievementAction( 'core', 'ContentPromotion', [ 'content' => $promote->object(), 'promotype' => 'promote' ] ); break; The problem in the code above is that when it hits a gallery album entry, which is a node, it tries to call \IPS\gallery\Album::author() which exists only in content items. The correct code for an album would be \IPS\gallery\Album::owner() instead. This is the error's backtrace: Error: Call to undefined method IPS\gallery\Album::author() (0) #0 /home/admin/web/domain.com/public_html/forum/applications/core/extensions/core/Queue/RebuildAchievements.php(141): IPS\core\extensions\core\AchievementAction\_ContentPromotion::rebuildRow(Array, Array) #1 /home/admin/web/domain.com/public_html/forum/system/Task/Task.php(47): IPS\core\extensions\core\Queue\_RebuildAchievements->run(Array, 103) #2 /home/admin/web/domain.com/public_html/forum/applications/core/tasks/queue.php(43): IPS\_Task::runQueue() #3 /home/admin/web/domain.com/public_html/forum/system/Task/Task.php(375): IPS\core\tasks\_queue->IPS\core\tasks\{closure}() #4 /home/admin/web/domain.com/public_html/forum/applications/core/tasks/queue.php(55): IPS\_Task->runUntilTimeout(Object(Closure)) #5 /home/admin/web/domain.com/public_html/forum/system/Task/Task.php(274): IPS\core\tasks\_queue->execute() #6 /home/admin/web/domain.com/public_html/forum/applications/core/modules/admin/settings/advanced.php(751): IPS\_Task->run() #7 /home/admin/web/domain.com/public_html/forum/system/Dispatcher/Controller.php(107): IPS\core\modules\admin\settings\_advanced->runTask() #8 /home/admin/web/domain.com/public_html/forum/applications/core/modules/admin/settings/advanced.php(38): IPS\Dispatcher\_Controller->execute() #9 /home/admin/web/domain.com/public_html/forum/system/Dispatcher/Dispatcher.php(153): IPS\core\modules\admin\settings\_advanced->execute() #10 /home/admin/web/domain.com/public_html/forum/admin/index.php(13): IPS\_Dispatcher->run() #11 {main} As a temporary measure, I've replaced the code above with this one: case 'core_social_promote': $promote = \IPS\core\Promote::load( $row['promote_id'] ); if ( $promote->object() instanceof \IPS\Gallery\Album ) { $promote->object()->owner()->achievementAction( 'core', 'ContentPromotion', [ 'content' => $promote->object(), 'promotype' => 'promote' ] ); } else { $promote->object()->author()->achievementAction( 'core', 'ContentPromotion', [ 'content' => $promote->object(), 'promotype' => 'promote' ] ); } break; Not the best fix though, so you'll probably want to implement something different. 😋 === EDIT: Forgot to mention that the bug is still present in 4.7.7 Beta 3.
  7. Can confirm the fix worked. 👍
  8. After updating the application to the latest version (2.5.5) we're getting an error trying to delete an account: Error: Call to undefined method IPS\deletemyaccount\Members::setMemberData() (0) #0 /home/admin/web/domain.org/public_html/forum/system/Task/Task.php(47): IPS\deletemyaccount\extensions\core\Queue\_membersTable->run(Array, 0) #1 /home/admin/web/domain.org/public_html/forum/applications/core/modules/admin/system/background.php(87): IPS\_Task::runQueue() #2 /home/admin/web/domain.org/public_html/forum/system/Helpers/MultipleRedirect/MultipleRedirect.php(93): IPS\core\modules\admin\system\_background->IPS\core\modules\admin\system\{closure}(Array) #3 /home/admin/web/domain.org/public_html/forum/applications/core/modules/admin/system/background.php(138): IPS\Helpers\_MultipleRedirect->__construct(Object(IPS\Http\Url\Internal), Object(Closure), Object(Closure)) #4 /home/admin/web/domain.org/public_html/forum/system/Dispatcher/Controller.php(107): IPS\core\modules\admin\system\_background->process() #5 /home/admin/web/domain.org/public_html/forum/applications/core/modules/admin/system/background.php(42): IPS\Dispatcher\_Controller->execute() #6 /home/admin/web/domain.org/public_html/forum/system/Dispatcher/Dispatcher.php(153): IPS\core\modules\admin\system\_background->execute() #7 /home/admin/web/domain.org/public_html/forum/admin/index.php(13): IPS\_Dispatcher->run() #8 {main} As the error says there is no setMemberData() function in the \applications\deletemyaccount\sources\Members\Members.php file. I just see 5 class variables defined inside it with no functions at all. Since it's a staging site we also tried removing and reinstalling the application from scratch just in case. The error is still there and comparing the files nothing changed.
  9. Email notifications are always sent by default. But there is indeed no option for inline or push notifications currently.
  10. From your first replies, I had assumed you'd already updated. What forum & PHP version are you currently using?
  11. PHP 8 is required starting from version 4.7.4+. If you switch back to PHP 7.4 after the upgrade you'll get errors all over.
  12. You couldn't find any native options because there aren't any. 😅 It's all handled by javascript. If you look at a quote's HTML you'll see this: <div class="ipsQuote_contents ipsClearfix" data-ipstruncate="true" data-ipstruncate-type="hide" data-ipstruncate-size="7 lines" data-ipstruncate-expandtext="Expand" style="" animating="false"> <p> Just a quick note: Minimized Quote has been a default feature at least since version 4.5. You can uninstall that plugin. </p> </div> Note the various inline attributes: <div data-ipstruncate="true" data-ipstruncate-type="hide" data-ipstruncate-size="7 lines" data-ipstruncate-expandtext="Expand">
  13. Just a quick note: Minimized Quote has been a default feature at least since version 4.5. You can uninstall that plugin.
  14. It's a bug in the code. I reported it ~6 months ago: There's a patch included in that topic if you want to temporarily apply it until IPS fixes the bug.
  15. Oh, that was in the 1.1.0 changelog and I completely missed it. No worries, I'll do something about it myself then. 🙂
  16. While testing an upgrade for a client we upgraded this modification from its 1.0.1 (plugin) version to 1.1.3 (application). The 1.0.2 changelog says the data is synced and then the column dropped, but the current 1.1.3 version simply uninstalls the plugin without syncing any data: Taking a quick look at the Application.php file I see only the code to uninstall the plugin: public function installOther() { try { $pluginData = \IPS\Db::i()->select( '*', 'core_plugins', array( 'plugin_location=?', "profilebackgrounds" ) )->first(); try { $plugin = \IPS\Plugin::load( $pluginData['plugin_id'] ); $plugin->delete(); } catch ( \Exception $e ){} } catch( \UnderflowException $e ){} } Ideally the function should instead run a background queue task to sync the data in batches and uninstall the plugin only once the process is complete. Was the sync process only included in the 1.0.2 version of the plugin perhaps?
  17. You need to edit the conf_global.php file in your forum's root folder and change the member_group value with the ID of the New Members group you created. By default the Members group ID is 3: The format will be either: 'member_group' => 3, OR $INFO['member_group'] = 3;
  18. The Files area in ACP shows only attachments uploaded through the editor in all areas. Files added to categories in the Downloads application are not included there unfortunately. There used to be an area in ACP in the 3.x version (I think?) that listed that data, but it got removed in 4.x.
  19. That's the first time I've seen that. No idea about this one, sorry. It would require to debug in which file exactly it's failing and why it's reporting Not Set. The two are related most likely.
  20. The xml file is in this folder: \applications\core\data\achievements
  21. Strange, the code is indeed using array_map(). You must have some very old data with a different format. If you just want to skip the whole metadata conversion you can simply comment/remove that line completely and continue with the upgrade.
  22. I need another screenshot like the second one in your first post that tells me which application and upgrade step it's stuck on.
  23. Considering the table's name you can probably ask your hosting to simply restore that single table instead of the full backup.
  24. It might look scary but as long as you follow the steps mentioned above there shouldn't be too many issues. Hopefully none at all. Good luck with the upgrade. 🙂 And, as mentioned above, you can also hire a 3rd party provider if you need help. Here's the link just in case: https://invisioncommunity.com/third-party/providers/
×
×
  • Create New...