function edit($id = null)
 {
     if (!$id && empty($this->data)) {
         $this->flash(__('Invalid Post', true), array('action' => 'index'));
     }
     if (!empty($this->data)) {
         if ($this->Post->save($this->data)) {
             $this->flash(__('The Post has been saved.', true), array('action' => 'index'));
         } else {
         }
     }
     if (empty($this->data)) {
         $this->data = $this->Post->read(null, $id);
         //$this->data = $this->Post->find('first', array('conditions' => array('_id' => $id)));
     }
 }
Beispiel #2
0
            if (!$date) {
                $date = $globals['now'];
            }
            $id = (int) $db->get_var("select post_id from posts, users where user_login = '******' and post_user_id = user_id and post_date < FROM_UNIXTIME({$date}) order by post_date desc limit 1");
        }
        if (!$id > 0) {
            // Check if the user exists
            $uid = (int) $db->get_var("select user_id from users where user_login = '******' limit 1");
            if (!$uid) {
                not_found('<strong>Error: </strong>' . _('usuario inexistente'));
            } else {
                header('Location:  http://' . get_server_name() . post_get_base_url($user));
                die;
            }
            die;
        }
    } else {
        $id = intval($_GET['id']);
    }
} else {
    die;
}
$post = new Post();
$post->id = $id;
$post->read();
if (!$post->read) {
    not_found('<strong>Error: </strong>' . _('nota no encontrada'));
    die;
}
header('Location:  http://' . get_server_name() . post_get_base_url($post->id));
echo $link;
Beispiel #3
0
function do_best_posts()
{
    global $db, $globals, $dblang;
    if ($globals['mobile']) {
        return;
    }
    $output = '';
    $key = 'best_posts_' . $globals['css_main'];
    if (memcache_mprint($key)) {
        return;
    }
    $min_date = date("Y-m-d H:i:00", $globals['now'] - 86400);
    // about 24 hours
    $res = $db->get_results("select post_id from posts, users where post_date > '{$min_date}' and  post_user_id = user_id and post_karma > 0 order by post_karma desc limit 10");
    if ($res) {
        $output .= '<div class="sidebox"><div class="header"><h4><a href="' . post_get_base_url('_best') . '">' . _('mejores notas') . '</a></h4></div><div class="comments"><ul>' . "\n";
        foreach ($res as $p) {
            $post = new Post();
            $post->id = $p->post_id;
            $post->read();
            $output .= '<li><img src="' . get_avatar_url($post->author, $post->avatar, 20) . '" alt="" width="20" height="20" class="avatar"/>';
            $output .= '<p><strong>' . $post->username . '</strong>: <a onmouseout="tooltip.clear(event);"  onclick="tooltip.clear(this);" onmouseover="return tooltip.ajax_delayed(event, \'get_post_tooltip.php\', \'' . $post->id . '\', 10000);" href="' . post_get_base_url($post->username) . '/' . $post->id . '"><em>' . text_to_summary($post->clean_content(), 80) . '</em></a></p></li>' . "\n";
        }
        $output .= '</ul></div></div>';
        echo $output;
        memcache_madd($key, $output, 300);
    }
}
Beispiel #4
0
function do_best_posts()
{
    global $db, $globals, $dblang;
    if ($globals['mobile']) {
        return;
    }
    $output = '';
    $key = 'best_posts_' . $globals['site_shortname'] . $globals['v'];
    if (memcache_mprint($key)) {
        return;
    }
    echo '<!-- Calculating ' . __FUNCTION__ . ' -->';
    $min_date = date("Y-m-d H:i:00", $globals['now'] - 86400);
    // about 24 hours
    $res = $db->get_results("select post_id from posts, users where post_date > '{$min_date}' and  post_user_id = user_id and post_karma > 0 order by post_karma desc limit 10");
    if ($res) {
        $objects = array();
        $title = _('mejores notas');
        $url = post_get_base_url('_best');
        foreach ($res as $p) {
            $obj = new stdClass();
            $post = new Post();
            $post->id = $p->post_id;
            $post->read();
            $obj->id = $post->id;
            $obj->link = post_get_base_url() . $post->id;
            $obj->user_id = $post->author;
            $obj->avatar = $post->avatar;
            $obj->title = text_to_summary($post->clean_content(), 80);
            $obj->username = $post->username;
            $obj->tooltip = 'p';
            $objects[] = $obj;
        }
        $vars = compact('objects', 'title', 'url');
        $output = Haanga::Load('best_comments_posts.html', $vars, true);
        echo $output;
        memcache_madd($key, $output, 300);
    }
}
Beispiel #5
0
function save_post($post_id)
{
    global $link, $db, $post, $current_user, $globals, $site_key;
    $post = new Post();
    $_POST['post'] = clean_text_with_tags($_POST['post'], 0, false, $globals['posts_len']);
    if (mb_strlen($_POST['post']) < 5) {
        echo 'ERROR: ' . _('texto muy corto');
        die;
    }
    if ($post_id > 0) {
        $post->id = $post_id;
        if (!$post->read()) {
            die;
        }
        if ((intval($_POST['user_id']) == $current_user->user_id && $current_user->user_id == $post->author && time() - $post->date < 3600 || $current_user->user_level == 'god' && time() - $post->date < 864000) && $_POST['key'] == $post->randkey) {
            $post->content = $_POST['post'];
            if (strlen($post->content) > 0) {
                $post->store();
            }
        } else {
            echo 'ERROR: ' . _('no tiene permisos para grabar');
            die;
        }
    } else {
        if ($current_user->user_id != intval($_POST['user_id'])) {
            die;
        }
        if ($current_user->user_karma < $globals['min_karma_for_posts']) {
            echo 'ERROR: ' . _('el karma es muy bajo');
            die;
        }
        // Check the post wasn't already stored
        $post->randkey = intval($_POST['key']);
        $post->author = $current_user->user_id;
        $post->content = $_POST['post'];
        $dupe = intval($db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval 1 hour) and post_randkey = {$post->randkey}"));
        if (!$dupe && !$post->same_text_count()) {
            // Verify that there are a period of 1 minute between posts.
            if (intval($db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval 1 minute)")) > 0) {
                echo 'ERROR: ' . _('debe esperar 1 minuto entre notas');
                die;
            }
            $same_links = $post->same_links_count();
            if ($same_links > 2) {
                $user = new User();
                $user->id = $current_user->user_id;
                $user->read();
                $reduction = $same_links * 0.2;
                $user->karma = $user->karma - $reduction;
                syslog(LOG_NOTICE, "Meneame: post_edit decreasing {$reduction} of karma to {$user->username} (now {$user->karma})");
                $user->store();
                $annotation = new Annotation("karma-{$user->id}");
                $annotation->append(_('demasiados enlaces al mismo dominio en las notas') . ": -{$reduction}, karma: {$user->karma}\n");
            }
            // Check again for last seconds, ajax calls sometimes add two posts
            $dupe = intval($db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval 10 second) and post_randkey = {$post->randkey}"));
            if (!$dupe) {
                $post->store();
            }
        } else {
            echo 'ERROR: ' . _('comentario grabado previamente');
            die;
        }
    }
    $post->print_summary();
}
Beispiel #6
0
function save_post($post_id)
{
    global $link, $db, $post, $current_user, $globals, $site_key;
    $post = new Post();
    $_POST['post'] = clean_text($_POST['post'], 0, false, 300);
    if (mb_strlen($_POST['post']) < 5) {
        echo 'ERROR: ' . _('texto muy corto');
        die;
    }
    if ($post_id > 0) {
        $post->id = $post_id;
        if (!$post->read()) {
            die;
        }
        if ((intval($_POST['user_id']) == $current_user->user_id && $current_user->user_id == $post->author && time() - $post->date < 3600 || $current_user->user_level == 'god' && time() - $post->date < 864000) && $_POST['key'] == $post->randkey) {
            $post->content = $_POST['post'];
            if (strlen($post->content) > 0) {
                $post->store();
            }
        } else {
            echo 'ERROR: ' . _('no tiene permisos para grabar');
            die;
        }
    } else {
        if ($current_user->user_id != intval($_POST['user_id'])) {
            die;
        }
        if ($current_user->user_karma < $globals['min_karma_for_posts']) {
            echo 'ERROR: ' . _('el karma es muy bajo');
            die;
        }
        // Check the post wasn't already stored
        $post->randkey = intval($_POST['key']);
        $post->author = $current_user->user_id;
        $post->content = $_POST['post'];
        $already_stored = intval($db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval 12 hour) and post_randkey = {$post->randkey}")) + $post->same_text_count();
        if (!$already_stored) {
            // Verify that there are a period of 1 minute between posts.
            if (intval($db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval 1 minute)")) > 0) {
                echo 'ERROR: ' . _('debe esperar 1 minuto entre notas');
                die;
            }
            $same_links = $post->same_links_count();
            if ($same_links > 2) {
                require_once mnminclude . 'user.php';
                $user = new User();
                $user->id = $current_user->user_id;
                $user->read();
                $reduction = $same_links * 0.2;
                $user->karma = $user->karma - $reduction;
                syslog(LOG_NOTICE, "Meneame: post_edit decreasing {$reduction} of karma to {$user->username} (now {$user->karma})");
                $user->store();
            }
            $post->store();
        } else {
            echo 'ERROR: ' . _('comentario grabado previamente');
            die;
        }
    }
    $post->print_summary();
}
Beispiel #7
0
<?php

// The source code packaged with this file is Free Software, Copyright (C) 2005 by
// Ricardo Galli <gallir at uib dot es> and
// Beldar <beldar.cat at gmail dot com>
// It's licensed under the AFFERO GENERAL PUBLIC LICENSE unless stated otherwise.
// You can get copies of the licenses here:
// 		http://www.affero.org/oagpl.html
// AFFERO GENERAL PUBLIC LICENSE is also included in the file called "COPYING".
// The code below was made by Beldar <beldar at gmail dot com>
if (!defined('mnmpath')) {
    include_once '../config.php';
    header('Content-Type: text/html; charset=utf-8');
}
if (empty($_GET['id'])) {
    die;
}
$id = intval($_GET['id']);
$post = new Post();
$post->id = $id;
if (!$post->read()) {
    die;
}
if (!$post->read) {
    die;
}
$post->print_text(0);
Beispiel #8
0
			}
		}
		echo "</ol>\n";

		// Print "conversation" for a given note
		if ($post_id > 0) {
			$sql = "SELECT conversation_from as post_id FROM conversations, posts WHERE conversation_type='post' and conversation_to = $post_id and post_id = conversation_from ORDER BY conversation_from asc LIMIT $page_size";
			$answers = $db->get_results($sql);
			if ($answers) {
				$answer = new Post;
				echo '<div style="padding-left: 40px; padding-top: 10px">'."\n";
				//echo '<h3>'._('Respuestas').'</h3>';
				echo '<ol class="comments-list">';
				foreach ($answers as $dbanswer) {
					$answer->id = $dbanswer->post_id;
					$answer->read();
					echo '<li>';
					$answer->print_summary();
					echo '</li>';
				}
				echo "</ol>\n";
				echo '</div>'."\n";
			}
		}
	}
	echo '</div>';
	do_pages($rows, $page_size);
}

echo '</div>';
if ($rows > 15) do_footer_menu();
Beispiel #9
0
function save_post($post_id)
{
    global $link, $db, $post, $current_user, $globals, $site_key;
    $post = new Post();
    $_POST['post'] = clean_text_with_tags($_POST['post'], 0, false, $globals['posts_len']);
    if (!empty($_FILES['image']['tmp_name'])) {
        $limit_exceded = Upload::current_user_limit_exceded($_FILES['image']['size']);
        if ($limit_exceded) {
            echo 'ERROR: ' . $limit_exceded;
            die;
        }
    }
    if (mb_strlen($_POST['post']) < 5) {
        echo 'ERROR: ' . _('texto muy corto');
        die;
    }
    if ($post_id > 0) {
        $post->id = $post_id;
        if (!$post->read()) {
            die;
        }
        if ((intval($_POST['user_id']) == $current_user->user_id && $current_user->user_id == $post->author && time() - $post->date < 3600 || $current_user->user_level == 'god' && time() - $post->date < $globals['posts_edit_time_admin'] * 1.5) && $_POST['key'] == $post->randkey) {
            $post->content = $_POST['post'];
            if (strlen($post->content) > 0) {
                $post->store();
                store_image($post);
            }
        } else {
            echo 'ERROR: ' . _('no tiene permisos para grabar');
            die;
        }
    } else {
        if ($current_user->user_id != intval($_POST['user_id'])) {
            die;
        }
        if ($current_user->user_karma < $globals['min_karma_for_posts']) {
            echo 'ERROR: ' . _('el karma es muy bajo');
            die;
        }
        // Check the post wasn't already stored
        $post->randkey = intval($_POST['key']);
        $post->author = $current_user->user_id;
        $post->content = $_POST['post'];
        // Verify that there are a period of 1 minute between posts.
        if (intval($db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval " . $globals['posts_period'] . " second)")) > 0) {
            echo 'ERROR: ' . _('debe esperar entre notas');
            die;
        }
        $same_text = $post->same_text_count();
        $same_links = $post->same_links_count(10);
        $db->transaction();
        $r = $db->get_var("select count(*) from posts where post_user_id = {$current_user->user_id} and post_date > date_sub(now(), interval 5 minute) and post_randkey = {$post->randkey} FOR UPDATE");
        $dupe = intval($r);
        if (!is_null($r) && !$dupe && !$same_text) {
            if ($same_links > 2) {
                $reduction = $same_links * 0.2;
                $user = new User($current_user->user_id);
                $user->add_karma(-$reduction, _('demasiados enlaces al mismo dominio en las notas'));
                syslog(LOG_NOTICE, "Meneame: post_edit decreasing {$reduction} of karma to {$user->username} (now {$user->karma})");
            }
            $post->store();
            $db->commit();
            store_image($post);
        } else {
            $db->commit();
            echo 'ERROR: ' . _('comentario grabado previamente');
            die;
        }
    }
    $post->print_summary();
}