<?xml-stylesheet type="text/xsl" href="https://sugarclub.sugarcrm.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Adding a Custom Module to the Customer Portal</title><link>/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><description>Back in September of this year (2019), we held the Developer&amp;#39;s Webinar for the 9.2 release of Sugar . During that presentation, I touched on how the Portal can be customized. Among the things illustrated in the webinar was adding a module to the Port</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Mon, 27 Feb 2023 07:22:16 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Bhavesh Patel</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;&lt;strong&gt;I Would like understand What level of customization is possible in sugar Portal?&lt;/strong&gt; I want to suggest this to my customer.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;I Would like to create custom module and add that module into Sugar Portal.&amp;nbsp;&lt;/span&gt;&lt;span&gt;Is that possible to achieve in SugarCRM latest version?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I am going create custom relationship with Notes, Documents and Opportunity module is that possible to display into Portal?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I also create some relate fields, Notes, Comments and attachment fields to custom module is that possible to display into Portal?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I Would like to create some custom dashlet through code is that possible to display into Portal?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Regards,&lt;/strong&gt;&lt;br /&gt;&lt;span&gt;Bhavesh Patel&lt;/span&gt;&lt;/p&gt;&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Tue, 13 Jul 2021 19:56:53 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Anthony Watson</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;It&amp;#39;s worth noting, in regards to this step:&lt;/p&gt;
&lt;p&gt;If your module will have record or list views, you will need a portal directory under the clients directory. Within that portal folder, be sure to add the appropriate directories and files like so:&lt;/p&gt;
&lt;p&gt;&amp;lt;basepath&amp;gt;/sugar_NameOfYourModule/clients/portal/views/list/list.php&lt;/p&gt;
&lt;p&gt;That the relevant content of those files should use the &amp;quot;portal&amp;quot; key, not the &amp;quot;base&amp;quot; key. For instance, the above list.php would have:&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:83f1be05-5210-4b2a-bce3-d56d2ebb95ab:type=php&amp;text=%3C%3Fphp%0D%0A%0D%0A%24module_name%20%3D%20%27sugar_NameOfYourModule%27%3B%0D%0A%24viewdefs%5B%24module_name%5D%5B%27portal%27%5D%5B%27view%27%5D%5B%27list%27%5D%20%3D%20array%20%28]&lt;/p&gt;
&lt;p&gt;If you have created your custom module via Module Loader, the equivalent layout file it builds would be&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;lt;basepath&amp;gt;/sugar_NameOfYourModule/clients/base/views/list/list.php&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;and would start with:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:17dcf081-959a-40ff-82a2-c832b4c14c6a:type=php&amp;text=%3C%3Fphp%0D%0A%0D%0A%24module_name%20%3D%20%27sugar_NameOfYourModule%27%3B%0D%0A%24viewdefs%5B%24module_name%5D%5B%27base%27%5D%5B%27view%27%5D%5B%27list%27%5D%20%3D%20array%20%28]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Copying this file directly to the &amp;quot;portal&amp;quot; directory without updating that reference from &amp;quot;base&amp;quot; to &amp;quot;portal&amp;quot; will cause issues. Similarly, there are stock fields in &amp;quot;base&amp;quot; context that are not available in &amp;quot;portal&amp;quot;, such as team-based fields. So these should be removed. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;TLDR;&amp;nbsp;simply copying those Module Builder built view files over to portal will cause problems.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Tue, 13 Jul 2021 08:49:22 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Harald Kuske</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tried this yesterday with 11.1 and was able to show a custom dashlet on the portal start page and to add and list &amp;quot;orders&amp;quot; from that custom module. Nice job to modify the dashlet JSON which describes the start page.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/640x480/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6/Screenshot-2021_2D00_07_2D00_12-22.21.23.png" alt=" " /&gt;&lt;/p&gt;&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Tue, 25 Aug 2020 15:18:26 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Omar Delgado Martinez</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Great information! I used this method but I am having a issue in the record list view... I can see all records even the ones that my portal user didn&amp;#39;t create. Am I missing something?&lt;/p&gt;&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Mon, 20 Apr 2020 12:28:24 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Alexandre Moulin</dc:creator><slash:comments>1</slash:comments><description>
&lt;p&gt;If I may add something, this vardefs config is not complete. To have full best behavior you shall better put in vardefs the following :&amp;nbsp;&lt;/p&gt;&lt;pre class="language-php line-numbers"&gt;&lt;span class="variable token"&gt;$dictionary&lt;/span&gt;&lt;span class="punctuation token"&gt;[&lt;/span&gt;'&lt;span class="markup token"&gt;&lt;span class="token tag"&gt;&lt;span class="token tag"&gt;&lt;span class="punctuation token"&gt;&amp;lt;&lt;/span&gt;bean&lt;/span&gt; &lt;span class="attr-name token"&gt;name&lt;/span&gt;&lt;span class="punctuation token"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="string token"&gt;']['&lt;/span&gt;portal_visibility'&lt;span class="punctuation token"&gt;]&lt;/span&gt; &lt;span class="operator token"&gt;=&lt;/span&gt; &lt;span class="keyword token"&gt;array&lt;/span&gt;&lt;span class="punctuation token"&gt;(&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="string token"&gt;&amp;#39;class&amp;#39;&lt;/span&gt; &lt;span class="operator token"&gt;=&lt;/span&gt;&lt;span class="operator token"&gt;&amp;gt;&lt;/span&gt; &lt;span class="string token"&gt;&amp;#39;Visible&amp;#39;&lt;/span&gt;&lt;span class="punctuation token"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="string token"&gt;&amp;#39;links&amp;#39;&lt;/span&gt; &lt;span class="operator token"&gt;=&lt;/span&gt;&lt;span class="operator token"&gt;&amp;gt;&lt;/span&gt; &lt;span class="keyword token"&gt;array&lt;/span&gt;&lt;span class="punctuation token"&gt;(&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="string token"&gt;&amp;#39;Accounts&amp;#39;&lt;/span&gt; &lt;span class="operator token"&gt;=&lt;/span&gt;&lt;span class="operator token"&gt;&amp;gt;&lt;/span&gt; &amp;#39;&lt;span class="markup token"&gt;&lt;span class="token tag"&gt;&lt;span class="token tag"&gt;&lt;span class="punctuation token"&gt;&amp;lt;&lt;/span&gt;name&lt;/span&gt; &lt;span class="attr-name token"&gt;of&lt;/span&gt; &lt;span class="attr-name token"&gt;field&lt;/span&gt; &lt;span class="attr-name token"&gt;link&lt;/span&gt; &lt;span class="attr-name token"&gt;for&lt;/span&gt; &lt;span class="attr-name token"&gt;account&amp;#39;s&lt;/span&gt; &lt;span class="attr-name token"&gt;relationship&lt;/span&gt;&lt;span class="punctuation token"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;#39;&lt;span class="punctuation token"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="string token"&gt;&amp;#39;Contacts&amp;#39;&lt;/span&gt; &lt;span class="operator token"&gt;=&lt;/span&gt;&lt;span class="operator token"&gt;&amp;gt;&lt;/span&gt; &amp;#39;&lt;span class="markup token"&gt;&lt;span class="token tag"&gt;&lt;span class="token tag"&gt;&lt;span class="punctuation token"&gt;&amp;lt;&lt;/span&gt;name&lt;/span&gt; &lt;span class="attr-name token"&gt;of&lt;/span&gt; &lt;span class="attr-name token"&gt;field&lt;/span&gt; &lt;span class="attr-name token"&gt;link&lt;/span&gt; &lt;span class="attr-name token"&gt;for&lt;/span&gt; &lt;span class="attr-name token"&gt;contact&amp;#39;s&lt;/span&gt; &lt;span class="attr-name token"&gt;relationship&lt;/span&gt;&lt;span class="punctuation token"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;#39;&lt;span class="punctuation token"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="punctuation token"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="punctuation token"&gt;)&lt;/span&gt;&lt;span class="punctuation token"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-numbers-rows"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Therefore once a portal user creates a record in the custom module it will be automatically linked to the contact&amp;#39;s account and/or to the contact itself.&lt;/p&gt;&lt;p&gt;(sources : client/portal/api/ModulePortalApi.php, data/visibility/portal/Context.php, src/Portal/Session.php)&lt;/p&gt;&lt;p&gt;best regards,&lt;/p&gt;&lt;p&gt;Alexandre&lt;/p&gt;
&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Fri, 14 Feb 2020 18:23:09 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Tony Romano</dc:creator><slash:comments>1</slash:comments><description>
&lt;p&gt;hi &lt;a href="https://sugarclub.sugarcrm.com/members/michaelshaheen"&gt;Michael Shaheen&lt;/a&gt;&lt;br /&gt;Does this work for other Enterprise versions like v9.0.2?&lt;/p&gt;
&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Adding a Custom Module to the Customer Portal</title><link>https://sugarclub.sugarcrm.com/dev-club/b/dev-blog/posts/adding-a-custom-module-to-the-customer-portal</link><pubDate>Wed, 12 Feb 2020 18:45:33 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6ad95dfc-d9da-42a5-8afb-7bf8a9c7dca6</guid><dc:creator>Vincent Amari</dc:creator><slash:comments>1</slash:comments><description>
&lt;p&gt;Another great and useful post, thank you &lt;a href="https://sugarclub.sugarcrm.com/members/michaelshaheen"&gt;Michael Shaheen&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mind you, what are the chances of making this a studio config feature rather that having to create code?&lt;/p&gt;
&lt;img src="https://sugarclub.sugarcrm.com/aggbug?PostID=902&amp;AppID=56&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>