📜 ⬆️ ⬇️

WEBO Site InSight - combining CMS

WEBO Site InSight % username, good day / night / morning / what else is there :) I’m in a hurry to report on the awesome news: now the development of extensions right under the CMS set has become an order of magnitude easier. If in Russian, the extension for Joomla! can now be installed on WordPress, Bitrix, Drupal, or whatever-you-on-site-in use. And vice versa.

But it's too cool to be true, right? :) Details under the cut.

There are many more letters, but you can download this miracle extension right from here (about 100 Kb in size). In addition to the platform itself, there are 4 widgets for measuring client and server download speeds, memory consumption and free disk space. The extension is available only for Joomla! and WordPress ( system requirements ).

Introduction


It all started this spring at RIF, where the idea was to create a CMS-independent platform for web development to easily export-import extensions, and significantly increase the number of high-quality plug-ins to CMS (by reusing quality code). This all was supposed to be ensured by the Katmandoo project (the finalist of another competition is the Russian Startup Challenge ), but its implementation was postponed until better times.
')
In order not to give the abyss of such a great idea, our team gathered a bit of strength and implemented (so far only a small) part of the pledged functionality. It has become a common API for working with a database and the most used system functionality, on the basis of which you can very easily create quite complex extensions. The platform that implements all this is called WEBO Site InSight .

WEBO Site InSight


What is there now? At the moment, this is rather an alpha version of the product that allows you to implement some arbitrary ( limited to existing API ) functionality for all supported systems. These systems are also not very many - so far only two WordPress and Joomla!, But it does not make up to cover another 5-7 popular jobs, because there is a lot of experience for them.

The product consists of several API levels: a system API for use within the extension itself, a wrapper API for the database in the CMS and an API for connecting to the most standard CMS events (onStart / onBeforeEnd / etc). The API is not rich, but it already allows you to collect and display quite interesting data about the system under study. In particular, CPU consumption and client download speed.

Yes, all extensions (widgets) for WEBO Site InSight are written uniformly for all systems (i.e. now for Joomla! And WordPress, there is no difference in the code of the widgets themselves), the API is a bit described in the Wiki here and here , we will definitely We will expand and supplement the documentation. While this is all in alpha working mode.

Plug-in example


In order not to slack off the soul, I immediately cite a code sample that provides the full functionality of a small widget. The widget displays the amount of memory consumed when creating a site page.
  <? php
 class SiteInSightWidgetRAMUsage {
	 var $ friendlyName = 'RAM Usage';
	 var $ group = 1;
	 function SiteInSightWidgetRAMUsage () {}
	 function onActivate ($ WSI) {
		 return array (
			 'dataStructure' => array (
				 'ram' => array (
					 'type' => 'int',
					 'key' => true
				 )
			 )
		 );
	 }
	 function onView ($ WSI) {
		 $ data = $ WSI-> getWidgetData ();
		 $ average = 0;
		 $ total = 0;
		 foreach ($ data as $ k => $ v) {
			 $ average + = $ v ['ram'];
			 $ total ++;
		 }
		 $ average / = ($ total? $ total: 1);
		 $ average = round (100 * $ average / 1024/1024) / 100.  'Mb';
		 return array ('short' => $ average, 'detailed' => $ average);
	 }
	 function onBeforeEnd ($ WSI, $ content) {
		 $ WSI-> storeWidgetData (array ('ram' => @memory_get_usage ()));
		 return $ content;
	 }
 } 

What the widget does: when activated (onActivate) creates a table in the database to collect values. Then, before finishing the page processing (onBeforeEnd), it records the current memory consumption. In the administrator interface (onView), the collected data is displayed (for now, as an average of memory consumption per day).

The essence of the widget is simple, but the code is insanely small. For more complex examples, you will most likely need an API extension, but for now the main function of WEBO Site InSight is to collect static information about the current site.

Ideology


As already stated a little higher, arbitrary functions are not yet supported cross-platform. And this goal was not set. We created only an analytical tool for researching the performance / quality of the site. Which could be transferred as easily as possible from site to site. And that would be free .

Yes, the basic idea is free software. All platform code and current widgets are released under the GPLv3 license, i.e. it can be used, in fact, everywhere (at least on already supported WordPress and Joomla!). No restrictions and use of the platform is not imposed (and will not be imposed).

Interface


We, apparently, too long discussed the concept of the platform and the future interface, which ultimately could not come to a final opinion. A small part of the functionality has now been implemented (in particular, there are no detailed graphs for the collected statistics, we’ll add this first), but it all looks quite neat.

Appearance of the product after installation (4 current widgets with the possibility of their activation, the widget is automatically installed from the product folder)


The appearance of the product with all the installed widgets (there is not much information, but much more data is being collected now, and the matter is small - only output them).


It is also possible right now to collapse all widgets in one block into a simple status line (done for the future, when there can be a large number of widgets and grouping blocks).


Plans and suggestions


Now we are planning
  1. add support for all familiar systems (Drupal 6, Bitrix, NetCat, CS-Cart, Magento) with the same functionality,
  2. add the output of graphs / additional information, take Raphaël as a basis, everything will be approximately as follows
  3. add settings for widgets (so that you can collect any specific data or set access details to a third-party API, for example).
  4. add a mechanism to install widgets (for now only copy the folders manually, or add to the assembly),
  5. localization, and another 1000+ other features.

The product is fully Open Source (GPLv3, and even if it changes, only in the area of ​​OSI-compatible), so we invite everyone to open test and create widgets based on the platform, and to refine the platform itself and expand it to less popular CMS (but which you maybe use every day). We need both server (for the platform kernel) and client (for the interface) programmers.

Yes, of course, your opinion and feedback from the web developer community is very important to us.

Link to Google Code project: code.google.com/p/webo-site-insight
Documentation there: code.google.com/p/webo-site-insight/w/list
Download code.google.com/p/webo-site-insight/downloads/list
Including the API for widgets code.google.com/p/webo-site-insight/wiki/WEBOSiteInSightAPI
API for database code.google.com/p/webo-site-insight/wiki/WEBOSiteInSightDBAPI

Source: https://habr.com/ru/post/106573/


All Articles