Force-Directed Graph
Esta visualización permite mostrar una red de elementos relacionados, ofreciendo una buena cantidad de herramientas para configurar los enlaces que la forman. El panel de configuración es el siguiente:
Drupal\user\Entity\Role::postLoad(Object, Array) (Line: 423) Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 353) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 16) Drupal\user\RoleStorage->isPermissionInRoles('access site in maintenance mode', Array) (Line: 112) Drupal\Core\Session\UserSession->hasPermission('access site in maintenance mode') (Line: 105) Drupal\Core\Session\AccountProxy->hasPermission('access site in maintenance mode') (Line: 83) Drupal\redirect\RedirectChecker->canRedirect(Object) (Line: 120) Drupal\redirect\EventSubscriber\RedirectRequestSubscriber->onKernelRequestCheckRedirect(Object, 'kernel.request', Object) call_user_func(Array, Object, 'kernel.request', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.request') (Line: 145) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54) Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 141) Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104) Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82) Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 2318) Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697) Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54) Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228) Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 144) Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104) Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82) Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 2318) Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697) Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54) Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228) Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 110) Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82) Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 2318) Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697) Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 35) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 2318) Drupal\views\Plugin\views\display\DisplayPluginBase->preExecute() (Line: 1697) Drupal\views\ViewExecutable->preExecute(Array) (Line: 1632) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('views') (Line: 1316) Drupal\views\Plugin\views\query\Sql->query() (Line: 1454) Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('views_substitutions', Array) (Line: 1418) Drupal\views\Plugin\views\query\Sql->query() (Line: 1454) Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('views') (Line: 1316) Drupal\views\Plugin\views\query\Sql->query(1) (Line: 1455) Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('views_substitutions', Array) (Line: 1418) Drupal\views\Plugin\views\query\Sql->query(1) (Line: 1455) Drupal\views\Plugin\views\query\Sql->build(Object) (Line: 1326) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54) Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 141) Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104) Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82) Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 1876) Drupal\views\ViewExecutable->buildTitle() (Line: 338) Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733) Drupal\views\ViewExecutable->attachDisplays() (Line: 1333) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54) Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228) Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 144) Drupal\views\Plugin\views\PluginBase->init(Object, Object, Array) (Line: 104) Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82) Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 1876) Drupal\views\ViewExecutable->buildTitle() (Line: 338) Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733) Drupal\views\ViewExecutable->attachDisplays() (Line: 1333) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 54) Drupal\views\Plugin\views\argument\ManyToOne->defineOptions() (Line: 228) Drupal\views\Plugin\views\PluginBase->unpackOptions(Array, Array) (Line: 110) Drupal\views\Plugin\views\HandlerBase->init(Object, Object, Array) (Line: 82) Drupal\views\Plugin\views\argument\ArgumentPluginBase->init(Object, Object, Array) (Line: 33) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 1876) Drupal\views\ViewExecutable->buildTitle() (Line: 338) Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733) Drupal\views\ViewExecutable->attachDisplays() (Line: 1333) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\views\ManyToOneHelper->__construct(Object) (Line: 35) Drupal\views\Plugin\views\argument\ManyToOne->init(Object, Object, Array) (Line: 894) Drupal\views\Plugin\views\display\DisplayPluginBase->getHandlers('argument') (Line: 1045) Drupal\views\ViewExecutable->_initHandler('argument', Array) (Line: 903) Drupal\views\ViewExecutable->initHandlers() (Line: 1876) Drupal\views\ViewExecutable->buildTitle() (Line: 338) Drupal\views\Plugin\views\display\Feed->attachTo(Object, 'page_1', Array) (Line: 1733) Drupal\views\ViewExecutable->attachDisplays() (Line: 1333) Drupal\views\ViewExecutable->build() (Line: 392) Drupal\views\Plugin\views\display\PathPluginBase->execute() (Line: 196) Drupal\views\Plugin\views\display\Page->execute() (Line: 1635) Drupal\views\ViewExecutable->executeDisplay('page_1', Array) (Line: 81) Drupal\views\Element\View::preRenderViewElement(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '850f744c-a3d0-41f0-8c30-1174e2560b5f') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '850f744c-a3d0-41f0-8c30-1174e2560b5f') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '850f744c-a3d0-41f0-8c30-1174e2560b5f') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '850f744c-a3d0-41f0-8c30-1174e2560b5f') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '850f744c-a3d0-41f0-8c30-1174e2560b5f') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '78f0a4f0-0953-4164-9506-1ce8cc5025a5') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '78f0a4f0-0953-4164-9506-1ce8cc5025a5') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '78f0a4f0-0953-4164-9506-1ce8cc5025a5') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '78f0a4f0-0953-4164-9506-1ce8cc5025a5') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '78f0a4f0-0953-4164-9506-1ce8cc5025a5') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-eef0d76e-dfe0-4819-8f9e-7f26c40dcdf7') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-eef0d76e-dfe0-4819-8f9e-7f26c40dcdf7') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-eef0d76e-dfe0-4819-8f9e-7f26c40dcdf7') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-eef0d76e-dfe0-4819-8f9e-7f26c40dcdf7') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-0b63d795-ba1b-43ba-a8f2-587040183c6e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-0b63d795-ba1b-43ba-a8f2-587040183c6e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-0b63d795-ba1b-43ba-a8f2-587040183c6e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-0b63d795-ba1b-43ba-a8f2-587040183c6e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-929db936-eb9d-412b-8038-5c68308302ff') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-929db936-eb9d-412b-8038-5c68308302ff') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-929db936-eb9d-412b-8038-5c68308302ff') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-929db936-eb9d-412b-8038-5c68308302ff') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-9c278d89-25cb-435b-bdd5-7093e4a89295') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-9c278d89-25cb-435b-bdd5-7093e4a89295') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-9c278d89-25cb-435b-bdd5-7093e4a89295') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-9c278d89-25cb-435b-bdd5-7093e4a89295') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Hourglass Chart by MAQ Software</strong>, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización. La mala noticia es que este desarrollo está muy poco depurado, con algunos serios problemas de usabilidad y algunos bugs. Echemos un vistazo a la visualización. El panel de configuración es el siguiente: A <em>Category</em> deberemos llevar los elementos a comparar (países, categorías de productos, productos...), a <em>Source</em> los valores en el primer escenario y a <em>Destination</em> los valores en el segundo escenario. Por ejemplo, supongamos que tenemos una tabla en la que, para cada categoría de producto, tenemos el número de unidades producidas y el número de unidades vendidas: Llevamos nuestro campo <em>Category</em> al campo homónimo de la visualización y los campos <em>Production</em> y <em>Sales</em> a <em>Source</em> y <em>Destination</em>, respectivamente, y configuramos estos dos últimos de forma que la función de agregación aplicada sea la suma: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_03.jpg"></a> El primer problema que apreciamos es que las etiquetas no se ven completamente. Y eso que se ha dado un tamaño bastante razonable a la visualización. Si vamos al panel de formato vemos que las etiquetas de las categorías (que se muestran a la izquierda) tienen ya el menor tamaño posible (<em>Formato > Category Label</em>). Y lo mismo ocurre con las etiquetas de los valores (que se muestran en la parte superior e inferior del "reloj": <em>Formato > Data labels</em>). Y peor todavía, las cifras que muestran las conversiones (el porcentaje de variación o las diferencias) en el centro del reloj no se ven (ninguna): Se muestran tres puntos suspensivos en su lugar. Y ni dando a la visualización un tamaño ridículamente grande pueden verse todas las etiquetas (haz clic en la siguiente imagen para verla ampliada): <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_04.jpg"></a> Como puede apreciarse en la imagen anterior, hay todavía una etiqueta en la parte superior derecha que sigue sin verse completamente. Si movemos el cursor encima de los diferentes componentes del reloj sí vemos la información en la ventana que se muestra: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_05.jpg"></a> Pero esto no soluciona el problema, por supuesto. La visualización puede mostrarse vertical (por defecto) u horizontal (<em>Formato > Rotation</em>), aunque los problemas de visibilidad de las etiquetas persisten en ambos modos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/hourglass_chart_maq_06.jpg"></a> Además, hay algunos bugs: por ejemplo, la leyenda se muestra (en determinadas circunstancias) aun cuando se desactive. En resumen, la idea, sin ser excesivamente original pues existen visualizaciones con esta misma orientación, es interesante, pero la ejecución hay que calificarla de decepcionante. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd93505a9-6686-48a7-bd9f-6f464499bbac') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd93505a9-6686-48a7-bd9f-6f464499bbac') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd93505a9-6686-48a7-bd9f-6f464499bbac') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd93505a9-6686-48a7-bd9f-6f464499bbac') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'd93505a9-6686-48a7-bd9f-6f464499bbac') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9d438a6c-de63-4585-924d-9a1b530477d7') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9d438a6c-de63-4585-924d-9a1b530477d7') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9d438a6c-de63-4585-924d-9a1b530477d7') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9d438a6c-de63-4585-924d-9a1b530477d7') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '9d438a6c-de63-4585-924d-9a1b530477d7') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0523fdaf-cf53-437a-973e-874ac4a3c824') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0523fdaf-cf53-437a-973e-874ac4a3c824') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0523fdaf-cf53-437a-973e-874ac4a3c824') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0523fdaf-cf53-437a-973e-874ac4a3c824') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '0523fdaf-cf53-437a-973e-874ac4a3c824') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '59a06457-1966-4793-bba0-e012f318d798') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '59a06457-1966-4793-bba0-e012f318d798') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '59a06457-1966-4793-bba0-e012f318d798') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '59a06457-1966-4793-bba0-e012f318d798') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '59a06457-1966-4793-bba0-e012f318d798') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-50b37166-f68f-4346-971b-69d81396cf53') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-50b37166-f68f-4346-971b-69d81396cf53') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-50b37166-f68f-4346-971b-69d81396cf53') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-50b37166-f68f-4346-971b-69d81396cf53') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3770616f-08c8-467a-be12-c3802b5cc2a2') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3770616f-08c8-467a-be12-c3802b5cc2a2') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3770616f-08c8-467a-be12-c3802b5cc2a2') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3770616f-08c8-467a-be12-c3802b5cc2a2') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-53e7232f-ada8-4ba7-ac70-96ba22b7ba00') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-53e7232f-ada8-4ba7-ac70-96ba22b7ba00') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-53e7232f-ada8-4ba7-ac70-96ba22b7ba00') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-53e7232f-ada8-4ba7-ac70-96ba22b7ba00') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Image Grid</strong> es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple: Como puede verse, permite trabajar con imágenes que tengan una versión de baja calidad y otra de alta calidad (con usar uno de los dos campos es suficiente), y el campo <em>Value</em> determinará (supuestamente) el tamaño de las imágenes. Realicemos una primera prueba llevando a uno de los dos campos de imágenes las URL's de las banderas de los países en los que estamos vendiendo nuestros productos y a <em>Value</em> la medida <em>Sales</em> que suma las ventas en el contexto actual: Por defecto, la visualización da a las banderas tamaños diferentes según "su orden" (criterio por defecto de la visualización). Si este orden viene determinado por la medida llevada a <em>Values</em>, podemos ver en la tabla que se ha añadido al pie de la visualización que el orden de los países según las ventas no coincide con el aplicado en el <em>Image Grid</em>: España debería estar por delante de Francia... La documentación es relativamente clara: "<em>Top list. The size of the images are proportional to the sort order. First in sort order => largest image.</em>". Y si por "orden" se refiere al orden natural de las imágenes (en este caso orden determinado por la cadena de texto que forma el URL), tampoco es la aplicada en la visualización: En fin... Este comportamiento (tamaño proporcional al orden) es el que se aplica por defecto, pero puede modificarse en <em>Formato > Settings > Render type</em>: El valor por defecto "<em>Top list circles</em>" es el comentado. La opción de <em>Weighted circles</em> aplica tamaños según el valor asociado: Que sí parece coincidir con la tabla mostrada anteriormente. Hay una tercera opción, <em>Grid</em>, en la que las imágenes se muestran en un grid (cuyo número de columnas es personalizable en <em>Formato > Settings > Maximum Columns (for grid)</em>), ordenadas según el "orden" de las imágenes (lo que provoca las mismas dudas acerca de la interpretación de ese "orden"). Hagamos una segunda prueba: Dejando la opción de <em>Weighted circles</em> (se que supone que aplica los tamaños proporcionalmente al valor asociado) cambiemos las imágenes de las banderas por las fotografías de nuestros empleados, y dejemos como valor la medida "<em>Sales</em>" que suma las ventas (en el contexto actual). La visualización muestra lo siguiente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_05.jpg"></a> Supuestamente, las fotografías de mayor tamaño se corresponden a las de los vendedores con mayores ventas. Solo por curiosidad, creemos una tabla con esta misma información: nombre del empleado, su fotografías y su cifra de ventas, y ordenemos la tabla según este último valor: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_06.jpg"></a> Podemos distinguir en la visualización a "Luis Caballero Romero" en el centro de la misma -aunque no es el empleado con mayores ventas-, pero ¿dónde están los dos primeros? Pues, aunque no lo parezca, han sido relegados a una posición relativamente lejana del centro, con fotografías cuyos tamaños no parecen corresponder a su cifra de ventas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/image_grid_07.jpg"></a> La cuestión es que la visualización abre tantas dudas sobre su correcto funcionamiento que su uso no parece demasiado recomendable. Al mover el cursor encima de una de las imágenes se amplía, pero en ningún momento ofrece información sobre el valor asociado. Un clic en la imagen, eso sí, filtra el resto de visualizaciones de la página. Si en el futuro se revisa la visualización (la última actualización es de diciembre de 2017), resultará una interesante forma de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '8081e2a8-b059-4981-b35c-3d4a37c30d7b') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '8081e2a8-b059-4981-b35c-3d4a37c30d7b') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '8081e2a8-b059-4981-b35c-3d4a37c30d7b') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '8081e2a8-b059-4981-b35c-3d4a37c30d7b') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '8081e2a8-b059-4981-b35c-3d4a37c30d7b') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7948e5bc-59d0-4310-8d62-4ed518624872') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7948e5bc-59d0-4310-8d62-4ed518624872') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7948e5bc-59d0-4310-8d62-4ed518624872') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7948e5bc-59d0-4310-8d62-4ed518624872') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7948e5bc-59d0-4310-8d62-4ed518624872') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '57aabb00-b325-469b-a954-f84d6757af08') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '57aabb00-b325-469b-a954-f84d6757af08') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '57aabb00-b325-469b-a954-f84d6757af08') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '57aabb00-b325-469b-a954-f84d6757af08') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '57aabb00-b325-469b-a954-f84d6757af08') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('El <strong>Scroller</strong> es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen: Llevemos al campo <em>Category</em>, por ejemplo, el campo <em>Country</em> de nuestra tabla de geografía (países en los que se venden nuestros productos), y al campo <em>Measure Absolute</em> el campo que contiene las ventas correspondientes a un cierto período de tiempo: Los nombres de los países comienzan a aparecer por la derecha de la visualización y a desplazarse hacia la izquierda, mostrando la cifra de ventas en cuestión. Si llevamos al campo <em>Measure Deviation</em> de la visualización una medida con el incremento o decremento de dichas ventas, la visualización muestra, tras las cifras de ventas, un icono indicando si se produjo un aumento o decremento y la variación en sí: Al mover el cursor encima de la visualización se detiene el scroll, lo que puede resultar muy útil (aunque más útil sería incluso poder parar y rearrancar el scroll con un clic en la visualización) Es posible configurar el tamaño y características del texto mostrado, la velocidad del scroll... Se permite también fijar un texto que será mostrado en lugar de los textos comentados hasta ahora. Aun cuando los escenarios en los que esta visualización sea más recomendable que gráficas más sencillas pero que muestran todos los datos al mismo tiempo son limitados, resulta una forma muy original de transmitir información. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '70c240cf-dd3f-4d40-9f25-eebfd24e1b7e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '70c240cf-dd3f-4d40-9f25-eebfd24e1b7e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '70c240cf-dd3f-4d40-9f25-eebfd24e1b7e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '70c240cf-dd3f-4d40-9f25-eebfd24e1b7e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '70c240cf-dd3f-4d40-9f25-eebfd24e1b7e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '4b817cd1-6dce-4c14-a5ec-334736d08692') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '4b817cd1-6dce-4c14-a5ec-334736d08692') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '4b817cd1-6dce-4c14-a5ec-334736d08692') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '4b817cd1-6dce-4c14-a5ec-334736d08692') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '4b817cd1-6dce-4c14-a5ec-334736d08692') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '252f8f9d-6d91-4900-9658-4b2a3550a444') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '252f8f9d-6d91-4900-9658-4b2a3550a444') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '252f8f9d-6d91-4900-9658-4b2a3550a444') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '252f8f9d-6d91-4900-9658-4b2a3550a444') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '252f8f9d-6d91-4900-9658-4b2a3550a444') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '83cfc5a0-3751-4e8d-b650-85d76762742e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '83cfc5a0-3751-4e8d-b650-85d76762742e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '83cfc5a0-3751-4e8d-b650-85d76762742e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '83cfc5a0-3751-4e8d-b650-85d76762742e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '83cfc5a0-3751-4e8d-b650-85d76762742e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e7dbdd51-7c47-4915-b677-ae6c33366266') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e7dbdd51-7c47-4915-b677-ae6c33366266') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e7dbdd51-7c47-4915-b677-ae6c33366266') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e7dbdd51-7c47-4915-b677-ae6c33366266') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e7dbdd51-7c47-4915-b677-ae6c33366266') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93bd7501-7803-4d2b-98c1-1614dfcb1865') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93bd7501-7803-4d2b-98c1-1614dfcb1865') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93bd7501-7803-4d2b-98c1-1614dfcb1865') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93bd7501-7803-4d2b-98c1-1614dfcb1865') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '93bd7501-7803-4d2b-98c1-1614dfcb1865') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>HierarchySlicer</strong> ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos. La configuración de esta visualización se basa en dos únicos campos: Al campo <em>Fields</em> deberemos arrastar todos los campos de nuestro modelo de datos que deseamos que tomen parte de la jerarquía, y a <em>Values</em> -campo opcional- llevaremos aquel campo o medida que queremos que filtre la jerarquía de forma que se muestren solo aquellas etiquetas que contienen valores (herramienta que, como se comentará más adelante, no funciona correctamente). Por ejemplo, arrastremos los campos <em>Category</em> (categoría de producto), <em>Marital Status</em> (estado civil del cliente) y <em>Gender</em> (sexo del cliente) al campo <em>Fields</em> de la visualización: Vemos cómo se muestran las etiquetas organizadas jerárquicamente, con un cuadro de selección a la izquierda de cada una permitiéndonos seleccionarla o no, y controles a la izquierda de cada casilla de selección con "hijos" (que sea expandible). Al mover el cursor encima de la visualización se muestran unos iconos en la parte superior que nos permiten colapsar todas las etiquetas, expandirlas o limpiar la selección: En el caso de que no todas las etiquetas quepan en pantalla, se muestra a la derecha una barra de desplazamiento. El campo <em>Values</em> no parece funcionar correctamente: si arrastramos la medida <em>Units</em> (totalizando las unidades vendidas), el resultado es el siguiente: Es decir, según el slicer, para la categoría A solo hay ventas a divorciados y viudos, cuando no es así: Sin embargo, si en el slicer seleccionamos la categoría A, vemos que la selección de etiquetas se reparte por toda la estructura: En el panel de formato encontramos opciones para permitir la selección múltiple o no, dar colores a etiquetas (por defecto, si se seleccionan, si se pasa el cursor por encima...). Hay una sección llamada <em>Search</em> que no está documentada (su configuración no parece influir en el comportamiento de la visualización), aunque una herramienta de búsqueda sería bastante útil cuando el número de etiquetas es alto. La visualización ofrece una funcionalidad interesante -la segmentación de campos jerarquizados- aunque los errores software y la falta de ciertas herramientas (de búsqueda, por ejemplo) limitan su utilidad. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '129b0573-2656-493e-85f8-89e34d3092b5') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '129b0573-2656-493e-85f8-89e34d3092b5') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '129b0573-2656-493e-85f8-89e34d3092b5') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '129b0573-2656-493e-85f8-89e34d3092b5') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '129b0573-2656-493e-85f8-89e34d3092b5') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '472b1aec-c090-4c3e-b354-937958facb54') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '472b1aec-c090-4c3e-b354-937958facb54') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '472b1aec-c090-4c3e-b354-937958facb54') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '472b1aec-c090-4c3e-b354-937958facb54') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '472b1aec-c090-4c3e-b354-937958facb54') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3129e8cb-f30c-4ee0-b3c2-24ea79512402') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3129e8cb-f30c-4ee0-b3c2-24ea79512402') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3129e8cb-f30c-4ee0-b3c2-24ea79512402') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3129e8cb-f30c-4ee0-b3c2-24ea79512402') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3129e8cb-f30c-4ee0-b3c2-24ea79512402') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('<strong>Beyondsoft Calendar</strong> es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad: Además del campo <em>Tooltip</em>, solo podemos llevar un campo a <em>Date Field</em> (el calendario) y otro a <em>Measure Data</em> (métrica a mostrar). Por ejemplo, llevemos el campo <em>Date</em> de nuestro calendario al campo <em>Date Field</em> de la visualización, y el campo <em>Units</em> (medida con la suma de unidades vendidas) al campo <em>Measure Data:</em> Gráficamente el resultado no es especialmente atractivo, pero podemos especificar los colores a usar en <em>Formato > Data colors</em>, donde podemos escoger entre colores fijos o usar un gradiente, divergente o no. Por ejemplo: En el interior del rectángulo que representa cada uno de los días se muestra la cifra correspondiente (unidades vendidas en nuestro ejemplo). Y, en realidad, esto es todo. El calendario solo muestra el primer mes del primer año del contexto actual, lo que obliga a utilizar segmentaciones externas o filtrado cruzado. En el panel de formato tenemos algunas opciones adicionales disponibles: mostrar el número de semana, ocultar o mostrar las etiquetas, y poco más. El desarrollador admite un problema cuando el campo conteniendo la fecha es de tipo <em>datetime</em>, recomendando el uso de campos solo de fechas (<em>date</em>). Muy sencilla visualización, tal vez demasiado, pero que puede ser de utilidad en determinadas circunstancias. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a0b99ae8-4759-4f17-a56c-9d630337698a') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a0b99ae8-4759-4f17-a56c-9d630337698a') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a0b99ae8-4759-4f17-a56c-9d630337698a') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a0b99ae8-4759-4f17-a56c-9d630337698a') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'a0b99ae8-4759-4f17-a56c-9d630337698a') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f21d309d-a7a1-4010-b91e-7b40424501fe') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f21d309d-a7a1-4010-b91e-7b40424501fe') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f21d309d-a7a1-4010-b91e-7b40424501fe') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f21d309d-a7a1-4010-b91e-7b40424501fe') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-2637ef0c-7765-49a7-be7d-ca68bf4c9a52') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-2637ef0c-7765-49a7-be7d-ca68bf4c9a52') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-2637ef0c-7765-49a7-be7d-ca68bf4c9a52') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-2637ef0c-7765-49a7-be7d-ca68bf4c9a52') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-290f8bf8-c200-4d60-96d7-c154a27db9de') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-290f8bf8-c200-4d60-96d7-c154a27db9de') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-290f8bf8-c200-4d60-96d7-c154a27db9de') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-290f8bf8-c200-4d60-96d7-c154a27db9de') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f298cf68-33db-4105-b9e3-b04da05b4fdf') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f298cf68-33db-4105-b9e3-b04da05b4fdf') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f298cf68-33db-4105-b9e3-b04da05b4fdf') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-f298cf68-33db-4105-b9e3-b04da05b4fdf') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '462079e1-b3d8-4e89-82ce-4adabe23a5b0') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '462079e1-b3d8-4e89-82ce-4adabe23a5b0') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '462079e1-b3d8-4e89-82ce-4adabe23a5b0') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '462079e1-b3d8-4e89-82ce-4adabe23a5b0') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '462079e1-b3d8-4e89-82ce-4adabe23a5b0') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta visualización, <strong>Heatmap</strong>, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla: Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud). Probemos la visualización llevando al campo <em>Location (ID)</em> el campo <em>Location</em> de nuestro modelo de datos que contiene el nombre de diferentes ciudades europeas concatenado al país al que pertenece. Solo con esto ya se muestra el mapa con la información de densidad, en este caso de ciudades simplemente: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_02.jpg"></a> Podemos ver en la esquina superior izquierda el número de localizaciones geolocalizadas (las 52 de nuestra tabla). La leyenda de la esquina superior derecha comienza -en el ejemplo mostrado en la imagen- con un "864m" de difícil comprensión. El resto de cifras hacen referencia al número de ciudades que hay en cada zona en función del color mostrado. Si quisiéramos visualizar la densidad de otra métrica, por ejemplo las ventas, bastaría con llevar al campo <em>Value</em> de la visualización el campo o medida de interés (la medida <em>Sales</em> en nuestro ejemplo). Esto provoca que el zoom del mapa cambie para mostrar solo la zona de interés: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_03.jpg"></a> La leyenda ahora muestra las ventas totales en las zonas que reciben el color correspondiente. Esta leyenda no se muestra -por un error de programación, probablemente- cuando se cambia de página en el informe. En <em>Formato > Rendered</em> podemos escoger entre las opciones <em>Contour</em> y <em>Heat</em>. En este último caso los contornos de las áreas quedan menos definidos para mostrar el mapa de calor, permitiendo especificar el radio y el grado de transparencia: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_04.jpg"></a> Para el mapa de calor es posible especificar en <em>Formato > Heat map</em> los colores de los 5 niveles de densidad mostrados. En <em>Formato > Map</em> control podemos escoger entre 5 diferentes tipos de mapa: <em>Aerial</em>, <em>Color</em> (valor por defecto), <em>Gray</em>, <em>Dark</em> y <em>Light</em>. <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/heatmap_05.jpg"></a> En <em>Formato > Map element</em> encontramos herramientas para mostrar o esconder carreteras, ciudades, etc. Si llevamos algún campo de nuestras tablas al campo <em>Group</em> de la visualización, podemos "animar" la visualización. Llevemos, por ejemplo, el campo <em>Category</em> que determina la categoría de los productos vendidos. Ahora, en el panel de formato se muestran dos secciones adicionales: <em>Group</em>, en la que podemos especificar qué valores de nuestro campo <em>Category</em> (en este caso) queremos incluir o excluir de la animación, y <em>Animation</em>, que nos permite animar la visualización para que muestre la métrica en cuestión (ventas) para cada uno de los valores de <em>Category</em>. Tenemos opciones para ejecutar la animación, configurarla en bucle o pararla. El hecho de que estos controles se encuentren en el panel de formato y no en la propia visualización no los hace demasiado cómodos, en todo caso. En general, interesante visualización, razonablemente bien documentada (al menos en comparación con la inmensa mayoría de las visualizaciones disponibles) y bastante personalizable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7a88d0e3-4e17-4e80-973c-68f6fe4bb9c4') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7a88d0e3-4e17-4e80-973c-68f6fe4bb9c4') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7a88d0e3-4e17-4e80-973c-68f6fe4bb9c4') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7a88d0e3-4e17-4e80-973c-68f6fe4bb9c4') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7a88d0e3-4e17-4e80-973c-68f6fe4bb9c4') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3327c53a-4085-49b9-b2b4-ca3775e76e76') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3327c53a-4085-49b9-b2b4-ca3775e76e76') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3327c53a-4085-49b9-b2b4-ca3775e76e76') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3327c53a-4085-49b9-b2b4-ca3775e76e76') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '3327c53a-4085-49b9-b2b4-ca3775e76e76') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b541b86c-7067-41f0-b3db-5aa1ef9021bd') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b541b86c-7067-41f0-b3db-5aa1ef9021bd') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b541b86c-7067-41f0-b3db-5aa1ef9021bd') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b541b86c-7067-41f0-b3db-5aa1ef9021bd') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'b541b86c-7067-41f0-b3db-5aa1ef9021bd') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5f6ea2f7-8e5f-49c6-a8f3-3ea52e9352cc') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5f6ea2f7-8e5f-49c6-a8f3-3ea52e9352cc') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5f6ea2f7-8e5f-49c6-a8f3-3ea52e9352cc') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5f6ea2f7-8e5f-49c6-a8f3-3ea52e9352cc') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '5f6ea2f7-8e5f-49c6-a8f3-3ea52e9352cc') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('La visualización <strong>Small Multiple Line Chart</strong> nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos. La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios: A <em>Axis</em> deberemos llevar el campo que queramos que defina el eje X (frecuentemente será el tiempo), a <em>Values</em> deberemos llevar los datos a mostrar en las gráficas, y a <em>Small Multiple</em> el criterio de desagregación (los países, o categorías de productos, o clientes...). Llevemos a <em>Axis</em> nuestro campo <em>Date</em> incluido en la tabla calendario, a <em>Values</em> la medida <em>Average Sales last 2 weeks</em> conteniendo las ventas medias de las últimas dos semanas (para el contexto que corresponda en cada momento) y a <em>Small Multiple</em> el campo <em>Country</em> con los países en los que se realizan las ventas. La visualización mostrará el siguiente aspecto: Es posible llevar al campo <em>Values</em> más de una medida o campo (aunque deberán contener valores de una magnitud semejante pues, de otro modo, solo se verán los mayores ya que los campos no se escalan). También se aprecia en la imagen anterior que la leyenda no se muestra correctamente, solapándose el rango mostrado en el eje X con la propia leyenda. Podemos modificar el color de las gráficas en <em>Formato > Data Colors</em>, y el color de fondo en <em>Formato > Small Multiples > Background color</em>. El número de gráficas a mostrar por fila se configura en <em>Formato > Small Multiples > Multiples per row</em>, así como el tamaño de las etiquetas, etc. que también se configuran en esta sección. Si hacemos uso de estas herramientas de formato y llevamos al campo <em>Values</em> una segunda medida, <em>Margin</em>, el resultado es el siguiente: En la imagen anterior también se ha inhabilitado la opción <em>Include range as suffix</em> que podemos encontrar en <em>Formato > Legend</em> para poder ver la leyenda). La visualización muestra una ventana emergente con los datos siendo mostrados al mover el cursor sobre las gráficas pero, en la práctica, a veces no resulta fácil situar el cursor en el punto correcto: Resulta más conveniente considerar estas gráficas tipo "sparkline", simplemente mostrando la tendencia y el perfil de la métrica siendo analizada. No se trata de una visualización muy sofisticada pero puede resultar de utilidad en ocasiones. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '44e597d0-0d5f-4731-aa42-5d7bf2663007') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '44e597d0-0d5f-4731-aa42-5d7bf2663007') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '44e597d0-0d5f-4731-aa42-5d7bf2663007') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '44e597d0-0d5f-4731-aa42-5d7bf2663007') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '44e597d0-0d5f-4731-aa42-5d7bf2663007') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'addd9a39-81d8-4f2d-80fb-246a9b9a10ea') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'addd9a39-81d8-4f2d-80fb-246a9b9a10ea') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('file_load_multiple') (Line: 696) Drupal\Core\Entity\Sql\SqlContentEntityStorage->buildQuery(Array) (Line: 422) Drupal\Core\Entity\Sql\SqlContentEntityStorage->getFromStorage(Array) (Line: 393) Drupal\Core\Entity\Sql\SqlContentEntityStorage->doLoadMultiple(Array) (Line: 346) Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 641) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'addd9a39-81d8-4f2d-80fb-246a9b9a10ea') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'addd9a39-81d8-4f2d-80fb-246a9b9a10ea') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'addd9a39-81d8-4f2d-80fb-246a9b9a10ea') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-77d8b56a-f3b4-4e64-a1bf-d16d6e275772') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-77d8b56a-f3b4-4e64-a1bf-d16d6e275772') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-77d8b56a-f3b4-4e64-a1bf-d16d6e275772') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-77d8b56a-f3b4-4e64-a1bf-d16d6e275772') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3aee758e-4963-454e-8d51-c6665361f62f') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3aee758e-4963-454e-8d51-c6665361f62f') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3aee758e-4963-454e-8d51-c6665361f62f') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-3aee758e-4963-454e-8d51-c6665361f62f') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-48908765-79a6-48a9-9b46-8db18ea6a97d') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-48908765-79a6-48a9-9b46-8db18ea6a97d') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-48908765-79a6-48a9-9b46-8db18ea6a97d') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-48908765-79a6-48a9-9b46-8db18ea6a97d') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dab9f6ec-9349-45cc-88bc-46fad0373f37') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dab9f6ec-9349-45cc-88bc-46fad0373f37') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dab9f6ec-9349-45cc-88bc-46fad0373f37') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dab9f6ec-9349-45cc-88bc-46fad0373f37') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-635daf66-6a73-4fca-9727-68a2b903b59e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-635daf66-6a73-4fca-9727-68a2b903b59e') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-635daf66-6a73-4fca-9727-68a2b903b59e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-635daf66-6a73-4fca-9727-68a2b903b59e') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-cfbdffaa-0217-4588-a89a-f5ea00d9cb12') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-cfbdffaa-0217-4588-a89a-f5ea00d9cb12') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-cfbdffaa-0217-4588-a89a-f5ea00d9cb12') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-cfbdffaa-0217-4588-a89a-f5ea00d9cb12') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dec4eeca-4154-41f4-9e35-ecb0039b9bb9') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dec4eeca-4154-41f4-9e35-ecb0039b9bb9') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dec4eeca-4154-41f4-9e35-ecb0039b9bb9') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-dec4eeca-4154-41f4-9e35-ecb0039b9bb9') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-a367c5df-3466-4243-afee-99b0d5b18fe0') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-a367c5df-3466-4243-afee-99b0d5b18fe0') (Line: 95) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-a367c5df-3466-4243-afee-99b0d5b18fe0') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147) Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640) Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63) Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'insert-max_800_px-a367c5df-3466-4243-afee-99b0d5b18fe0') (Line: 124) Drupal\editor\Plugin\Filter\EditorFileReference->process('Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen: Los únicos campos requeridos son <em>Start date</em> (fecha de comienzo de cada evento) y <em>Events</em> (eventos a mostrar en el calendario). Este último campo deberá necesariamente contener cadenas de texto (no es posible mostrar números, por ejemplo). Para ver cómo funciona vamos a partir de los siguientes datos: Vemos que se trata de una tabla con asignaciones de empleados a diferentes tareas limitadas en el tiempo por una fecha de arranque y otra de finalización, tabla que incluye el rol del empleado en cuestión en el campo <em>Category</em> (un mismo empleado puede ser asignado a diferentes tareas con diferentes roles). El campo <em>Id</em> enlaza esta tabla con la tabla de empleados en la que incluye, entre otros datos, el nombre completo de cada uno. Comencemos creando una instancia del calendario en el lienzo de Power BI y arrastrando el campo <em>Start</em> de la tabla anterior al campo <em>Start date</em> de la visualización, y el campo <em>Full name</em> de nuestra tabla de empleados al campo <em>Events</em> de la visualización. Ésta mostrará la siguiente imagen: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_03.jpg"></a> Es decir, si no se añade el campo <em>End date</em>, la visualización presupone que se trata de eventos de un solo día. Los "eventos" (en nuestro caso definidos por el nombre de un trabajador) se muestran en el bloque correspondiente a cada día. Vemos que solo se muestran un máximo de 2 eventos por día: en la imagen anterior, en el recuadro correspondiente al día 12, por ejemplo, hay una etiqueta "+3 more" que indica que hay otros 3 eventos que no se están mostrando. Un clic encima de dicha etiqueta abre una ventana emergente con la lista completa de eventos: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_04.jpg"></a> Desafortunadamente no es posible modificar el número de eventos a mostrar por día, ni configurar el tamaño de dicho texto (con la esperanza de que quepan más líneas). Tampoco haciendo la visualización más alta o más estrecha se modificará la altura de los recuadros que representan los días. Si añadimos al campo <em>End date</em> de la visualización el campo con la fecha de terminación de cada evento (campo <em>End</em> de nuestra tabla), la visualización muestra el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_05.jpg"></a> Es posible modificar los colores que reciben los eventos en <em>Formato > Data colors</em>. El campo de la visualización <em>Event Group</em> nos permite agrupar los eventos según el criterio impuesto por el campo que llevemos aquí, mostrando en este caso todos los eventos del mismo grupo con el mismo color. Por ejemplo, si llevamos a este campo nuestro campo <em>Category</em> (con el rol de cada empleado), la visualización se muestra ahora con el siguiente aspecto: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_10.jpg"></a> Todos los eventos de la misma categoría se muestran con el mismo color, y la leyenda superior también refleja este hecho adecuadamente. Es posible mostrar los meses anteriores o posteriores haciendo uso de los controles que se muestran en la esquina superior izquierda del calendario. En dicho caso, un clic en el botón "Today" nos devolverá al mes actual: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_06.jpg"></a> A la misma altura que estos botones pero en el extremo derecho podemos modificar la vista para mostrar la información a nivel de semanas: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_07.jpg"></a> ...aunque puede comprobarse que los textos con los nombres de los eventos no son sencillos de leer. Afortunadamente, al mover el cursor encima de una de las columnas se muestra en una ventanita emergente el nombre del evento completo. También tenemos la leyenda como ayuda, por supuesto, aunque en el caso de que haya muchos eventos (es decir, más de 4 o 5), se agradecería que la leyenda se filtrase para mostrar solo las etiquetas de la semana seleccionada. También podemos entrar en modo "día": <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_08.jpg"></a> También aquí se agradecería que las etiquetas que se muestran en la parte superior de cada columna se moviesen verticalmente cuando hacemos scroll, de forma que estuviesen siempre visibles. Y, por último, tenemos la vista "lista" en la que vemos los eventos en este formato. En este caso siempre se muestran los eventos de un único mes (que podemos cambiar con los controles comentados de la esquina superior izquierda), no siendo posible modificar este nivel de detalle: <a class="colorbox insert-colorbox" data-colorbox-gallery="gallery-node" data-insert-class="" data-insert-type="image" href="/sites/default/files/2019-08/calendar_by_maq_09.jpg"></a> La visualización ofrece bastantes opciones de configuración: qué vistas queremos que estén a disposición del usuario y cuáles no, las horas y días laborables, mostrar o no el número de cada semana... Activemos esta última opción. Ahora, en todas las vistas se indica -en alguna parte- el número de la semana pero, en la vista mensual, un clic en el número de la semana que se muestra a la izquierda de cada bloque de 7 días nos lleva a la vista semanal (para dicha semana, obviamente). Y, aunque no se ha comentado todavía, haciendo clic en el número de un día en la vista mensual, o haciendo clic en la cabecera de un día en la vista semanal iremos a la vista del día correspondiente. Muy buena visualización, con margen para mejora, por supuesto, pero muy recomendable. ', 'es') (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText(Array) call_user_func_array(Array, Array) (Line: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 88) __TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 46) __TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array, Array) (Line: 43) __TwigTemplate_bd990293b89f3b78c69fe0ee2f7828b5->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/field/field--text-with-summary.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74) __TwigTemplate_43dffa6ad507293d1ceeb24e05ce942c->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/custom/yg_aesthetic/templates/views-view-unformatted.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array) (Line: 479) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_349d2f5aada73507d566397721f27ea4->doDisplay(Array, Array) (Line: 405) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378) Twig\Template->display(Array) (Line: 390) Twig\Template->render(Array) (Line: 55) twig_render_template('themes/contrib/classy/templates/views/views-view.html.twig', Array) (Line: 384) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 433) Drupal\Core\Render\Renderer->doRender(Array) (Line: 446) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204) Drupal\Core\Render\Renderer->render(Array, ) (Line: 242) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
include('/var/www/vhosts/interactivechaos.ovh/httpdocs/modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php') (Line: 578) Composer\Autoload\ClassLoader::Composer\Autoload\{closure}('/var/www/vhosts/interactivechaos.ovh/httpdocs/modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php') (Line: 432) Composer\Autoload\ClassLoader->loadClass('Drupal\google_analytics\Component\Render\GoogleAnalyticsJavaScriptSnippet') (Line: 372) google_analytics_page_attachments(Array) (Line: 313) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}(Object, 'google_analytics') (Line: 405) Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachments', Object) (Line: 310) Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) (Line: 288) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Drupal\user\Entity\Role::postLoad(Object, Array) (Line: 423) Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 353) Drupal\Core\Entity\EntityStorageBase->loadMultiple() (Line: 126) eu_cookie_compliance_page_attachments(Array) (Line: 313) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}(Object, 'eu_cookie_compliance') (Line: 405) Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachments', Object) (Line: 310) Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) (Line: 288) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Esta visualización permite mostrar una red de elementos relacionados, ofreciendo una buena cantidad de herramientas para configurar los enlaces que la forman. El panel de configuración es el siguiente:
Cluster Map muestra información -supuestamente agrupada en clusters según algún criterio- en forma de nube de imágenes. Su configuración es la mostrada en la siguiente imagen:
Esta visualización, Hourglass Chart by MAQ Software, está concebida para comparar valores en dos escenarios distintos para un mismo conjunto de categorías. Por ejemplo, si las categorías son países en los que se venden nuestros productos, comparar las ventas del año pasado con las de éste, o comparar los productos fabricados y los vendidos... Estos dos grupos de valores se comparan y la comparación (ya sea como porcentaje o como diferencia) se muestra en la visualización.
Image Grid es una original forma de mostrar información cuantitativa relativa a objetos que tengan asociada una imagen. El problema es que las pruebas no parecen indicar que funcione correctamente. Veamos cómo se usa. Su configuración es sumamente simple:
El Scroller es una original visualización que muestra en un scroll animado etiquetas y valores asociados a éstas de nuestro modelo de datos. La configuración de esta visualización es la mostrada en la siguiente imagen:
HierarchySlicer ofrece la posibilidad de crear segmentaciones a partir de jerarquías, evitando la necesidad de crear dos más segmentaciones distintas para poder filtrar nuestros datos de la forma que queremos.
La configuración de esta visualización se basa en dos únicos campos:
Beyondsoft Calendar es una sencilla visualización que nos permite mostrar datos cuantitativos en un calendario. La configuración es tan sencilla como su funcionalidad:
Esta visualización, Heatmap, permite crear un mapa de densidad de una variable cuantitativa. Su configuración es muy sencilla:
Vemos que, al igual que ocurre en otras visualizaciones semejantes, podemos trabajar con etiquetas de lugares o con coordenadas geográficas (latitud y longitud).
La visualización Small Multiple Line Chart nos permite crear sencillas gráficas de líneas para todos los valores de una variable categórica. Por ejemplo, podemos estar interesados en mostrar las ventas medias de las últimas 2 semanas para un cierto período de tiempo, y desagregar esta información por país, o por categoría de producto, por poner un par de ejemplos.
La configuración es muy sencilla, solo tiene tres campos, y los tres son necesarios:
Esta estupenda visualización de MAQ LLC nos permite llevar eventos (definidos por una fecha de comienzo y otra de finalización) a un calendario. Los campos que nos permiten configurar la visualización son los mostrados en la siguiente imagen:
Excepto donde se indique otra cosa, los contenidos de este sitio web se ofrecen bajo una licencia Reconocimiento-NoComercial-SinObraDerivada 4.0 Internacional