Wallogit.com
2017 © Pedro Peláez
Este es una libreria que te permite listar las tablas de una base de datos. Pueden mostrar tablas relacionadas y filtrarlas entre multiples valores. Pagina los resultados y puedes asignar el numero de resultados por pagina
Libreria adaptada para symfony 3.x, 4.x Recorta imagenes que se obtienen desde los ficheros temporales(/tmp) del servidor.En esta carpeta se suele guardar los datos pasados por formularios, etc. Recorta las miniaturas de la imagen centrada segun los parametros que se le pase y retorna un array con la ruta donde se guardaron y genera minuaturas. Estas imagenes son guardadas en una carpeta alojada en "/web" o "/public"., (*1)
SearchGloom, (*2)
- Primero: Obtienes la ruta donde se encuentra la imagen temporal. - Segundo: Instancia la clase Imagen() - Tercero: Inserta el nombre de la imagen con el metodo setName() - Cuardo: Inserta la imagen temporal, el nombre de la carpeta donde se guarda y el callBack donde llamar las funciones de Thumbnail - Quinto: save() retorna un array con los datos meta de la imagen guardada., (*3)
Llama la libreria, (*4)
use Bitsystem\Backend\Image;
//Obtiene la imagen pasada por un formulario
$imageBinary = $request->files->get('image', FALSE);
//Instancia la clase
$image = new Image();
$image->setName($request->request->get('name', NULL));
$image->insertImage($imageBinary, 'course',function($e){
$e->thumbnail(40,40);
$e->thumbnail(364,205);
$e->thumbnail(1080,720);
});
//Retorna un array
$imageSave = $image->save();
//Recorre el array para obtener el path de la imagen
foreach ($imageSave['thumbnails'] as $value){
$value['route'];
$value['width'];
$value['height'];
}
Search pro es una libreria pensada para mostrar las tablas de una base de datos nombrando la tabla y las columnas que necesitamos visualizar. Ademas puedes filtrar las tablas por las columnas. Incluye un sistema de paginacion que busca los resultados de la tabla por Ajax segun los filtros seleccionados., (*5)
Accedemos a la terminal y instalamos con composer la libreria en el composer.json de nuestro proyecto Symfony, (*7)
composer require bitsystem/searchpro
Necesitamos agregar primero el select2.js necesario para poder visualizar los filtros de la tabla. Despues tableList.js al final., (*9)
{{ blocks javascripts }}
//Dependencias
<script type="text/javascript" src="{{ asset('assets/select2/dist/js/select2.min.js') }}"></script>
//Plugin para generar la tabla
<script src="{{asset('js/tableList.js')}}"></script>
{{ endblocks }}
Primero incluimos la libreria en el controlador., (*10)
use Bitsystem\SearchPro\Search as Search;
Recogemos el texto a buscar y el filtro a buscar. Instancion la clase y usas los metodos que necesites para mostrar las columnas., (*11)
//Campo de busqueda
$textSearch = $request->request->get('q','');
//Parametros del filtro
$filter = $request->request->get('filter','');
$search = new Search($this->getDoctrine()->getManager(), $request);
$result = $search->setTable('Clientes')
->addColum([
'id' => 'id',
'nombre' => 'nombre'
])
->selectRow([ 1 => 1,
10 => [ 10, true ],
20 => 20,
30 => 30,
40 => 40,
'Todo' => 'all'
])
->search('nombre',$textSearch)
->getResult();
return $result;
Si necesitamos ocultar la paginacion de la tabla solo tenemos que añadir la opcion paging. Por defecto el valor de paging es
TRUE, (*13)
paging: false
El numero de resultados totales de columnas de la tabla se muestra debajo de la paginacion. Por defecto el valor de info es TRUE
Si necesitamos ocultar la informacion solo tenemos que añadir la opcion info., (*14)
info: false
->addColum([
'nombre variable' => 'Nombre columna Tabla'
])
Metodo encargado de obtener el nombre de la tabla principal para poder hacer las consultas. La tabla principal se relaciona con otras tablas con los metodos addColumForeignKey() , addColumForeignKey(), (*16)
->setTable('Nombre tabla')
->addColumForeignKey([
'POPULATION' => [
'type' => 'select',
'table' => 'MUNICIPALITY',
'columReference' => 'MUNICIPALITY',
'colum' => 'POPULATION'
]
])
Para implementarlo necesitamos insertar en nuestro controlador y en la vista twig algunos archivos necesarios., (*18)
Estructura basica html, (*19)
$("#search-pro").search({
textSend: $('#find'),
buttonSend: $('#find-ajax'),
paging: false,
info: false,
colums: ['Id','Nombre'],
tableRow: function(data){
var row = "";
$.each(data.result, function(k, v){
row += "<tr data-href='"+v.id+"'>\
<th>"+v.id+"</th>\
<th>\
<a>"+v.nombre+"</a>\
</th>\
</tr>";
});
return row;
}
});
npm install, (*20)
Esta librera utiliza los metodos GET y POST debemos asegurarnos de que tenemos habilitada la request de ellas, (*21)
Vista de como se ve la tabla segun los parametros indicados, (*22)
, (*23)
Give the example
And repeat, (*24)
until finished
End with an example of getting some data out of the system or using it for a little demo, (*25)
Explain how to run the automated tests for this system, (*26)
Explain what these tests test and why, (*27)
Give an example
Explain what these tests test and why, (*28)
Give an example
Add additional notes about how to deploy this on a live system, (*29)
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us., (*30)
We use SemVer for versioning. For the versions available, see the tags on this repository., (*31)
Consulte también la lista de colaboradores que participaron en este proyect., (*32)
Este proyecto está licenciado bajo la Licencia MIT - ver el LICENSE.md archivo para detalles, (*33)