Add a Custom Column to Search Results Page in CME - tridion

We are using SDL Tridion Sites 9.1 Environment and have added a Custom column for displaying Approval Status of items in Folder as well as Structure group List view by following some of the examples from StackOverworkflow using ListDefinitions and idmatch attributes then adding Event System customization to load data into ExtentionProperties. Now we want to implement the same column for Search Results display in CME. We tried finding the idmatch atribute to use but could not find by checking Network trace of js calls or debugging the javascript callstack. Does anyone have any pointers or have done similar customization?

Related

How do I set up a Google Analytics Custom Dimension as a dimension filter in Data Studio report?

Background
I've created a Data Studio report that looks to a Google Analytics property. In this Google Analytics property I've created custom dimensions which are being populated as I need.
I want to set up a dimension filter on the report in Data Studio but CustomDimension1, etc isn't showing as a field in the list.
What I've done so far
I've looked to see if the field exists as a filter dimension. I've tried creating a new field but can't see what the formula for this would be.
I've read the docs behind the filter control here:
https://support.google.com/datastudio/answer/6312144?visit_id=637020676101086398-168687373&rd=1
I've watched a number of videos to try and find the answer.
I've looked on stack overflow but all the questions relate more to setting up custom dimensions in Google Analytics rather than pulling this information through to Data Studio.
I've searched Google and can see this question being asked before on website www.en.advertisercommunity.com but the links in the Google search results just take me to the Data Studio support site:
https://support.google.com/datastudio/community?hl=en
When I search using the page title of the advertisercommunity.com pages as keywords on the Data Studio page it doesn't come back. It's as though this question was never asked. Neither does anything relevant to my question.
Question
Has anyone achieved this by creating a new field or by using another mechanism I'm not aware of?
Okay, the issue I had was down to timings.
I'd created the Data Studio report first and then added the custom dimensions in Google Analytics after the report had been created.
After running through the data source area, I found the refresh fields button which then detected my GA custom dimensions and added them to the list of fields. I was then able to select the custom dimension as a field on the filter control!
Further info, the GA custom dimensions pull down by their actual GA custom dimension name rather than being Customdimension1, Customdimension2 that I was looking for.
Hope this helps someone else!

Report of Pages Author (Publisher) name

I'm working on a large scale content-base website
in this website many Users produce content in many type of pages, and i want to know how many users(author) create how many page and produce content (for example in this month)
(no difference on reports or front-end)
is there any add-on?
There is no addon for this. First you have to define what "create how many page" and "produce content".. is this the the act of adding a page? or publishing the page? it editing the page at all producing content?
There is a "core" report in the cms module named Recently Edited. You can examine this to determine how reports work. Then you will need to add various extension "hooks" to track the operations required...
onBeforeWrite
onAfterWrite
onBeforePublish
onAfterPublish
Within these methods you will probably need to log the data you wish to report on along with Member::currentUserID() and remember while in an extenstion to access the object you need to use $this->owner->FieldName (instead of ($this->FieldName).

Cant see Magnolia CMS Page dialog

I am following the Magnolia CMS documentation -
Creating Page Template. https://documentation.magnolia-cms.com/display/DOCS/Creating+a+page+template
How can I see the properties listed on one-pager-module/dialogs/pages/main.yaml ?
Thanks
How can I see the properties listed on one-pager-module/dialogs/pages/main.yaml ?
Those are dialog fields. For list of possible types of dialog fields see https://documentation.magnolia-cms.com/display/DOCS/List+of+fields
If what you want to see are actual properties with values in a page created by that dialog, log into AdminCentral, go to Tools menu and open JCR Browser in there, select "website" workspace and in the displayed tree of pages expand one you have created. It will list all the properties with their values.
HTH,
Jan
I assume you are looking for all possible options of main.yaml, therefore since its a template definition, one can find the relevant information from: https://documentation.magnolia-cms.com/display/DOCS/Template+definition
Cheers,

New UI SiteEdit Implementation

I have implemented New UI SiteEdit in Tridion 2011 SP1. When I have created a page without components in it ,I am able to edit the page. If I am inserting the component I am not able to edit the page. Please help on this issue?
When changing a Page in New UI (Experience Manager or XPM), the page is checked-out. What you might be seeing for other users is expected behavior--other users should not be able to edit the page in the CME or within XPM.
Also, you should be restricted from editing content page for even the same user that has a different session (e.g. viewing the page from another browser).
When editing the page with the same user and session, you should be able to add multiple components. The page is checked out. Editing content on the page should be "editing components," rather than the page itself.
Let us know if you're seeing something else.
This can be a result of having an syntax error in your inline editing commands (i.e. the JSON syntax inside HTML comments). Normally you would use the OOTB building blocks that generate this for you, however, in some extreme scenarios, this syntax is written out by hand. I suspect that you may have the latter scenario. Verify your component and component field command syntax.

Extension to the page icon status in SDL Trdidion 2009

We are using SDL Tridion 2009 SP1.
We have implemented a new functionality, an extension in our CMS which allowed us to lock a page.
If a page it is locked it cannot longer be published ( the information of a page that is locked is kept in a database which was created for this extension).
We want to add a new icon which will notify the user on the new status of the page.
Now there are 4 combination of icons ( no action , checked , published , checked and published )
Since I do not have a long experience with the CMS interface I want some help on finding a solution that have no impact on performance and
that it easy to implement in terms of not doing of lot of modification.
Below is my investigation regarding this:
I noticed that the way the icons are render in the cms is not a simple mechanism that can be easy updated.
Each time we click on an item in the left side of the CMS, in order to render the list from the right side a ajax call (with an xml request) is done to the WebGUIResponder.aspx. page.
The response we will get back is a xml that contain the attribute field Icon
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0"
ID="tcm:yyy-zzzz-4" Managed="68" ItemType="4">
<tcm:Item ID="tcm:yyy-zzzzz-64" Type="64" Title="NotificationTest"
Modified="2011-05-09T09:42:27" FromPub="400 YYYY Website Master (EN-GB)"
IsNew="false" Icon="T64L0P1"/>
</tcm:ListItems>
Based on this field Icon attribute (Icon="T64L0P1) the image name starts to be processed.
T64 = means it is a page
L0 = is not checked
P1 = it is already published
For such a field the image name result will be = T64.16x16.List.Published.gif
I couldn't find a way to update this field through the page xml, is not an information that is kept in the xml but rather is build in the dll when the
xml request . (Somewhere based on other fields like published and something else this Icon field is calculated.)
So if it is not possible to modify this field the option we may have is:
In order to integrate our change in the CMS without modifying their .dll (this for compatibility with the new version of the SDL Trdion is not good to modify in the dlll)
and without changing too much the logic I was thinking to this approach.
We can make a new Ajax call to a a new page WebGUICheckPageLocked.aspx (need to be tested what will be the impact on the performance).
In the code behind of this page we can determine if the page is locked or not ( used our internal function that determine if the page is locked or not this functionality is already done).
In the page we will change the icon field to something T64L0P1E01 (adding some extra information which will allowed us to determine the new status of the page ).
We will also modify the In the GetPNGIconName javascript function we can then make an extra check taking in consideration the new information E01 ...)
Please if someone have some better idea on this, maybe it is something easy that can be done, maybe it is a way we can update the Icon field.
Kind Regards,
Cristina
I'll paste my answer from the forums here, so everyone can see (and maybe bring ideas on how to do it differently?)...
In 2011 I would use a Data Extender to change the icon.
Since this is 2009 you will need to use the less elegant predecessor: the GUI Responder Extension.
Essentially you need to manipulate the XML that is returned for the relevant requests (such as the GetList on a Folder).
I couldn't immediately find any documentation on this - which is not surprising as it is an older version. But it boils down to this:
Create a .NET assembly containing a class with the following method signature and attribute:
[ResponseMessageHandler]
public XmlDocument HandleMessage(XmlDocument messageXml, string userName, HttpContext httpContext, object tcmSession)
In that method, you can change the icon set in the XML based on your own logic.
In the extension configuration file, add a section to hook into the response for the lists you care about
(substitute "YourResponderExtension.dll" with the name of the assembly you added):
<ProcessResponse>
<!-- GetList -->
<ExecuteWhen>/tcmapi:Message/tcmapi:Response/tcmapi:Request/tcmapi:GetList</ExecuteWhen>
<!-- Handler for all of the above -->
<Execute>/bin/YourResponderExtension.dll</Execute>
</ProcessResponse>
Add more elements before the if applicable - and make the XPath query as specific as you can to avoid your extension being called unnecessarily. You might also need to check for more cases in the .NET code that you can't do with the XPath query.
ZIP up your extension and deploy it with TcmExtensionInstaller.exe.
From your text I'm assuming you've already worked out how to create and package an extension in 2009.
I hope that these smalls steps can get you started.
If you have any trouble or follow-up questions, just let me know and I'll see if I can answer them.

Resources