modxcms / Articles

Blog Custom Resource Type for MODX
17 stars 31 forks source link

will there be a version for modx 3? #152

Open ssl1984 opened 3 years ago

ssl1984 commented 3 years ago

Feature request

Summary

Quick summary what's this feature request about.

Why is it needed?

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Suggested solution(s)

A clear and concise description of what you want to happen.

Related issue(s)/PR(s)

Let us know if this is related to any issue/pull request.

JoshuaLuckers commented 3 years ago

Support for 3.x is a work in progress. Any help is welcome, you can use the develop branch to help test and submit issues and/or PR's!

rthrash commented 2 years ago

This issue has been mentioned on MODX Community. There might be relevant details there:

https://community.modx.com/t/need-help-with-mystery-connector-500-error/4978/6

BobRay commented 2 years ago

The error Ryan is talking about caused a completely empty resource tree. Commenting out the three "require_once" lines in the ArticlesContainer class fixed that (though Articles itself still doesn't work).

Mark-H commented 2 years ago

That's probably been fixed with https://github.com/modxcms/Articles/commit/aaba11345c4cfda76f0a5872f5eb439878584c5d but there hasn't been a release yet I think.

JoshuaLuckers commented 2 years ago

Any help with testing the things that are already done in the develop branch that would be great! Especially for those upgrading from an existing installation with Articles. But always make a backup!

JoshuaLuckers commented 2 years ago

I had some time today to look into 3.x compatibility. I pushed some changes to the develop branch, installing it in 3.x still gives some errors. Most likely related to the validators in _build/resolvers/validators:

Could not get table class for class: modTransportPackage

Could not get table name for class: modTransportPackage

If someone knows a fix for this, please feel free to submit a PR. Otherwise I'll look into it myself sometime in the upcoming week.

JoshuaLuckers commented 2 years ago

Thanks to @Mark-H I've solved the issue with the resolvers and validators.

There is still some work to do:

JoshuaLuckers commented 2 years ago

The ArticlesContainer isn't recognized as Document Type yet. So I have to fix that as well.

Probably because the schema is still for 2.x, but I want to maintain backwards compatibility with 2.x without releasing a separate version for 3.x. Any suggestions are welcome!

muzzwood commented 2 years ago

Hey @JoshuaLuckers 👋🏻 I was playing around trying to get the Articles derivative modResource classes to be loaded in both 2.x and 3.x but haven't had much luck. 😅

It could be that having a separate version for 3.x is the easier (possible) path... if you're open to it? The main consideration I think would be to make sure the current version doesn't cause any errors during an upgrade from MODX 2.x -> 3.x, and then the user would upgrade to the 3.x version via the package manager after the MODX upgrade is complete.

What do you reckon?

JoshuaLuckers commented 2 years ago

@muzzwood Thanks a lot for taking time to help out!

It could be that having a separate version for 3.x is the easier (possible) path... if you're open to it? The main consideration I think would be to make sure the current version doesn't cause any errors during an upgrade from MODX 2.x -> 3.x, and then the user would upgrade to the 3.x version via the package manager after the MODX upgrade is complete.

That seems like a good enough solution for me!

muzzwood commented 2 years ago

Awesome! I'll get a PR together for you ;)

muzzwood commented 2 years ago

WIP draft is here https://github.com/modxcms/Articles/pull/156 Can't be packaged yet but I hope to get that done later today.

JoshuaLuckers commented 2 years ago

@muzzwood I've merged your PR. I'll try to update the changelog tomorrow and submit an alpha release of it.

BobRay commented 2 years ago

Great work guys!

JoshuaLuckers commented 2 years ago

Sorry guys I didn't manage to put out a new release. I hope to do it soon. @muzzwood but feel free to put out a new release if you have more time for it.

muzzwood commented 2 years ago

Hey @JoshuaLuckers, sorry for not replying sooner, it's been a crazy week. I could do a build/changelog and put through a PR for it but I'd need access for any more than that. ;)

Now that I think of it, we probably need to do the two releases (MODX 2.x and 3.x).

JoshuaLuckers commented 2 years ago

@muzzwood if you have time to do that, that would be awesome and greatly appreciated. The little one is sick so my time is really limited but I can create a new release if you would be able to prepare it <3

BobRay commented 2 years ago

I've had good luck converting my extras to run in both MODX 2 and MODX3. Is there something unusual about Articles that makes that difficult? A single version would be a lot easier to maintain.

Mark-H commented 2 years ago

Custom resource types are tough to get cross compatible due to some minor signature changes on the resource, and needing to extend either modResource or \MODX\Revolution\modResource - can't extend both at the same time in a single class.

BobRay commented 2 years ago

I'm working on a blog post about this, but here's the short version:

You can create a dynamic parent class that extends modResource in MODX 2 and \MODX\Revolution\modResource in MODX 3. Then the Articles class can extend the dynamic parent. I've had to do this with a couple of extras.

Here's an example of the Processor code from Notify:

if (class_exists('MODX\Revolution\Processors\Processor')) {
    abstract class DynamicProcessorParent extends MODX\Revolution\Processors\Processor {
    }
} else {
    abstract class DynamicProcessorParent extends modProcessor {
    }
}
class NfSendEmailProcessor extends DynamicProcessorParent { 
   /* Class code */
}
JoshuaLuckers commented 2 years ago

There where also some issues with the model, schema en meta files that caused some issues with that approach. It's an approach we tried first.

muzzwood commented 2 years ago

@muzzwood if you have time to do that, that would be awesome and greatly appreciated. The little one is sick so my time is really limited but I can create a new release if you would be able to prepare it <3

Aiming to get that sorted tomorrow morning 👍🏻

rthrash commented 2 years ago

This issue has been mentioned on MODX Community. There might be relevant details there:

https://community.modx.com/t/modx3-after-update-all-resources-in-web-vanished-suspected-issues-with-articles/5141/2

muzzwood commented 2 years ago

2.x package: https://github.com/modxcms/Articles/pull/158 3.x package: https://github.com/modxcms/Articles/pull/157

JoshuaLuckers commented 2 years ago

Thanks to the amazing work of @muzzwood and sponsorship of modmore, I released an alpha release for Articles 2.0 with support for MODX 3.

HarveyEV commented 2 years ago

I upgraded article to 1.8.0. then upgraded site to 3.0. Isee the 2.0 alpha package but cannot install it. Getting error Could not download and create transport package with signature: articles-2.0.0-alpha1

JoshuaLuckers commented 2 years ago

I upgraded article to 1.8.0. then upgraded site to 3.0. Isee the 2.0 alpha package but cannot install it. Getting error Could not download and create transport package with signature: articles-2.0.0-alpha1

That's odd, I'll investigate it.

You can try to download the package and install it manually: https://github.com/modxcms/Articles/blob/develop-3x/_packages/articles-2.0.0-alpha1.transport.zip

nsuomine commented 2 years ago

I updated to 1.8.0 without issues. Thanks for good work.

Quip is quite often used with Articles. That prevents from upgrading to MODX3. Will Quip be made MODX3 compatible? Migrating to another commenting system is an option too but continueing to use use Quip would be the easiest solution.

muzzwood commented 2 years ago

Quip still needs some tweaks to work fully (it gives errors in the log about modAction when running on MODX3). @nsuomine if you're able to try upgrading a clone of your site to 3.0, and report any issues you face with Quip, I'd be happy to try solving them.

nsuomine commented 2 years ago

@muzzwood Thanks for offering help.

Yes, Quip gives many warnings on 2.8.3 too but it still works. I understood that there is no more support for modAction in 3.0 so Quip would get broken? Do you think it would still work with the same warnings in the log.

muzzwood commented 2 years ago

@muzzwood Thanks for offering help.

Yes, Quip gives many warnings on 2.8.3 too but it still works. I understood that there is no more support for modAction in 3.0 so Quip would get broken? Do you think it would still work with the same warnings in the log.

It may just be to do with the GetList processor. I think it mostly works already from what I saw working on Articles. Unfortunately I haven't used Quip in a long time, so really the best way would be to try updating a copy of a site that has Quip already installed and then see what fails. I can see that modAction has been reported there for quite some time but let me know if anything else fails. ;)

nsuomine commented 2 years ago

I don't have a test copy of the site. I could clone the site and database on my hosting provider but I should change database and the site URL of the clone. Is it enough to make changes only in the main config file of the clone?

Btw, are there any newer commenting extras available? Been looking for long but haven't found any as good as Quip.

muzzwood commented 2 years ago

I think there's a bunch of SaaS solutions for commenting but Quip is probably best if you want complete control of the data.

Yeah best way to find out what works and what doesn't is just make a copy/export of your full site (files/db), install it elsewhere, then try upgrading it.

nsuomine commented 1 year ago

I installed Quip on a MODX3 site to test if it works. It didn't.

My primary site is still running MODX2.8 and it is quite dependent on Quip. I would not like to replace Quip but it is preventing me to upgrade to MODX3. As far as I have seen, there is not much activity around Quip to make it MODX3 compatible.

muzzwood commented 1 year ago

Unfortunately most developers usually have more work lined up than time available... and paid work usually takes precedence.

One way of getting developer(s) to work on it sooner than later could be to crowdfund it, similar to what's happening with VersionX at the moment: https://github.com/modmore/VersionX/issues/4#issuecomment-1258305132

nsuomine commented 1 year ago

Yes, that's natural. Paid work first.

Crowdfunding is a good idea. Quip could be modernized, bugs fixed and features added. Not sure if there are enough users willing to pay.

An easier solution may be to use other PHP/Ajax-based open-source commenting tools. Quip would be the easiest solution, but it will take time even with crowdfunding. Quip is my only extra that is not well enough compatible with MODX3.

Mark-H commented 1 year ago

Perhaps modernising Quip would be a good first use of the OpenCollective funds, though I have no idea how much work Quip would need. Probably better to discuss in the right repository too.

modxcommunity commented 1 year ago

This issue has been mentioned on MODX Community. There might be relevant details there:

https://community.modx.com/t/quip-comment-not-posting-in-articles/6904/2