Download here

This module can help stopping telegram storms generated by logic plus central addresses loops. I found this happening with the module 19004 (Position display for shutters (with additional positioning input) and template 1-107 (Shutters Awnings Roof window) from Quad Client. The documentation of this template requires to have the status output as a central address for positioning input. Then after the status output changes based on positioning input a telegram storm starts repeating the same command over and over. Therefore, I needed to insert a SBC forwarder somewhere in the loop to stop this storm and let only changes to take place


At every Signal input telegram, the input value is memorized. If the input value is different than the previous value that was memorized, then it is sent by the A1 output.


Input Init Description
Input 1 0 Analog signal to be processed (float)


Output Init Description
Output 1 … (Send) 0 Same as input signal value


Recalculation during start: No  
Module is retentive: No  
Internal name: 16571  


The module is categorised in the “Expert” in the „Additional Modules“ category.

I am sharing here my experience of building an announcement system based on Formidable Pro (currently at version 2.14).

The notification system is created for membership websites where admins can send personalized notifications to single or multiple users.

1. The form is a simple form with a textarea and 2 checkboxes. Leave the checkboxes empty but check the “Use separate values” checkbox in their properties

2. The admin view and page will allow admins to create, edit and delete notifications

3. The public view will allow recipients to read and “mark as read” the notifications

4. The custom code that is explained below:

Populate user fields (Recipients and Read by in my case or field_id 124 and 212)

After adding this snippet to your functions.php file in your active theme you will get prepopulated checkboxes with current users registered for the subscriber, s2member_level1 and administrator roles. Of course you will use any number of roles you like or all existing users, just format properly the WP_User_Query

Filter the notifications view so that only notifications sent to current user will be displayed

Of course, a notification can be sent to several users at once. We need to filter entries that have current user id in the recipients list

You notice the mysql function call fn_parse_ser_array that is a custom made function. You need phpmyadmin access and rights to create functions on your database. This function is the mysql version of the PHP function unserialize.

You may try this mysql command:

Also, we would want to hide the notifications that recipients have already marked as read. First idea is to use a negate condition on field 212 but… it does not work. In fact

would work on its own but this will never work:

Therefore my solution was to hide the read notifications in the table itself by using DataTables jQuery plugin

Mark as read system for notifications

This system will both hide notifications for users that read them and will show admins who actually read their notifications

First add this snippet to functions.php file then add the [mark_as_read entry_id='[id]’] shortcode into the last column of the notifications table inside the view

Note that the attempt to use Formidable API failed in this case because instead of this new value [1,2,3] it will always insert this new value ‘[1,2,3]’ messing the checkbox values in the database… (maybe this is a Formidable but at this moment). So I had to copy the behaviour and hardcode it in the last line.

In the datatables initialization we need to add the searchCols filtering as in the next example:


Below you can copy this exported definition of the form and views for your reference and save it as xml file, then import it into Formidable plugin. Please check the fields id that may change, also in the previous section I translated Mark and Read, in the original definitions they are in Romanian language

So you have a VPS with cPanel/WHM (11.48) and want to run Varnish 4 reverse proxy to accelerate the server for your WordPress installations while monitoring Varnish 4 with Munin.

1. Install Varnish 4 – just follow these instructions

2. Configure Varnish listening port to 80 by editing /etc/sysconfig/varnish file. In same file decide where to store the cache (on disk – default option, or on memory).

3. Configure vcl files by following these instructions: Please note that you should use the backend server public IP and a chosen port such as 8080 in the <pre>backend default {}</pre> section. In default.vcl file just delete the websites filter (his wife’s websites) or modify them as necessary.

4. Tweak settings for Apache in WHM and set non-SSL port to 8080 (or another port you chosen at step 3)

5. Restart Apache and start varnish with

. If the varnish service does not start you need to debug your vcl files, most probably you introduced a typo. At this time you should be able to access all websites via varnish proxy. You can check it by accessing the WordPress websites and inspecting elements headers, you should be able to see Age and X-Varnish headers. Please do not login into backend of WordPress, the logged in users are not receiving cached files and Age header will always be 0.

6. Download varnish4_ plugin for Munin from here:

7. Edit the plugin file and change first line with:

8. Upload the file to munin plugins folder at /usr/local/cpanel/3rdparty/share/munin/plugins and make it executable (change permissions to 755)

9. Create symlinks for all necessary aspects with these commands:

10. Edit /etc/munin/plugin-conf.d/cpanel.conf file and add this section:

11. restart munin by

12. After few minutes varnish graphs will appear in WHM under Munin plugin.

Tags: , , ,

În anul 2012 am început dezvoltarea de soluții de imagistică medicală pentru domeniul stomatologic, în colaborare cu firma AWA Technics. Soluțiile vor cuprinde:

  1. un server de arhivare imagini PACS
  2. unelte de diagnostic web pentru analiza imaginilor 2D și 3D
  3. sistem de gestiune servicii medicale (workflow pacienți, modul radiologie, modul laborator, financiar)
  4. sistem CAD/CAM pentru realizarea lucrărilor protetice

Soluțiile vor fi atât dezvoltate intern cât și recomercializate de la producători consacrați, integrate într-un tot unitar pentru a susține serviciile medicale dentare ale cabinetelor de orice dimensiuni.

Sperăm ca în primăvara anului 2013 să putem lansa primele servicii și soluții dedicate acestui domeniu.

Tags: , ,

Here is a XML-RPC interface extension plugin for WordPress in order to specify the attachment author and parent post at the time of upload. It can be useful when remotely publishing posts with media galleries where the client uploads the post, receives the post_id of the newly created post then uploads a number of media files.

The plugin can be downloaded here : XMLRPC-Extended-Media-Upload or from WordPress plugins repository.

Next you may find a C# project for a Windows Form demo application that emulates a XML-RPC client which utilizes the extended API method.

You can download the C# demo solution here: VS-2010-SOLUTION-NET-XML-RPC-CLIENT-WINDOWS-FORM.

Tags: ,

Today we release the initial version for the Optio Integration Tools plugin. It can be downloaded from the WordPress plugin repository at this link:

We developed this plugin for use in Dentfix Pro’s website.

This plugin integrates Option Publishing videos in your WordPress based dentistry site by means of shortcodes. The following shortcodes are available to use:

  1. complete library [optio type=”library” scope=”all”]
  2. partial library (useful for partial subscriptions) [optio type=”library” scope=”dentistry”], [optio type=”library” scope=”orthodontics”], [optio type=”library” scope=”cosmetics”], [optio type=”library” scope=”kids”]
  3. lightbox single video [optio type=”single” scope=”dentistry/missing_tooth/implant_fixed”]
  4. option to use widget instead or in combination with shortcodes. Useful when multiple videos are related to the current post or page

== Installation ==

Upload to the /wp-content/plugins/ directory
Unzip the archive
Activate the plugin through the ‘Plugins’ menu in WordPress
Fill up the required option settings

== Frequently Asked Questions ==

= How do I use this plugin? =

First you need to have an active subscription for Optio Publishing services. You can get one here:

This plugin automatically loads all javascript and css files needed to perform the integration of Optio media library in your dentistry website.
It generates automatically a “video of the day” that is rotated every day inside the Optio Publishing Movies widget in case the current post has no related videos
defined. The definition of the related videos is made via a custom field attached to the respective post, page or custom post type.

This plugin offers multiple ways of posts – videos association management. In the Edit Post screen it introduces a specific metabox that allows for videos browsing
and addition/removal tools for the current post. Also a checkbox offers the control to cancel the usage of the association of the videos for that particular post without deleting the
association itself, this being useful for temporary suspension of the function.

Another way to manage the association of videos with posts, pages or custom post types is done via Quick Edit screens where both Quick Edit and Bulk Edit modes can be used. Functionality
is similar to one presented above.

The Optio Publishing Movies widget can be inserted into a sidebar/widgetized area. At the admin interface the plugin can be activated in various contexts, besides the single post/pages/custom post types.
Therefore the Optio Publishing Movies widget can function in homepage, archive pages, search pages, tag pages, category pages, author pages, etc. In case some context is disabled the widget can be automatically taken out
of view. This is done by using the Widget Logic plugin ( and by manual insertion of this logic statement for Optio Publishing Movies widget:
global $optiodisplay; return $optiodisplay;

In single pages the Optio Publishing Movies widget will render the video of the day in case there is no association defined for the current post. If there is an association defined, the associated video thumbnails
will be rendered in the original order of the video catalog/library. This will keep proper order of videos such as in the concept of Introduction -> Problem -> Solution.

The usage of shortcodes is quite trivial, they will be rendered in the place of usage as described in the “Plugin Description” section.

== Screenshots ==

  1. Administration interface
  2. Edit Post metabox interface
  3. Library view modal dialog
  4. Quick Edit mode interface
  5. Bulk Edit mode interface
  6. Optio Publishing Movies Widget administration interface


== Known Issues ==

1. tba

== Changelog ==

= 0.1 =
Incipient version

captura imagine website

o captura a paginii principale a sitului web

Recently we started a new project named WikiTip at This project came out from a long search of the best solution to provide a comprehensive glossary tooltip for some websites administered by us that have content in multiple languages and use different characters including simplified Chinese ones.

We came up with an server/client architecture based on a WordPress platform at the server side, with collaboration tools for developping the dictionaries, and a RESTful API based on JSON to consume the definitions from a target website. We also developed a client module for WordPress incarnated in the WikiTip Knowledge Cluster ToolTip for WordPress plugin that provides webmasters an easy tool to integrate remote definitions tooltips into their WordPress based websites. We named any wikitip site as a Knowledge Cluster since the definitions there will be clustered around a central concept.

At this point in time webmasters should ask for an account at and they will receive a free site like where they can start building (or importing) their glossaries / dictionaries. Then on their own WordPress blogs they need to install the plugin and configure it with proper credentials, pointing to their knowledge cluster. Every post in the cluster is making a definition, and any tag associated to that post is a term to be explained. Those terms can be in any language, use any kind of characters, etc. For instance an English definition of the term ming men (life gate in Chinese) will be tagged with ming, ming men, mingmen, and 命门, making all terms that should receive the definition of ming men in the target websites.

By using WPML plugin, all clusters can hold translated definitions in several languages, while keeping the tags as defined terms (some related features are still in development).

The best feature of this system is that a cluster of knowldge may be reused on multiple websites, so webmasters in the same fields or that administer multiple websites can easily consume definitions from a single cluster at

We are still developing the solution and we are now concerned with scalability issues. Because of this we have imported a bunch or dictionaries freely available in Romania at and created our own version of dexonline at Currently we have imported over 250000 definitions and over 145000 base terms with over 900000 inflected forms. We decided to implement an algorithm that is language and punctuation independent, so we need to prepare our dictionaries before actual usage in order to reduce the processing time of identification of terms in the target website page text.

Below are some results we got on our VPS with 1 processor at around 2.4GHz and 2GB RAM:

Number of terms: 145000

Terms source Preprocessing/loading dictionary object (sec) Actual search duration within the text (sec) Dictionary object size Used memory
DB (preprocessing) 38  – 2MB 161MB
Object retrieved from file cache 1,74 0,37 2MB 130MB
Object retrieved from memory cache 1,32 0,44 2MB 128MB


Number of terms: 1050000

Terms source Preprocessing/loading dictionary object (sec) Actual search duration within the text (sec) Dictionary object size Used memory
DB (preprocessing) 409  – 12MB 1GB
Object retrieved from file cache 5,19 1,2 12MB 790MB
Object retrieved from memory cache 2,18 1,09 12MB 778MB


Therefore our strategy for large clusters is to preprocess once a day the dictionary into the binary format and to save it into the file cache. Subsequently, first reader will load it from the file cache to the memory cache and all following readers will use this object from memory. If the memory cache fails by any reason, then it will be again retrieved from the file cache in reasonable time. Thus the scalability of our system allows usage of quite large dictionaries within normal user expectations.

Of course, specialized – therefore small – dictionaries will be processed in split seconds by the same algorithm.

When launching in production, the VPS will be upgraded to 8GB of RAM to accomodate several simultaneous requests against the largest knowledge clusters.

Tags: , , , ,

« Older entries

Recommended Articles

Acest site folosește cookies, continuarea utilizării sale înseamnă acceptarea folosirii lor... Mai multe informații

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.