Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate from Evo 1.0.13 #451

Closed
dennis-f opened this issue Jan 22, 2018 · 42 comments
Closed

Migrate from Evo 1.0.13 #451

dennis-f opened this issue Jan 22, 2018 · 42 comments

Comments

@dennis-f
Copy link

dennis-f commented Jan 22, 2018

Since the project is not in the hands of modxcms i was wondering if it is still upgradable and what would be best practice.

I have a very old 1.0.13 MODx Evolution site. Can i directly upgrade to 1.3.x or do I have to take additional steps in between?

--- Update
I upgraded without any hazzle up to 1.4 rc thx for all the quick responses! This issue can be set to solved

@fourroses666
Copy link

That shouldn't be a problem, no need to take other steps.
Just make sure you have an backup.

@dennis-f
Copy link
Author

Thanks for the quick response. So that means I can jump directly up to 1.3?

@fourroses666
Copy link

fourroses666 commented Jan 22, 2018

Yes, not sure about minimum system requirements. PHP 5.6 or later would be advisable.
If you have any problems let us know

@bossloper
Copy link

I would wait for 1.4 which is imminent.
d3d2cee

@pmfx
Copy link

pmfx commented Jan 22, 2018

I would go for 1.2.1 first. Then 1.3.6 or wait for 1.4 (should be released soon).
Note: 1.3 and later works better with PHx disabled and Filters enabled (in sys config). You should also think about converting Ditto calls to DocLister. More complex Ditto calls may not work in some cases.

@modxuser
Copy link

@pmfx

Does that mean Ditto has now been officially binned, will there now be no more backward compatibility with newer Evo versions

Although it's been claimed many a time, DocLister does not do everything Ditto does

@pmfx
Copy link

pmfx commented Jan 22, 2018

It is not binned. Ditto is being maintained a lot to be as much as possible compatible with new EVO and latest PHP. But Ditto code is old and dev team is focused on DocLister. It should be used instead of Ditto where possible to get best compatibility and performance results.

I've been playing with DocLister for a few months and it is very powerful and rather easy to make a transition from Ditto. And now I'm not that sure if it cannot do all that Ditto does :)

We still need to work on better, more detailed (english) documentation though, but DocLister should be your choice in new projects.

@modxuser
Copy link

As I am not a PHP'r it is hard for me to understand why it's not possible to make DocLister do exactly what Ditto can - that would make the choice of moving over easy

I fully appreciate that NEW in some cases is better, but backward compatibility has been and always should be a priority

Evo isn't just used by those who post here in GitHub, but I get the feeling that that is forgotten a lot nowadays

In my opinion what should also be taken into consideration is people have custom code built around the default snippets and plugins that came with Evo for many many years - there is a cost factor that should be taken into consideration, having to re-code custom code is costly

@64j
Copy link
Member

64j commented Jan 22, 2018

@modxuser
You are not prevented from staying on version 1.3.6 and everything will work on all the old sites.

Show me what Ditto can and what DocLister can not?

@modxuser
Copy link

modxuser commented Jan 22, 2018

Tagging - this discussion has already been mentioned

Just found the post: #176 (comment)

Maybe reading the whole thing from start would be more beneficial :)

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser

[!DocLister?
&controller=`site_content_tags`
&tagsData=``
&tagsSeparator=`,`
&tagsTV=`1`

@modxuser
Copy link

Your call uses a bespoke table - Ditto doesn't

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser
example:

	$out = $modx->runSnippet('DocLister', array(
		'debug'=>'0',
		'id'=>'sidebar',
		'display'=>'7',
		'depth'=>'3',
		'tpl'=>'Posts_sidebar',
		'controller'=>'site_content_tags',
		'summary'=>'notags,len:65',
		'parents'=>'150',
		'tvList'=>'CatLists,img',
		'showParent'=>'0',
		'addWhereList'=>'template IN (11)',
		'paginate'=>'pages',
		'tagsTV'=>'7',
		'TplWrapPaginate'=>'@CODE: ',
		'orderBy'=>'id DESC',
		'offset'=>'2',
		'tagsData'=> $modx->documentObject['id'] != 1 ? 'then=`static:'.$modx->documentObject['id'] : '',
		'prepare' => function($data, $modx){
			$data['CatLists'] = $modx->runSnippet('CategoryList', array(
				'sep' => '||',
				'data' => $data['tv.CatLists'],
				'outSep' => ', ',
				'tpl' => '@CODE: <a href="[+url+]" title="[+e.title+]">[+title+]</a>',
			));
			return $data;
		}
	));

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser
site_content_tags - is controller

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser

and whats a controller ?

Read the documentation
http://www.evolution-docs.com/extras/doclister/main-parameters

Can Doclister now replicate all the following

Yes, the example above is written

@modxuser
Copy link

Your answer is nice - I have read the docs, but still dont understand what is implied with it

site_content_tags
output Evo documents filtered by tags, in conjunction with the TagSaver plugin

So you need a seperate plugin, or do I see that false ?

@modxuser
Copy link

Can you also translate this:

	'tagsData'=> $modx->documentObject['id'] != 1 ? 'then=`static:'.$modx->documentObject['id'] : '',
	'prepare' => function($data, $modx){
		$data['CatLists'] = $modx->runSnippet('CategoryList', array(
			'sep' => '||',
			'data' => $data['tv.CatLists'],
			'outSep' => ', ',
			'tpl' => '@CODE: <a href="[+url+]" title="[+e.title+]">[+title+]</a>',
		));
		return $data;
	}

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser
TagSaver - Need for convenient tagging, more advanced options

@64j
Copy link
Member

64j commented Jan 23, 2018

Can you also translate this:

Read the documentation, еverything is written
http://www.evolution-docs.com/extras/doclister/main-parameters

@modxuser
Copy link

Obviously you dont want to understand me - the docs are not fully comprehensive for someone who isnt a developer

And I have also mentioned it, not once, not twice, multiple times - I am not a PHP developer, you have code in the call that I can not understand let alone write and I guarantee you, I am not the only one

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser
Well, sorry, I can not help you here.
Either read and learn the documentation, or do not use tags.

@modxuser
Copy link

Very helpful indeed

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser
You do not want to read anything

@modxuser
Copy link

modxuser commented Jan 23, 2018

Can you not read (#451 (comment)) ? I have read the docs

I actually re-wrote them when I re-built the whole English documentation site

@64j
Copy link
Member

64j commented Jan 23, 2018

@modxuser
Then if you know all the parameters of DoclIster, what's the question?

@modxuser
Copy link

I give up

@nick0
Copy link

nick0 commented Jan 23, 2018

I fully appreciate that NEW in some cases is better, but backward compatibility has been and always should be a priority. Evo isn't just used by those who post here in GitHub, but I get the feeling that that is forgotten a lot nowadays. In my opinion what should also be taken into consideration is people have custom code built around the default snippets and plugins that came with Evo for many many years - there is a cost factor that should be taken into consideration, having to re-code custom code is costly

I cannot agree more with this statement. There certainly was no vote or referendum on ditto usage - if there was I know what I would have voted for. For new sites, sure DocLister could be learnt and used instead. But for existing Evo sites that have come from 1.2.1 previously, it is not time / cost feasible to replace Ditto with DocLister for every single site. Working backwards compatibility has got to be a priority or the usage / community is going to shrink even more. Please consider and engage the Evo user community before making wholesale changes that have the potential to leave many sites stranded.

What if there is a critical security update that needs to be done? Doing those updates for client sites is time consuming and stressful enough to turn around in a timely manner without also having to test / fix / replace Ditto calls that aren't working and breaking the site. Who absorbs that forced time cost? The web designer or our clients? And why should either?

I think we need a "Ditto to DocLister converter plugin" to help transition existing sites to DocLister for older sites if Ditto is going to stop working.

The improvements, enhancements and maintenance by the EvolutionCMS developers is to be applauded with the utmost gratitude. You're doing an amazing job. But please keep in mind that existing users need backwards compatibility as a priority and engage your userbase on these big decisions.

Out of interest: Is there another fork from 1.2.1 that is being maintained and more mindful of backwards compatibility?

@Dmi3yy
Copy link

Dmi3yy commented Jan 23, 2018 via email

@Nicola1971
Copy link

I've updated about 15 sites to 1.4, without replace Ditto with Doclister.

You just need to update Ditto from Extras module and everything will work as before.

But I understand the issue and personally I would have preferred to keep Ditto for a couple of versions, to make updates easier.

ABOUT TAGS

Just to check if it was possible, a few months ago I did a test on a test site (tattoocms) to replace Ditto with Doclister with the main goal of keeping everything as it was before.

Why? because my clients they would not accept a change in URL that affects SEO just for an upgrade.

With a couple of modification to the nice code posted by @pmfx here #176 (comment)

Results:
I've fully replaced Ditto and Ditto tags and kept all the Ditto Urls formats, including tags and pagination and works with TvTagCloud too.

@Dmi3yy
Copy link

Dmi3yy commented Jan 23, 2018

Yes, you can use Ditto but install from Extras and no problems i not see any problems.
We will maintain backward compatibility for as long as possible. But keep the old components in the kernel do not see the point.

@Nicola1971
Copy link

Nicola1971 commented Jan 23, 2018

The main issue is Doclister parameters does not fit Ditto parameters.

I think, most recent evo/modx users does not know, but originally there was NewsListing snippet before Ditto.

Ditto replaced NewsListing about 10 years ago.
Ditto was much powerful than NewsListing but, at the time, it was only necessary to replace the name of the snippet (NewsListing > Ditto), the parameters remained the same.
The update was simple and opened up new possibilities for developers and designers, thanks to the new features of Ditto.

The same happended with DropMenu snippet that was replaced by WayFinder,
with ContactForm snippet that was replaced by eForm,
and with FlexSearch snippet that was replaced by AjaxSearch.

I believe this is what the users expected from Doclister, FormLister and DLMenu: an easy update

New components are always welcome when the upgrade is painless ;)

@risingisland
Copy link

@Nicola1971 Tags and TvTagCloud have been my hangup too. Do you have a plug-n-play package to get these working? This is making me dizzy.

@Nicola1971
Copy link

@risingisland I did it some time ago. it's 99% @pmfx code, with some modifications

I will try to move and replicate on a localhost site with a clean demo content.

So i can try to do a "package" in some way, maybe with a small How To.

@Nicola1971
Copy link

Hope this help :)
https://github.com/Nicola1971/Doclister-Tags-in-Ditto-Style

Feel free to improve or fix

@pmfx @risingisland @bossloper

@Nicola1971
Copy link

Nicola1971 commented Jan 24, 2018

@Dmi3yy - Just an idea before go to bed:

  • for a good upgrade user experience, we can create an "updater extras widget" or a "system alert" for
    previously bundled extras

At least for critical extras like Ditto, eform.
Something like:

Alert: Ditto snippet (version xxx) is outdated and no more bundled in EVO package (version yyyy).
Please update Ditto to latest version from Extras Module soon

We can bundle in next releases for some times (from 1.4 to 2.0) and help all users to have a nice upgrade experience. 😃

@Nicola1971
Copy link

i dont know how to do it, but i dont think is too much complicated: just a check if version < X
for most critical previously bundled extras

@Nicola1971
Copy link

or

Alert: Ditto snippet (version xxx) is outdated and no more compatible with EVO (version yyyy).
Please update Ditto to latest version from Extras Module or move to DocLister

@Nicola1971
Copy link

Done :)

download

@Nicola1971
Copy link

#458

@Nicola1971
Copy link

--- Update
I upgraded without any hazzle up to 1.4 rc thx for all the quick responses! This issue can be set to solved

  • doclister tags are partially solved
  • info for upgrade ditto too

we can close 😃

@modxuser
Copy link

@Nicola1971

Hope this help :)
https://github.com/Nicola1971/Doclister-Tags-in-Ditto-Style

Bookmarked and thank you for the work you have shared, I will, as soon as I have time, look into this again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests