Is there any possibility to create custom widget for Azure hosted API Management? - azure

https://azure.microsoft.com/en-us/updates/new-azure-api-management-developer-portal-is-now-generally-available/
Extensibility—The portal comes built into every API Management instance (excluding the Consumption tier). If you wish to extend the portal’s core functionality (for example, create your own widgets to fetch data from other sources), fork the GitHub repository, implement the code changes, and self-host your own modified version of the portal.
Is it so that we can't do custom widgets on Azure hosted Developer portal? If so, then this is a backstep from the legacy portal as there we could write custom HTML and JS to get custom features.

I believe still there are couple of things you can do.
Home page
The default Home page is filled with dummy content. You can either remove the whole sections with the content or keep the structure and adjust the elements one by one. Replace the generated text and images with your own and make sure the links point to desired locations.
Layouts
Replace the automatically generated logo in the navigation bar with your own image.
Edit the content of the portal, customize the website's look, and publish the changes.
Please refer https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-developer-portal-customize and let me know how it goes

You can submit a pull request to the repository.
If you create a custom widget and this will be useful for many users it can be included in the default set of widgets.

Related

Custom Welcome Screen in Dynamics CRM

I Want to Show custom welcome screen when a user logs in to Dynamics CRM 2016. I searched and i just got how to disable welcome screen tour but i couldn't find how to show my own custom screen (message or HTML).
Any help is appreciated.
Thanks
Make a dashboard with a single large HTML web resource.
Place your content inside that HTML web resource.
Set that dashboard as the default for new users. Display a specific dashboard by default for a specific user role
You can also add your welcome page as HTML web resource, add its link to your sitemap and set this sitemap subarea as a default tab for every user.
EDIT (detailed description):
Create custom HTML web resource and publish it in CRM.
Edit your sitemap to contain link to newly created web resource. Sample configuration below:
Sample
In my case my web resource HTML name is "new_welcome.html"
Go to user's personal options and set your new site.map position to be your user's default tab. You may do this with CRM interface (separately for every user :()) or with the tools for personal options mass update (for example with User Settings Utility from XrmToolBox)
Sample results of above mentioned operations:
Solution of you problem is Announcements.
Its easy to configure and easy to circulate the information across all the users.
Follow the below links for more information about Announcement,
https://www.microsoft.com/en-us/dynamics/crm-customer-center/broadcast-announcements-to-an-entire-organization.aspx
I would suggest not to use announcements because of the following reasons:
It is legacy functionality from CRM 2011 version.
It does not support rich text formatting or html components, images, etc.
You still need to create custom web resource to present it to the end user (so from the work effort perspective it also does not make sense)

Automatic way of export / import pages from liferay

I have created portlets for liferay and prepare couple of pages. Now I want to create installation script, which create pages definition in customer liferay server. I know that pages export/import is possible using LAR file, but this could be done only manualy, or using remote publishing which i am not able to do.
I was searching on net and found ddm tool. Which should be able to do that. Unfortunately i'm not able to get it work as it export only web content, blogs, wikis, etc, but not pages with portlets. It is probably because one of the condition is "Every Template must be assigned to a Structure. Don't create any templates on the Liferay server which does not have a structure connected to it.
". But how can I assign page to structure ? Cant find anything.
Or is there any other option for automatic page creation, which could be used ?
In case you created a custom theme, you can easily use the "resources importer" to create an entire site via the "sitemap.json" file (define pages: choose layout, assign portlets to the columns, ...). You can also export existing content as xml from the current instance and import them via the theme. Same thing for web content structures and templates.
for more details: https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-1/importing-resources-with-your-themes
Unfortunately theme is produced by another supplier, so this solution isn't suitable for me.
at the end i find working solution which consist of following steps:
create plugin hook
in hook setup upgrade process
in the upgrade process create pages with appropriate layout, friendlyUrl, etc. All these is possible to do using liferay api
Don't have enough reputation, so at least two links
https://www.liferay.com/de/web/james.falkner/blog/-/blogs/7cogs-is-dead-long-live-7cogs-
https://github.com/azzazzel/liferay-official-plugins/tree/master/hooks/sevencogs-hook/docroot/WEB-INF/src/com/liferay/sevencogs/hook/upgrade

Liferay create site / page programmatically

I have been using Liferay for work for 2 weeks. I noticed that it's a bit difficult to find good documentation and tutorials.
Until now I created pages from the web portal. After I create them, I drag and drop portlets. I don't really like this approach, I would prefer to use a coding approach. Is there a way to create a website or page programmatically by defining a project as I do to create portlets?
Moreover, I am using Liferay with WebLogic 10.3.6. I want to know where liferay puts pages I created via web-portal on the file system. I suppose that a file, or something similar, is created when I declare a new site on the Liferay web-portal.
Thank you all,
Marco
Yes Liferay has it's Database, all data of any Liferay object is stored in the database and / or on the file system depending on your configuration.
However, one of the functionality of Liferay is to let you create pages / sites through the UI. As documented in the Java Portal Specification and Liferay Server Documents your approach to create pages in an alternative way is possible but it is part of Liferay's Portal Services. You can use Liferay's Service (HTTP REST) API to call the related service. To access those APIs you need to configure your Liferay Server.
In case you want to do programmatically you still need to configure, enable and call those external HTTP services from your code. You should not create Liferay Objects from your own code hosted as an extension inside your Liferay Instance as that will result inconsistency in your Liferay Database / filesystem. (As in case of page creation Liferay creates a set of other related objects in it's database / filesystem.)
In your liferay bundle you will find two plugins of interest.
First is resources-importer-web for which description says
The Resources Importer app allows front-end developers to package web
content, portlet configurations, and layouts together in a theme
without saving it as a compiled .LAR file thereby allowing for greater
flexibility in its usage between Liferay Portal versions.This app will automatically create associated content when other
plugins are deployed that are configured to make use of the Resource
Importer app.This app installs as a Liferay service.
Second is welcome-theme which declares resources to be created by resources-importer-web. This on should be example how to create your own. Take a look at
welcome-theme\WEB-INF\src\resources-importer\*
welcome-theme\WEB-INF\liferay-plugin-package.properties
This feature is described at importing-resources-with-themes
As mentioned by gabor_the_kid, Liferay stores all objects in its tables. For example, User related objects would be in user table. Liferay exposed services or API's to change the default/to add new behaviors by program but not easier than achieving it through UI. Also maintenance should be considered for going program way of creating pages or layouts etc.
You can describe your changes using xml and use the Liferay Portal DB Setup core to create the changes in DB.
The library defines the list of available xml configurations.

Is it possible to hardcode Kentico webparts into a layout?

Kentico 8.2.
I've got a layout "master" file - the creatively named Master.ascx.
I've got three web part zones in the layout: header, main and footer. Main just includes a content placeholder which is overridden by the next layout down - home, standard, whatever.
I could just drag and drop web parts onto the header and footer web part zones on to the "design" tab, but I don't want to for a few reasons:
Which web parts go in which zone is stored in the database, which isn't versioned in Git. The layout file itself is versioned via the "store CMS Virtual Files on disk" option.
The layout markup inside the header is complicated enough that I'll end up needing to have 4 or 5 web part zones for 4 or 5 web parts - or I'll need to write a layout web part or drag row layouts / column layouts in, etc - it seems much simpler to just hardcode web parts inside bespoke markup.
I find editing a plain text file with Visual Studio much faster than dragging and dropping web parts into a zone, and the same applies for anyone else who'll ever work on this site.
Which web parts go in which web part zone doesn't ever change - there's always a primary nav, share-on-facebook, etc - which web parts are included will never need to be in any way dynamic.
Is it possible to just hardcode a web part into my layout?
To answer your question, no you cannot hard code webparts in your layout. Simple reasoning is webparts are not part of a layout, they are part of a template . The webpart definition for each template is stored with the template in the database as XML. You can see this by going to a template and selecting the Webparts tab and it will display all the XML for each of the webparts on that page template.
Understand where you're coming from with your 4 points. What you also need to consider is:
what happens when you want/need upgrade or apply a hotfix?
from the client, content editor and content administrators perspective, having everything in code, renders the CMS pretty useless.
if you code everything in a physical file, it's then pretty pointless to have a CMS if it requires a developer or a physical code change for every request
The point of the CMS is to be dynamic and database driven. Not everything can reside in the file system, database or a code repository. Kentico has some very strong developer tools you can enable like workflow, versioning, and check-in/out.
I'd also enable your DBA and ensure they have a valid backup and recovery plan in the event of some disaster.
It's not possible, because it goes against the Portal Engine development model. If your main issue is the unavailability of these objects in GIT consider the option to save virtual objects (https://docs.kentico.com/display/K82/Deployment+mode+for+virtual+objects) to the file system, so they are picked up by GIT. I'd also suggest to keep the website upgrade safe (e.g. by using the Portal model), because the next version will feature CI support (saving of all DB objects to the file system) http://www.kentico.com/product/roadmap which is due to be released in 2 months

Which is the Liferay equivalent of a IBM WebSphere Portal / WCM Menu?

I've developed with WPS and WCM for several years and now I am also learning Liferay. I can't help but compare the features and I understand that in Liferay some things are done differently.
I would like to know the best practices to manage the following simple example:
A simple page with a carrousel with several images and links
Google analytics inserted in the page (Reusable in most pages)
The following is how I'd solve it in IBM WPS:
A HTML component with the Google Analytics code that is called in every page (I can't find how to do this in Liferay)
A content definition of an image and a link.
Create several contents for each image and link.
Create a menu that shows the list of content in the form of a carrousel (I can't find how to do this either in Liferay)
I am aware that Liferay has a list portlet and content that has repeatable items. I know I could use these, however its much more usable if I can have on content for each image/link and one reusable HTML snippet of code.
How should I solve this in liferay in the most efficient way?
Thanks!
You have to use Liferay Web Content portlet for creating the carousel. This is available in Control Panel. For your particular requirememnt you have to create a dynamic web content, which involves using of Velocity language and javascript to iterate over a set of images. Infact if you see Liferay's website, the home page has this kind of stuff.
For Google Analytics there are two ways. Liferay is not just meant for creating one site, it caters creation of multiple sites. Each site has a group of pages. You can create site from Control panel again. In the site settings you have this option to add google analytics id. So with each site can have different google analytics id.
If you want to do it at a global level, we add the google analytics script snippet in the Theme of liferay.
To get a better understanding of all the jargons used in Liferay, you have to atleast go through Liferay's documentation. And while going through it you have unlearn what you have previously learned. Liferay has hell lot of features than Websphere portal.
http://www.liferay.com/documentation/liferay-portal/6.1/user-guide

Resources