Advertisement
lordjackson

Tmenu

Jun 23rd, 2015
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 37.95 KB | None | 0 0
  1. <?php
  2.  
  3. Namespace Adianti\Widget\Menu;
  4.  
  5. use Adianti\Widget\Menu\TMenuItem;
  6. use Adianti\Widget\Base\TElement;
  7. use SimpleXMLElement;
  8. use Adianti\Database\TTransaction;
  9. use Adianti\Database\TRepository;
  10. use Adianti\Database\TCriteria;
  11. use Adianti\Database\TFilter;
  12.  
  13. //use App\Model\vw_usuario;
  14. //use App\Model\vw_usuarioperfil;
  15.  
  16. /**
  17.  * Menu Widget
  18.  *
  19.  * @version    2.0
  20.  * @package    widget
  21.  * @subpackage menu
  22.  * @author     Pablo Dall'Oglio
  23.  * @copyright  Copyright (c) 2006-2014 Adianti Solutions Ltd. (http://www.adianti.com.br)
  24.  * @license    http://www.adianti.com.br/framework-license
  25.  */
  26. class TMenu extends TElement {
  27.  
  28.     private $items;
  29.     private $menu_class;
  30.     private $item_class;
  31.     private $menu_level;
  32.  
  33.     /**
  34.      * Class Constructor
  35.      * @param $xml SimpleXMLElement parsed from XML Menu
  36.      */
  37.     public function __construct($xml, $permission_callback = NULL, $menu_level = 1, $menu_class = 'dropdown-menu', $item_class = '') {
  38.         parent::__construct('ul');
  39.         $this->items = array();
  40.  
  41.         $this->{'class'} = $menu_class . " level-{$menu_level}";
  42.         $this->menu_class = $menu_class;
  43.         $this->menu_level = $menu_level;
  44.         $this->item_class = $item_class;
  45.  
  46.         if ($xml instanceof SimpleXMLElement) {
  47.             $this->parse($xml, $permission_callback);
  48.         }
  49.     }
  50.  
  51.     /**
  52.      * Add a MenuItem
  53.      * @param $menuitem A TMenuItem Object
  54.      */
  55.     public function addMenuItem(TMenuItem $menuitem) {
  56.         $this->items[] = $menuitem;
  57.     }
  58.  
  59.     /**
  60.      * Return the menu items
  61.      */
  62.     public function getMenuItems() {
  63.         return $this->items;
  64.     }
  65.  
  66.     /**
  67.      * Parse a XMLElement reading menu entries
  68.      * @param $xml A SimpleXMLElement Object
  69.      * @param $permission_callback check permission callback
  70.      */
  71.     public function parse($xml, $permission_callback = NULL) {
  72.         $i = 0;
  73.         foreach ($xml as $xmlElement) {
  74.             $atts = $xmlElement->attributes();
  75.             $label = (string) $atts['label'];
  76.             $action = (string) $xmlElement->action;
  77.             $icon = (string) $xmlElement->icon;
  78.             $menu = NULL;
  79.             $menuItem = new TMenuItem($label, $action, $icon);
  80.  
  81.             if ($xmlElement->menu) {
  82.                 $menu = new TMenu($xmlElement->menu->menuitem, $permission_callback, $this->menu_level + 1, $this->menu_class, $this->item_class);
  83.                 $menuItem->setMenu($menu);
  84.             }
  85.  
  86.             // just child nodes have actions
  87.             if ($action) {
  88.                 if (!empty($action) AND $permission_callback) {
  89.                     // check permission
  90.                     $parts = explode('#', $action);
  91.                     $className = $parts[0];
  92.                     if (call_user_func($permission_callback, $className)) {
  93.                         $this->addMenuItem($menuItem);
  94.                     }
  95.                 } else {
  96.                     // menus without permission check
  97.                     $this->addMenuItem($menuItem);
  98.                 }
  99.             }
  100.             // parent nodes are shown just when they have valid children (with permission)
  101.             else if (isset($menu) AND count($menu->getMenuItems()) > 0) {
  102.                 $this->addMenuItem($menuItem);
  103.             }
  104.  
  105.             $i ++;
  106.         }
  107.     }
  108.  
  109.     static public function validaClasse($classe) {
  110.         // inicia transacao com o banco 'pg_ceres'
  111.         TTransaction::open('pg_ceres');
  112.         // instancia um repositorio da Classe
  113.         $repository = new TRepository('Vw_usuariopaginagrupo');
  114.  
  115.         // cria um criterio de selecao
  116.         $criteria = new TCriteria;
  117.         //filtra pelo campo arquivo
  118.         $criteria->add(new TFilter('arquivo', '=', $classe));
  119.         // carrega os objetos de acordo com o criterio
  120.         $usuarios = $repository->load($criteria);
  121.         if ($usuarios) {
  122.             // percorre os objetos retornados
  123.             return TRUE;
  124.         } else {
  125.             return FALSE;
  126.         }
  127.     }
  128.  
  129.     static public function montaModulo($usuario_id) {
  130.  
  131.         // inicia transacao com o banco 'pg_ceres'
  132.         TTransaction::open('pg_ceres');
  133.  
  134.         // instancia um repositorio da Classe
  135.         $repository = new TRepository('vw_usuarioperfil');
  136.  
  137.         // cria um criterio de selecao
  138.         $criteria = new TCriteria;
  139.         //filtra pelo campo usuario_id
  140.         $criteria->add(new TFilter('usuario_id', '=', $usuario_id));
  141.         $criteria->setProperty('order', 'modulo');
  142.  
  143.         // carrega os objetos de acordo com o criterio
  144.         $usuarios = $repository->load($criteria);
  145.  
  146.         $menu = "";
  147.         $menu .= "<option>SELECIONE O MODULO</option>";
  148.  
  149.         if ($usuarios) {
  150.             // percorre os objetos retornados
  151.             foreach ($usuarios as $usuario) {
  152.                 // adiciona os dados do perfil do usuario no menu
  153.                 $menu .= "<option ";
  154.                 if ($_SESSION['modulo'] == $usuario->modulo)
  155.                     $menu .= ' selected ';
  156.                 $menu .= "value='?modulo=" . $usuario->modulo . "' data-image=\"app/images/modulos/icon_" . $usuario->modulo . ".png\" data-title=" . $usuario->modulo . ">" . $usuario->modulo . "</option>";
  157.             }
  158.         }
  159.         // finaliza a transacao
  160.         TTransaction::close();
  161.  
  162.         return $menu;
  163.     }
  164.  
  165.     /*
  166.       static public function montaMenu($modulo, $usuario_id) {
  167.  
  168.       // inicia transacao com o banco 'pg_ceres'
  169.       TTransaction::open('pg_ceres');
  170.  
  171.       // instancia um repositorio da Classe
  172.       $repository = new TRepository('vw_usuariopagina');
  173.  
  174.       // cria um criterio de selecao
  175.       $criteria = new TCriteria;
  176.       //filtra pelo campo usuario_id
  177.       $criteria->add(new TFilter('usuario_id', '=', $usuario_id));
  178.       //filtra pelo campo modulo
  179.       $criteria->add(new TFilter('modulo', '=', $modulo));
  180.  
  181.       // carrega os objetos de acordo com o criterio
  182.       $usuarios = $repository->load($criteria);
  183.       $menu='';
  184.       if ($usuarios) {
  185.       $menu = '<ul id="nav">';
  186.       // percorre os objetos retornados
  187.       foreach ($usuarios as $usuario) {
  188.       // adiciona os dados do perfil do usuario no menu
  189.       $menu .= "<li><a href=\"#\" OnClick=\"document.location='?class=".$usuario->arquivo."'\">".$usuario->pagina."</a></li>";
  190.       }
  191.       $menu .= '</ul>';
  192.       }
  193.       // finaliza a transacao
  194.       TTransaction::close();
  195.  
  196.       return $menu;
  197.  
  198.       }
  199.      */
  200.  
  201.     static public function montaMenu($modulo, $usuario_id) {
  202.  
  203.         // inicia transacao com o banco 'pg_ceres'
  204.         TTransaction::open('pg_ceres');
  205.  
  206.         $repositorygrupo = new TRepository('vw_grupomenuusuario');
  207.  
  208.         $criteria1 = new TCriteria;
  209.  
  210.         //filtra pelo campo usuario_id
  211.         $criteria1->add(new TFilter('usuario_id', '=', $usuario_id));
  212.         //filtra pelo campo modulo
  213.         $criteria1->add(new TFilter('modulo', '=', $modulo));
  214.  
  215.         $criteria1->setProperty('order', 'grupo');
  216.  
  217.         $grupos = $repositorygrupo->load($criteria1);
  218.  
  219.         $menu = '';
  220.         if ($grupos) {
  221.             $id = '';
  222.             $menu .= '<ul class="menu">';
  223.             foreach ($grupos as $grupo) {
  224.                 $id = $grupo->id;
  225.                 // adiciona os dados do perfil do usuario no menu
  226.                 $menu .= "<li class=\"parent green\" ><a href=\"index.html\"><span class=\"menu-icon\"><i class='" . $grupo->icone . "'></i></span><span class=\"menu-text\">" . $grupo->grupo . "</span></a>";
  227.  
  228.                 // instancia um repositorio da Classe
  229.                 $repository = new TRepository('vw_usuariopaginagrupo_new');
  230.  
  231.                 // cria um criterio de selecao
  232.                 $criteria = new TCriteria;
  233.                 //filtra pelo campo usuario_id
  234.                 $criteria->add(new TFilter('usuario_id', '=', $usuario_id));
  235.                 //filtra pelo campo modulo
  236.                 $criteria->add(new TFilter('modulo', '=', $modulo));
  237.                 //filtra pelo campo
  238.                 $criteria->setProperty('order', 'grupo');
  239.                 $criteria->setProperty('order', 'pagina');
  240.  
  241.                 // carrega os objetos de acordo com o criterio
  242.                 $usuarios = $repository->load($criteria);
  243.                 if ($usuarios) {
  244.  
  245.                     // percorre os objetos retornados
  246.                     $menu .= '<ul class="child">';
  247.                     foreach ($usuarios as $usuario) {
  248.                         if ($usuario->grupo_id == $id) {
  249.                             // adiciona os dados do perfil do usuario no menu
  250.                             if ($usuario->arquivo == 'AtualizaForm') {
  251.                                 $menu .= "<li><a href=\"#\" OnClick=\"document.location='?class=" . $usuario->arquivo . "&method=onEdit&key=" . $_SESSION['servidor_id'] . "&fk=" . $_SESSION['servidor_id'] . "'\">" . $usuario->pagina . "</a></li>";
  252.                             } else {
  253.                                 if ($usuario->arquivoleitura == 'SIM' && $usuario->novajanela == 'SIM') {
  254.                                     $menu .= "<li><a target=\"_blank\" href=\"http://servicos.emater.rn.gov.br/novoceres/" . $usuario->arquivo . "\">" . $usuario->pagina . "</a></li>";
  255.                                 } else {
  256.                                     if ($usuario->novajanela == 'NAO') {
  257.                                         $menu .= "<li><a href=\"#\" OnClick=\"document.location='?class=" . $usuario->arquivo . "'\">" . $usuario->pagina . "</a></li>";
  258.                                     } else {
  259.                                         $menu .= "<li><a href=\"#\" OnClick=\"javascript:window.open('?class=" . $usuario->arquivo . "');\">" . $usuario->pagina . "</a></li>";
  260.                                     }
  261.                                 }
  262.                             }
  263.                         }
  264.                     }
  265.  
  266.                     $menu .= '</ul>';
  267.                 }
  268.  
  269.                 $menu .= "</li>";
  270.             }
  271.  
  272.             $menu .= '</ul>';
  273.         }
  274.         // finaliza a transacao
  275.         TTransaction::close();
  276.  
  277.         return $menu;
  278.     }
  279.  
  280.     static public function montaError() {
  281.  
  282.         return 'teste';
  283.     }
  284.  
  285.     static public function montaMural() {
  286.  
  287.         if (isset($_GET["modulo"]) == 'DIRECAO') {
  288.             TTransaction::open('pg_ceres');
  289.  
  290.             // instancia um repositorio para aniversariantes
  291.             $repository = new TRepository('vw_dash_monta_listagem_dashboardRecord');
  292.  
  293.             // cria um criterio de selecao, ordenado pelo id
  294.             $criteria = new TCriteria;
  295.  
  296.             //filtra pelo campo avaliador_id
  297.             $criteria->add(new TFilter('login', '=', $_SESSION['usuario']));
  298.  
  299.             $results = $repository->load($criteria);
  300.  
  301.             $mural = "";
  302.             if ($results) {
  303.                 $contador = 0;
  304.                 $mural .= "<br><h2 align='center'>DASHBOARDS</h2><br><table cellpadding='0' cellspacing='0' border='0' class='display' id='example' style='margin-left:10px;'>";
  305.                 // percorre os objetos retornados
  306.                 foreach ($results as $result) {
  307.                     if (($contador == 0) || (($contador % 4) == 0)) {
  308.                         $mural .= "<tr id='tritensdashboard'>";
  309.                     }
  310.                     $mural .= "";
  311.                     $mural22 .= "
  312.                        <div class='col-xs-12 col-sm-12 col-md-4 col-lg-4'>
  313.                        <div class='box social-stats' style='align: center'>
  314.                            <div class='title-bar'>
  315.                                <i class='fa fa-users'></i>{$result->modulo}
  316.                                <div class='close-box'>
  317.                                    <a href='#'><i class='fa fa-times-circle-o'></i></a>
  318.                                </div>
  319.                            </div>
  320.                            <ul>
  321.                                <li>
  322.                                <a style='text-decoration:none;color:#000; font-weight:bold; font-size:13px; width: 170px; height: 165px;' href='index.php?class={$result->arquivo}&dash={$result->grafico_id}'>
  323.                                        <div id='dash'>
  324.                                            <img src='app/images/dash_tipo_{$result->tipo}.png' width='120' height='110' title='{$result->nome}' alt='{$result->nome}'/>
  325.                                            <img src='app/images/icon_{$result->modulo}.png' width='50' height='50'/>
  326.                                            <p>{$result->nome}</p>
  327.                                        </div>
  328.                                   </a>
  329.                                </li>
  330.                            </ul>
  331.                        </div>
  332.                        </div>
  333.                        
  334.                        ";
  335.  
  336.                     $mural .= "
  337.                            
  338.                         <div class='col-xs-12 col-sm-12 col-md-4 col-lg-4'>
  339.                        <div class='boxed no-padding'>
  340.                        <!-- Title Bart Start -->
  341.                        <div class='title-bar white'>
  342.                            <h4>{$result->modulo}</h4>
  343.                                <ul class='actions'>
  344.                                    <li><a href='#' class='close-box'><i class='fa fa-chevron-up'></i></a></li>
  345.                                    <li><a href='#' class='remove-box'><i class='fa fa-times-circle-o'></i></a></li>
  346.                 </ul>
  347.             </div>
  348.                        <!-- Title Bart End -->
  349.                                    
  350.                        <div class='inner'>
  351.                            <!-- Google Maps Example End -->
  352.                            <div class='dashboard-container'>
  353.                            <ul>
  354.                                <li>
  355.                                <a style='text-decoration:none;color:#000; font-weight:bold; font-size:13px; width: 170px; height: 165px;' href='index.php?class={$result->arquivo}&dash={$result->grafico_id}'>
  356.                                        <div id='dash'>
  357.                                            <img src='app/images/dash_tipo_{$result->tipo}.png' width='120' height='110' title='{$result->nome}' alt='{$result->nome}'/>
  358.                                            <img src='app/images/icon_{$result->modulo}.png' width='50' height='50'/>
  359.                                            <p>{$result->nome}</p>
  360.                                        </div>
  361.                                   </a>
  362.                                </li>
  363.                            </ul>
  364.                            </div>
  365.                            <!-- Google Maps Example End -->
  366.                        </div>
  367.                    </div></div>";
  368.                     $contador++;
  369.                 }
  370.                 $mural .= '</table>';
  371.             }
  372.  
  373.             /*
  374.  
  375.               $mural .= "<br><br><table cellpadding='0' cellspacing='0' border='0' class='display' id='example' style='margin-left:10px;'>
  376.               <tr id='tritensdashboard'>
  377.               <td id='tditemdashboard' align='center' valign='middle'>
  378.               <a href='index.php?class=DashBeneficiarioGraficoList'><img src='app/images/bar_chart.png' width='250' height='200' alt='dashboard_sales'/>
  379.               <p>Dashboard Teste 01</p></a>
  380.               </td>
  381.               <td id='tditemdashboard' align='center' valign='middle'>
  382.               <img onclick='alert('Dashboard 02')' src='app/images/bar_chart.png' width='250' height='200' alt='dashboard_sales'/>
  383.               <p>Dashboard Teste 02</p>
  384.               </td>
  385.               <td id='tditemdashboard' align='center' valign='middle'>
  386.               <img onclick='alert('Dashboard 03')' src='app/images/bar_chart.png' width='250' height='200' alt='dashboard_3'/>
  387.               <p>Dashboard Teste 03</p>
  388.               </td>
  389.               </tr>
  390.               <tr id='tritensdashboard'>
  391.               <td id='tditemdashboard' align='center' valign='middle'>
  392.               <img onclick='alert('Dashboard 04')' src='app/images/bar_chart.png' width='250' height='200' alt='dashboard_sales'/>
  393.               <p>Dashboard Teste 04</p>
  394.               </td>
  395.               <td id='tditemdashboard' align='center' valign='middle'>
  396.               <img onclick='alert('Dashboard 05')' src='app/images/bar_chart.png' width='250' height='200' alt='dashboard_sales'/>
  397.               <p>Dashboard Teste 05</p>
  398.               </td>
  399.               <td id='tditemdashboard' align='center' valign='middle'>
  400.               <img onclick='alert('Dashboard 06')' src='app/images/bar_chart.png' width='250' height='200' alt='dashboard_3'/>
  401.               <p>Dashboard Teste 06</p>
  402.               </td>
  403.               </tr>
  404.               </table>";
  405.  
  406.               /* $modulo = file_get_contents('dashboard.html');
  407.               echo str_replace('#dashboards#', null, $modulo); */
  408.         } else if ($_SESSION["tipousuario"] == 'LATICINIO') {
  409.             $mural = '<br><br><table cellpadding="0" cellspacing="0" border="0" class="display" id="example">';
  410.             $mural .= "<thead>";
  411.             $mural .= "<center><b><h3>AVISOS</h3></b></center>";
  412.             $mural .= '<tr><th>Data</th><th>Aviso</th><th>Link</th></tr>';
  413.             $mural .= "</thead>";
  414.             $mural .= "<tr class=\"gradeA\"><td><font color='ff0000'>08/10/10</font></td><td>Video da NF</td><td><font color='ff0000'><a href='video/nflaticinio/'>NF Laticinio</a></font></td></tr>";
  415.             $mural .= "<tr class=\"gradeA\"><td><font color='ff0000'>23/11/10</font></td><td><font color='ff0000'><b>SISTEMA LIBERADO PARA ALIMENTAÇÃO DAS NOTAS</b></font></td><td><font color='ff0000'><a href=''></a></font></td></tr>";
  416.             $mural .= '</table><br><br>';
  417.             $mural .= "<b>Telefones Suporte:</b>";
  418.             $mural .= "<br><b>LEITE: 3232-1126/1127</br>GIN: 3232-2198</b>";
  419.             $mural .= "<br><b>EMAIL: [email protected]</b>";
  420.         } else if ($_SESSION["tipousuario"] == 'COLABORADORLEITE') {
  421.             $mural = '<br><br><table cellpadding="0" cellspacing="0" border="0" class="display" id="example">';
  422.             $mural .= "<thead>";
  423.             $mural .= "<center><b><h3>AVISOS</h3></b></center>";
  424.             $mural .= '<tr><th>Data</th><th>Aviso</th><th>Link</th></tr>';
  425.             $mural .= "</thead>";
  426.             $mural .= "<tr class=\"gradeA\"><td><font color='ff0000'>07/11/13</font></td><td>Resolução 61 10/2013 MDS</td><td><font color='ff0000'><a href='app.docs/Resolucao_61_10_2013_mds.pdf' target=_blank>link</a></font></td></tr>";
  427.             $mural .= "<tr class=\"gradeA\"><td><font color='ff0000'>07/11/13</font></td><td>Resolução 001/2013 CONSEA-RN</td><td><font color='ff0000'><a href='app.docs/resolucao_001_2013_consearn.doc' target=_blank>link</a></font></td></tr>";
  428.             $mural .= "<tr class=\"gradeA\"><td><font color='ff0000'>07/11/13</font></td><td>Checklist Programa do Leite</td><td><font color='ff0000'><a href='app.docs/checkList_programadoleite.docx' target=_blank>link</a></font></td></tr>";
  429.             //$mural .= "<tr class=\"gradeC\"><td><font color='ff0000'>08/10/10</font></td><td>Video da NF</td><td><font color='ff0000'><a href='video/nflaticinio/'>NF Laticinio</a></font></td></tr>";
  430.             $mural .= "<tr class=\"gradeA\"><td><font color='ff0000'><b>26/08/13</b></font></td><td><font color='ff0000'><b>DADOS DO CADASTRO UNICO ATUALIZADO ATE JUNHO/2013</b></font></td><td><font color='ff0000'><a href=''></a></font></td></tr>";
  431.             $mural .= '</table><br><br>';
  432.             $mural .= "<b>Telefones Suporte:</b>";
  433.             $mural .= "<br><b>LEITE: 3232-1126/1127</br>GIN: 3232-2198</b>";
  434.             $mural .= "<br><b>EMAIL: [email protected]</b>";
  435.         } else {
  436.  
  437.             TTransaction::open('pg_ceres');
  438.  
  439.             // instancia um repositorio para DASHBOARDS
  440.             $repository = new TRepository('vw_dash_monta_listagem_dashboardRecord');
  441.  
  442.             // cria um criterio de selecao, ordenado pelo id
  443.             $criteria = new TCriteria;
  444.  
  445.             //filtra pelo campo USUARIO
  446.             $criteria->add(new TFilter('login', '=', $_SESSION['usuario']));
  447.  
  448.             //if (isset($_SESSION['modulo'])) {
  449.             //$criteria->add(new TFilter('modulo', '=', $_SESSION['modulo']));
  450.             $criteria->add(new TFilter('modulo', '=', filter_input(INPUT_GET, 'modulo')));
  451.  
  452.             $results = $repository->load($criteria);
  453.  
  454.             //}
  455.  
  456.  
  457.             if ($results) {
  458.  
  459.                 $contador = 0;
  460.                 $mural .= "<br><h2 align='center'>DASHBOARDS</h2><br><table cellpadding='0' cellspacing='0' border='0' class='display' id='example' style='margin-left:10px;'>";
  461.                 // percorre os objetos retornados
  462.                 foreach ($results as $result) {
  463.                     if (($contador == 0) || (($contador % 4) == 0)) {
  464.                         $mural .= "<tr id='tritensdashboard'>";
  465.                     }
  466.                     $mural .= "
  467.                         <div class='col-xs-12 col-sm-12 col-md-4 col-lg-4'>
  468.                        <div class='boxed no-padding'>
  469.                        <!-- Title Bart Start -->
  470.                        <div class='title-bar white'>
  471.                            <h4>{$result->modulo}</h4>
  472.                                <ul class='actions'>
  473.                                    <li><a href='#' class='close-box'><i class='fa fa-chevron-up'></i></a></li>
  474.                                    <li><a href='#' class='remove-box'><i class='fa fa-times-circle-o'></i></a></li>
  475.                 </ul>
  476.             </div>
  477.                        <!-- Title Bart End -->
  478.                                    
  479.                        <div class='inner'>
  480.                            <!-- Google Maps Example End -->
  481.                            <div class='dashboard-container'>
  482.                            <ul>
  483.                                <li>
  484.                                <a style='text-decoration:none;color:#000; font-weight:bold; font-size:13px; width: 170px; height: 165px;' href='index.php?class={$result->arquivo}&dash={$result->grafico_id}'>
  485.                                        <div id='dash'>
  486.                                            <img src='app/images/dash_tipo_{$result->tipo}.png' width='120' height='110' title='{$result->nome}' alt='{$result->nome}'/>
  487.                                            <img src='app/images/icon_{$result->modulo}.png' width='50' height='50'/>
  488.                                            <p>{$result->nome}</p>
  489.                                        </div>
  490.                                   </a>
  491.                                </li>
  492.                            </ul>
  493.                            </div>
  494.                            <!-- Google Maps Example End -->
  495.                        </div>
  496.                    </div></div>";
  497.                     $contador++;
  498.                 }
  499.                 $mural .= '</table>';
  500.             } else {
  501.  
  502.                 TTransaction::open('pg_ceres');
  503.  
  504.                 // instancia um repositorio para aniversariantes
  505.                 $repository = new TRepository('vw_aniversariantes_do_mesRecord');
  506.                 // $repository = new TRepository('vw_servidor_por_cidades');
  507.                 // cria um criterio de selecao, ordenado pelo id
  508.                 $criteria = new TCriteria;
  509.  
  510.                 $criteria->setProperty('order', 'nome');
  511.                 //$criteria->setProperty('order', 'qtd');
  512.                 // carrega os objetos de acordo com o criterio
  513.                 $aniversariantes = $repository->load($criteria);
  514.  
  515.                 $repository2 = new TRepository('vw_painel_regionalRecord');
  516.                 $criteria2 = new TCriteria();
  517.                 $criteria2->add(new TFilter('municipio_id', '=', $_SESSION['municipio_id']));
  518.  
  519.                 $painel_info = $repository2->load($criteria2);
  520.                 if ($painel_info) {
  521.                     foreach ($painel_info as $info) {
  522.  
  523.                         $painel = '
  524.                     <!-- INICIO DO PAINEL -->
  525.                     <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  526.                     <!-- Row Start -->
  527.                     <div class="row">
  528.  
  529.                         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-12">
  530.                         <!-- Social Box - Twitter -->
  531.                           <div class="social-box twitter">
  532.  
  533.                             <div class="icon-container">
  534.                               <div class="inner">
  535.                                 <img src="app/images/icons/siap.png" />
  536.                               </div>
  537.                             </div>
  538.                             <div class="text-container">
  539.                            
  540.                               <div class="inner">
  541.                                 <span>' . $info->n_pj_contratados . '</span> Projetos Contratados
  542.                               </div>
  543.                             </div>
  544.                           </div>
  545.                           <!-- Social Box - Twitter End -->
  546.                         </div>
  547.                
  548.                
  549.                         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-12">
  550.                           <!-- Social Box - Facebook -->
  551.                           <div class="social-box facebook">
  552.  
  553.                             <div class="icon-container">
  554.                               <div class="inner">
  555.                                 <img src="app/images/icons/produtor.png" />
  556.                               </div>
  557.                             </div>
  558.  
  559.                             <div class="text-container">
  560.                               <div class="inner">
  561.                                 <span>' . $info->n_produtores . '</span> Produtores
  562.                               </div>
  563.                             </div>
  564.                           </div>
  565.                           <!-- Social Box - Facebook End -->
  566.                         </div>
  567.                        
  568.                         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-12">
  569.                           <!-- Social Box - Dribble -->
  570.                           <div class="social-box dribbble">
  571.  
  572.                             <div class="icon-container">
  573.                               <div class="inner">
  574.                                 <img src="app/images/icons/propriedade.png" />
  575.                               </div>
  576.                             </div>
  577.  
  578.                             <div class="text-container">
  579.                               <div class="inner">
  580.                                 <span>' . $info->n_propriedades . '</span> Propriedades
  581.                               </div>
  582.                             </div>
  583.                           </div>
  584.                           <!-- Social Box - Dribble End -->
  585.                         </div>
  586.                        
  587.                         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-12">
  588.                           <!-- Social Box - Projects -->
  589.                           <div class="social-box projects">
  590.  
  591.                             <div class="icon-container">
  592.                               <div class="inner">
  593.                                 <img src="app/images/icons/barragem.png" />
  594.                               </div>
  595.                             </div>
  596.  
  597.                             <div class="text-container">
  598.                               <div class="inner">
  599.                                 <span>' . $info->n_barragens . '</span> Barragens
  600.                               </div>
  601.                             </div>
  602.                           </div>
  603.                           <!-- Social Box - Projects End -->
  604.                         </div>
  605.                        
  606.                         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-12">
  607.  
  608.                         <!-- Social Box - Projects -->
  609.                             <div class="social-box tasks">
  610.                                 <div class="icon-container">
  611.                                     <div class="inner">
  612.                                         <img src="app/images/icons/semente.png" />
  613.                                     </div>
  614.                                 </div>
  615.  
  616.                                 <div class="text-container">
  617.                                     <div class="inner">
  618.                                         <span>' . $info->n_bancossementes . '</span> Bancos de sementes
  619.                                     </div>
  620.                                 </div>
  621.                             </div>
  622.                         <!-- Social Box - Projects End -->
  623.  
  624.                         </div>
  625.                        
  626.                         <div class="col-xs-12 col-sm-6 col-md-4 col-lg-12">
  627.  
  628.                           <!-- Social Box - Projects -->
  629.                           <div class="social-box posts">
  630.  
  631.                             <div class="icon-container">
  632.                               <div class="inner">
  633.                                     <img src="app/images/icons/carro.png" />
  634.                               </div>
  635.                             </div>
  636.  
  637.                             <div class="text-container">
  638.                               <div class="inner">
  639.                                 <span>' . $info->n_veiculos . '</span> Veículos
  640.                               </div>
  641.                             </div>
  642.                           </div>
  643.                           <!-- Social Box - Projects End -->
  644.  
  645.                         </div>
  646.                     </div>
  647.                     </div>
  648.                    
  649.                     <!-- FIM DO PAINEL -->';
  650.                     }
  651.                 }
  652.  
  653.                 $repository3 = new TRepository('vw_ultimos_acessosRecord');
  654.                 $criteria3 = new TCriteria();
  655.                 $criteria3->add(new TFilter('data_acesso', '=', date('d/m/Y')));
  656.                 //$criteria3->setProperty('LIMIT', 5);
  657.                 $online_info = $repository3->load($criteria3);
  658.  
  659.                 $online = '
  660.                 <!-- INICIO ULTIMOS ACESSOS -->
  661.                 <div style="height:300px; overflow: auto">
  662.                             <ul>';
  663.  
  664.                 if ($online_info) {
  665.  
  666.                     foreach ($online_info as $onlines) {
  667.                         //verificar se o usuario esta logado nao abrir o chat para ele mesmo
  668.                         if ($_SESSION['servidor_id'] != $onlines->servidor_id) {
  669.                             if (file_exists('app/images/servidor/servidor_' . $onlines->servidor_id . '.jpg')) {
  670.                                 $fotoservidor = $onlines->servidor_id;
  671.                             } else {
  672.                                 $fotoservidor = 'avatar';
  673.                             }
  674.                             $online .= '<li>
  675.                                        <div class="user-avatar"><img width="23" src="app/images/servidor/servidor_' . $fotoservidor . '.jpg" /></div>
  676.                                        <span class="username"><a href=/chatbox/index.php?username=' . $_SESSION['servidor_id'] . '&recipient=' . $onlines->servidor_id . ' target=_blank > ' . $onlines->nome . '</a></span>
  677.                                        <span class="status online">&nbsp;</span>
  678.                                   </li>';
  679.                         }
  680.                     }
  681.                 }
  682.  
  683.                 $online .= '</ul>
  684.                             </div>
  685.                 <!-- FIM ULTIMOS ACESSOS -->';
  686.  
  687.                 $mural = '';
  688.  
  689.                 //if ($aniversariantes) {
  690.  
  691.                 $mural = '<div class="row">';
  692.                 $mural .= $painel;
  693.                 $mural .= '<div class="col-xs-12 col-sm-12 col-md-8 col-lg-8">';
  694.                 $mural .= '<div class="row" id="step4">';
  695.                 $mural .= '<div class="col-xs-12 col-sm-12 col-md-12 col-lg-6">';
  696.                 $mural .= '                
  697.                             <!-- Google Maps Start -->
  698.                             <div class="boxed no-padding">
  699.  
  700.                                     <!-- Title Bart Start -->
  701.                                     <div class="title-bar white">
  702.                                       <h4>Previsão do Tempo</h4>
  703.                                       <ul class="actions">
  704.                                         <li><a href="#" class="close-box"><i class="fa fa-chevron-up"></i></a></li>
  705.                                         <li><a href="#" class="remove-box"><i class="fa fa-times-circle-o"></i></a></li>
  706.                                       </ul>
  707.                                     </div>
  708.                                     <!-- Title Bart End -->
  709.                                    
  710.                                    
  711.                                 <div class="inner">
  712.                            
  713.                                     <!-- Google Maps Example End -->
  714.                                     <div class="google-maps-container">
  715.                                       <div id="map-canvas"></div>
  716.                                     </div>
  717.                                     <!-- Google Maps Example End -->
  718.  
  719.                                 </div>
  720.                             </div>
  721.                             <!-- Google Maps End -->';
  722.  
  723.  
  724.                 $mural .= '<!-- Aniversariantes Start -->
  725.                             <div class="box social-stats">
  726.                                
  727.                                 <div class="title-bar">
  728.                                     <i class="fa fa-users"></i>Aniversariantes do Dia
  729.                                       <div class="close-box">
  730.                                         <a href="#"><i class="fa fa-times-circle-o"></i></a>
  731.                                       </div><div style="float: right; margin-right: 15px">' . date("d/m/Y") . '</div>
  732.                                 </div>';
  733.                 $mural .= '<ul>';
  734.  
  735.                 foreach ($aniversariantes as $aniversariante) {
  736.                     if (date("d") == $aniversariante->dia) {
  737.                         $mural .= '<li><i class="fa fa-arrow-right"></i>' . $aniversariante->nome . '<span>' . $aniversariante->cidade . '</span></li>';
  738.                     }
  739.                 }
  740.                 $mural .= '</ul>';
  741.  
  742.                 $mural .= '</div>
  743.                             <!-- Aniversariantes End -->';
  744.                 $mural .= '<!-- Daily Sales Start -->
  745.                <div class="box tasks">
  746.               <!-- Title Bar Start -->
  747.                  <div class="title-bar">
  748.                    <i class="fa fa-comments"></i>Emater na mídia
  749.                      <div class="close-box">
  750.                        <a href="#"><i class="fa fa-times-circle-o"></i></a>
  751.                      </div>
  752.                  </div>
  753.                  <!-- Title Bar End -->
  754.                 ';
  755.                 $mural .= "<ul>";
  756.                 $feed = file_get_contents('http://news.google.com.br/news?pz=1&cf=all&ned=pt-BR_br&hl=pt-BR&output=rss&q=emater+rn&oq=emater+rn');
  757.                 $rss = new SimpleXmlElement($feed);
  758.                 foreach ($rss->channel->item as $entrada) {
  759.                     $mural .= " <li><a target=\"_blank\" href=\"$entrada->link\" title=\"$entrada->title\"><font color='green'>$entrada->title</font></a><span>$entrada->pubDate</span></li>";
  760.                 }
  761.                 $mural .= "</ul>";
  762.  
  763.                 $mural .= '
  764.                  <!-- Sales List End -->
  765.  
  766.              </div>
  767.              <!-- Daily Sales End -->
  768. ';
  769.  
  770.                 $mural .= '</div>';
  771.  
  772.                 $mural .= '</div>';
  773.  
  774.                 $mural .= '</div>';
  775.  
  776.                 $mural .= '<!-- Right Sidebar Start -->
  777.                 <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4">
  778.                 <div class="row">
  779.  
  780.                 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  781.                
  782.                     <!-- Open Tasks Start -->
  783.                     <div class="box projects">
  784.  
  785.                     <!-- Title Bar Start -->
  786.                     <div class="title-bar">
  787.                         <i class="fa fa-twitter"></i>@EmaterRN
  788.                         <div class="close-box">
  789.                        <a href="#"><i class="fa fa-times-circle-o"></i></a>
  790.                      </div>
  791.                     </div>
  792.                     <!-- Title Bar End -->
  793.  
  794.                     <!-- Stats List Start -->';
  795.  
  796.  
  797.                 $mural .= '
  798.                     <a target="_blank" class="twitter-timeline" href="https://twitter.com/EmaterRN" data-widget-id="463667206736183296">Tweets de @EmaterRN <img src="app/images/loading.gif"/></a>
  799. <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?\'http\':\'https\';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
  800.                     ';
  801.                 $mural .= '
  802.                     <!-- Stats List End -->
  803.  
  804.                     </div>
  805.                     <!-- Open Tasks End -->
  806.                 </div>
  807.                 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-6"></div>
  808.                 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-6">
  809.                <!-- Whos online Start -->
  810.                <div class="box whos-online">
  811.                     <!-- Title Bar Start -->
  812.                     <div class="title-bar"><i class="fa fa-user"></i>Últimos Acessos (' . date("d/m/Y") . ')
  813.                                       <div class="close-box">
  814.                                         <a href="#"><i class="fa fa-times-circle-o"></i></a>
  815.                                       </div></div>
  816.                     <!-- Title Bar End -->
  817.  
  818.                 ';
  819.  
  820.                 $mural .= $online;
  821.  
  822.                 $mural .= '</div>';
  823.  
  824.                 $mural .= '</div>';
  825.  
  826.                 $mural .= '</div>';
  827.  
  828.                 $mural .= '</div>';
  829.  
  830.                 $mural .= '</div>';
  831.  
  832.  
  833.                 //}
  834.                 // finaliza a transacao
  835.                 TTransaction::close();
  836.             }
  837.         }
  838.  
  839.         $negado = '<div class="error-404 text-center">
  840.            <i class="fa fa-frown-o"></i>
  841.            <h1>Whooops!</h1>
  842.            <h4>Você não tem permissão para acessar esta página</h4>
  843.            
  844.            <p>para continuar <a href="index.php">clique aqui</a></p>
  845.          </div>';
  846.  
  847.  
  848.         if (isset($_REQUEST['acesso']) == 'negado') {
  849.             return $negado;
  850.         } else {
  851.             return $mural;
  852.         }
  853.     }
  854.  
  855.     static public function montaValidacao() {
  856.  
  857.         TTransaction::open('pg_ceres');
  858.  
  859.         // instancia um repositorio para aniversariantes
  860.         $repository = new TRepository('vw_validacaoRecord');
  861.  
  862.         // cria um criterio de selecao, ordenado pelo id
  863.         $criteria = new TCriteria;
  864.         $criteria->setProperty('order', 'nome');
  865.         // carrega os objetos de acordo com o criterio
  866.         $results = $repository->load($criteria);
  867.  
  868.         $validar = '';
  869.  
  870.         if ($results) {
  871.  
  872.             $validar = '<table id="validacao">';
  873.             $validar .= '<center><b><h3>CAPACITACOES PARA VALIDAR</h3></b></center>';
  874.             $validar .= '<tr><th>Nome Servidor</th><th>Capacitacao</th1><th>Data de Conclusao</th><th>Situacao</th></tr>';
  875.             // percorre os objetos retornados
  876.             foreach ($results as $result) {
  877.  
  878.                 $validar .= "<tr><td>" . $result->nome . '</td><td>' . $result->capacitacao . '</td><td>' . $result->datafim . '</td><td>' . $result->situacao . "</td></tr>";
  879.             }
  880.             $validar .= '</table>';
  881.         }
  882.  
  883.         $validar = '';
  884.  
  885.         // finaliza a transacao
  886.         TTransaction::close();
  887.  
  888.         return $validar;
  889.     }
  890.  
  891.     static public function montaAvaliacao() {
  892.  
  893.         TTransaction::open('pg_ceres');
  894.  
  895.         // instancia um repositorio para aniversariantes
  896.         $repository = new TRepository('vw_avaliacao_servidoresRecord');
  897.  
  898.         // cria um criterio de selecao, ordenado pelo id
  899.         $criteria = new TCriteria;
  900.         //filtra pelo campo avaliador_id
  901.         $criteria->add(new TFilter('avaliador_id', '=', $_SESSION['servidor_id']));
  902.         // carrega os objetos de acordo com o criterio
  903.         $results = $repository->load($criteria);
  904.  
  905.         $avaliacao = '';
  906.  
  907.         if ($results) {
  908.  
  909.             $avaliacao = '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example2">';
  910.             $avaliacao .= "<thead>";
  911.             $avaliacao .= '<center><b><h3>AVALIAÇÕES PENDENTES</h3></b></center>';
  912.             $avaliacao .= '<tr><th>Avaliação</th><th>Servidor Avaliado</th><th>Lotação</th><th>Data de Conclusão da Avaliação</th><th>Responder</th></tr>';
  913.             $avaliacao .= "</thead>";
  914.             // percorre os objetos retornados
  915.             foreach ($results as $result) {
  916.  
  917.  
  918.                 $avaliacao .= "<tr class=\"gradeC\"><td>" . $result->nomeavaliacao . '</td><td>' . $result->servidoravaliado . '</td><td>' . $result->lotacaoavaliado . '</td><td>' . $result->datafim . "</td><td><font color='ff0000'><a href='index.php?class=QuestionarioAvaliacaoServidorForm&avaliacao_id=" . $result->avaliacao_id . "&avaliacaoservidor_id=" . $result->avaliacaoservidor_id . "&ordem=1'>Responder Avaliação</a></font></td></tr>";
  919.             }
  920.             $avaliacao .= '</table>';
  921.         }
  922.  
  923.         //$avaliacao = '';
  924.         // finaliza a transacao
  925.         TTransaction::close();
  926.  
  927.         return $avaliacao;
  928.     }
  929.  
  930.     /**
  931.      * Shows the widget at the screen
  932.      */
  933.     public function show() {
  934.         if ($this->items) {
  935.             foreach ($this->items as $item) {
  936.                 parent::add($item);
  937.             }
  938.         }
  939.         parent::show();
  940.     }
  941.  
  942. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement