The Public Knowledge for Mobile, Web and Facebook works well enough, but it is coded badly and is really difficult to customise.
I HAVE to get to the bottom of this because I have to get a developer to make it able to be multi-branded. Here is my documentation on unpacking this beast to see how it works.
This may not make any sense to you, but it is has definitely helped me to understand the structure of the PKB app and it is a cheat sheet of where to go to change things when I need to. |
I love the PKB App, but I need some additional features - notably multiple branding. It can look and function exactly like PKB2 but if it looks nicer that would be great. I need
I don't need
Most importantly it needs to be able to be used with the ServiceCloud share Knowledge Article via URL feature https://help.salesforce.com/ap ex/HTViewSolution?urlname=Know ledge-One-widget-Share-an-arti cle-as-a-URL-Email-an-article- as-a-PDF-unavailable&language= en_US
<c:pkb_js pkbCon="{!pkbCon}" pkbHome="{!$Page.pkb_home}" />
prepareToRenderOverlay() but I have not found where that is yet.
OK, here is the crux of the whole thing - it uses an <apex:insert tag to insert the body of the article in here. Insert seems to be like an include page. Now to find out where the body is defined... I have no idea. |
"{!IF(pkbCon.facebook,$Page.pkb_Home_fb,$Page.pkb_Home)}";
Nope, you don't want this, you don't need Facebook - you want the home page passed in from the template
Still to do:
All the various places there may be CSS
(Also see the note about the Important Tag)
I still can't work out the language translation of the label - in the controller it says it comes from the standard user Locale picklist, but where is the translation for that stored (not in ObjectTranslations - USer-zh_CN.objectTranslation file only has custom fields
The value in the dropdown box is zh_CN but the text is 中国的 which google translates to China's or China and Of - this is not good. And our chinese language translator is not happy with it.
Hm, maybe it is not even a Salesfore thing as this seems to be about Javascript generally.
Maybe I will have to hard code it? Nooooo!