├── .gitattributes ├── LICENSE ├── README.md ├── assets ├── css │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ └── style.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── datatable.js │ ├── ini.js │ ├── jquery-ui │ ├── images │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ │ ├── ui-bg_flat_10_000000_40x100.png │ │ ├── ui-bg_glass_100_f6f6f6_1x400.png │ │ ├── ui-bg_glass_100_fdf5ce_1x400.png │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png │ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png │ │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_228ef1_256x240.png │ │ ├── ui-icons_ef8c08_256x240.png │ │ ├── ui-icons_ffd27a_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ ├── index.html │ ├── jquery-ui.css │ ├── jquery-ui.js │ ├── jquery-ui.min.css │ ├── jquery-ui.min.js │ ├── jquery-ui.structure.css │ ├── jquery-ui.structure.min.css │ ├── jquery-ui.theme.css │ └── jquery-ui.theme.min.css │ ├── jquery.anexsoft-validator.js │ └── npm.js ├── controller └── cliente.controller.php ├── database └── cliente.sql ├── index.php ├── model ├── cliente.php └── database.php ├── plugins └── datatables │ ├── dataTables.bootstrap.css │ ├── dataTables.bootstrap.js │ ├── dataTables.bootstrap.min.js │ ├── extensions │ ├── AutoFill │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── autoFill.bootstrap.css │ │ │ ├── autoFill.bootstrap.min.css │ │ │ ├── autoFill.bootstrap4.css │ │ │ ├── autoFill.bootstrap4.min.css │ │ │ ├── autoFill.dataTables.css │ │ │ ├── autoFill.dataTables.min.css │ │ │ ├── autoFill.foundation.css │ │ │ ├── autoFill.foundation.min.css │ │ │ ├── autoFill.jqueryui.css │ │ │ ├── autoFill.jqueryui.min.css │ │ │ ├── autoFill.semanticui.css │ │ │ └── autoFill.semanticui.min.css │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── alwaysAsk.html │ │ │ │ ├── columns.html │ │ │ │ ├── enableDisable.html │ │ │ │ ├── events.html │ │ │ │ ├── fills.html │ │ │ │ ├── focus.html │ │ │ │ ├── index.html │ │ │ │ ├── keyTable.html │ │ │ │ ├── plugins.html │ │ │ │ ├── scrolling.html │ │ │ │ └── simple.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── autoFill.bootstrap.js │ │ │ ├── autoFill.bootstrap.min.js │ │ │ ├── autoFill.bootstrap4.js │ │ │ ├── autoFill.bootstrap4.min.js │ │ │ ├── autoFill.foundation.js │ │ │ ├── autoFill.foundation.min.js │ │ │ ├── autoFill.jqueryui.js │ │ │ ├── autoFill.jqueryui.min.js │ │ │ ├── autoFill.semanticui.js │ │ │ ├── autoFill.semanticui.min.js │ │ │ ├── dataTables.autoFill.js │ │ │ └── dataTables.autoFill.min.js │ ├── Buttons │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── buttons.bootstrap.css │ │ │ ├── buttons.bootstrap.min.css │ │ │ ├── buttons.bootstrap4.css │ │ │ ├── buttons.bootstrap4.min.css │ │ │ ├── buttons.dataTables.css │ │ │ ├── buttons.dataTables.min.css │ │ │ ├── buttons.foundation.css │ │ │ ├── buttons.foundation.min.css │ │ │ ├── buttons.jqueryui.css │ │ │ ├── buttons.jqueryui.min.css │ │ │ ├── buttons.semanticui.css │ │ │ ├── buttons.semanticui.min.css │ │ │ ├── common.scss │ │ │ └── mixins.scss │ │ ├── examples │ │ │ ├── api │ │ │ │ ├── addRemove.html │ │ │ │ ├── enable.html │ │ │ │ ├── group.html │ │ │ │ ├── index.html │ │ │ │ └── text.html │ │ │ ├── column_visibility │ │ │ │ ├── columnGroups.html │ │ │ │ ├── columnText.html │ │ │ │ ├── columns.html │ │ │ │ ├── columnsToggle.html │ │ │ │ ├── index.html │ │ │ │ ├── layout.html │ │ │ │ ├── restore.html │ │ │ │ ├── simple.html │ │ │ │ ├── stateSave.html │ │ │ │ └── text.html │ │ │ ├── flash │ │ │ │ ├── copyi18n.html │ │ │ │ ├── filename.html │ │ │ │ ├── hidden.html │ │ │ │ ├── index.html │ │ │ │ ├── pdfMessage.html │ │ │ │ ├── pdfPage.html │ │ │ │ ├── simple.html │ │ │ │ ├── swfPath.html │ │ │ │ └── tsv.html │ │ │ ├── html5 │ │ │ │ ├── columns.html │ │ │ │ ├── copyi18n.html │ │ │ │ ├── customFile.html │ │ │ │ ├── excelBorder.html │ │ │ │ ├── excelCellShading.html │ │ │ │ ├── excelTextBold.html │ │ │ │ ├── filename.html │ │ │ │ ├── index.html │ │ │ │ ├── outputFormat-function.html │ │ │ │ ├── outputFormat-orthogonal.html │ │ │ │ ├── pdfImage.html │ │ │ │ ├── pdfMessage.html │ │ │ │ ├── pdfOpen.html │ │ │ │ ├── pdfPage.html │ │ │ │ ├── simple.html │ │ │ │ └── tsv.html │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── className.html │ │ │ │ ├── collections-autoClose.html │ │ │ │ ├── collections-sub.html │ │ │ │ ├── collections.html │ │ │ │ ├── custom.html │ │ │ │ ├── export.html │ │ │ │ ├── index.html │ │ │ │ ├── keys.html │ │ │ │ ├── multiple.html │ │ │ │ ├── new.html │ │ │ │ ├── pageLength.html │ │ │ │ ├── plugins.html │ │ │ │ └── simple.html │ │ │ ├── print │ │ │ │ ├── autoPrint.html │ │ │ │ ├── columns.html │ │ │ │ ├── customisation.html │ │ │ │ ├── index.html │ │ │ │ ├── message.html │ │ │ │ ├── select.html │ │ │ │ └── simple.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── icons.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ ├── js │ │ │ ├── buttons.bootstrap.js │ │ │ ├── buttons.bootstrap.min.js │ │ │ ├── buttons.bootstrap4.js │ │ │ ├── buttons.bootstrap4.min.js │ │ │ ├── buttons.colVis.js │ │ │ ├── buttons.colVis.min.js │ │ │ ├── buttons.flash.js │ │ │ ├── buttons.flash.min.js │ │ │ ├── buttons.foundation.js │ │ │ ├── buttons.foundation.min.js │ │ │ ├── buttons.html5.js │ │ │ ├── buttons.html5.min.js │ │ │ ├── buttons.jqueryui.js │ │ │ ├── buttons.jqueryui.min.js │ │ │ ├── buttons.print.js │ │ │ ├── buttons.print.min.js │ │ │ ├── buttons.semanticui.js │ │ │ ├── buttons.semanticui.min.js │ │ │ ├── dataTables.buttons.js │ │ │ └── dataTables.buttons.min.js │ │ └── swf │ │ │ └── flashExport.swf │ ├── ColReorder │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── colReorder.bootstrap.css │ │ │ ├── colReorder.bootstrap.min.css │ │ │ ├── colReorder.bootstrap4.css │ │ │ ├── colReorder.bootstrap4.min.css │ │ │ ├── colReorder.dataTables.css │ │ │ ├── colReorder.dataTables.min.css │ │ │ ├── colReorder.foundation.css │ │ │ ├── colReorder.foundation.min.css │ │ │ ├── colReorder.jqueryui.css │ │ │ ├── colReorder.jqueryui.min.css │ │ │ ├── colReorder.semanticui.css │ │ │ └── colReorder.semanticui.min.css │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── col_filter.html │ │ │ │ ├── index.html │ │ │ │ ├── new_init.html │ │ │ │ ├── predefined.html │ │ │ │ ├── realtime.html │ │ │ │ ├── reset.html │ │ │ │ ├── scrolling.html │ │ │ │ └── simple.html │ │ │ ├── integration │ │ │ │ ├── colvis.html │ │ │ │ ├── fixedcolumns.html │ │ │ │ ├── fixedheader.html │ │ │ │ ├── index.html │ │ │ │ ├── responsive.html │ │ │ │ ├── server_side.html │ │ │ │ └── state_save.html │ │ │ └── styling │ │ │ │ ├── alt_insert.html │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── dataTables.colReorder.js │ │ │ └── dataTables.colReorder.min.js │ ├── FixedColumns │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── fixedColumns.bootstrap.css │ │ │ ├── fixedColumns.bootstrap.min.css │ │ │ ├── fixedColumns.bootstrap4.css │ │ │ ├── fixedColumns.bootstrap4.min.css │ │ │ ├── fixedColumns.dataTables.css │ │ │ ├── fixedColumns.dataTables.min.css │ │ │ ├── fixedColumns.foundation.css │ │ │ ├── fixedColumns.foundation.min.css │ │ │ ├── fixedColumns.jqueryui.css │ │ │ ├── fixedColumns.jqueryui.min.css │ │ │ ├── fixedColumns.semanticui.css │ │ │ └── fixedColumns.semanticui.min.css │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── colvis.html │ │ │ │ ├── css_size.html │ │ │ │ ├── index.html │ │ │ │ ├── index_column.html │ │ │ │ ├── left_right_columns.html │ │ │ │ ├── right_column.html │ │ │ │ ├── server-side-processing.html │ │ │ │ ├── simple.html │ │ │ │ ├── size_fixed.html │ │ │ │ ├── size_fluid.html │ │ │ │ └── two_columns.html │ │ │ ├── integration │ │ │ │ ├── api.html │ │ │ │ ├── index.html │ │ │ │ ├── select-checkbox.html │ │ │ │ └── select.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── col_filter.html │ │ │ │ ├── colvis.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ ├── rowspan.html │ │ │ │ ├── rtl.html │ │ │ │ ├── semanticui.html │ │ │ │ └── server-side-processing.html │ │ └── js │ │ │ ├── dataTables.fixedColumns.js │ │ │ └── dataTables.fixedColumns.min.js │ ├── FixedHeader │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── fixedHeader.bootstrap.css │ │ │ ├── fixedHeader.bootstrap.min.css │ │ │ ├── fixedHeader.bootstrap4.css │ │ │ ├── fixedHeader.bootstrap4.min.css │ │ │ ├── fixedHeader.dataTables.css │ │ │ ├── fixedHeader.dataTables.min.css │ │ │ ├── fixedHeader.foundation.css │ │ │ ├── fixedHeader.foundation.min.css │ │ │ ├── fixedHeader.jqueryui.css │ │ │ ├── fixedHeader.jqueryui.min.css │ │ │ ├── fixedHeader.semanticui.css │ │ │ └── fixedHeader.semanticui.min.css │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── integration │ │ │ │ ├── buttons.html │ │ │ │ ├── colreorder.html │ │ │ │ ├── index.html │ │ │ │ ├── responsive-bootstrap.html │ │ │ │ └── responsive.html │ │ │ ├── options │ │ │ │ ├── enable-disable.html │ │ │ │ ├── header_footer.html │ │ │ │ ├── horizontal-scroll.html │ │ │ │ ├── index.html │ │ │ │ ├── new.html │ │ │ │ ├── offset-automatic.html │ │ │ │ ├── offset.html │ │ │ │ ├── show-hide.html │ │ │ │ ├── simple.html │ │ │ │ └── two_tables.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── dataTables.fixedHeader.js │ │ │ └── dataTables.fixedHeader.min.js │ ├── KeyTable │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── keyTable.bootstrap.css │ │ │ ├── keyTable.bootstrap.min.css │ │ │ ├── keyTable.bootstrap4.css │ │ │ ├── keyTable.bootstrap4.min.css │ │ │ ├── keyTable.dataTables.css │ │ │ ├── keyTable.dataTables.min.css │ │ │ ├── keyTable.foundation.css │ │ │ ├── keyTable.foundation.min.css │ │ │ ├── keyTable.jqueryui.css │ │ │ ├── keyTable.jqueryui.min.css │ │ │ ├── keyTable.semanticui.css │ │ │ └── keyTable.semanticui.min.css │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── blurable.html │ │ │ │ ├── events.html │ │ │ │ ├── index.html │ │ │ │ ├── scroller.html │ │ │ │ ├── scrolling.html │ │ │ │ ├── server-side.html │ │ │ │ ├── simple.html │ │ │ │ └── stateSave.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── focusStyle.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── dataTables.keyTable.js │ │ │ └── dataTables.keyTable.min.js │ ├── Responsive │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── responsive.bootstrap.css │ │ │ ├── responsive.bootstrap.min.css │ │ │ ├── responsive.bootstrap4.css │ │ │ ├── responsive.bootstrap4.min.css │ │ │ ├── responsive.dataTables.css │ │ │ ├── responsive.dataTables.min.css │ │ │ ├── responsive.foundation.css │ │ │ ├── responsive.foundation.min.css │ │ │ ├── responsive.jqueryui.css │ │ │ ├── responsive.jqueryui.min.css │ │ │ ├── responsive.semanticui.css │ │ │ └── responsive.semanticui.min.css │ │ ├── examples │ │ │ ├── child-rows │ │ │ │ ├── column-control.html │ │ │ │ ├── custom-renderer.html │ │ │ │ ├── disable-child-rows.html │ │ │ │ ├── index.html │ │ │ │ ├── right-column.html │ │ │ │ └── whole-row-control.html │ │ │ ├── column-control │ │ │ │ ├── auto.html │ │ │ │ ├── classes.html │ │ │ │ ├── colreorder.html │ │ │ │ ├── column-visibility.html │ │ │ │ ├── columnPriority.html │ │ │ │ ├── fixedHeader.html │ │ │ │ ├── index.html │ │ │ │ └── init-classes.html │ │ │ ├── display-types │ │ │ │ ├── bootstrap-modal.html │ │ │ │ ├── bootstrap4-modal.html │ │ │ │ ├── foundation-modal.html │ │ │ │ ├── immediateShow.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui-modal.html │ │ │ │ ├── modal.html │ │ │ │ └── semanticui-modal.html │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── ajax.html │ │ │ │ ├── className.html │ │ │ │ ├── default.html │ │ │ │ ├── index.html │ │ │ │ ├── new.html │ │ │ │ └── option.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── compact.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ ├── scrolling.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── dataTables.responsive.js │ │ │ ├── dataTables.responsive.min.js │ │ │ ├── responsive.bootstrap.js │ │ │ ├── responsive.bootstrap.min.js │ │ │ ├── responsive.bootstrap4.js │ │ │ ├── responsive.bootstrap4.min.js │ │ │ ├── responsive.foundation.js │ │ │ ├── responsive.foundation.min.js │ │ │ ├── responsive.jqueryui.js │ │ │ ├── responsive.jqueryui.min.js │ │ │ ├── responsive.semanticui.js │ │ │ └── responsive.semanticui.min.js │ ├── RowGroup │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── rowGroup.bootstrap.css │ │ │ ├── rowGroup.bootstrap.min.css │ │ │ ├── rowGroup.bootstrap4.css │ │ │ ├── rowGroup.bootstrap4.min.css │ │ │ ├── rowGroup.dataTables.css │ │ │ ├── rowGroup.dataTables.min.css │ │ │ ├── rowGroup.foundation.css │ │ │ ├── rowGroup.foundation.min.css │ │ │ ├── rowGroup.jqueryui.css │ │ │ ├── rowGroup.jqueryui.min.css │ │ │ ├── rowGroup.semanticui.css │ │ │ └── rowGroup.semanticui.min.css │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── ajaxObjects.html │ │ │ │ ├── customRow.html │ │ │ │ ├── endRender.html │ │ │ │ ├── event.html │ │ │ │ ├── fixedOrdering.html │ │ │ │ ├── index.html │ │ │ │ ├── simple.html │ │ │ │ └── startAndEndRender.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── dataTables.rowGroup.js │ │ │ └── dataTables.rowGroup.min.js │ ├── RowReorder │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── rowReorder.bootstrap.css │ │ │ ├── rowReorder.bootstrap.min.css │ │ │ ├── rowReorder.bootstrap4.css │ │ │ ├── rowReorder.bootstrap4.min.css │ │ │ ├── rowReorder.dataTables.css │ │ │ ├── rowReorder.dataTables.min.css │ │ │ ├── rowReorder.foundation.css │ │ │ ├── rowReorder.foundation.min.css │ │ │ ├── rowReorder.jqueryui.css │ │ │ ├── rowReorder.jqueryui.min.css │ │ │ ├── rowReorder.semanticui.css │ │ │ ├── rowReorder.semanticui.min.css │ │ │ └── semanticui.scss │ │ ├── examples │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── defaults.html │ │ │ │ ├── events.html │ │ │ │ ├── index.html │ │ │ │ ├── responsive.html │ │ │ │ ├── restrictedOrdering.html │ │ │ │ ├── scroll.html │ │ │ │ ├── selector.html │ │ │ │ └── simple.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ ├── reorderClass.html │ │ │ │ ├── semanticui.html │ │ │ │ └── snapX.html │ │ └── js │ │ │ ├── dataTables.rowReorder.js │ │ │ └── dataTables.rowReorder.min.js │ ├── Scroller │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ │ ├── scroller.bootstrap.css │ │ │ ├── scroller.bootstrap.min.css │ │ │ ├── scroller.bootstrap4.css │ │ │ ├── scroller.bootstrap4.min.css │ │ │ ├── scroller.dataTables.css │ │ │ ├── scroller.dataTables.min.css │ │ │ ├── scroller.foundation.css │ │ │ ├── scroller.foundation.min.css │ │ │ ├── scroller.jqueryui.css │ │ │ ├── scroller.jqueryui.min.css │ │ │ ├── scroller.semanticui.css │ │ │ └── scroller.semanticui.min.css │ │ ├── examples │ │ │ ├── data │ │ │ │ ├── 2500.txt │ │ │ │ └── ssp.php │ │ │ ├── index.html │ │ │ ├── initialisation │ │ │ │ ├── api_scrolling.html │ │ │ │ ├── fixedColumns.html │ │ │ │ ├── index.html │ │ │ │ ├── large_js_source.html │ │ │ │ ├── select.html │ │ │ │ ├── server-side_processing.html │ │ │ │ ├── simple.html │ │ │ │ └── state_saving.html │ │ │ └── styling │ │ │ │ ├── bootstrap.html │ │ │ │ ├── bootstrap4.html │ │ │ │ ├── foundation.html │ │ │ │ ├── index.html │ │ │ │ ├── jqueryui.html │ │ │ │ └── semanticui.html │ │ └── js │ │ │ ├── dataTables.scroller.js │ │ │ └── dataTables.scroller.min.js │ └── Select │ │ ├── License.txt │ │ ├── Readme.md │ │ ├── css │ │ ├── select.bootstrap.css │ │ ├── select.bootstrap.min.css │ │ ├── select.bootstrap4.css │ │ ├── select.bootstrap4.min.css │ │ ├── select.dataTables.css │ │ ├── select.dataTables.min.css │ │ ├── select.foundation.css │ │ ├── select.foundation.min.css │ │ ├── select.jqueryui.css │ │ ├── select.jqueryui.min.css │ │ ├── select.semanticui.css │ │ └── select.semanticui.min.css │ │ ├── examples │ │ ├── api │ │ │ ├── cancellableEvents.html │ │ │ ├── events.html │ │ │ ├── get.html │ │ │ ├── index.html │ │ │ └── select.html │ │ ├── index.html │ │ ├── initialisation │ │ │ ├── blurable.html │ │ │ ├── buttons.html │ │ │ ├── cells.html │ │ │ ├── checkbox.html │ │ │ ├── deferRender.html │ │ │ ├── i18n.html │ │ │ ├── index.html │ │ │ ├── multi.html │ │ │ ├── reload.html │ │ │ ├── simple.html │ │ │ └── single.html │ │ └── styling │ │ │ ├── bootstrap.html │ │ │ ├── bootstrap4.html │ │ │ ├── foundation.html │ │ │ ├── index.html │ │ │ ├── jqueryui.html │ │ │ └── semanticui.html │ │ └── js │ │ ├── dataTables.select.js │ │ └── dataTables.select.min.js │ ├── images │ ├── Sorting icons.psd │ ├── favicon.ico │ ├── sort_asc.png │ ├── sort_asc_disabled.png │ ├── sort_both.png │ ├── sort_desc.png │ └── sort_desc_disabled.png │ ├── jquery.dataTables.css │ ├── jquery.dataTables.js │ ├── jquery.dataTables.min.css │ ├── jquery.dataTables.min.js │ └── jquery.dataTables_themeroller.css └── view ├── cliente ├── cliente-editar.php └── cliente.php └── header.php /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP - PDO + MVC 2 | Ejemplo en PHP con el paradigma orientado a objetos 3 | ## Descripción 4 | Sistema de agenda de clientes desarrollado en PHP utilizando la librería Datatables para el manejo de datos. 5 | 6 | ## Frameworks utilizados 7 | * [Datatables](https://datatables.net/) - Tablas dinámicas de datos 8 | * [Bootstrap](http://getbootstrap.com/) - Bootstrap Library for frontend design 9 | 10 | ## Authors 11 | * **Miguel Vega** - *Universidad Científica del Sur* 12 | * **Victor Sotomayor** - *Universidad Científica del Sur* -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | /* Imports */ 2 | @import url(http://fonts.googleapis.com/css?family=Oswald:300); 3 | @import url(http://fonts.googleapis.com/css?family=Open+Sans); 4 | 5 | .has-error small{color:red;font-weight:normal;margin-left:5px;} 6 | #jumbotron-index{margin-top:50px;background:#666;color:#eee;} -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /assets/js/datatable.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $('#tabla').DataTable( { 3 | "language": { 4 | "lengthMenu":"Mostrar _MENU_ registros por página.", 5 | "search" : "Buscar", 6 | "zeroRecords": "Lo sentimos. No se encontraron registros.", 7 | "info": "Mostrando página _PAGE_ de _PAGES_", 8 | "infoEmpty": "No hay registros aún.", 9 | "infoFiltered": "(filtrados de un total de _MAX_ registros)", 10 | "LoadingRecords": "Cargando ...", 11 | "Processing": "Procesando...", 12 | "SearchPlaceholder": "Comience a teclear...", 13 | "paginate": { 14 | "previous": "Anterior", 15 | "next": "Siguiente", 16 | } 17 | }, 18 | 19 | 20 | "sort": false 21 | 22 | } ); 23 | } ); -------------------------------------------------------------------------------- /assets/js/ini.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $(".datepicker").datepicker({ 3 | dateFormat: 'yy-mm-dd' 4 | }); 5 | }) 6 | 7 | -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_flat_10_000000_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_flat_10_000000_40x100.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-icons_228ef1_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-icons_228ef1_256x240.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-icons_ef8c08_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-icons_ef8c08_256x240.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-icons_ffd27a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-icons_ffd27a_256x240.png -------------------------------------------------------------------------------- /assets/js/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvegap/php-poo-mvc/71da1a8a9132bb811debcb4c95c5610444b283c2/assets/js/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /assets/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /controller/cliente.controller.php: -------------------------------------------------------------------------------- 1 | model = new cliente(); 10 | } 11 | 12 | public function Index(){ 13 | require_once 'view/header.php'; 14 | require_once 'view/cliente/cliente.php'; 15 | 16 | } 17 | 18 | public function Crud(){ 19 | $cliente = new cliente(); 20 | 21 | if(isset($_REQUEST['id'])){ 22 | $cliente = $this->model->Obtener($_REQUEST['id']); 23 | } 24 | 25 | require_once 'view/header.php'; 26 | require_once 'view/cliente/cliente-editar.php'; 27 | 28 | } 29 | 30 | public function Guardar(){ 31 | $cliente = new cliente(); 32 | 33 | $cliente->id = $_REQUEST['id']; 34 | $cliente->dni = $_REQUEST['dni']; 35 | $cliente->Nombre = $_REQUEST['Nombre']; 36 | $cliente->Apellido = $_REQUEST['Apellido']; 37 | $cliente->Correo = $_REQUEST['Correo']; 38 | $cliente->telefono = $_REQUEST['telefono']; 39 | 40 | 41 | $cliente->id > 0 42 | ? $this->model->Actualizar($cliente) 43 | : $this->model->Registrar($cliente); 44 | 45 | header('Location: index.php'); 46 | } 47 | 48 | public function Eliminar(){ 49 | $this->model->Eliminar($_REQUEST['id']); 50 | header('Location: index.php'); 51 | } 52 | } -------------------------------------------------------------------------------- /database/cliente.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 4.6.5.2 3 | -- https://www.phpmyadmin.net/ 4 | -- 5 | -- Servidor: 127.0.0.1 6 | -- Tiempo de generación: 07-08-2017 a las 05:01:52 7 | -- Versión del servidor: 10.1.21-MariaDB 8 | -- Versión de PHP: 5.6.30 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | SET time_zone = "+00:00"; 12 | 13 | 14 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 15 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 16 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 17 | /*!40101 SET NAMES utf8mb4 */; 18 | 19 | -- 20 | -- Base de datos: `cliente` 21 | -- 22 | 23 | -- -------------------------------------------------------- 24 | 25 | -- 26 | -- Estructura de tabla para la tabla `cliente` 27 | -- 28 | 29 | CREATE TABLE `cliente` ( 30 | `id` int(11) NOT NULL, 31 | `dni` int(60) NOT NULL, 32 | `Nombre` varchar(50) NOT NULL DEFAULT '0', 33 | `Apellido` varchar(50) NOT NULL DEFAULT '0', 34 | `Correo` varchar(50) NOT NULL, 35 | `Telefono` varchar(60) NOT NULL 36 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 37 | 38 | -- 39 | -- Índices para tablas volcadas 40 | -- 41 | 42 | -- 43 | -- Indices de la tabla `cliente` 44 | -- 45 | ALTER TABLE `cliente` 46 | ADD PRIMARY KEY (`id`); 47 | 48 | -- 49 | -- AUTO_INCREMENT de las tablas volcadas 50 | -- 51 | 52 | -- 53 | -- AUTO_INCREMENT de la tabla `cliente` 54 | -- 55 | ALTER TABLE `cliente` 56 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; 57 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 58 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 59 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 60 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | Index(); 13 | } 14 | else 15 | { 16 | // Obtenemos el controlador que queremos cargar 17 | $controller = strtolower($_REQUEST['c']); 18 | $accion = isset($_REQUEST['a']) ? $_REQUEST['a'] : 'Index'; 19 | 20 | // Instanciamos el controlador 21 | require_once "controller/$controller.controller.php"; 22 | $controller = ucwords($controller) . 'Controller'; 23 | $controller = new $controller; 24 | 25 | // Llama la accion 26 | call_user_func( array( $controller, $accion ) ); 27 | } -------------------------------------------------------------------------------- /model/database.php: -------------------------------------------------------------------------------- 1 | setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 8 | return $pdo; 9 | } 10 | } -------------------------------------------------------------------------------- /plugins/datatables/dataTables.bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2015 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, 6 | {sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; 7 | l=0;for(h=f.length;l",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#", 8 | "aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('