14

Even though this question seems to be based a lot on "hearsay", I'll give you my best shot. Can Tridion Categories and Keywords be used to build a taxonomy-driven website? Absolutely YES. I know of two things you need to pay attention to: Dimensions on your taxonomy Cache Dimensions A taxonomy can have many types of relationships defined. You can have ...


11

Further to Alberts suggestion I have followed the article he posted and have managed to read out a list of keywords, code is below. /// <summary> /// Default Category Id /// </summary> private const string DefaultCategoryId = "tcm:9-9072-512"; /// <summary> /// Get story category Id from taxonomy /// </...


11

It is not possible to publish Taxonomies to the file system so the storage type mapping you describe is not viable. If you have a broker database storage element in your storage conf file, map the Taxonomy type to this (eg storageId="defaultDB")


10

Looking closely at your problem, it seems that the findTaxonomyKeyword method from the CachedTaxonomyHome class caches your result but when the whole taxonomy is reDeployed, the cache invalidation does not happen. To fix this you have two options: You contact Tridion Customer Support, explain the problem, explain why this would be a ShowStopper for your ...


10

As Will recalls in his answer, you can try the TaxonomiesOwlFilterData. Here a sample TaxonomiesOwlFilterData filter = new TaxonomiesOwlFilterData(); filter.RootCategories = new LinkToCategoryData[] { new LinkToCategoryData() { IdRef = "[CategoryId]" } }; XElement result = channel.GetListXml("[PublicationId]", filter); It will return you data in the ...


9

There is no way to do this in the standard GUI, however, please see my blog article on the subject, where I show how to do this from a relatively straightforward Powershell script. With some boilerplate code in place, the script to set permissions on a category ends up looking like this: $catPermsTest = $core.Read("/webdav/01%20Definitions/PermsTest", $...


8

AFAIK, there is no straight forward way to do so in GUI, you may need to write a Core Service code for it.


8

You can do something like: var taxonomyFactory = new TaxonomyFactory(); var filter = new CompositeFilter(); // all keywords filter.DepthFiltering(DepthFilter.UnlimitedDepth, DepthFilter.FilterDown); // Creates a flat list TaxonomyFormatter formatter = new TaxonomyListFormatter(); Keyword keywords = taxonomyFactory.GetTaxonomyKeywords(categoryId, filter, ...


8

I actually think in this scenario the answer is 'Build a POC', here's why: There's many ways to skin a cat with the CD api You've already got your content tagged with categories and keywords Publish it, then I reckon about 2 hours to knock together some code to build the POC You've then the ability to play with the cache and check performance When we've ...


8

To get a list of Keywords from a Category using the Core Service, you can indeed use the GetList (or GetListXml) method and supply a KeywordsFilterData. That will by default return you all (child) Keywords, without a hierarchy, if you want the hierarchy, you will have to set the IsRoot property in the KeywordsFilterData to true: var items = _client....


7

Ok, It seems it's been a while since I wrote code... it is quite simple, here the solution: Get The keyword From the Keyword, get its TaxonomyURI Now using the API, get the keyword with its children: rootkeyword = factory.GetTaxonomyKeyword(kwdOrCatURI); //rootkeyword.TaxonomyUri rootkeyword = factory.GetTaxonomyKeywords(rootkeyword.TaxonomyUri, ...


7

The TOM.NET contains the Repository.GetTaxonomiesOwl() method which can be used to get the whole taxonomy with relationship information, however I do not see an equivalent in the Core Service API. There is a TaxonomiesOwlFilterData filter class in the Core Service API, however it does state that this cannot be used with GetList(), so probably you would have ...


7

Try the below OData query to get the Parent and Child keyword hierarchy details. /odata.svc/Publications(362)/Keywords/?$expand=Children,Parent This is one web service call and once you have the results, use LINQ to query for a specific keyword. The above using OData expand option to get Parent and Child node details. e.g; expand=Node1 --> expands ...


7

A classic discussion of this problem can be found at the Wiki The pertinent quotation is this: "Architects don't have to code, as long as they have ways to get concrete feedback on their ideas." I'd suggest that if speaking to people and extracting general themes isn't getting you concrete feedback on whether there is a Tridion API suited to the task you ...


6

Strictly speaking, you cannot edit a Keyword itself via Experience Manager, since it only exposes a way to edit content fields. If you have a Keyword field in your Component and the value from that is displayed, you can change the value (to another Keyword). If you also have rights on the Category to add new Keywords, you have the option to add a new ...


5

You just need to read your component with the correct ReadOptions. See: How to Get Keyword from Metadata or Item XML Using Core Service and Getting additional keyword information from item Xml?


5

Most probable cause would be the Cache - you might have cleared your browser cache but I hope you have not cleared the Server Cache and even the JVM cache on CM server. To ensure that it is a cache issue restart SDL Tridion Content Manager DCOM+ application and to be further sure, re-start the SDL Tridion Content Manager IIS App Pool on the CM server along ...


5

If you look at http://myserver.com/odata.svc/Keywords you'll see a linear collection of Keyword entities. Keywords that are nested within other Keywords (i.e. Children) will have a <link href=".../Parent" /> property point to the parent keyword, while any Keywords that have nested Keyword (i.e. Parents) will have HasChildren=true and <link href="......


5

Taxonomy, like Folders and Structure Groups, does not have versioning functionality from Tridion. If you would like to know who changed what and when, without rolling back, it is fairly simple. You would write an Event System class that listens for the Save Keyword event and writes this info to a DB (OrmLite, SQLite, MongoDB, etc) and then write an asp.net ...


5

It is part of cd_broker.jar. this might be missing in your lib folder


5

You could use a KeywordCriteria with the category and all of the keywords and the NotEqual field operator: var noKeywordsAttached = new KeywordCriteria(myCategory, allKeywordsInMyCategory, Criteria.NotEqual) The obvious drawback being that you would have make an additional taxonomy query to determine all keywords in the category. This combined with your ...


5

Welcome to Tridion, there is another way which might interest you, and that is create JAVASCRIPT client for SDL coreservice. https://yatb.mitza.net/2018/08/javascript-client-for-coreservice.html


4

Is it possible your cd_licenses.xml file has expired, and all your content is being published to your File System rather than the database?


4

You can use BinaryMetaFactory.BinaryMeta GetMeta(string tcmId); Here is a snippet, adapted from the offline Docs BinaryMetaFactory: //create a new BinaryMetaFactory instance: BinaryMetaFactory binaryMetaFactory = new BinaryMetaFactory(); //find the metadata for the specified binary BinaryMeta binaryMeta = binaryMetaFactory.GetMeta("tcm:1-123"); //print ...


4

There is no way to do that without implementing a custom GUI extension. However, what is normally practiced is prefixing items (Keywords, Structure Groups, Components and etc.) with a number. For example: 010 Apples 020 Pears 040 Oranges


4

Do you have defaultStorageId set to filesystem? <ItemTypes defaultStorageId="defaultdb" cached="true"> If so, add <Item typeMapping="Taxonomy" cached="true" storageId="defaultdb"/> Also, check that your broker database connections are correct, and that other items types are appearing in the broker. Also, as Chris says above.. check licence ...


3

This should be the expected behaviour. AFAIK you can not have same name keywords in a Single Category. Just imagine in case this might have been allowed, if you attach this category to a schema, then while creating component, how do you recognize which keyword to use


3

Is there any other item which is configured to saved in DB, If that is also not getting saved in DB, then Chris could be right. In case of items are configured to be saved to disk, this error occurs when deployer unable to delete the existing item(due to used by some process) and replace with new items. In your case check, Is there any db locking ...


3

I managed to get this working after restarting Com+ and the App Pool.


3

I'd like to comment a statement in the thread of the answer above: "... but mainly for the deployer. Why the deployer? Because the one that is actually sending the invalidation messages is the Deployer? " Looking in the log files this statement does not seem to be true... It must be implemented in the web app. But better, as suggested in both: uploader/web ...


Only top voted, non community-wiki answers of a minimum length are eligible