PHPackages                             dromero86/halcon - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. dromero86/halcon

ActiveProject

dromero86/halcon
================

Backend for tero

1.0.0(6y ago)0101MITJavaScript

Since Jun 4Pushed 4y ago1 watchersCompare

[ Source](https://github.com/dromero86/halcon)[ Packagist](https://packagist.org/packages/dromero86/halcon)[ Docs](https://github.com/dromero86/halcon)[ RSS](/packages/dromero86-halcon/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

 [ ![Tero](https://camo.githubusercontent.com/9c1c61330962f621de8fcf21ab0c0d416a626d2f94a2eb1701edb3f38990875a/68747470733a2f2f63646e2e6472696262626c652e636f6d2f75736572732f38363638322f73637265656e73686f74732f31313436343437322f7365616861776b5f6d656469615f73696d6f6e5f32782e706e67) ](https://github.com/dromero86/halcon/)

### HALCON UI FRAMEWORK

[](#halcon-ui-framework)

---

Halcon is a ui web framework for Javascript thought for the simple writing and fast resolution of problems.

### About Halcon

[](#about-halcon)

Halcon esta escrito en javascript para soportar [Webix 7+](https://webix.com/)

#### Tareas de Halcon

[](#tareas-de-halcon)

- Gestionar la carga secuencial de recursos js, css, json, ico, jpg, png, gif, svg.
- Actuar como "Module loader" de recursos js simil [RequireJS](https://requirejs.org/)
- Generar un preloading mientras se cargan los recursos
- Evitar el cache agregando el parametro extra "refresh=hash()"
- Detectar el dispositivo para ajustarse a la visualizacion
- Generar metodos helper de url como base\_url, req, GET, POST entre otros.
- Mostrar path con el stilo de java "sdk.my\_dir.my\_other\_dir"

### Vincular Halcon con Tero

[](#vincular-halcon-con-tero)

```
$App->get('index', function ()
{
    $this->data->set("rand",rand(111,999) );
    $this->parser->parse(BASEPATH."sdk/index.html", $this->data->get());
});
```

### Configurar los sources

[](#configurar-los-sources)

Editar el archivo sdk/config/sources.json

```
[
    { "tag" : "json"   , "cache": true, "url": "config/app.json"          },
    { "tag" : "icon"   , "cache": true, "url": "ui/img/favicon.ico"       },
    { "tag" : "link"   , "cache": true, "url": "sys/core/webix/webix.css" },
    { "tag" : "link"   , "cache": true, "url": "ui/css/font_awesome/css/font-awesome.min.css"   },
    { "tag" : "link"   , "cache": true, "url": "ui/css/sidebar.css"       },
    { "tag" : "link"   , "cache": true, "url": "ui/css/waves.css"         },
    { "tag" : "link"   , "cache": true, "url": "ui/css/admin.css"         },
    { "tag" : "script" , "cache": true, "url": "sys/core/webix/webix.js"  },
    { "tag" : "script" , "cache": true, "url": "sys/core/b64.js"          },
    { "tag" : "script" , "cache": true, "url": "sys/core/helper.js"       },
    { "tag" : "script" , "cache": true, "url": "sys/core/noback.js"       },
    { "tag" : "script" , "cache": true, "url": "sys/core/waves.js"        },
    { "tag" : "script" , "cache": true, "url": "sys/plugins/sidebar.js"   },
    { "tag" : "script" , "cache": true, "url": "sys/plugins/mainbar.js"   },
    { "tag" : "script" , "cache": true, "url": "sys/plugins/datalist.js"  },
    { "tag" : "script" , "cache": true, "url": "sys/plugins/formview.js"  },
    { "tag" : "script" , "cache": true, "url": "sys/plugins/cards.js"     },
    { "tag" : "script" , "cache": true, "url": "app/main.js"              }
]
```

### Definir un modulo

[](#definir-un-modulo)

```
//defino un modulo javascript en la ruta sdk/app/settings/main.js
app.define("app.settings.main", function()
{
	//mi codigo javascript

});
```

### Invocar un modulo

[](#invocar-un-modulo)

```
app.require("app.settings.main", function()
{
	//cuando sdk/app/settings/main.js este cargada se invocara esta funcion

});
```

### Definir un modulo que retorne un valor

[](#definir-un-modulo-que-retorne-un-valor)

```
//defino un modulo javascript en la ruta sdk/app/settings/main.js
app.define("app.settings.main", function()
{
	var persona = {
		nombre:"John Doe",
		edad: 35
	};

	return persona;
});
```

### Invocar un modulo que retorna un valor

[](#invocar-un-modulo-que-retorna-un-valor)

```

app.require("app.settings.main", function(persona)
{
	//cuando sdk/app/settings/main.js este cargada se invocara esta funcion

	console.log(persona); // { "nombre": "John Doe", "edad":35 }

});
```

### Configurar la aplicacion

[](#configurar-la-aplicacion)

Editar el archivo sdk/config/app.json

```
{
	"name"    : "El nombre de la aplicacion",
	"jsonp"   : false,
	"domain"  : "el servidor donde esta alojada la aplicacion",
	"session" :
	{
		"enable" : false, //si es true se habilita la session
		"login"  : "la url de autenticacion"  ,
		"check"  : "la url que checquea si esta con session activa" ,
		"logout" : "la url de deslogueo" ,
		"key"    : "la clave de localstorage"
	}
}
```

### Como configurar la session

[](#como-configurar-la-session)

- Debe establecer en sdk/config/app.json session.enable = true;
- Para customizar el widget del login debe editar "sys.widget.login"
- Para customizar el widget del logout debe editar "sys.widget.logout"
- Para obtener el objeto session utlice el helper "\_\_.userInfo();"

### Como crear abms en 2 pasos

[](#como-crear-abms-en-2-pasos)

Para utilizar esta caracteristica debe tener instalado y configurado en Tero

- Database
- Telepatia
- Schema
- Controladores de abm.php (\*-update, \*-row)

y tener creado el controlador "databot"

```
if($App->session->recv() !=FALSE )
{
    $App->schema->load();

    $App->get("databot", function($rid="")
    {
        $this->schema->start_server();
    });
}
```

### Configurar el table list

[](#configurar-el-table-list)

Crear el archivo sdk/app/abm/personas\_view.js Debe tener una tabla llamada personas

```
app.define("app.abm.personas_view",function()
{
    webix.ui
    ({
        id     : 'content'  ,
        view   : "datalist" ,
        title  : "TITULO DEL ABM" ,
        form   : "app.abm.personas_form", //vinculo para cuando seleccione un registro o cuando agregue uno nuevo
        store  : "objeto_interno_con_el_nombre_de_tabla" ,
        columns: [
            {id:"nombre"  , header:"Nombre" , sort: 'string' , fillspace: true },
            {id:"edad"    , header:"Edad"   , sort: 'string' , adjust: true }
        ],
        query : {
            select:
            {
                from:"clientes",
                field: [ "id","nombre","edad" ]
            }
        }
    },
    $$('content'));
});
```

### Configurar el table form

[](#configurar-el-table-form)

Crear el archivo sdk/app/abm/personas\_form.js

```
app.define("app.abm.personas_form",function()
{
    webix.ui
    ({
        id       : 'content',
        view     : "formview",
        dataview : "app.abm.personas_view",
        update   : "personas-update",
        source   : {"action": "personas-row","id": __.defAttr("personas", 0, "id" ) },
        store    : "personas",
        title_set: __.defAttr("personas", "", "nombre" ),
        title_add: "NUEVA PERSONA",
        elements :
        {
            padding:25,
            rows:
            [
                {
                    cols:
                    [
                        {
                            "name": "nombre",
                            "view": "text",
                            "label": "Nombre",
                            "labelPosition": "top"
                        },
                        { width: 25 },
                        {
                            "name": "edad",
                            "view": "text",
                            "label": "Edad",
                            "labelPosition":"top"
                        }
                    ]
                },
		{}
            ]
        }
    },
    $$('content'));

});
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2536d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b8bc370948145d2f90b4cfc39f354c595d1fa916c0a5feb8da089543679479c?d=identicon)[dromero86](/maintainers/dromero86)

---

Top Contributors

[![dromero86](https://avatars.githubusercontent.com/u/1489687?v=4)](https://github.com/dromero86 "dromero86 (25 commits)")

### Embed Badge

![Health badge](/badges/dromero86-halcon/health.svg)

```
[![Health](https://phpackages.com/badges/dromero86-halcon/health.svg)](https://phpackages.com/packages/dromero86-halcon)
```

###  Alternatives

[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k15.7k5](/packages/elgg-elgg)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

44643.1k1](/packages/pressbooks-pressbooks)[johnbillion/user-switching

Instant switching between user accounts in WordPress and WooCommerce.

19768.3k2](/packages/johnbillion-user-switching)[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/user-plugin

User plugin for October CMS

11954.3k13](/packages/rainlab-user-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
