Post Top Ad

Your Ad Spot

sábado, 12 de septiembre de 2020

En este blog, aprenderá "Cómo agregar un filtro en la administración de Shopware". Espero que conozca la estructura de directorios del complemento Shopware 6; si no la conoce, consulte aquí: https://docs.shopware.com/en/shopware-platform-dev-en/internals/directory-structure . El principal punto de entrada para extender la administración a través del complemento es el archivo main.js. Tienes que ser colocado en un directorio / src / Resources / app / Administration / src para que Shopware 6 te encuentre. Si no sabe cómo crear un módulo, puede buscar aquí . Test.Html.Twig {% block test_list %} {% block test_list_sidebar %} {% endblock %} {% endblock %} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 {% block test_list %} {% block test_list_sidebar %} {% endblock %} {% endblock %} En el código anterior, estamos usando el componente de la barra lateral que puede ver aquí. Debajo del componente de la barra lateral, debe crear un componente de elemento de la barra lateral y agregar el componente a través del cual puede buscar los datos, en mi caso estoy usando sw-fieldde tipo texty sw-buttoncomponente para llamar a la función. Index.Js import template from './test.html.twig'; const { Component, Mixin } = Shopware; const { Criteria } = Shopware.Data; Component.register('test-list', { template, inject: ['repositoryFactory'], mixins: [ Mixin.getByName('notification'), Mixin.getByName('salutation'), Mixin.getByName('listing') ], data() { return { isLoading: false, list: null, productName: null }; }, metaInfo() { return { title: this.$createTitle() }; }, created() { this.getList(); }, computed: { testRespository() { return this.repositoryFactory.create('test'); }, criteria() { if (this.productName) { const criteria = new Criteria(); criteria.addFilter(Criteria.equalsAny('productName', this.productName)); return criteria; } else { const criteria = new Criteria(); return criteria; } } }, methods: { getList() { this.isLoading = true; this.testRespository.search(this.criteria, Shopware.Context.api).then((result) => { this.list = result; this.isLoading = false; }) }, filter() { this.isLoading = true; this.getList(); }, } }); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 import template from './test.html.twig'; const { Component, Mixin } = Shopware; const { Criteria } = Shopware.Data; Component.register('test-list', { template, inject: ['repositoryFactory'], mixins: [ Mixin.getByName('notification'), Mixin.getByName('salutation'), Mixin.getByName('listing') ], data() { return { isLoading: false, list: null, productName: null }; }, metaInfo() { return { title: this.$createTitle() }; }, created() { this.getList(); }, computed: { testRespository() { return this.repositoryFactory.create('test'); }, criteria() { if (this.productName) { const criteria = new Criteria(); criteria.addFilter(Criteria.equalsAny('productName', this.productName)); return criteria; } else { const criteria = new Criteria(); return criteria; } } }, methods: { getList() { this.isLoading = true; this.testRespository.search(this.criteria, Shopware.Context.api).then((result) => { this.list = result; this.isLoading = false; }) }, filter() { this.isLoading = true; this.getList(); }, } }); En este archivo, hay una entidad llamada test. Existe una lógica simple para buscar los datos de la entidad, puede construir su lógica según sus necesidades. Si el nombre del producto está disponible, los criterios de búsqueda de datos de acuerdo con ellos. La búsqueda global escrita necesita una instancia de la clase JavaScript ApiService con la clave de la entidad en el caso camel con el sufijo Service. La clave de servicio es el mejor servicio al solicitar servicio para una prueba. En segundo lugar, la definición de la entidad obtiene automáticamente una instancia en el contenedor de inyección, pero se puede anular, por lo que no se necesita trabajo adicional. Puede agregar el filtro en cualquier página, como la página de listado, la página de detalles de acuerdo con sus necesidades. En segundo lugar, agregue la selección única o la selección múltiple para filtrar los datos de la entidad y mostrarlos porque no es posible agregar el repositorio en la búsqueda de administración. Hace que el sitio web sea muy complejo. Le recomendamos que agregue un filtro en la página. Espero que te ayude. Gracias por leer. Happy Coding 🙂 Gracias.

¡Hola lectores! En este blog le mostraré cómo puede obtener la ruta de cualquier módulo instalado. También la ruta de algunas carpetas relacionadas con el módulo como, por ejemplo, carpetas del controlador.
Para obtener las rutas, necesita la ayuda de la clase \ Magento \ Framework \ Module \ Dir como se muestra a continuación,
Si no proporcionamos ningún segundo parámetro, el método getDir devolverá la ruta al directorio del módulo. Podemos proporcionar el segundo parámetro para obtener las carpetas específicas de un módulo.
Gracias por leer el blog. No dude en comentar si tiene algún problema.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas