How to use Plone as Document Management? - content-management-system

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;

Related

installing ckan with 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.

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.

CKEditor Plugins Documentation

I looked on CKEditor's website and I noticed that there's no plugins documentation yet.
But I'm wondering if there is any anywhere else?
I'd like to make a little plugin to add youtube video from CKEditor. Pretty simple plugin but still I'd like to know how to make it.
Documentation is sparse at the moment, but not completely non-existent.
Check out my CKEDitor link survival pack from a previous question.
As a starting point, you may want to copy and use one of the existing plugins (the unpacked ones from the _source directory, of course).
The symbols plugin is extremely simple but shows the basic points of inserting HTML into the editor
The links plugin may be a good starting point for how to add input fields, tabs, and make them interact (If you want to go the road of understanding CKEditor's highly sophisticated dialog layout system, that is. My cup of tea, it wasn't. You may want to just set up an Iframe dialog, and do everything by yourself).
Since this question was first posted, CK has added documentation for creating plugins - http://docs.cksource.com/CKEditor_3.x/Tutorials/Abbr_Plugin_Part_1

mojoPortal OR Umbraco?

I have been look around for Free/Open Source ASP.NET CMS / Portal systems for a while now, and have seived it down to two different ones.
Umbraco - http://umbraco.org
mojoPortal - http://www.mojoportal.com
Both look excellent and have different appealing features, but I am looking for people who have used both and which one you went with and why??
I actually went for Umbraco in the end and would never look back, its incredibly easy to install and use
To install you can use the web platform installer to install it and the AMAZING amount of free projects you can EASILY install with a couple of clicks make it by far the best CMS out there
http://our.umbraco.org/projects
If you are unsure where to start have a read of this
http://www.blogfodder.co.uk/post/A-Complete-Newbies-Guide-To-Umbraco-CMS.aspx
I tried Umbraco and it is not for the timid. I feel I'm a fairly technical person, Sr. Web Developer... and after several hours I gave up.
MojoPortal just works.
It has its flaws, but the simple fact that it just works means it wins.
I used Kentico, DNN, Sitecore, Joomla, CMS Made Simple (Yes admittedly not mojoPortal). Umbraco is by far the most powerful if you are after a highly customised and highly specified solution. Linq2Umbraco just seals the deal.
However, if you are after idiot proof CMS with everything built in, and your biggest concern is to look for check boxes to enable forum/blogs/whatever other joke modules/bells and whistles/etc. Umbraco isn't for you. IMO Kentico/DNN are the ones.
Edit - And 3 years later, I've used SharePoint, epiServer, SiteFinity as well.
Umbraco still wins hands down.
mojoPortal seems easier to use to me and it works even with javascript disabled like using noscript browser plugin. Seems more care of accessibility has been taken using progressive enhancement javascript techniques whereas you can't manage your site at all with javascript disabled using Umbraco.
I haven't tried mojoPortal, but I love Umbraco.
Things I like:
Clean code
Uses XSLT, python, or .NET to extend
Awesome community support
Tutorial videos for easy learning
Admin area is extensible
Good plug-in projects
But really its because I can use it for both small and large projects easily.

folder structure for a plugin oriented site like wordpress

i just want to know about the files and folder structure for a site which is a plugin oriented like wordpress or joomla.
my requirement is to develop a site and want to add more functions via plugin or something like features.
what i need is to just add and additional information or functional sessions like in wordpress
we can use All in one SEO packages it will bypass the title and some other information.
or some other features like Related articles are shown at the bottom of a particular article body.
aam talking about a structure of wordpress.
does any one have an Idea please share with me.
hope every one understood my qustion as well.
thank you.
I think there are many possible solutions.
It might depend on:
scalablity (how large do you want it to support plugins and do the reuse parts of each other?)
vibility (how should the plugin address become visible in the url?)
deployment (who can add new plugins? is it open for everyone or just certified developers)
You could go for:
www.domain.xyz/plugins/some_module/
But what if the plugins arent plugins but becomes default part of the system afterwards?
Then it would be more logical to call them what they are like:
www.domain.xyz/some_module/
But then you might get into problems with plugins name like exisiting system folders. Therefore you would need some "reserved" list of foldernames to prevent that.
You could also go for:
some_module.domain.xyz/
But that would requiere your webadmin or webserver to support multiple aliases for one website on the other hand, this arhictecture would bring scalability, because you could move the modules to other webhosts later on. But its also more expensive work in the development + its hard to make it "user/developer controlled" as this could grow.
You could have a look at how FaceBook is handling Applications too. Thats a plugin interface too. Slow, but implemented.