The question of how Categories and Keywords are used within Tridion are fairly basic, and can be found in the online documentation and Content Editors' Manual (login required).
The question of why Categories and Keywords are used is more interesting...
The Tridion Taxonomy (the collection of Categories and Keywords) is primarily used to classify the ...
There's no 'out of the box' way to make the Key field of a Keyword mandatory, unfortunately.
I recommend that you do this using the Tridion Events System.
It should be quite simple to write the code that intercepts the save action (as it's initiated) and prevents the successful saving of the Keyword unless the Key field is populated.
You'll probably want ...
Creating a Component via the Core Service can be tricky thing. I see that you use Fields class for creating Components. For your case here, Keyword is a dependency that you must have already in system if you want to use it in your Component.
That being said, you must alter your code to firstly check if a Keyword with that title is present in Tridion. If it ...
Taken from docs.sdl.com :
Select related Keywords to create non parent/child Keyword relationships such as see also links and related topics. For example,
you can relate a Holiday Type Keyword to Sports Equipment Keyword.
Meaning that you can link Keywords which aren't from the same Category but can be related somehow. Whilst publishing ...
AFAIK: It's not possible to extend Keyword description field size it's tied with Database ITEM table Description field size, currently, it's designed to allow 255 characters only.
If you're looking to keep bigger description content on a keyword level. you could create a metadata schema with a custom description field as a text field or RTF field depends on ...
Content Manager always publishes full Taxonomies (a Category and all its Keywords).
If you publish a Keyword, it resolves the Taxonomies (Categories) it is part of (that's normally exactly one) and those get published.
You should be able to use a mappings.xml file to transform the XmlName during the import, rather than hacking the Content Porter export.
According the online documentation, the mappings file allows you to:
handle items that were renamed on the source system or on the
destination system after a transfer
...Which seems to fit your scenario.
Within the ...
Here are few things you should cross check as the code looks fine.
As Pankaj already suspected , you might be using some config which your C# TBB won't be able to read/access , use the categoryID directly in your code first.
You can debug your TBB using Logging or attaching to your Template Builder Process TcmTemplateDebugHost.exe either on the local ...
This is a defect in the DXA 2.0 Model Service, which has already been hotfixed. See https://github.com/sdl/dxa-model-service/commit/77c2043ba690ae15f3efee9c3f598cb7bd79a4e8
Contact SDL Customer Support to receive this hotfix.
It's true - you can't extend it as per Velmurugan states.
I can't suggest an alternative for your web app purposes as it's not clear what you're using the description for but I would add:
If you translate keywords the translation will not be imported if the translated value is over 255 characters; so 'fixing' this with a GUI extension may not suffice.
This question is very similar to this one : Implement dependent lists while creating a component in SDL Tridion 2011 SP1
Your options are
write a custom GUI extension, or a custom url
use the tree keyword selector (this one is easiest to implement, and is standard tridion functionality)
this post has some useful bits on finding child publications of a context publication.
Finding all keywords in the category
Category items have a GetKeywords() method which should return all keywords in the category.
On top of that you would have to enumerate all child publications of the publication in which the category originates and then union the ...
Edit: Chrome 38 reversed the changes and so a hotfix is no longer required. Simply update your Chrome instead.
Are you using Chrome? They recently released an update which broke some functionality, resulting in the kind of error you describe.
There is a hotfix for 2013 SP1 (CME_2013.1.0.87924) and 2011 SP1-HR2 (CME_2011.1.2.87923) ...
Jonathan gives the delivery-side functionality answer. Let me add Content Management side. SDL Tridion's Content Manager has features that use Categories and Keyword:
Virtual Folders (based on searches)
Taxonomy classification (in bulk across multiple items)
With Categories set up for text fields in schemas, content authors can then:
Search for ...
You need to use singleLineTextFieldDefinitionData.List to have list type field
SingleLineTextFieldDefinitionData singleLineTextFieldDefinitionData = new SingleLineTextFieldDefinitionData();
singleLineTextFieldDefinitionData.Name = "OptionField";
singleLineTextFieldDefinitionData.Description = "Option Field";
singleLineTextFieldDefinitionData.List = new ...
If I understand your question correctly. You need to retrieve description for a keyword.
To achieve that you can use the getTaxonomyKeyword method on a instance of TaxonomyFactory class to return a Keyword object. And on the Keyword object you can call the getDescription method to retrive the description of the keyword.
TaxonomyFactory tax = new ...
I don't think this can be done in one query and then have the desired end result straight away, as keyword metadata is stored separately from component (meta)data.
What you can do is:
Fetch components based on the three keywords.
Fetch the actual keywords
Write logic to order the three sets of components based on metadata of the keywords.
We had the similar issue and Tridion created a hotfix CME_2013.1.0.88281 for us which enables multivalued fields to be populated with default value even after the first instance. It works with everything apart from keywords and categories. I would suggest not using categories and keywords and then it will work fine as long as you have the hotfix.
We also ...
Use Template Builder to debug you code by adding TemplatingLogger lines between your commands.
public class GetKeywords : ITemplate
TemplatingLogger log = TemplatingLogger.GetLogger(this.GetType());
public void Transform(Engine engine, Package package)
string categoryID = ConfigurationManager.AppSettings["catgoryTcmUri"];
To add a parent to existing keyword, follow the steps given below in CME:
Create new parent keyword
Cut the existing keywords that you want to assign to new parent
Now go to parent keyword and paste the
Hope this helps.
Tridion makes sure that the Referential Integrity of the Items remain intact and that is why it's not allowing you to delete the Keyword as it's been used in some old versions of other Items.
To delete the Keyword you need to make sure that the Keyword is not used(referenced) in any other Tridion Item(older versions as well).
In your case, to do so first ...
You could load the values for each of the fields when they're clicked, a sort of lazy loading if you will. Also, caching comes to mind. That won't help you with the first load, but subsequent loads will be significantly faster. You haven't specified how your delivery is set up (DD4T, DXA, other) but each one has multiple levels of caching. For example DXA 2....
If you don't want to use a Custom Transport Handler, another way to handle that could be using the Event System.
You create in a folder one component per category (Use a specific schema, as the purpose of this is just create a mapping).
When you publish a category, using event system you publish the component that maps the category.
Doing this, you end up ...
I think that in this scenario the only option is a Custom Transport Handler. You can see details in my answer here Custom Transport Handler
In your case you will need to replace this Handler
Parent item of your keyword remains the Category. You should set ParentKeywords property and pass your parent keyword there.
#here's what I was missing... need to set LocationInfo
$locInfo = New-Object Tridion.ContentManager.CoreService.Client.LocationInfo
$locInfo.OrganizationalItem = $parent.LocationInfo.OrganizationalItem
$locInfo.ContextRepository = $...
I think you might be looking at the left, tree panel. That panel is used for navigation only, you can't select keywords from there. What you need to do is select the category in the left panel and then select keyword in the right panel.
It might also be the case that your keywords are abstract.