+1000
On Fri, Jun 17, 2011 at 5:03 PM, Roger Martín <[email protected]> wrote:
> The keys to future aiki success is simplicity, modularity, clarity, and
> sturdiness.
>
> Modularity.
> =======
> For example, a simple function that return a id for a given widget-name or
> widget-id permits in few lines:
> - widget calls by name in all aiki
> - control better widget names convention,
> - control access to widget by user group in all wiki
>
> Avoid code as widget.php (the core of aiki) with method that have more than
> 1000 lines: untestable!!
>
> ------ example of modularity -----
> private function get_widget_id($widgetNameOrId){
> //Fictitious example...don't work.
> global $db,$aiki;
> if ( (int) $widgetNameOrId > 0 ){
> $field= "widget_id='$widgetNameOrId'";
> } else {
> $field= "widget_name='" .str_replace("'","",$widgetNameOrId)
> ."'";
> }
> $groupID= $aiki->membership->group_id();
> $searchSQL=
> "SELECT id FROM aiki_widgets ".
> "WHERE widget_{$field}
> " AND is_active='1' ".
> " AND (grouplevel=0 or grouplevel=$groupID )
> " LIMIT 1" ;
> return $db->get_var($searchSQL);
> }
>
>
> Clarity in little things
> ===============
> aiki class must be defined in aiki.php not in core.php
> widget.php must have a class called widget. Other, called layout.
> configs/config.php must be config file or renamed as
> configs/config-template.php
> A variable must be one purpose. For example
> $widget_id = explode("|", $data); //now widget is a array.
> $widget_id= $$widget_id[1]; // now a integer...
> .....
> Hidden hacks must be avoid ( or prosecuted!!!):
> do you know that widgets.normal_select admits two sql separated by |OR| and
> the second will be used if the first return no result?
> Why normal_select is parsed by L10?
> why a widget that contains <form></form> is not parsed by our php script?
> what is the fourth argument in (#(form:...)?
> what are the difference between (#(widget:97)#) and(#(inherit:97)#) ?
>
> sturdiness.
> ==========================
> For example, admin interface depends of AJAX. Links are like : <a href="#"
> rel="things-i-do">(1).If something go bad., how can you trace the error?
> other example: put a deliberate error in /assets/apps/admin/urls_widgets.php
> and try found it..
>
> We are using ajax in the wrong direction. If link are like <a
> href="/url/list/" rev="div-where-i-must-appears">(1), we can ajaxify calls,
> but if something go bad is more simpler see where is the error (deactivate
> javascript)
>
>
> Conclusions
> =========
> realization of new ideas depends on change our programing style. Then, the
> priority must be:
> - refactor widget and forms.
> - robust admin interface
> - new update procedure.
> So..basically we are in the good.
>
>
>
> (1) see http://www.aikiframework.org/wiki/Aikimarkup
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~aikiframework-devel
> Post to : [email protected]
> Unsubscribe : https://launchpad.net/~aikiframework-devel
> More help : https://help.launchpad.net/ListHelp
>
>
--
———
christopher adams
86 186 1172 0021 | 1 646 201 3335
49 15 156 219931 | 886 953 036 630
chris.raysend.com
_______________________________________________
Mailing list: https://launchpad.net/~aikiframework-devel
Post to : [email protected]
Unsubscribe : https://launchpad.net/~aikiframework-devel
More help : https://help.launchpad.net/ListHelp