Beispiel #1
0
 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);
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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));
 }
Beispiel #4
0
 */
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&ntilde;adir elemento lateral</a><?php endif; ?>
<a href="/admin/home/add" class="button">A&ntilde;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>