Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

app inicial de kumbiaphp

  • Loading branch information...
commit 36e9fd9fa471c0de2fae09dddbb945239726361e 1 parent 533a77e
@joanhey authored
Showing with 13,588 additions and 0 deletions.
  1. +6 −0 .htaccess
  2. +1 −0  app/.htaccess
  3. +36 −0 app/config/config.ini
  4. +35 −0 app/config/databases.ini
  5. +26 −0 app/config/routes.ini
  6. +12 −0 app/controllers/index_controller.php
  7. +44 −0 app/controllers/pages_controller.php
  8. +18 −0 app/libs/active_record.php
  9. +23 −0 app/libs/app_controller.php
  10. +31 −0 app/libs/application_controller.php
  11. +7 −0 app/libs/bootstrap.php
  12. +76 −0 app/libs/scaffold_controller.php
  13. +14 −0 app/libs/view.php
  14. BIN  app/locale/es_ES/LC_MESSAGES/default.mo
  15. +13 −0 app/locale/es_ES/LC_MESSAGES/default.po
  16. +24 −0 app/views/_shared/errors/404.phtml
  17. +19 −0 app/views/_shared/partials/kumbia/footer.phtml
  18. +34 −0 app/views/_shared/partials/kumbia/prototype.phtml
  19. +12 −0 app/views/_shared/scaffolds/kumbia/crear.phtml
  20. +37 −0 app/views/_shared/scaffolds/kumbia/index.phtml
  21. +27 −0 app/views/_shared/scaffolds/kumbia/ver.phtml
  22. +28 −0 app/views/_shared/templates/default.phtml
  23. +29 −0 app/views/_shared/templates/default.phtml~
  24. +17 −0 app/views/index/index.phtml
  25. +69 −0 app/views/pages/kumbia/status.phtml
  26. +122 −0 app/views/pages/kumbia/status.phtml~
  27. +20 −0 index.php
  28. +20 −0 public/.htaccess
  29. +17 −0 public/.htaccess~
  30. +132 −0 public/css/bienvenida.css
  31. +511 −0 public/css/datepicker.css
  32. +67 −0 public/css/exception.css
  33. 0  public/css/index.html
  34. +139 −0 public/css/scaffold.css
  35. +60 −0 public/css/style.css
  36. 0  public/files/index.html
  37. BIN  public/img/button-add.png
  38. BIN  public/img/button-delete.png
  39. BIN  public/img/button-h.png
  40. BIN  public/img/button.png
  41. BIN  public/img/datepicker/backstripes.gif
  42. BIN  public/img/datepicker/bg_header.jpg
  43. BIN  public/img/datepicker/bullet1.gif
  44. BIN  public/img/datepicker/bullet2.gif
  45. BIN  public/img/datepicker/cal-grey.gif
  46. BIN  public/img/datepicker/cal.gif
  47. BIN  public/img/datepicker/gradient-e5e5e5-ffffff.gif
  48. BIN  public/img/default/error.png
  49. BIN  public/img/default/head.png
  50. 0  public/img/default/index.html
  51. BIN  public/img/default/info.png
  52. BIN  public/img/default/kumbia.png
  53. BIN  public/img/default/valid.png
  54. BIN  public/img/default/warning.png
  55. 0  public/img/index.html
  56. BIN  public/img/site_logo.gif
  57. BIN  public/img/spin.gif
  58. BIN  public/img/spinner.gif
  59. 0  public/index.html
  60. +81 −0 public/index.php
  61. +87 −0 public/index.php.~1~
  62. +63 −0 public/index.php.~2~
  63. +81 −0 public/index.php~
  64. +2,885 −0 public/javascript/datepicker/datepicker.js
  65. +9 −0 public/javascript/datepicker/lang/ar.js
  66. +9 −0 public/javascript/datepicker/lang/cs.js
  67. +10 −0 public/javascript/datepicker/lang/da.js
  68. +10 −0 public/javascript/datepicker/lang/de.js
  69. +9 −0 public/javascript/datepicker/lang/en.js
  70. +13 −0 public/javascript/datepicker/lang/eo.js
  71. +9 −0 public/javascript/datepicker/lang/es.js
  72. +23 −0 public/javascript/datepicker/lang/et.js
  73. +7 −0 public/javascript/datepicker/lang/fi.js
  74. +69 −0 public/javascript/datepicker/lang/fr.js
  75. +9 −0 public/javascript/datepicker/lang/he.js
  76. +9 −0 public/javascript/datepicker/lang/hu.js
  77. +9 −0 public/javascript/datepicker/lang/id.js
  78. +11 −0 public/javascript/datepicker/lang/it.js
  79. +9 −0 public/javascript/datepicker/lang/kr.js
  80. +8 −0 public/javascript/datepicker/lang/lt.js
  81. +9 −0 public/javascript/datepicker/lang/lv.js
  82. +9 −0 public/javascript/datepicker/lang/nl.js
  83. +9 −0 public/javascript/datepicker/lang/no.js
  84. +10 −0 public/javascript/datepicker/lang/pl.js
  85. +11 −0 public/javascript/datepicker/lang/pt-br.js
  86. +9 −0 public/javascript/datepicker/lang/pt.js
  87. +11 −0 public/javascript/datepicker/lang/ru.js
  88. +9 −0 public/javascript/datepicker/lang/se.js
  89. +9 −0 public/javascript/datepicker/lang/si.js
  90. +9 −0 public/javascript/datepicker/lang/tr.js
  91. 0  public/javascript/index.html
  92. +169 −0 public/javascript/jquery/jquery+kumbiaphp.min.js
  93. +263 −0 public/javascript/jquery/jquery.kumbiaphp.js
  94. +5 −0 public/javascript/jquery/jquery.kumbiaphp.min.js
  95. +167 −0 public/javascript/jquery/jquery.min.js
  96. +274 −0 public/javascript/kumbia/base.js
  97. +238 −0 public/javascript/kumbia/code.js
  98. 0  public/javascript/kumbia/index.html
  99. +6 −0 public/javascript/kumbia/main.php
  100. +454 −0 public/javascript/kumbia/tree.js
  101. +136 −0 public/javascript/scriptaculous/builder.js
  102. +965 −0 public/javascript/scriptaculous/controls.js
  103. +137 −0 public/javascript/scriptaculous/debug.js
  104. +975 −0 public/javascript/scriptaculous/dragdrop.js
  105. +1,130 −0 public/javascript/scriptaculous/effects.js
  106. +113 −0 public/javascript/scriptaculous/extended_debug.js
  107. 0  public/javascript/scriptaculous/index.html
  108. +1 −0  public/javascript/scriptaculous/prototype.js
  109. +60 −0 public/javascript/scriptaculous/scriptaculous.js
  110. +275 −0 public/javascript/scriptaculous/slider.js
  111. +55 −0 public/javascript/scriptaculous/sound.js
  112. +241 −0 public/javascript/scriptaculous/tooltip.js
  113. +568 −0 public/javascript/scriptaculous/unittest.js
  114. +1,843 −0 public/javascript/scriptaculous/window.js
  115. +157 −0 public/javascript/scriptaculous/window_effects.js
  116. +115 −0 public/javascript/scriptaculous/window_ext.js
  117. 0  public/temp/index.phtml
View
6 .htaccess
@@ -0,0 +1,6 @@
+DirectoryIndex index.php
+<IfModule mod_rewrite.c>
+ RewriteEngine on
+ RewriteRule ^$ public/ [L]
+ RewriteRule (.*) public/$1 [L]
+</IfModule>
View
1  app/.htaccess
@@ -0,0 +1 @@
+deny from all
View
36 app/config/config.ini
@@ -0,0 +1,36 @@
+;; Configuracion de Aplicacion
+
+; Explicación de la Configuración:
+
+; name: Es el nombre de la aplicación
+; timezone: Es la zona horaria que usará el framework
+; production: Indica si esta en producción
+; database: base de datos a utilizar
+; dbdate: Formato de Fecha por defecto de la Applicación
+; debug: muestra los errores en pantalla (On|off)
+; log_exceptions: muestra las excepciones en pantalla (On|off)
+; charset: codificacion de caracteres
+; cache_driver: driver para la cache (file, sqlite, memsqlite)
+; metadata_lifetime: Tiempo de vida de la metadata cacheada
+; locale: Localicazion
+; routes: para activar los routes.ini
+
+
+; ¡¡¡ ADVERTENCIA !!!
+; Cuando se efectua el cambio de production=Off, a production=On, es necesario eliminar
+; el contenido del directorio de cache de la aplicacion para que se renueve
+; la metadata
+
+[application]
+name = "KUMBIA PROJECT"
+;timezone = "America/New_York"
+production = Off
+database = development
+dbdate = YYYY-MM-DD
+debug = On
+log_exceptions = On
+charset = UTF-8
+cache_driver = file
+;metadata_lifetime = "+1 year"
+;locale = es_ES
+;routes = On
View
35 app/config/databases.ini
@@ -0,0 +1,35 @@
+; Kumbia Web Framework Configuration
+
+; Parámetros de base de datos
+; Utiliza el nombre del controlador nativo (mysql, pgsql, oracle)
+; Coloca database.pdo = On si usas PHP Data Objects
+
+[development]
+host = localhost
+username = root
+password =
+name = test
+type = mysql
+
+[production]
+host = localhost
+username = root
+password =
+name = test
+type = mysql
+
+;Ejemplo de SQLite
+
+;[development]
+;dsn = "test/data.db"
+;type = sqlite
+;pdo = On
+
+;Ejemplo de PDO con MySQL
+
+;[development]
+;dsn = "host=localhost;dbname=test"
+;username = root
+;password =
+;type = mysql
+;pdo = On
View
26 app/config/routes.ini
@@ -0,0 +1,26 @@
+; Usa este archivo para definir el enrutamiento estatico entre
+; controladores y sus acciones
+;
+; Un controlador se puede enrutar a otro controlador utlizando '*' como
+; comodin así:
+; /controlador1/accion1/valor_id1 = controlador2/accion2/valor_id2
+;
+; Ej:
+; Enrutar cualquier petición a posts/adicionar a posts/insertar/*
+; /posts/adicionar/* = posts/insertar/*
+;
+; Enrutar cualquier petición a cualquier controlador en la accion
+; adicionar a posts/adicionar/*
+; /*/adicionar/* = posts/insertar/*
+
+[routes]
+;/prueba/ruta1/* = prueba/ruta2/*
+;/prueba/ruta2/* = prueba/ruta3/*
+
+; Muestra la info relacionado con el framework
+/ = index/index
+
+; Status del config.ini
+/status/ = pages/show/kumbia/status
+
+
View
12 app/controllers/index_controller.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Controller por defecto si no se usa el routes
+ *
+ */
+class IndexController extends AppController
+{
+ public function index()
+ {
+
+ }
+}
View
44 app/controllers/pages_controller.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Controller para el manejo de páginas estáticas, aunque
+ * se puede utilizar como cualquier otro controller haciendo uso
+ * de los Templates, Layouts y Partials.
+ * los parámetros pasados al metodo show() indican vistas que están en views/pages/
+ * manteniendo su estructura en directorios
+ * Ejemplo:
+ *
+ * Ej.
+ * dominio.com/pages/show/organizacion/privacidad
+ * enseñara la vista views/pages/organizacion/privacidad.phtml
+ *
+ * dominio.com/pages/show/aviso
+ * enseñara la vista views/pages/aviso.phtml
+ *
+ * También se puede usar el routes.ini para llamarlo con otro nombre,
+ * /aviso = pages/show/aviso
+ * Asi al ir a dominio.com/aviso enseñara la vista views/pages/aviso.phtml
+ *
+ * /organizacion/* = pages/show/organizacion/*
+ * Al ir a dominio.com/organizacion/privacidad enseñará la vista en views/organizacion/privacidad.phtml
+ *
+ * Ademas se pueden utilizar Helpers
+ * <?php echo link_to('pages/show/aviso', 'Ir Aviso') ?>
+ * Mostrara un link que al hacer click ira a dominio.com/pages/show/aviso
+ *
+ */
+class PagesController extends AppController
+{
+ protected function before_filter()
+ {
+ $this->limit_params = false;
+ // Si es AJAX enviar solo el view
+ if (Input::isAjax()) {
+ View::template(NULL);
+ }
+ }
+
+ public function show()
+ {
+ View::select(implode('/', $this->parameters));
+ }
+}
View
18 app/libs/active_record.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * ActiveRecord
+ *
+ * Esta clase es la clase padre de todos los modelos
+ * de la aplicacion
+ *
+ * @category Kumbia
+ * @package Db
+ * @subpackage ActiveRecord
+ */
+
+// Carga el active record
+Load::coreLib('kumbia_active_record');
+
+class ActiveRecord extends KumbiaActiveRecord {
+
+}
View
23 app/libs/app_controller.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Todas las controladores heredan de esta clase en un nivel superior
+ * por lo tanto los metodos aqui definidos estan disponibles para
+ * cualquier controlador.
+ *
+ * @category Kumbia
+ * @package Controller
+ **/
+
+// @see Controller nuevo controller
+require_once CORE_PATH . 'kumbia/controller.php';
+
+class AppController extends Controller {
+
+ final protected function initialize()
+ {
+ }
+
+ final protected function finalize()
+ {
+ }
+}
View
31 app/libs/application_controller.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Antiguo Application Controller desaconsejado, ahora se usa el AppController
+ * Todas las controladores heredan de esta clase en un nivel superior
+ * por lo tanto los metodos aqui definidos estan disponibles para
+ * cualquier controlador.
+ *
+ * @category Kumbia
+ * @package Controller
+ * @deprecated
+ **/
+
+// Para cargar los helpers antiguos
+require_once CORE_PATH . 'extensions/helpers/tags.php';
+
+// @see Controller antiguo por compatibilidad
+require_once CORE_PATH . 'kumbia/controller_deprecated.php';
+
+class ApplicationController extends ControllerDeprecated {
+
+ final protected function initialize()
+ {
+ }
+
+ final protected function finalize()
+ {
+ parent::finalize();// No tocar
+ // Añadir código aqui
+
+ }
+}
View
7 app/libs/bootstrap.php
@@ -0,0 +1,7 @@
+<?php
+// Bootstrap de la aplicacion para personalizarlo
+// Para cargar cambia en public/index.php el require del bootstrap a app
+
+// Arranca KumbiaPHP
+require_once CORE_PATH . 'kumbia/bootstrap.php';
+
View
76 app/libs/scaffold_controller.php
@@ -0,0 +1,76 @@
+<?php
+
+class ScaffoldController extends AppController {
+
+ public $scaffold = 'kumbia';
+ public $model;
+
+ public function index($page=1)
+ {
+ $this->results = Load::model($this->model)->paginate("page: $page", 'order: id desc');
+ }
+
+ /**
+ * Crea un Registro
+ */
+ public function crear ()
+ {
+ if(Input::hasPost($this->model)){
+
+ $obj = Load::model($this->model);
+ //En caso que falle la operación de guardar
+ if(!$obj->save(Input::post($this->model))){
+ Flash::error('Falló Operación');
+ //se hacen persistente los datos en el formulario
+ $this->{$this->model} = $obj;
+ return;
+ }
+ return Router::redirect();
+ }
+ // Solo es necesario para el autoForm
+ $this->{$this->model} = Load::model($this->model);
+ }
+
+ /**
+ * Edita un Registro
+ */
+ public function editar($id)
+ {
+ View::select('crear');
+
+ //se verifica si se ha enviado via POST los datos
+ if(Input::hasPost($this->model)){
+ $obj = Load::model($this->model);
+ if(!$obj->update(Input::post($this->model))){
+ Flash::error('Falló Operación');
+ //se hacen persistente los datos en el formulario
+ $this->{$this->model} = Input::post($this->model);
+ } else {
+ return Router::redirect();
+ }
+ }
+
+ //Aplicando la autocarga de objeto, para comenzar la edición
+ $this->{$this->model} = Load::model($this->model)->find((int)$id);
+
+ }
+
+ /**
+ * Borra un Registro
+ */
+ public function borrar($id)
+ {
+ if (!Load::model($this->model)->delete((int)$id)) {
+ Flash::error('Falló Operación');
+ }
+ //enrutando al index para listar los articulos
+ Router::redirect();
+ }
+
+ /**
+ * Ver un Registro
+ */
+ public function ver($id) {
+ $this->result = Load::model($this->model)->find_first((int)$id);
+ }
+}
View
14 app/libs/view.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Esta clase permite extender o modificar la clase ViewBase de Kumbiaphp.
+ *
+ * @category KumbiaPHP
+ * @package View
+ **/
+
+// @see KumbiaView
+require_once CORE_PATH . 'kumbia/kumbia_view.php';
+
+class View extends KumbiaView {
+
+}
View
BIN  app/locale/es_ES/LC_MESSAGES/default.mo
Binary file not shown
View
13 app/locale/es_ES/LC_MESSAGES/default.po
@@ -0,0 +1,13 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2009-05-22 00:29-0400\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Country: SPAIN\n"
+
View
24 app/views/_shared/errors/404.phtml
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>KumbiaPHP web &amp; app Framework</title>
+ <link rel="stylesheet" href="<?php echo PUBLIC_PATH ?>css/style.css" />
+</head>
+<body>
+ <div style="text-align: center; margin: 50px; font-size: 12pt; background-color: transparent; font-family: Lucida Grande, Verdana, Sans-serif;">
+ <table align="center" id="content" style="background-color: #fff; border: #999 1px solid; padding: 10px 10px 6px 10px; width: 50%;">
+ <tbody>
+ <tr>
+ <td style="width: 5%">
+ <a href="http://www.kumbiaphp.com"><img src="<?php echo PUBLIC_PATH ?>img/site_logo.gif" alt="Kumbia PHP Framework"/></a>
+ </td>
+ <td>
+ <h1 style="font-size: 14pt; color: #990000; margin: 0 0 4px 0;">ERROR 404</h1>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+</body>
+</html>
View
19 app/views/_shared/partials/kumbia/footer.phtml
@@ -0,0 +1,19 @@
+<div id="footer">
+ <div class='alignleft'>
+ <ul class="links" >
+ <li><a href='http://www.kumbiaphp.com/'>KumbiaPHP Framework</a> |</li>
+ <li><a href='http://wiki.kumbiaphp.com/'>Wiki</a> |</li>
+ <li><a href='http://ufpr.dl.sourceforge.net/sourceforge/kumbia/Manual_Kumbia_PHP_Framework_v0-5.pdf'>Manual PDF</a> |</li>
+ <li><a href='http://wiki.kumbiaphp.com/Indice'>Manual Online</a> |</li>
+ <li><a href='http://wiki.kumbiaphp.com/Licencia' title='New BSD'>Licencia</a></li>
+ </ul>
+ </div>
+ <div class='alignright'>
+ <p>Ayuda Online: <a href='irc://irc.freenode.org/#kumbiaphp' title="IRC donde podrás encontrar ayuda a problemas que tengas, hacer comentarios, proponer ideas, reportar bugs, socializar temas relacionados y disfrutar de KumbiaPHP.">IRC</a> |
+ <a href='http://webchat.freenode.net/?channels=kumbiaphp' title="Web Chat IRC donde podrás encontrar ayuda a problemas que tengas, hacer comentarios, proponer ideas, reportar bugs, socializar temas relacionados y disfrutar de KumbiaPHP.">Web IRC</a> |
+ <a href='http://groups.google.com/group/kumbia' title="Lista de Correo de KumbiaPHP donde podrás encontrar ayuda a problemas que tengas, hacer comentarios, proponer ideas, reportar bugs, socializar temas relacionados y disfrutar de KumbiaPHP.">Grupo</a> | <a href='http://foro.kumbiaphp.com' title="Foro de KumbiaPHP donde podrás encontrar ayuda a problemas que tengas, hacer comentarios, proponer ideas, reportar bugs, socializar temas relacionados y disfrutar de KumbiaPHP.">Foro</a></p>
+ </div>
+ <div class='alignleft clear'><a href='http://wiki.kumbiaphp.com/Team_Development_KumbiaPHP_Framework'>© 2009 KumbiaPHP Team</a></div>
+ <div class='alignright'><p><?php echo 'Tiempo: '.round((microtime(1)-START_TIME),4).' seg.'; echo ', Memoria Usada: '.number_format(memory_get_usage() / 1048576, 2).' MB';?></p></div>
+</div>
+
View
34 app/views/_shared/partials/kumbia/prototype.phtml
@@ -0,0 +1,34 @@
+<?php
+/**
+ * KumbiaPHP web & app Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://wiki.kumbiaphp.com/Licencia
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@kumbiaphp.com so we can send you a copy immediately.
+ *
+ * Esta es la clase principal del framework, contiene metodos importantes
+ * para cargar los controladores y ejecutar las acciones en estos ademas
+ * de otras funciones importantes
+ *
+ * @category Kumbia
+ * @package Partials
+ * @copyright Copyright (c) 2005-2009 Kumbia Team (http://www.kumbiaphp.com)
+ * @license http://wiki.kumbiaphp.com/Licencia New BSD License
+ */
+
+extract(Router::get(), EXTR_OVERWRITE);
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/scriptaculous/prototype.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/scriptaculous/effects.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/scriptaculous/dragdrop.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/kumbia/base.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/kumbia/validations.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/kumbia/main.php?module=$module&amp;path=" . urlencode(PUBLIC_PATH) . "&amp;controller=$controller&amp;action=$action&amp;id=$id'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/kumbia/swfobject.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/scriptaculous/unittest.js'></script>";
+echo "<script type='text/javascript' src='", PUBLIC_PATH, "javascript/scriptaculous/scriptaculous.js'></script>";
View
12 app/views/_shared/scaffolds/kumbia/crear.phtml
@@ -0,0 +1,12 @@
+<?php Tag::css('scaffold') ?>
+<div id="scaffold">
+<?php View::content();?>
+<h1><?php echo ucwords("$model"),": <span>$action_name</span>" ?></h1>
+
+<?php ModelForm::create($$model)?>
+
+<div class="actions">
+ <a href="../">Listado</a>
+</div>
+<?php //View::partial('editors/tinymce') // ya veremos si incluimos algun wysiwyg?>
+</div>
View
37 app/views/_shared/scaffolds/kumbia/index.phtml
@@ -0,0 +1,37 @@
+<?php Tag::css('scaffold')?>
+<div id="scaffold">
+<?php View::content()?>
+<h1><?php echo ucwords("$model"),": <span>$action_name</span>" ?></h1>
+<?php if ($results->items) : ?>
+<table>
+ <thead><tr>
+ <?php foreach (current($results->items)->fields as $field) : ?>
+ <th><?php echo (current($results->items)->get_alias($field))?></th>
+ <?php endforeach?>
+ <th>Acciones</th>
+ </tr></thead>
+ <tbody>
+ <?php foreach ($results->items as $item) : ?>
+ <tr>
+ <?php foreach ($item->fields as $field) : ?>
+ <td><?php eh($item->$field)?></td>
+ <?php endforeach?>
+ <td><?php echo Html::linkAction("ver/$item->id",'Ver')?> |
+ <?php echo Html::linkAction("editar/$item->id",'Editar')?> |
+ <?php echo Html::linkAction("borrar/$item->id",'Borrar', 'onclick="return confirm(\'¿Está seguro?\')"')?>
+ </td>
+ </tr>
+ <?php endforeach?>
+ </tbody>
+</table>
+<?php View::partial('paginators/digg', false, array('page' => $results ,'url' => Router::get('controller_path').'/index')); ?>
+
+<?php else : // Si no hay items?>
+<h2>No hay ningún registro</h2>
+<?php endif ?>
+
+</div>
+<div class="actions">
+ <?php echo Html::linkAction("crear/",'Crear registro')?>
+</div>
+<?php //var_dump($results)?>
View
27 app/views/_shared/scaffolds/kumbia/ver.phtml
@@ -0,0 +1,27 @@
+<?php Tag::css('scaffold') ?>
+<div id="scaffold">
+<?php View::content()?>
+<?php if($result) : ?>
+ <h1><?php echo ucwords("$model"),": <span>$action_name</span>" ?></h1>
+ <ul>
+ <?php foreach ($result->fields as $field) : ?>
+ <li><strong><?php echo $result->alias[$field]?> :</strong> <?php eh($result->$field) ?></li>
+ <?php endforeach ?>
+ </ul>
+
+ <div class="actions">
+ <a href="../">Listado</a>
+ <a href="../crear/">Crear registro</a>
+ <a href="../editar/<?php echo $result->id?>">Editar</a>
+ <a class="del" title="¿Seguro que quiere borrar?" href="../borrar/<?php echo $result->id?>" onclick="return confirm('¿Está seguro?');">Borrar</a>
+ </div>
+<?php else : ?>
+ <?php header("HTTP/1.0 404 Not Found")?>
+ <h1>No existe</h1>
+ <div class="actions">
+ <a href="../">Listado</a>
+ <a href="../crear/">Crear registro</a>
+ </div>
+<?php endif ?>
+ <pre><?php //var_dump($result)?></pre>
+ </div>
View
28 app/views/_shared/templates/default.phtml
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="es">
+ <head>
+ <meta http-equiv='Content-type' content='text/html; charset=<?php echo APP_CHARSET ?>' />
+ <title>KumbiaPHP web &amp; app Framework</title>
+ <?php Tag::css('bienvenida') ?>
+ <?php Tag::css('style') ?>
+ <?php echo Html::includeCss() ?>
+</head>
+<body>
+ <div id='content'>
+ <div id='head'>
+ <h1 id='logo'>KumbiaPHP</h1><div id='info-app'>web &amp; app Framework versión <?php echo kumbia_version() ?></div>
+
+ <div class='alignright'>
+ <p id='config'>
+ <span class='app'><?php echo basename(dirname(APP_PATH)) ?></span>
+ <?php echo Html::link('pages/show/kumbia/status/', 'Config', 'title="Ver configuración de la aplicación"') ?>
+ </p>
+ </div>
+ </div>
+
+ <?php View::content(); ?>
+
+ <?php View::partial('kumbia/footer') ?>
+ </div>
+</body>
+</html>
View
29 app/views/_shared/templates/default.phtml~
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv='Content-type' content='text/html; charset=<?php echo APP_CHARSET ?>' />
+ <title>KumbiaPHP web &amp; app Framework</title>
+ <?php echo stylesheet_link_tag('bienvenida') ?>
+ <?php echo stylesheet_link_tag('style') ?>
+ <?php echo stylesheet_link_tag('exception') ?>
+ <?php echo stylesheet_link_tags(); ?>
+</head>
+<body>
+ <div id='content'>
+ <div id='head'>
+ <h1 id='logo'>KumbiaPHP</h1><div id='info-app'>web &amp; app Framework versión <?php echo Kumbia::KUMBIA_VERSION ?></div>
+
+ <div class='alignright'>
+ <p id='config'>
+ <span class='app'><?php echo APP ?></span>
+ <?php echo link_to('status/', 'Config', 'title: Ver configuración de '.APP) ?>
+ </p>
+ </div>
+ </div>
+
+ <?php View::content(); ?>
+
+ <?php View::partial('kumbia/footer') ?>
+ </div>
+</body>
+</html>
View
17 app/views/index/index.phtml
@@ -0,0 +1,17 @@
+<div id='logo-kumbia'><?php echo Html::img('default/kumbia.png','KumbiaPHP logo') ?></div>
+ <div id='info'>
+ <h1>KumbiaPHP está listo para usarse</h1>
+ <p><strong>Bienvenido a KumbiaPHP Framework</strong>. El framework ya está listo para desarrollar aplicaciones web con PHP, rápida y fácilmente
+ , sin tener que reinventar la rueda, y preocupandose por lo más importante, la lógica de su aplicación.</p>
+ <h2>Como empezar</h2>
+ <p>En nuestra <a href="http://wiki.kumbiaphp.com/">wiki</a> podrás encontrar información actualizada sobre el uso del framework,
+ si estas comenzando con <em>KumbiaPHP</em> deberías realizar la
+ <strong><a href="http://wiki.kumbiaphp.com/Hola_Mundo_KumbiaPHP_Framework">Aplicación Hola Mundo</a></strong>
+ tambien puede interesarte saber sobre:</p>
+ <ul>
+ <li><h3><a href="http://wiki.kumbiaphp.com/Beta2_CRUD_en_KumbiaPHP_Framework">Creacion de CRUD(Create, Read, Update, Delete)</a></h3></li>
+ <li><h3><a href="http://wiki.kumbiaphp.com/Como_Usar_los_Modelos_en_KumbiaPHP">Uso de modelos</a></h3></li>
+ <li><h3><a href="http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#databases.ini">Configurar conexiones a bases de datos</a></h3></li>
+ </ul>
+ <p>Estos son solo algunos ejemplos puedes ver más en la <a href="http://wiki.kumbiaphp.com/Categor%C3%ADa:Tutoriales_KumbiaPHP" title="Tutoriales KumbiaPHP">sección de tutoriales de la wiki</a></p>
+ </div>
View
69 app/views/pages/kumbia/status.phtml
@@ -0,0 +1,69 @@
+<div id='info'>
+<?php
+ echo strftime("%e de %B del %Y")."<br />";
+
+ /**
+ * Verificando permisos del dir temp/
+ */
+ if(!is_writable(APP_PATH.'temp')){
+ $tmp = "Debes darle permiso a: '".basename(APP_PATH)."/temp/'";
+ } else {
+ $tmp = 'Directorio temp... ok';
+ }
+
+ /**
+ * Configuracion del config.ini
+ */
+ $config = Config::read('config');
+
+ $databases = ($config['application']['database']) ? 'On' : 'Off';
+ $status = ($config['application']['production']) ? 'Production' : 'Development';
+
+ if(isset($config['application']['locale'])){
+ $locale = $config['application']['locale'];
+ } else {
+ $locale = 'No se ha especificado un locale';
+ }
+ if(isset($config['application']['timezone'])){
+ $timezone = $config['application']['timezone'];
+ } else {
+ $timezone = 'No se ha especificado un Timezone en el config.ini. Pero el servidor tiene <strong>'.date_default_timezone_get().'</strong>';
+ }
+ if(isset($config['application']['cache_driver'])){
+ $cahe_driver = $config['application']['cache_driver'];
+ } else {
+ $cache_driver = 'No ha seleccionado un driver para la cache';
+ }
+
+?>
+ <h2>config.ini <span class='app'> de <?php echo basename(dirname(APP_PATH)) ?></span></h2>
+
+ <div id="conf">
+ <h4>Directorio temp/:</h4>
+ <p><?php echo $tmp ?></p>
+
+ <h4>Estado Actual del Framework: <span><?php echo $status ?></span></h4>
+ <p>Ver <a href='http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#Modos_de_una_Aplicaci.C3.B3n'>Modos de ejecución</a></p>
+
+ <h4>Carga Automática de Modelos: <span><?php echo $databases?></span></h4>
+ <p>Habilita la carga de modelos automática.</p>
+
+ <h4>Base de Datos: <span><?php echo $config['application']['database'] ?></span></h4>
+ <p>Datos de la conexión a la BD que será utilizada, ver configuración <a href="http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#databases.ini">databases.ini</a>.</p>
+
+ <h4>Carga de Modelos:</h4>
+ <p>Ver <a href="http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#Carga_selectiva_de_modelos">Carga Selectiva de Modelos</a>.</p>
+
+ <h4>Charset: <span><?php echo $config['application']['charset'] ?></span></h4>
+ <p>Codificación de caracteres. Recomendado UTF-8</p>
+
+ <h4>TimeZone: <span><?php echo $timezone ?></span></h4>
+ <p>Zona horaria que usará el Framework.</p>
+
+ <h4>Cache Driver: <span><?php echo $cahe_driver ?></span></h4>
+ <p>Driver que se utilizara para realizar las operaciones de cache.</p>
+
+ <h4>Locale: <span><?php echo $locale ?></span></h4>
+ <p>Localización. Característica que depende de los locale instalado en el servidor.</p>
+ </div>
+</div>
View
122 app/views/pages/kumbia/status.phtml~
@@ -0,0 +1,122 @@
+<div id='info'>
+<?php
+ echo strftime("%e de %B del %Y")."<br />";
+
+ /**
+ * Verificando permisos del dir temp/
+ */
+ if(!is_writable(APP_PATH.'temp')){
+ $tmp = "Debes darle permiso a: '".basename(APP_PATH)."/temp/'";
+ } else {
+ $tmp = 'Directorio temp... ok';
+ }
+
+ /**
+ * Configuracion del config.ini
+ */
+ $config = Config::read('config');
+
+ $databases = ($config['application']['database']) ? 'On' : 'Off';
+ $status = ($config['application']['production']) ? 'Production' : 'Development';
+
+ if(isset($config['application']['locale'])){
+ $locale = $config['application']['locale'];
+ } else {
+ $locale = 'No se ha especificado un locale';
+ }
+ if(isset($config['application']['timezone'])){
+ $timezone = $config['application']['timezone'];
+ } else {
+ $timezone = 'No se ha especificado un Timezone en el config.ini. Pero el servidor tiene <strong>'.date_default_timezone_get().'</strong>';
+ }
+ if(isset($config['application']['cache_driver'])){
+ $cahe_driver = $config['application']['cache_driver'];
+ } else {
+ $cache_driver = 'No ha seleccionado un driver para la cache';
+ }
+
+?>
+ <span class='title'>config.ini </spam><spam class='app'> de <?php echo APP ?></span>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Directorio temp/</strong>:</div>
+ <div class="field-widget"><?php echo $tmp ?></div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Estado Actual del Framework</strong>: <?php echo $status ?></div>
+ <div class="field-widget">Ver <a href='http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#Modos_de_una_Aplicaci.C3.B3n'>Modos de ejecución</a></div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Carga Automática de Modelos</strong>: <?php echo $databases?></div>
+ <div class="field-widget">Habilita la carga de modelos automática.</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Base de Datos</strong>: <?php echo $config['application']['database'] ?></div>
+ <div class="field-widget">Datos de la conexión a la BD que será utilizada, ver configuración <a href="http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#databases.ini">databases.ini</a>.</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Carga de Modelos</strong>: </div>
+ <div class="field-widget">Ver <a href="http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#Carga_selectiva_de_modelos">Carga Selectiva de Modelos</a>.</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Charset</strong>: <?php echo $config['application']['charset'] ?></div>
+ <div class="field-widget">Codificación de caracteres. Recomendado UTF-8</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>TimeZone</strong>: <?php echo $timezone ?></div>
+ <div class="field-widget">Zona horaria que usará el Framework.</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Cache Driver</strong>: <?php echo $cahe_driver ?></div>
+ <div class="field-widget">Driver que se utilizara para realizar las operaciones de cache.</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="x-form-item">
+ <div class='rows-left'>
+ <div class="form-row">
+ <div class="field-label"><strong>Locale</strong>: <?php echo $locale ?></div>
+ <div class="field-widget">Localización. Característica que depende de los locale instalado en el servidor.</div>
+ </div>
+ </div>
+ </div>
+
+</div>
View
20 index.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * KumbiaPHP web & app Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://wiki.kumbiaphp.com/Licencia
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@kumbiaphp.com so we can send you a copy immediately.
+ *
+ * @copyright Copyright (c) 2005-2010 Kumbia Team (http://www.kumbiaphp.com)
+ * @license http://wiki.kumbiaphp.com/Licencia New BSD License
+ */
+
+// Carga el index.php de public
+include 'public/index.php';
View
20 public/.htaccess
@@ -0,0 +1,20 @@
+# Descomentar la linea si carga el index.html
+#DirectoryIndex index.php
+
+# Si esta mod_rewrite habilitado
+<IfModule mod_rewrite.c>
+ # Activar modo de reescritura
+ RewriteEngine On
+
+ # Directorio de instalacion, puede ser necesario si
+ # la aplicacion se ubica en public_html
+ #RewriteBase /
+
+ # No permite reescritura si el archivo o directorio existe
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+
+ # Para peticiones que no son archivos ni directorios
+ # Reescribe a index.php?url=URL
+ RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
+</IfModule>
View
17 public/.htaccess~
@@ -0,0 +1,17 @@
+# Si esta mod_rewrite habilitado
+<IfModule mod_rewrite.c>
+ # Activar modo de reescritura
+ RewriteEngine On
+
+ # Directorio de instalacion, puede ser necesario si
+ # la aplicacion se ubica en public_html
+ #RewriteBase /
+
+ # No permite reescritura si el archivo o directorio existe
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+
+ # Para peticiones que no son archivos ni directorios
+ # Reescribe a index.php?url=URL
+ RewriteRule ^(.*)$ index.php?url=/$1 [QSA,L]
+</IfModule>
View
132 public/css/bienvenida.css
@@ -0,0 +1,132 @@
+* {
+ margin: 0px;
+ padding: 0px;
+}
+body{
+ background-color: #fdfdfd;
+ font-family: Arial, Helvetica;
+}
+#head {
+ height: 53px;
+ background-color: #CCCC99;
+ background: #D1C2A3 url(../img/default/head.png) no-repeat scroll left;
+}
+#head h1 {
+ font-size: 30px;
+ padding: 10px 8px 15px;
+ margin: 0;
+ float: left;
+ color: #fff;
+}
+.app {
+ font-size: 30px;
+ margin: 0;
+ color: #8A6F5C;
+}
+.title {
+ font-size: 30px;
+ margin: 0;
+ color: #333333;
+}
+#head #info-app {
+ font-size: 20px;
+ padding: 20px 0px 15px;
+ margin: 0;
+ float: left;
+ color: #fff;
+}
+#config a {
+ background-color: #8A6F5C;
+ padding: .2em;
+ color: #fff;
+ text-decoration: none;
+}
+#config a:hover {
+ background-color: #000;
+}
+#footer {
+ background-color: #8A6F5C;
+ border-top: 4px solid #555555;
+ color: white;
+ padding: 1em;
+ height: 50px;
+}
+#footer a {
+ font-size: 14px;
+ text-decoration: none;
+ color: #fff;
+}
+#footer a:hover {
+ color: #000;
+}
+#footer p{
+ font-size: 14px;
+ color: #d1a88b;
+}
+#footer ul.links {
+ text-align: center;
+ list-style: none inside;
+ padding: 0;
+}
+#footer ul.links li {
+ display: inline;
+ color: #D1A88B;
+}
+#logo-kumbia {
+ margin-right: auto;
+ margin-top: 40px;
+ display: block;
+ margin-left: 100px;
+ width: 160px;
+}
+#info{
+ background-color: #f8f8f8;
+ margin: 20px 20px 30px 100px;
+ border:1px solid #E5E5E5;
+ padding: 2em;
+ clear: both;
+}
+#info h1 {
+ font-size: 1.5em;
+ color: #333333;
+ margin: 0;
+ text-align: center
+}
+#info h2 {
+ font-size: 1.5em;
+ color: #333333;
+ margin: 0;
+}
+#info p,li {
+ color: #333333;
+ font-size: 15px;
+}
+#info ul{
+ margin-left: 40px;
+}
+.alignright #config {
+ font-size: 20px;
+ margin: 15px 20px;
+ color: #fff;
+}
+.alignleft {
+ float: left;
+}
+.alignright {
+ float: right;
+}
+.clear {
+ clear: both;
+}
+#conf {
+margin-top: 1em;
+}
+h4 {
+margin-top: 1em;
+}
+h4 span {
+color: #8A6F5C;
+}
+#conf p {
+color: #15428b;
+}
View
511 public/css/datepicker.css
@@ -0,0 +1,511 @@
+/* This is a very basic stylesheet for the date-picker. Feel free to create your own. */
+
+/* Hide the input by using a className */
+input.fd-hidden-input,
+select.fd-hidden-input
+ {
+ display:none;
+ }
+/* Screen reader class - hides it from the visual display */
+.fd-screen-reader
+ {
+ position:absolute;
+ left:-999em;
+ top:0;
+ width:1px;
+ height:1px;
+ overflow:hidden;
+ outline: 0 none;
+ -moz-outline: 0 none;
+ }
+/* Disabled datePicker and activation button */
+a.dp-disabled,
+.dp-disabled table
+ {
+ opacity:.3 !important;
+ filter:alpha(opacity=40);
+ }
+.dp-disabled,
+.dp-disabled td,
+.dp-disabled th,
+.dp-disabled th span
+ {
+ cursor:default !important;
+ }
+a.date-picker-control:focus,
+div.datePicker table td:focus
+ {
+ overflow:hidden;
+ outline:0 none;
+ -moz-outline: 0 none;
+ color:rgb(100,130,170) !important;
+ }
+/* The wrapper div */
+div.datePicker
+ {
+ position:absolute;
+ z-index:9999;
+ text-align:center;
+
+ /* Change the font-size to suit your design's CSS. The following line is for the demo that has a 12px font-size defined on the body tag */
+ font:900 0.8em/1em Verdana, Sans-Serif;
+
+ /* For Example: If using the YUI font CSS, uncomment the following line to get a 10px font-size within the datePicker */
+ /* font:900 77%/77% Verdana, sans-serif; */
+
+ /* Or, if you prefer a pixel precision */
+ /* font:900 12px/12px Verdana, sans-serif; */
+
+ background:transparent;
+
+ /* Mozilla & Webkit extensions to stop text-selection. */
+ -moz-user-select:none;
+ -khtml-user-select:none;
+ }
+/* Styles for the static datePickers */
+div.static-datepicker
+ {
+ position:relative;
+ top:5px;
+ left:0;
+ }
+div.datePicker table
+ {
+ width:auto;
+ height:auto;
+ border-collapse:separate;
+ }
+/* Draggable datepickers */
+div.datePicker tfoot th.drag-enabled,
+div.datePicker thead th.drag-enabled,
+div.datePicker thead th.drag-enabled span
+ {
+ cursor:move;
+ }
+/* The iframe hack to cover selectlists in Internet Explorer <= v6 */
+iframe.iehack
+ {
+ position:absolute;
+ background:#fff;
+ z-index:9998;
+ padding:0;
+ border:0;
+ display:none;
+ margin:0;
+ }
+/* The "button" created beside each input for non-static datePickers */
+a.date-picker-control:link,
+a.date-picker-control:visited
+ {
+ position:relative;
+ /* Moz & FF */
+ display: -moz-inline-stack;
+ border:0 none;
+ padding:0;
+ margin:0 0 0 4px;
+ background:transparent url(../img/datepicker/cal-grey.gif) no-repeat 50% 50%;
+ min-width:16px;
+ line-height:1;
+ cursor:pointer;
+ visibility:visible;
+ text-decoration:none;
+ vertical-align:top;
+ }
+a.date-picker-control:hover,
+a.date-picker-control:active,
+a.date-picker-control:focus,
+a.dp-button-active:link,
+a.dp-button-active:visited,
+a.dp-button-active:hover,
+a.dp-button-active:active,
+a.dp-button-active:focus
+ {
+ background:transparent url(../img/datepicker/cal.gif) no-repeat 50% 50% !important;
+ }
+/* Feed IE6 the following rule, IE7 should handle the min-width declared above */
+* html a.date-picker-control
+ {
+ width:16px;
+ }
+/* IE, Safari & Opera. Seperate CSS rule seems to be required. */
+a.date-picker-control
+ {
+ display:inline-block;
+ }
+a.date-picker-control span
+ {
+ display:block;
+ width:16px;
+ height:16px;
+ margin:auto 0;
+ }
+/* Default "button" styles */
+div.datePicker thead th span
+ {
+ display:block;
+ padding:0;
+ margin:0;
+ text-align:center;
+ line-height:1em;
+ border:0 none;
+ background:transparent;
+ font-weight:bold;
+ cursor:pointer;
+ }
+/* The "month, year" display */
+div.datePicker th span.month-display,
+div.datePicker th span.year-display
+ {
+ display:inline;
+ text-transform:uppercase;
+ letter-spacing:1px;
+ font:normal 1.2em Verdana, Sans-Serif;
+ cursor:default;
+ }
+/* Next & Previous (month, year) buttons */
+div.datePicker th span.prev-but,
+div.datePicker th span.next-but
+ {
+ font-weight:lighter;
+ font-size:2.4em;
+ font-family: georgia, times new roman, palatino, times, bookman, serif;
+ cursor:pointer !important;
+ }
+/* Hover effect for Next & Previous (month, year) buttons */
+div.datePicker th span.prev-but:hover,
+div.datePicker th span.next-but:hover,
+div.datePicker th span.today-but:hover
+ {
+ color:#a84444;
+ }
+/* Today button */
+div.datePicker th span.today-but
+ {
+ text-align:center;
+ margin:0 auto;
+ font:normal 1em Verdana, Sans-Serif;
+ width:100%;
+ text-decoration:none;
+ padding-top:0.3em;
+ text-transform:uppercase;
+ vertical-align:middle;
+ cursor:pointer !important
+ }
+/* Disabled buttons */
+div.dp-disabled th span.prev-but,
+div.dp-disabled th span.next-but,
+div.dp-disabled th span.today-but,
+div.dp-disabled th span.prev-but:hover,
+div.dp-disabled th span.next-but:hover,
+div.dp-disabled th span.today-but:hover,
+div.datePicker th span.prev-but.fd-disabled:hover,
+div.datePicker th span.next-but.fd-disabled:hover,
+div.datePicker thead th span.fd-disabled,
+div.datePicker th span.fd-disabled:hover
+ {
+ color:#aaa;
+ cursor:default !important;
+ opacity:1;
+ }
+/* The mon, tue, wed etc day buttons */
+div.datePicker th span.fd-day-header
+ {
+ text-align:center;
+ margin:0 auto;
+ font:900 1em Verdana, Sans-Serif;
+ text-decoration:none;
+ text-transform:lowercase;
+ cursor:pointer;
+ }
+/* The table */
+div.datePicker table
+ {
+ margin:0;
+ padding:0;
+ border:1px solid #ccc;
+ background:#fff url(../img/datepicker/gradient-e5e5e5-ffffff.gif) repeat-x 0 -20px;
+ text-align:center;
+ border-spacing:2px;
+ padding:0.3em;
+ width:auto;
+ empty-cells:show;
+ border-radius:0.8em;
+ -moz-border-radius:0.8em;
+ -moz-box-shadow:0px 0px 5px #aaa;
+ }
+/* Common TD & TH styling */
+div.datePicker table td,
+div.datePicker table tbody th
+ {
+ border:0 none;
+ padding:0;
+ text-align:center;
+ vertical-align:middle;
+ cursor:pointer;
+ background:#fff url(../img/datepicker/gradient-e5e5e5-ffffff.gif) repeat-x 0 -40px;
+ width:3em;
+ height:3em;
+ overflow:hidden;
+ outline:transparent none 0px;
+ border:1px solid #ccc;
+ text-transform:none;
+ -moz-border-radius:2px;
+ border-radius:2px;
+ }
+div.datePicker table td:focus,
+div.datePicker table td:active
+ {
+ outline:0 none red;
+ }
+div.datePicker table th
+ {
+ border:0 none;
+ padding:0;
+ font-weight:bold;
+ color:#222;
+ text-align:center;
+ vertical-align:middle;
+ text-transform:none;
+ }
+div.datePicker table thead th
+ {
+ height:auto !important;
+ }
+div.datePicker table tbody th
+ {
+ border:1px solid #dcdcdc;
+ }
+/* Week number display */
+div.datePicker table thead th.date-picker-week-header,
+div.datePicker table tbody th.date-picker-week-header
+ {
+ font-style:oblique;
+ background:transparent;
+ cursor:default;
+ }
+div.datePicker table thead th.date-picker-week-header
+ {
+ cursor:help;
+ border:0 none;
+ padding:0 0 0.2em 0;
+ }
+/* tfoot status bar */
+div.datePicker tfoot th
+ {
+ cursor:default;
+ font-weight:normal;
+ text-transform:uppercase;
+ letter-spacing:0.1em;
+ border:0 none;
+ background:#fff;
+ height:2.8em;
+ }
+/* TD cell that is _not_ used to display a day of the month */
+div.datePicker table tbody td.date-picker-unused
+ {
+ background:#fff url(../img/datepicker/backstripes.gif);
+ border-color:#dcdcdc;
+ cursor:default !important;
+ }
+
+/* The TH cell used to display the "month, year" title */
+div.datePicker table thead th.date-picker-title
+ {
+ width:auto;
+ height:auto;
+ padding:0.4em 0;
+ }
+/* The "mon tue wed etc" day header styles */
+div.datePicker table thead th.date-picker-day-header
+ {
+ text-transform:lowercase;
+ cursor:help;
+ height:auto;
+ }
+/* The "todays date" style */
+div.datePicker table tbody td.date-picker-today
+ {
+ background:#fff url(../img/datepicker/bullet2.gif) no-repeat 0 0;
+ color:rgb(100,100,100) !important;
+ }
+
+div.datePicker table tbody td.month-out.date-picker-highlight
+ {
+ color:#aa8866 !important;
+ }
+/* The "highlight days" style */
+div.datePicker table tbody td.date-picker-highlight,
+div.datePicker table thead th.date-picker-highlight
+ {
+ color:#a86666 !important;
+ }
+/* The "active cursor" style */
+div.datePicker table tbody td.date-picker-hover
+ {
+ background:#fff url(../img/datepicker/bg_header.jpg) no-repeat 0 0;
+ cursor:pointer;
+ border-color:rgb(100,130,170) !important;
+ color:rgb(100,130,170);
+ text-shadow: 0px 1px 1px #fff;
+ }
+/* The "disabled days" style */
+div.datePicker table tbody td.day-disabled
+ {
+ background:#fff url(../img/datepicker/backstripes.gif) no-repeat 0 0;
+ color:#aaa !important;
+ cursor:default;
+ text-decoration:line-through;
+ }
+div.datePicker table tbody td.month-out
+ {
+ border-color:#ddd;
+ color:#aaa !important;
+ background:#fff url(../img/datepicker/gradient-e5e5e5-ffffff.gif) repeat-x 0 -40px;
+ }
+/* The "selected date" style */
+div.datePicker table tbody td.date-picker-selected-date
+ {
+ color:#333 !important;
+ border-color:#333 !important;
+ }
+/* The date "out of range" style */
+div.datePicker table tbody td.out-of-range,
+div.datePicker table tbody td.not-selectable
+ {
+ color:#ccc !important;
+ font-style:oblique;
+ background:#fcfcfc !important;
+ cursor:default !important;
+ }
+/* Week number "out of range" && "month-out" styles */
+div.datePicker table tbody th.month-out,
+div.datePicker table tbody th.out-of-range
+ {
+ color:#aaa !important;
+ font-style:oblique;
+ background:#fcfcfc !important;
+ }
+/* week numbers "out of range" */
+div.datePicker table tbody th.out-of-range
+ {
+ opacity:0.6;
+ filter:alpha(opacity=60);
+ }
+/* Used when the entire grid is full but the next/prev months dates cannot be selected */
+div.datePicker table tbody td.not-selectable
+ {
+ opacity:0.8;
+ filter:alpha(opacity=80);
+ }
+div.datePicker table tbody tr
+ {
+ display:table-row;
+ }
+div.datePicker table tfoot sup
+ {
+ font-size:0.86em;
+ letter-spacing:normal;
+ text-transform:none;
+ height: 0;
+ line-height: 1;
+ position: relative;
+ top: -0.2em;
+ vertical-align: baseline !important;
+ vertical-align: top;
+ }
+div.datePicker table thead th.date-picker-day-header,
+div.datePicker table thead span.month-display,
+div.datePicker table thead span.year-display
+ {
+ text-shadow: 0px 1px 1px #fff;
+ }
+/* You can add focus effects (for everything but IE6) like so: */
+
+div.datepicker-focus table.datePickerTable
+ {
+ border-color:#999 !important;
+ }
+div.datePicker table tbody tr td:focus,
+div.datePicker table tbody td.date-picker-hover
+ {
+ overflow:hidden;
+ outline:0px solid #ff0000;
+ -moz-outline: 0 none;
+ -o-highlight:0 none;
+ color:rgb(100,130,170) !important;
+ }
+div.static-datepicker table
+ {
+ -moz-box-shadow:0 0 0 transparent;
+
+ }
+div.datepicker-focus table
+ {
+ /* Naughty, naughty - but we add a highlight using the table's border colour */
+ outline:none;
+ -moz-box-shadow:0px 0px 5px #aaa;
+ }
+ *:-o-prefocus{outline : -o-highlight-border;}
+
+/* INTERNET EXPLORER WOES
+ ======================
+
+ Hover Effects
+ -------------
+
+ IE cannot deal with :focus on the TR so the datePicker script adds the class "dp-row-highlight" to the
+ row currently being hovered over. This should enable you to add hover effects if desired.
+
+ e.g. the following rule will highlight the cell borders in another colour when a row is moused over,
+ it looks like crap though so I didn't include the rule within the demo:
+
+div.datePicker table tbody tr.dp-row-highlight td
+ {
+ border-color:#aaa;
+ }
+*/
+
+/* Remove the images for Internet Explorer <= v6 using the "* html" hack
+ This is a workaround for a nasty IE6 bug that never caches background images on dynamically created DOM nodes
+ which means that they are downloaded for every cell for every table - nasty! */
+* html div.datePicker table td
+ {
+ background-image:none;
+ }
+* html div.datePicker table td.date-picker-unused
+ {
+ background:#f2f2f2;
+ }
+body.fd-drag-active
+ {
+ -webkit-user-select:none;
+ }
+/* Chrome has problems with the -webkit-box-shadow and -webkit-border-radius styles together
+ Remove one or the other to get things looking less ugly */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ div.datePicker table
+ {
+ border-spacing:0.3em;
+ /* Naughty, naughty */
+ -webkit-box-shadow:0px 0px 5px #aaa;
+ -webkit-border-radius:0.8em;
+ }
+ div.static-datepicker table
+ {
+ -webkit-box-shadow:0 0 0 transparent;
+ }
+ div.datepicker-focus table
+ {
+ -webkit-box-shadow:0px 0px 5px #aaa;
+ }
+ div.datePicker table td,
+ div.datePicker table tbody th
+ {
+ padding:0.1em;
+ -webkit-border-radius:2px;
+ }
+ div.datePicker table tbody td.date-picker-hover
+ {
+ -webkit-box-shadow:0px 0px 1px rgb(100,130,170);
+ }
+}
View
67 public/css/exception.css
@@ -0,0 +1,67 @@
+.exception_file { font-size: 0.9em; color: black; }
+
+.exception_title {margin: 1em 0.5em 0.5em 0.5em; font-weight: bold; text-align: left; font-size: 0.8em;}
+
+.exception_trace {
+ border-collapse: collapse;
+ background-color: white;
+ border: solid gray 1px;
+ font-size: 1em;
+}
+
+.exception_trace_number, .exception_highlight { font-weight: bold;}
+
+.exception_trace_number { background-color: #C0C0C0; }
+
+.exception_line { padding-left: 1em; }
+
+.exception_highlight { background-color: #ffdddd; width: 100%; }
+
+
+
+.exception{
+padding:1em;
+}
+.round{
+border-radius: 5px;
+}
+.exception h1 {
+text-shadow:1px 1px 1px rgba(0, 0, 0, 0.4);
+}
+.exception h2 {
+background-color: #D1C2A3;
+padding:.2em;
+margin: 1em 0 .3em;
+color:rgb(138, 111, 92);
+border-radius: 5px;
+text-shadow:1px 1px 1px rgba(255, 255, 255, 0.8);
+}
+.exception em {
+color: black;
+}
+.solution {
+background-color: lime;
+}
+pre {
+background-color: #eee;
+padding: 1em;
+border:1px solid #ccc;
+color: #000;
+margin: 1em 0;
+
+}
+.exception table {
+width: 100%;
+//border-collapse: collapse;
+border-spacing: 2px 2px;
+color: rgb(138, 111, 92);
+}
+.exception thead {
+background-color: #D1C2A3;
+}
+.exception tr {
+border-bottom:1px solid #D1C2A3;
+}
+.exception td{
+padding: .2em .2em;
+}
View
0  public/css/index.html
No changes.
View
139 public/css/scaffold.css
@@ -0,0 +1,139 @@
+/* Scaffold */
+#scaffold {
+
+margin: 1em;
+font-family:arial;
+font-size: 14px;
+}
+#scaffold table{
+width:100%;
+border-collapse: collapse;
+border: 1px solid #D9D9D9;
+margin:10px 0pt 15px;
+padding:0px;
+}
+#scaffold th{
+background: #D7DDE4;
+border-right: 1px solid #CDCDCD;
+border-bottom: 1px solid #CDCDCD;
+text-align: left;
+font-weight:bold;
+padding: 6px;
+text-shadow:1px 1px 1px rgba(255, 255, 255, 0.8);
+}
+#scaffold tr{
+border-bottom: 1px solid #F1F5F9;
+background:#FFF;
+}
+#scaffold tr:nth-child(even) {
+background:#F1F5F9;
+}
+#scaffold tr:hover{
+background:#efe;
+}
+label, input{
+display: block;
+}
+#scaffold td{
+border-right:1px solid #D9D9D9;
+padding: 4px;
+}
+.paginator{
+}
+.paginator .nextprev{
+ color: #000;
+}
+.paginator a{
+border:1px solid #e8ebf1;
+padding:.5em;
+text-decoration:none;
+margin: .5em .1em;
+background:#FFF;
+}
+.paginator a:hover{
+background: #e8ebf1;
+}
+.paginator strong{
+background: #e8ebf1;
+border:1px solid #e8ebf1;
+padding:.5em;
+margin: .5em .1em;
+}
+.actions {
+border-top: dotted 1px grey;
+padding-top: 1em;
+margin: .5em 0 0;
+}
+.actions a{
+font-size: 1em;
+ padding: 4px;
+ margin: 1em 0;
+ background: #D1D1D1 url(../img/button.png) repeat-x left center;
+ border: 1px solid #FFF;
+ border-bottom: 1px solid #777;
+ border-right: 1px solid #777;
+ text-decoration: none;
+ color: #000;
+}
+.actions a:hover {
+ background: #65a5e1 url(../img/button-add.png) repeat-x left center;
+}
+.actions a.del:hover{
+ background: #ffabab url(../img/button-delete.png) repeat-x left center;
+ color: #f00;
+}
+label {
+ font-weight:bold;
+}
+.title{
+ font-size: 1.5em;
+}
+fieldset{
+ border: 0;
+ padding: 0;
+ margin: 1em 0;
+}
+
+textarea, input[type="text"], input[type="password"] {
+ border: 1px solid #BBB;
+ padding: 2px;
+ width:80%;
+}
+input[type="submit"]{
+ font-size: 1em;
+ color: #000;
+ padding: 4px;
+ margin: 5px 0;
+ background: #D1D1D1 url(../img/button.png) repeat-x left center;
+ border: 1px solid #FFF;
+ border-bottom: 1px solid #777;
+ border-right: 1px solid #777;
+ cursor: pointer;
+ border-radius:3px;
+}
+input[type="submit"]:hover{
+ background: #D1D1D1 url(../img/button-h.png) repeat-x left center;
+}
+input.delete{
+ margin-left: 1em;
+}
+input.delete:hover{
+ background: #ffabab url(../img/button-delete.png) repeat-x left center;
+ color: #C00;
+ border: 1px solid #FCC;
+ border-bottom: 1px solid #F99;
+ border-right: 1px solid #F99;
+}
+input.add{
+ font-weight: bold;
+}
+input.add:hover{
+ background: #65a5e1 url(../img/button-add.png) repeat-x left center;
+ color: #000;
+ border: 1px solid #a6c7e5;
+ border-bottom: 1px solid #777;
+ border-right: 1px solid #777;
+}
+.requerido{
+ color: #F00;
+}
View
60 public/css/style.css
@@ -0,0 +1,60 @@
+/* Formatea los mensajes Flash::xxx() de KumbiaPHP */
+.flash {
+ border: 1px solid;
+ margin: 1px 0;
+ min-height: 32px;
+ padding:3px 10px 3px 50px;
+ background-repeat: no-repeat;
+ background-position: 10px center;
+}
+
+.error {
+ color: #D8000C;
+ background-color: #FFBABA;
+ background-image: url('../img/default/error.png');
+}
+
+.info {
+ color: #00529B;
+ background-color: #BDE5F8;
+ background-image: url('../img/default/info.png');
+}
+
+.valid {
+ color: #4F8A10;
+ background-color: #DFF2BF;
+ background-image:url('../img/default/valid.png');
+}
+.warning {
+ color: #9F6000;
+ background-color: #FEEFB3;
+ background-image: url('../img/default/warning.png');
+}
+
+.highlight {
+ background: #FFFFDF;
+}
+
+div.autocomplete {
+ position: relative;
+ background-color: white;
+ border: 1px solid #888;
+ margin: 0;
+ padding: 0;
+}
+div.autocomplete ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+div.autocomplete ul li.selected {
+ background-color: #ffb;
+}
+div.autocomplete ul li {
+ list-style-type: none;
+ display: block;
+ margin: 1px 0;
+ padding: 1px;
+ cursor: pointer;
+ font-size: 10px;
+}
View
0  public/files/index.html
No changes.
View
BIN  public/img/button-add.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/button-delete.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/button-h.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/button.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/backstripes.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/bg_header.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/bullet1.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/bullet2.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/cal-grey.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/cal.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/datepicker/gradient-e5e5e5-ffffff.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/default/error.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/default/head.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  public/img/default/index.html
No changes.
View
BIN  public/img/default/info.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/default/kumbia.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/default/valid.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/default/warning.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  public/img/index.html
No changes.
View
BIN  public/img/site_logo.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/spin.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  public/img/spinner.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  public/index.html
No changes.
View
81 public/index.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * KumbiaPHP web & app Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://wiki.kumbiaphp.com/Licencia
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@kumbiaphp.com so we can send you a copy immediately.
+ *
+ * @copyright Copyright (c) 2005-2010 Kumbia Team (http://www.kumbiaphp.com)
+ * @license http://wiki.kumbiaphp.com/Licencia New BSD License
+ */
+
+/**
+ * Indicar si la aplicacion se encuentra en produccion
+ * directamente desde el index.php
+ */
+//define('PRODUCTION', TRUE);
+
+/**
+ * Establece polí­tica de informe de errores
+ */
+//error_reporting(0); // Usar este en producción, no envia errores
+error_reporting(E_ALL ^ E_STRICT); // Comentar en producción
+//comentar la siguiente linea en producción
+ini_set('display_errors', 'On');
+
+/**
+ * Define marca de tiempo en que inicio el Request
+ */
+define('START_TIME', microtime(1));
+
+/**
+ * Define el APP_PATH
+ *
+ * APP_PATH:
+ * - Ruta al directorio de la aplicación (por defecto la ruta al directorio app)
+ * - Esta ruta se utiliza para cargar los archivos de la aplicacion
+ */
+define('APP_PATH', dirname(dirname(__FILE__)) . '/app/');
+
+/**
+ * Define el CORE_PATH
+ *
+ * CORE_PATH:
+ * - Ruta al directorio que contiene el núcleo de Kumbia (por defecto la ruta al directorio core)
+ */
+define('CORE_PATH', dirname(dirname(APP_PATH)) . '/core/');
+
+/**
+ * Define el PUBLIC_PATH
+ *
+ * PUBLIC_PATH:
+ * - Path para genera la Url en los links a acciones y controladores
+ * - Esta ruta la utiliza Kumbia como base para generar las Urls para acceder de lado de
+ * cliente (con el navegador web) y es relativa al DOCUMENT_ROOT del servidor web
+ */
+if ($_SERVER['QUERY_STRING']) {
+ define('PUBLIC_PATH', substr(urldecode($_SERVER['REQUEST_URI']), 0, - strlen($_SERVER['QUERY_STRING']) + 6));
+} else {
+ define('PUBLIC_PATH', $_SERVER['REQUEST_URI']);
+}
+
+/**
+ * Obtiene la url
+ */
+$url = isset($_GET['_url']) ? $_GET['_url'] : '/';
+
+/**
+ * Carga el gestor de arranque
+ * Por defecto el bootstrap del core
+ *
+ * @see Bootstrap
+ */
+//require APP_PATH . 'libs/bootstrap.php'; //bootstrap de app
+require CORE_PATH . 'kumbia/bootstrap.php'; //bootstrap del core
View
87 public/index.php.~1~
@@ -0,0 +1,87 @@
+<?php
+/**
+ * KumbiaPHP web & app Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://wiki.kumbiaphp.com/Licencia
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@kumbiaphp.com so we can send you a copy immediately.
+ *
+ * @copyright Copyright (c) 2005-2009 Kumbia Team (http://www.kumbiaphp.com)
+ * @license http://wiki.kumbiaphp.com/Licencia New BSD License
+ */
+
+/**
+ * Establece polí­tica de informe de errores
+ */
+error_reporting(E_ALL ^ E_STRICT);
+define('START_TIME', microtime(1));
+
+/**
+ * Define el APP_PATH
+ *
+ * APP_PATH:
+ * - Ruta al directorio de la aplicación (por defecto la ruta al directorio app)
+ * - Esta ruta se utiliza para cargar los archivos de la aplicación
+ **/
+define('APP_PATH', dirname(dirname(__FILE__)) . '/');
+
+/**
+ * Define el nombre de la APP
+ *
+ */
+define('APP', basename(APP_PATH));
+
+/**
+ * Define el CORE_PATH
+ *
+ * CORE_PATH:
+ * - Ruta al directorio que contiene el núcleo de Kumbia (por defecto la ruta al directorio core/kumbia)
+ **/
+define('CORE_PATH', dirname(APP_PATH) . '/core/');
+
+/**
+ * Define el PUBLIC_PATH
+ *
+ * PUBLIC_PATH:
+ * - Path para generar la Url en los links a acciones y controladores
+ * - Esta ruta la utiliza Kumbia como base para generar las Urls para acceder de lado de
+ * cliente (con el navegador web) y es relativa al DOCUMENT_ROOT del servidor web
+ **/
+if ($_SERVER['QUERY_STRING']) {
+ define('PUBLIC_PATH', substr(urldecode($_SERVER['REQUEST_URI']), 0, - strlen($_SERVER['QUERY_STRING']) + 6));
+} else {
+ define('PUBLIC_PATH', $_SERVER['REQUEST_URI']);
+}
+
+/**
+ * Define el URL_PATH
+ *
+ * URL_PATH:
+ * - Path utilizado para generar correctamente la url para acceder los controladores y acciones
+ * - Este path puede modificarse para poder utilizar KumbiaPHP sin mod_rewrite.
+ *
+ * Considerando que tu aplicacion se encuentre en /var/www/app