Ejemplo n.º 1
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));
 }
Ejemplo n.º 2
0
 *
 *  Goteo is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with Goteo.  If not, see <http://www.gnu.org/licenses/agpl.txt>.
 *
 */
use Goteo\Library\Text, Goteo\Model;
$promo = $this['promo'];
$node = isset($_SESSION['admin_node']) ? $_SESSION['admin_node'] : \GOTEO_NODE;
// proyectos disponibles
// si tenemos ya proyecto seleccionado lo incluimos
$projects = Model\Promote::available($promo->project, $node);
$status = Model\Project::status();
?>
<form method="post" action="/admin/promote">
    <input type="hidden" name="action" value="<?php 
echo $this['action'];
?>
" />
    <input type="hidden" name="order" value="<?php 
echo $promo->order;
?>
" />
    <input type="hidden" name="id" value="<?php 
echo $promo->id;
?>
" />
Ejemplo n.º 3
0
Archivo: json.php Proyecto: kenjs/Goteo
 /**
  * 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();
 }
Ejemplo n.º 4
0
 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));
 }
Ejemplo n.º 5
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;
 }