+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

Reply via email to