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)); }
/** * get pickup projects * * @return bool|string * @throws \Goteo\Core\Exception */ function get_pickup_projects() { $_result = Promote::getAll(); if (count($_result) > 3) { for ($i = 0; $i < 3; $i++) { $this->result[] = $_result[$i]; } } else { $this->result = $_result; } // $this->result = Promote::getAll(true); return $this->output(); }
public static function process($action = 'list', $id = null, $filters = array(), $flag = null) { $errors = array(); $node = isset($_SESSION['admin_node']) ? $_SESSION['admin_node'] : \GOTEO_NODE; if ($_SERVER['REQUEST_METHOD'] == 'POST') { // objeto $promo = new Model\Promote(array('id' => $id, 'node' => $node, 'project' => $_POST['project'], 'title' => $_POST['title'], 'description' => $_POST['description'], 'order' => $_POST['order'], 'active' => $_POST['active'])); if ($promo->save($errors)) { switch ($_POST['action']) { case 'add': Message::Info('Proyecto destacado correctamente'); $projectData = Model\Project::getMini($_POST['project']); if ($node == \GOTEO_NODE) { // Evento Feed $log = new Feed(); $log->setTarget($projectData->id); $log->populate('nuevo proyecto destacado en portada (admin)', '/admin/promote', \vsprintf('El admin %s ha %s el proyecto %s', array(Feed::item('user', $_SESSION['user']->name, $_SESSION['user']->id), Feed::item('relevant', 'Destacado en portada', '/'), Feed::item('project', $projectData->name, $projectData->id)))); $log->doAdmin('admin'); unset($log); } break; case 'edit': Message::Info('Destacado actualizado correctamente'); break; } throw new Redirection('/admin/promote'); } else { Message::Error(implode(', ', $errors)); switch ($_POST['action']) { case 'add': return new View('view/admin/index.html.php', array('folder' => 'promote', 'file' => 'edit', 'action' => 'add', 'promo' => $promo)); break; case 'edit': return new View('view/admin/index.html.php', array('folder' => 'promote', 'file' => 'edit', 'action' => 'edit', 'promo' => $promo)); break; } } } switch ($action) { case 'active': $set = $flag == 'on' ? true : false; Model\Promote::setActive($id, $set); throw new Redirection('/admin/promote'); break; case 'up': Model\Promote::up($id, $node); throw new Redirection('/admin/promote'); break; case 'down': Model\Promote::down($id, $node); throw new Redirection('/admin/promote'); break; case 'remove': if (Model\Promote::delete($id)) { Message::Info('Destacado quitado correctamente'); } else { Message::Error('No se ha podido quitar el destacado'); } throw new Redirection('/admin/promote'); break; case 'add': // siguiente orden $next = Model\Promote::next($node); return new View('view/admin/index.html.php', array('folder' => 'promote', 'file' => 'edit', 'action' => 'add', 'promo' => (object) array('order' => $next, 'node' => $node))); break; case 'edit': $promo = Model\Promote::get($id); return new View('view/admin/index.html.php', array('folder' => 'promote', 'file' => 'edit', 'action' => 'edit', 'promo' => $promo)); break; } $promoted = Model\Promote::getAll(false, $node); return new View('view/admin/index.html.php', array('folder' => 'promote', 'file' => 'list', 'promoted' => $promoted)); }
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; }