Assuming your dynamically published Component Presentation is using a default DD4T style Component Template, all you need to do is retrieve the Component using the ComponentFactory as part of your controller action.
You can get the ComponentFactory from the DependencyResolver like so
var componentFactory = DependencyResolver.Current.GetService<...
Website page load times
When you say that the page loading time for 10,000 Components is very high, taking 20 to 30 seconds, I presume that you are talking about the time to actually return the final webpage to the website user, when requested by the browser.
If so, then I would agree that this is a concern, and you may want to reconsider restructuring ...
There are plenty of options for this, but here's a basic setup that avoids common mistakes. You need a "setting," a field in a shared Component, and another field for the title.
Create a Category with keywords for this type of functionality.
Category: Site Functionality
This lets you add other per-site functionality without Schema updates to ...
You can't delete the component while it is added as a component presentation to a page.
The solution is simple: you should not delete the page, but you should simply remove the component presentation from the page.
Once that's done, you can delete it (unless the component is still used elsewhere, or if it is published with a dynamic component template)
Have you applied the Cumulative Update and the latest hotfixes on top of the installation?
REL DCPs with ASP.NET website were causing issues. Before Web 8, the target language was controlled with the Publication Target and the deployer. In Web 8, publication targets vanished and you could only control the language via the Deployer.
To overcome this issue ...
I was able to fix the problem making this change on tcdl-conf.xml
<Property Name="tcdl.target.language" Value="dotnet"/>
New value (this fixed the problem)
<Property Name="tcdl.page.target.language" Value="dotnet"/>
I figured it out:
I was missing the .Save call before the .CheckIn. So the code should be like this:
page = session.Read(context.PageUri, new ReadOptions()) as PageData;
if (page != null)
page = session.CheckOut(context.PageUri, true, new ReadOptions()) as PageData;
In the Templating Base project on SDL Tridion World there is a method GetPage() this is something which usually is called on a Page Template only, but can also be used to get to the Page object on a Component Template (provided it exists, which is only the case for embedded Component Presentations when they are published, or the Page they are on is previewed)...
Dreamweaver templating is not really intended to support generic programming constructs beyond simple loops and conditionals. Yes - you can manage to get it to do more than that, especially if you are prepared to create and install a function source assembly. There are enough people who will be happy to share tricks to make Dreamweaver templating do your ...
You need to use Component Template metadata to tell DD4T the name of your controller (ArticleView) and action (ArticleViewCT) to call when rendering:
You can remove the RenderAction call, DD4T will do this for you in essence when it discovers the overrides.
The component template metadata should look something like:
Interestingly enough, what you would require here is: "Component Presentation Metadata", which, unfortunately, doesn't exist with Tridion. So you need to get inventive.
There are, as you already mentioned, several ways of compensating for it:
Use PageMetadata to store the information you need: advantage is that you are using OOTB Tridion functionality; ...
I achieved this by calling the method using RenderAction from my view:
Html.RenderAction("ComponentPresentationByObject", "MyComponent", cp);
Note: This was only possible once I'd added the following method to the abstract class DD4T.Mvc.Controllers.TridionControllerBase.
public virtual ActionResult ComponentPresentationByObject(ComponentPresentation cp)
Do you have caching enabled in the Storage config? Is your cache channel service configured correctly? The cache channel service has the purpose of invalidating the cache upon publish. Also, do you have any caching enabled in the web app?
As Harald said, it is not needed to delete the page to remove the component. Also, if you remove the component presentation from the page, again you would not be able to delete the page and will receive the error "Item is in use". This is because this item although you have removed from the Page but from the Current version only and the older versions of the ...
Assuming you want to render a component presentation on a PT.
To render a component presentation selectively, you need a way to identify it. If you want to do it based on the component title, you can do it like below:
<!-- TemplateBeginRepeat name="Components" -->
<!-- TemplateBeginIf cond="Component.Title == '[Insert Component Title]'" --&...
ContentProvider getEntityModel developed to work with MVC data. So it require registering view model. You can use dummy view to register your model.
In case you need full data which is returned by model service, you can write your custom provider by extending contentprovider. For reference you can check DefaultContentProvide code at https://github.com/sdl/...
It is possible to get to the page object from a component template (if one exists, remember that you could be executing in preview or in a dynamic component template) using a .Net based TBB and add it to the package or do something else with it (i.e. access your metadata). See Accessing page object in C# TBB used in the component template and Access ...
It sounds like in the Component Layout (DWT added to the Component Template) you should output the first name, such as "Welcome @@firstName@@" which will output "Welcome Mike". Next, you should add that component to the page with the appropriate CT.
In your page layout (DWT added to the Page Template), you can render the Component Presentation (outputting "...
The thing I usually do in this case is structure my algorithm differently so that you can use TemplateRepeatIndex, for example use a modulator or some formula (e.g. TemplateRepeatIndex%5).
If you're adamate about having this custom counter, then you have more options:
Write a C# TBB that finds the specific collection of the items you want to loop over and ...
OK, you might be in for a ride.
Components are stored as XML in the Content Manager. When you publish components, Tridion will:
Find Component Templates that are associated with the schema of the component
Of those, find the ones that are marked to be "rendered dynamically"
Render the components with those templates and publish the resulting output
Let me tell you the simple process to verify:
Identify the schema of the component
Use "Where Used" on schema and note all the Component Templates it is being used (Also note all the pages it is being used)
Identify what all component templates are marked as static and dynamic
When you publish the component, it will get publish with all the dynamic ...
Id is a property of the linked component, not a reference to the component itself - You already have that with
Try removing the Id from your href and alt attributes.
<!-- TemplateBeginRepeat name="list" -->
The Tridion GUI can sometimes cache very aggressively. Try closing your browser entirely, then opening it up and flushing the cache completely before returning to Tridion. Then perhaps you will see the schema changes correctly reflected in the component pop-up instead of the problems you now have.
If that doesn't work, you should check for hotfixes that ...
Tridion does not provide OOTB components.
However, there does exist a "Default Schemas for Tridion" github project which can help you at least get started on making some of the most common components for your clients: https://github.com/paceaux/Default-Schemas-for-Tridion
You'll have the option to select either PascalCase or camelCase schemas.
I think you first should click on the icon in ribbon toolbar for Content Border to reflect borders of all your component presentation. Ensure that you have border of your content getting created in webpage as per the expectation and your first component presentation area is not getting partially overlapped with the component presentation of second component (...
You should keep in mind what Tridion is trying to do when you move Component Presentations. Experience manager will change the order of the Component Presentations in the page when you move them. So, embedded CPs will definitely not work.
You should still be able to move the CPs (first, list, other), but not the ones within the list, since those are not in ...
Just want to add a comment, not related to how to render static a component template that is dinamic, but related to something that you should consider in your scenario.
As you handle the render at the page template level, in case that the component is published separately from the page, the page won't be published, as the component is using a dynamic ...
While publishing through Workflow Activities you need to consider the following in order to publish the "Editable" version
The Item must have the same Approval Status as the Publication Target selected for publishing
Ensure the Activity has the same Approval Status as the Publication Target and make sure you finish the Activity before you publish (Finishing ...
You could also create a Tridion Custom Deployer and then 'publish' the content from Tridion into IBM WCM. The advantage of this approach is that you can use the Tridion Deployer Java APIs and also your favorite Java IDE and ceremony. The format of the data will be what the Tridion template produces. So, for example, if your Tridion template produced XML (...