installing ckan with typo3 - typo3

I want to set up an open data website with the typo3 cms. For open data I do not know how I can manage with typo3. After a tour on google I found the CKAN API.
My questions: is it possible to integrate them? If not, are there any other solutions with Typo3?
Thank you for your possible answers

I don't know an implementation of the CKAN API and a quick search in the TER (TYPO3 extension repository) never showed any results.
Nevertheless there exists an extension filemetadata which is doing probably partially the requested features. Here the links:
filemetadata on Packagist.org
filemetadata on github.com
For the case that the features are not enough or the structure is not like desired a new extension could be programmed where some basics could be taken from the extension above, at least it could serve as example how some things are done.
It has to be mentioned that some extensions are never registered in TER but only available on github perhaps. So before programming something a deeper search might be advisable.
In former times another extension was common for Digital Asset Management, the extension-key and Name was dam. That extension is not compatible with current TYPO3 versions and taking it as example is probably no good idea as much outdated code had to be adjusted.
Nevertheless the advised example above is not the only possibility, the search for file metadata still shows other extensions that are compatible to current TYPO3 versions 7 and 8 which could be taken as examples. Perhaps changed search-words still let you discover more useful extensions.
The mentioned extension in the top is supported by the TYPO3 core team, the others are provided by other developers. I never compared the extensions and you had to see code or/and features by yourself. So I never endorse any of these solutions as usage is rarely requested.
If you search for the most recent code it's always good to search on github first for the development branch or a release that is not (yet) published in TER. Another source of information is forge.typo3.org, there many extensions are listed too, some even with repository on git.typo3.org, perhaps it's worth it to mention that this source is abandoned by some developers in favor of github.
Technically it would be even possible to extend any found extension and add more features or change something just by another extension - without touching the original extension. But before thinking too far you should first have a look if any found extension could satisfy your needs already.
For further questions that might be already related to coding you should open new question(s) with more detailed explanation and code-examples, even if that doesn't work yet.
EDIT 15th Oct 2018:
Just got a hint about a helpful extension for those purposes: extractor. Additional fields shall go to sys_file_metadata and be a part of the extraction service.
As I never did verified it by myself I can't give further hints in the moment.

Related

Can XCUITEST can implement the cucumber Feature files

Can we write the Feature files and step definitions in Swift Automation framework using XCUITEST Framework ?Is yes , Any jar files or plugins we need to install ?
I am unable to find much support in this
While this is not an appropriate question for StackOverflow, I will oblige you an answer with Cucumberish. I have used it in the past, it works, but I generally steer clear of third party frameworks as they add a layer of complexity and leave you in the lurch if they lose support.
I have worked a bit with CucumberSwift and got it to work fine, reading German-language Feature files and letting me define steps in Swift using all the functionality that XCUITest provides.
However, we have not adopted this in the end but are writing Feature files in Gherkin and then write ordinary XCTestCases that we link to the Feature files by mentioning Scenario names in comments. We develop the same functionality for three platforms and it was difficult to see how BDD tooling would work across all three or how we could make it work given the resources we have. Like Mike Collins we also felt that running without the complexity of additional frameworks was an added benefit.
Having said this, CucumberSwift seems promising, perhaps check out this discussion about documentation and add to it?

TYPO3 new version

I'm preparing myself to work with the new version of TYPO3 (v10), and I need clear documentation which presents the changes between the old and new version (especially disappear of ("switchableControllerActions")
So if anyone has an idea I'll be grateful
Thanks in advance
There always (for all major versions) are slides "What's new" and a search gives this page: https://typo3.org/help/documentation/whats-new
the other option is the change log / Release Notes for each bugfix version:
https://get.typo3.org/list/version/10
And all together in one page: https://docs.typo3.org/Home/WhatsNew.html
Apart from the answer given, I would recommend the Changelogs in any case. The "What's new Slides" do not contain all changes. The changelogs contain all relevant changes as each change in the core with a deprecation or breaking change must include a Changelog. Also, the Changelogs contain a migration path and tips that should be helpful for you.
I admit, it is a huge long list. So here are some additional tips:
Since you mention switchableControllerActions: For your own extensions, you can use the extension scanner to search for deprecated or breaking functionality in your extension before moving to the next version: In the backend: Upgrade > Scan Extension Files
Also, since TYPO3 9, you can view and check off the changelogs you already handled in the backend, see Upgrade > View Upgrade Documentation in the Backend.
If you want to find out about changes even earlier, you can follow the changes via one of these sources and read them as soon as they come out:
https://typo3.slack.com: channel #rst-updates
https://review.typo3.org and read the core patches and follow the discussions
twitter: https://twitter.com/t3git_master
What I am also sometimes missing is a table with comparison of old and new. But there are some good resources for specific things, such as:
migrating to "new" doctrine QueryBuilder from $GLOBALS['TYPO3_DB']
About the what / when / why of some particular changes: The changelog explains it quite well, including a migration path. What is sometimes missing is, why a change was made. There is also often some more information and discussions in the review on Gerrit. To find that, click on the link to the issue in the changelog and then find the link to the review (should start with https://review.typo3.org) in the history.

What is a good way to migrate old TYPO3 extensions

I have to refactor a few very old TYPO3 extensions. they are compatible with ^4 but the company I'm working for now needs them for ^8 (the development for this extensions stopped for whatever reason).
I was wondering what is the best approach for me to get this task done -
are there some major resources I could use to get into that topic?
or a general changelog for TYPO3 extensions based on the version up from 4-9?
Any information is much appreciated.
Trying best to answer this, it's up to you how you maintain your site. Off course you need to check the complexity of the extension you build.
Check a few parameters below:
1. Complexity of the extension
Off course you have a big challenge to maintain code (Probably PI-Base extension). Your code should work with TYPO3 8.x as well as PHP 7.0.
2. Code Scalability
A simple thing, your code must be clean so understand better.
Now, you have two way to maintain your extension which is:
Re-build
Use existing extension (Migrate & make this compatible)
Re-build Extension
If you don't have complex application in your web site, you can follow #Aristeidis Karavas and rebuild the completely new extension (Extbase approach off course).
I'll recommend, re-develop for better quality product and to get optimized speed! What do you say?
Migrate Extension
For TER extension (which is available at extensions.typo3.org) might provide migration extension, such as EXT:tt_news to EXT:tx_news. For the custom extension, you can write your own SQL script which migrates your extension data to the new extension.
Compatibility Extension:
You can use compatibility extension available at TER which provide some easy solution to map TYPO3 classes.
Useful Links:
Here is some useful link could bring you to the bright side and will make your stuff easier:
EXT:compatibility6
EXT:compatibility7
Blog: Upgrade Guide
Bernd has given deprecation lists Links here
Hope this will help you!

How to use Plone as Document Management?

I wish to create a document repository for my company. Reason is because my company have many documents and they did not have a version tracking in place. This means everyone is using different version all the time.
Plone is something new to me and i got to know from a good friend of mine. And too bad he is not around anymore to answer my question. I believed in him and i wish to materialize his idea, to use Plone as a document repository for my company.
I have install Plone and manage to view the default Plone page, add all company's username and change the logo to my company's logo. And now the biggest question is, how to setup the document repository? What i have in mind was to create a "page" for the user to add files, download files, search for files and read its description.
Any lead for me to go about?
Reusable,
Same problem here. We started to use Plone as our main DMS 4 weeks ago (inserting existing docs at present).
For working copies, we use iterate (insert plone.app.iterate under eggs in your buildout.cfg).
For versioning, Products.CMFEditions. I believe this worked out of the box.
For creating new workflow, look into plone.app.workflowmanager and read the docs.
In a previous question we asked, we were still looking at Dexterity which has alot going for it but eventually we decided on adapting an existing content type based on Archetypes.
As for inserting files, as long as the description is ok, they will be found through the in-built search functionality, but you might consider using Iterate mentioned above to make sure that nobody is using the same file twice.
As your new, as I am, the docs seem hard at first but are actually quite good.
And this book is still giving me the foundation we need to keep adding functionality.
Good luck
I think, you should get pretty far with vanilla Plone installation, without developing your own extensions or other customization add-on-products. Therefore, I'd recommend you to start with Plone 4 User Manual to find out everything you could do out-of-the box.
As #Speediro mentioned, versioning support comes built-in for the main content types (and you don't actually see CMFEditions mentioned anywhere), but it's not activated for file uploads. Although, as briefly mentioned in the manual: Content items can be configured to have versioning enabled/disabled through the Site Setup → Plone Configuration panel under "Types".
Working Copy Support (plone.app.iterate) should also be there already waiting for activation on Site Setup's add-ons-panel.
Yet, before the Plone Collective (=community) Developer Docs or Professional Plone 4 Development, I'd recommend Practical Plone 3. It has a bit outdated graphics (because it was made for Plone 3), but it's great next step after the user manual. E.g. how to define content rules to send e-mails notifications for content updates (still through the browser without coding). Or how to create custom forms using Products.PloneFormGen.
When you really need to write your own code, it'd be time for Professional Plone 4 and the Collective Docs.
If you can't have a developer to manage your stuff, I would recommand to stay on official Plone, no custom code and use only widly used addons.
I mean:
stay on the default theme (sunburst)
use the default plone content types
only customize the logo
activate plone.app.iterate in the addon controlpanel
do not play with workflow because they need to know what you are doing. by default a file has the visibility of it's folder. It mean if you can see the folder you will be able to see all files inside. You can just activate default worklfow for files under the ZMI.
Use collective.quickupload addon
Your database will going really fast to a huge size because Plone is doing indexing and indexing means lot's of spaces. So you will have to handle this as system adminstrator;

Documentation and version control

Given a project I'm about to start there will be documentation produced.
What is the best practice for this?
Should the documents live with the code and assets or should there be a separate documentation store?
Edit
I'd like a wiki but I will need to print the documents etc... It's a university project.
It really depends on your team. Where I work, we keep documentation in a wiki which is linked in with our team website. For the purposes of shipping documentation, the wiki can be exported and we run it through a parser that "fancifies" the look and feel of the documentation for customer purposes.
Storing the documentation with the code (typically in your source repository) is not a bad idea. Just make sure to keep them separated. For example, keep a docs folder which is on the same level with your src folder in your repository. This way, you can quickly ship the current documentation, you can easily track revisions, and anybody new to the project can immediately jump in without having to go to multiple locations for information.
Storing it in source control is fine.
This is an interesting question -- basically, what others are saying is right about generated documentation, source files and templates/etc. should be stored in source control and generated during your build process.
As far as requirements/specs/etc. documentation, I have worked both ways, and I very much prefer using SharePoint or a Wiki/document portal that is designed for document sharing/versioning. The reason is, most non-developer folks aren't comfortable working with source control systems, and you don't gain any of the advantages of intelligent merging if you are using a binary format like Word. Plus it's nice to have internet-based access so you can reference and work on the docs in a distributed team without people having to install extra software.
Here's a 2017 summary of the options and my experience:
(extreme 1) Completely external (e.g. a wiki, Google Docs, LaTeX, MS Word, MS Onedrive)
People aren't bothered about keeping it up to date (half of them don't even know where to find the page that needs updating since it's so out of the trenches).
wiki platforms are “captive user interfaces” - your data gets stored in their proprietary schemas and is not easy to examine with a simple text editor (Confluence is even worse in that you have no access to the plaintext content at all anymore)
(extreme 2) Completely internal (e.g. javadoc)
pollutes the source code, and is usually too low level to be of any use. Well-written source code is still the best form of low level documentation.
However, I feel package-info.java files are underutilized.
(balance) Colocated documentation (e.g. README.md)
A good half way solution, with the benefits of version control. If a single README.md file is not enough, consider a doc/ folder. The only drawback of this I've seen is whether to source control helpful graphics (e.g. png files) and risk bloating the repo.
One interesting way to avoid this problem is to use plaintext diagram tools (I find Grapheasy and Text Diagram to be a breath of fresh air).
plaintext can be easily read even if your rendering engine changes as the years go by.
Github's success is in no small part thanks to its README.md located in the root of the project.
One tiny disadvantage of this approach though is that your continuous integration system will trigger a new build each time you make edits to the README.md file.
If you are writing versioned user documentation associated with each release of the product, then it makes sense to put the documentation in source control along with its associated product release.
If you are writing internal developer documentation, use automated internal source code documentation (javadoc, doxygen, .net annotations, etc) for source level documentation and a project wiki for design level documentation.
I think most of us in the industry are not really following best-practices and it of course also depends a lot on your situation.
In an agile environment where you would have a very iterative process of release, you will want to "travel light". In this particular case, Jason's suggestion of a separate Wiki really works great.
In a water-fall/big bang model, you will have a better opportunity to have a decent documentation update with each new release. Also you will need to clearly document what version of the requirements was agreed on and have loads of documentation for every tiny change you do to requirements (due to the effects it has on subsequent stages). Often if the documentation can live together with the version controlled source code it is the best.
Are you using any sort of auto-documentation or is it completely manual? Assuming that you are using an auto-documentation system, the documentation is more or less generated on the fly, and would be part of the code itself.
To me, (assuming that it's possible with whatever code you are using), this would be the preferred method of handling it, as you wouldn't need to maintain the documentation source at all.