public static function process($action = 'list', $id = null, $filters = array(), $type = 'main') { //@NODESYS $node = \GOTEO_NODE; $type = 'main'; $errors = array(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { // instancia $item = new Model\Home(array('item' => $_POST['item'], 'type' => $_POST['type'], 'node' => $node, 'order' => $_POST['order'], 'move' => 'down')); if ($item->save($errors)) { } else { Message::Error(implode('<br />', $errors)); } } switch ($action) { case 'remove': Model\Home::delete($id, $node, $type); throw new Redirection('/admin/home'); break; case 'up': Model\Home::up($id, $node, $type); throw new Redirection('/admin/home'); break; case 'down': Model\Home::down($id, $node, $type); throw new Redirection('/admin/home'); break; case 'add': $next = Model\Home::next($node, 'main'); $availables = Model\Home::available($node); if (empty($availables)) { Message::Info(Text::_('Todos los elementos disponibles ya estan en portada')); throw new Redirection('/admin/home'); break; } return new View('view/admin/index.html.php', array('folder' => 'home', 'file' => 'add', 'action' => 'add', 'home' => (object) array('node' => $node, 'order' => $next, 'type' => 'main'), 'availables' => $availables)); break; case 'addside': $next = Model\Home::next($node, 'side'); $availables = Model\Home::availableSide($node); if (empty($availables)) { Message::Info(Text::_('Todos los elementos laterales disponibles ya estan en portada')); throw new Redirection('/admin/home'); break; } return new View('view/admin/index.html.php', array('folder' => 'home', 'file' => 'add', 'action' => 'add', 'home' => (object) array('node' => $node, 'order' => $next, 'type' => 'side'), 'availables' => $availables)); break; } $viewData = array('folder' => 'home', 'file' => 'list'); $viewData['items'] = Model\Home::getAll($node); /* Para añadir nuevos desde la lista */ $viewData['availables'] = Model\Home::available($node); $viewData['new'] = (object) array('node' => $node, 'order' => Model\Home::next($node, 'main'), 'type' => 'main'); // laterales $viewData['side_items'] = Model\Home::getAllSide($node); $viewData['side_availables'] = Model\Home::availableSide($node); $viewData['side_new'] = (object) array('node' => $node, 'order' => Model\Home::next($node, 'side'), 'type' => 'side'); return new View('view/admin/index.html.php', $viewData); }
public static function getContent($content, $lang = LANG) { // orden de los elementos en portada $order = \Goteo\Model\Home::getAll(); // entradas de blog $posts_content = ''; /* if (isset($order['posts'])) { $home_posts = \Goteo\Model\Post::getList(); if (!empty($home_posts)) { // $posts_content = '<div class="section-tit">'.Text::get('home-posts-header').'</div>'; foreach ($posts as $id=>$title) { $the_post = \Goteo\Model\Post::get($id); $posts_content .= new View('view/email/newsletter_post.html.php', array('post'=>$the_post)); break; // solo cogemos uno } } } * */ // Proyectos destacados $promotes_content = ''; if (isset($order['promotes'])) { $home_promotes = \Goteo\Model\Promote::getAll(true, GOTEO_NODE, $lang); if (!empty($home_promotes)) { // $promotes_content = '<div class="section-tit">'.Text::get('home-promotes-header').'</div>'; foreach ($home_promotes as $key => $promote) { try { $the_project = \Goteo\Model\Project::getMedium($promote->project, $lang); $promotes_content .= new View('view/email/newsletter_project.html.php', array('promote' => $promote, 'project' => $the_project)); } catch (\Goteo\Core\Error $e) { continue; } } } } // capital riego $drops_content = ''; /* if (isset($order['drops'])) { $calls = \Goteo\Model\Call::getActive(3); // convocatorias en modalidad 1; inscripcion de proyectos $campaigns = \Goteo\Model\Call::getActive(4); // convocatorias en modalidad 2; repartiendo capital riego if (!empty($calls) || !empty($campaigns)) { // $drops_content = '<div class="section-tit">'.str_replace('<br />', ': ', Text::get('home-calls-header')).'</div>'; // aqui lo del contenido dinamico } } */ // montammos el contenido completo $tmpcontent = $content; foreach (\array_keys($order) as $item) { $var = $item . '_content'; $tmpcontent .= ${$var}; } return $tmpcontent; }
public function index() { if (isset($_GET['error'])) { throw new \Goteo\Core\Error('418', Text::html('fatal-error-teapot')); } // orden de los elementos en portada $order = Home::getAll(); // si estamos en easy mode, quitamos el feed if (defined('GOTEO_EASY') && \GOTEO_EASY === true && isset($order['feed'])) { unset($order['feed']); } // entradas de blog if (isset($order['posts'])) { // entradas en portada $posts = Post::getAll(); } // Proyectos destacados if (isset($order['promotes'])) { $promotes = Promote::getAll(true); foreach ($promotes as $key => &$promo) { try { $promo->projectData = Project::getMedium($promo->project, LANG); } catch (\Goteo\Core\Error $e) { unset($promotes[$key]); } } } // actividad reciente if (isset($order['feed'])) { $feed = array(); $feed['goteo'] = Feed::getAll('goteo', 'public', 15); $feed['projects'] = Feed::getAll('projects', 'public', 15); $feed['community'] = Feed::getAll('community', 'public', 15); } // Banners siempre /* $banners = Banner::getAll(true); foreach ($banners as $id => &$banner) { if (!empty($banner->project)) { try { $banner->project = Project::get($banner->project, LANG); } catch (\Goteo\Core\Error $e) { unset($banners[$id]); } } }*/ $template = VIEW_PATH . '/index.html.php'; return new View($template, array('banners' => $banners, 'posts' => $posts, 'promotes' => $promotes, 'order' => $order)); }
*/ use Goteo\Library\Text, Goteo\Model\Home; $node = isset($_SESSION['admin_node']) ? $_SESSION['admin_node'] : \GOTEO_NODE; if ($node != \GOTEO_NODE) { $the_items = Home::_node_items(); $the_side_items = Home::_node_side_items(); } else { $the_items = Home::_items(); } $items = $this['items']; $new = $this['new']; $availables = $this['availables']; $side_items = $this['side_items']; $side_new = $this['side_new']; $side_availables = $this['side_availables']; $admins = Home::_admins(); /* if ($node != \GOTEO_NODE) : ?><a href="/admin/home/addside" class="button" style="margin-right: 270px;">Añadir elemento lateral</a><?php endif; ?> <a href="/admin/home/add" class="button">Añadir elemento</a> <br /> * */ if ($node != \GOTEO_NODE) { ?> <div class="widget board" style="width:350px; float:left; margin-right: 5px;"> <h4 class="title">Laterales</h4> <?php if (!empty($side_items)) { ?> <table> <thead> <tr>