function Commit($data)
  {
    $post = array();

    global $REQUESTTYPES;
    if ($REQUESTTYPES[ $_POST["requestType"] ])
    {
      $error = $REQUESTTYPES[ $_POST["requestType"] ]::ValidateRequest($data,$post);
      if ($error) return $error;
    }
    else
    {
      return array("no such request type!");
    }
    $a = array();
    $a["requestType"] = $data["requestType"];
    if($_REQUEST["prod"])
    {
      $a["itemID"] = (int)$_REQUEST["prod"];
      $a["itemType"] = "prod";
    }
    $a["requestDate"] = date("Y-m-d H:i:s");
    $a["userID"] = get_login_id();

    $a["requestBlob"] = serialize($post);

    global $reqID;
    $reqID = SQLLib::InsertRow("modification_requests",$a);

    return array();
  }
예제 #2
0
  function LoadFromDB() {
    global $POSTS_PER_PAGE;

    $s = new SQLSelect();
    $s->AddTable("bbs_topics");
    $s->AddWhere("bbs_topics.id=".$this->id);
    $this->topic = SQLLib::SelectRow($s->GetQuery());
    if(!$this->topic) return false;

    $s = new SQLSelect();
    $s->AddField("count(*) as c");
    $s->AddTable("bbs_posts");
    $s->AddWhere("bbs_posts.topic=".$this->id);
    $this->postcount = SQLLib::SelectRow($s->GetQuery())->c;

    $s = new BM_Query();
    $s->AddTable("bbs_posts");
    $s->AddField("bbs_posts.id as id");
    $s->AddField("bbs_posts.post as post");
    $s->AddField("bbs_posts.added as added");
    $s->attach(array("bbs_posts"=>"author"),array("users as user"=>"id"));
    $s->AddWhere("bbs_posts.topic=".$this->id);
    //$s->SetLimit( $POSTS_PER_PAGE, (int)(($this->page - 1)*$POSTS_PER_PAGE) );

    $this->paginator = new PouetPaginator();
    $this->paginator->SetData( "topic.php?which=".$this->id, $this->postcount, $POSTS_PER_PAGE, $_GET["page"] );
    $this->paginator->SetLimitOnQuery( $s );

    $this->posts = $s->perform();

    $this->title = _html($this->topic->topic);
  }
예제 #3
0
  function Commit($post)
  {
    $message = trim($post["message"]);

    $r = SQLLib::SelectRow("SELECT count(0) as c FROM bbs_posts WHERE topic=".$this->topic);

  	$a = array();
  	$a["userlastpost"] = get_login_id();
  	$a["lastpost"] = date("Y-m-d H:i:s");
  	$a["count"] = $r->c;

    SQLLib::UpdateRow("bbs_topics",$a,"id=".$this->topic);

  	$a = array();
  	$a["added"] = date("Y-m-d H:i:s");
  	$a["author"] = get_login_id();
  	$a["post"] = $message;
  	$a["topic"] = $this->topic;

    SQLLib::InsertRow("bbs_posts",$a);

    @unlink("cache/pouetbox_latestbbs.cache");

    return array();
  }
예제 #4
0
  function Load() {
    $s = new BM_query("parties");
    if ($this->letter=="#")
      $s->AddWhere(sprintf("name regexp '^[^a-z]'"));
    else
      $s->AddWhere(sprintf("name like '%s%%'",$this->letter));
    $s->AddOrder("name");
    $this->parties = $s->perform();

    if ($this->parties)
    {
      $ids = array();
      foreach($this->parties as $group) $ids[] = $group->id;
      $idstr = implode(",",$ids);

      $rows = SQLLib::selectRows(sprintf("SELECT count(*) as c, party, party_year FROM `prods` WHERE party in (%s) GROUP by party, party_year order by party_year",$idstr));
      $this->partyyears = array();
      foreach($rows as $row)
        if ($row->party)
          $this->partyyears[$row->party][$row->party_year] = $row->c;

      $rows = SQLLib::selectRows(sprintf("SELECT * FROM `partylinks` WHERE party in (%s)",$idstr));
      $this->partylinks = array();
      foreach($rows as $row)
        if ($row->party)
          $this->partylinks[$row->party][$row->year] = $row;
    }
  }
예제 #5
0
  function LoadFromDB() {
    $s = new SQLSelect();

    $perPage = get_setting("userlistusers");
    $this->page = (int)max( 1, (int)$_GET["page"] );

    $s = new BM_Query("users");

    $dir = !$_GET["reverse"];
    switch($_GET["order"])
    {
      case "nickname": $s->AddOrder("users.nickname ".($dir?"ASC":"DESC")); break;
      case "age": $s->AddOrder("users.registerDate ".($dir?"ASC":"DESC")); break;
      case "level": $s->AddOrder("users.level ".($dir?"ASC":"DESC")); break;
      case "glops":
      default: $s->AddOrder("users.glops ".($dir?"DESC":"ASC")); break;
    }
    $s->AddOrder("users.id ".($dir?"ASC":"DESC"));

    $s->SetLimit( $perPage, (int)(($this->page-1) * $perPage) );

    //echo $s->GetQuery();

    $this->users = $s->performWithCalcRows( $this->count );

    $this->maxglops = SQLLib::SelectRow("SELECT MAX(glops) as m FROM users")->m;
  }
예제 #6
0
 function LoadFromDB() {
   $a = array("prods", "groups", "parties", "boards", "users", "comments");
   foreach($this->fields as $v) {
     $field = $v == "users" ? "registerDate" : "addedDate";
     $this->data[$v."_all"] = SQLLib::SelectRow("SELECT count(0) as c FROM ".$v)->c;
     $this->data[$v."_24h"] = SQLLib::SelectRow("SELECT count(0) as c FROM ".$v." WHERE (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(".$field."))<=3600*24")->c;
   }
 }
예제 #7
0
파일: bbs.php 프로젝트: neodyme60/pouet2.0
  function PouetBoxBBSTopicList() {
    parent::__construct();
    $this->uniqueID = "pouetbox_bbslist";

    $row = SQLLib::selectRow("DESC bbs_topics category");
    preg_match_all("/'([^']+)'/",$row->Type,$m);
    $this->categories = $m[1];
  }
예제 #8
0
  function Load( $cached = false ) {
    $s = new SQLSelect();
    $s->AddTable("buttons");
    $s->AddOrder("rand()");
    $s->AddWhere("dead = 0");
    $s->SetLimit("1");
    $this->data = SQLLib::SelectRow($s->GetQuery());

    $this->title = $this->data->type;
  }
예제 #9
0
  function LoadFromDB() {
    $id = SQLLib::SelectRow("SELECT prods.id as id FROM prods ORDER BY RAND() LIMIT 1")->id;
    
    $s = new BM_Query("prods");
    $s->AddWhere(sprintf_esc("prods.id = %d",$id));
    $s->SetLimit(1);
    $data = $s->perform();
    $this->data = reset($data);

    $a = array(&$this->data);
    PouetCollectPlatforms($a);
  }
예제 #10
0
  function Commit( $data )
  {
    $a = array();
    $a["name"] = trim($data["name"]);
    $a["desc"] = $data["desc"];
    $a["upkeeper"] = get_login_id();
    $a["addedUser"] = get_login_id();
    $a["addedDate"] = date("Y-m-d H:i:s");
    $this->listID = SQLLib::InsertRow("lists",$a);

    return array();
  }
예제 #11
0
  function PouetBoxTopList() {
    parent::__construct();
    $this->uniqueID = "pouetbox_toplist";

    $this->formifier = new Formifier();

    $row = SQLLib::selectRow("DESC prods type");
    preg_match_all("/'([^']+)'/",$row->Type,$m);

    $this->types = array();
    $this->types[""] = "- none - ";
    foreach($m[1] as $v) $this->types[$v] = $v;
  }
  function Commit( $data )
  {
    $a = array();
    $a["download"] = trim($data["download"]);
    $a["csdb"] = $data["csdbID"];
    //$a["zxdemo"] = $data["zxdemoID"];
    $a["demozoo"] = $data["demozooID"];
    $a["slengpung"] = $data["slengpungID"];
    $a["artcity"] = $data["artcity"];
    SQLLib::InsertRow("partylinks",$a);

    return array();
  }
예제 #13
0
  function Commit($data)
  {
    global $groupID;

    $a = array();
    $a["category"] = $data["category"];
    $a["closed"] = $data["closed"]=="on";
    SQLLib::UpdateRow("bbs_topics",$a,"id=".$this->topic->id);

    gloperator_log( "topic", $this->topic->id, "topic_edit" );

    return array();
  }
예제 #14
0
  function Commit($data)
  {
    SQLLib::Query(sprintf_esc("UPDATE prods SET party=null, party_year=0, party_compo=0, party_place=0 WHERE party=%d",$this->party->id));
    SQLLib::Query(sprintf_esc("UPDATE prods SET invitation=0, invitationyear=0 WHERE invitation=%d",$this->party->id));
    SQLLib::Query(sprintf_esc("DELETE FROM partiesaka WHERE party1=%d OR party1=%d",$this->party->id,$this->party->id));
    SQLLib::Query(sprintf_esc("DELETE FROM prodotherparty WHERE party=%d",$this->party->id));
    SQLLib::Query(sprintf_esc("DELETE FROM partylinks WHERE party=%d",$this->party->id));
    SQLLib::Query(sprintf_esc("DELETE FROM listitems WHERE itemid=%d AND type='party'",$this->party->id));
    SQLLib::Query(sprintf_esc("DELETE FROM parties WHERE id=%d",$this->party->id));
    
    gloperator_log( "party", (int)$this->party->id, "party_delete", get_object_vars($this->party) );

    return array();
  }
예제 #15
0
  function LoadFromDB()
  {
    global $currentUser;
    $ids = SQLLib::SelectRows(sprintf_esc("select prodID from watchlist where userID = %d",$currentUser->id));
    if (!count($ids)) return;
    
    $i = array();
    foreach($ids as $v) $i[] = $v->prodID;
  
    $s = new BM_Query("prods");
    $s->AddWhere( sprintf_esc("prods.id in (%s)",implode(",",$i) ) );
    $this->prods = $s->perform();

    PouetCollectPlatforms($this->prods);
  }
예제 #16
0
  function Commit($data)
  {
    global $currentUser;

    $filename = strtolower( basename( $_FILES["logo"]["name"] ) );

    move_uploaded_file_fake( $_FILES["logo"]["tmp_name"], POUET_CONTENT_LOCAL . "/logos/".$filename );

    $a = array();
    $a["author1"] = $currentUser->id;
    $a["author2"] = NULL;
    $a["file"] = $filename;
    SQLLib::InsertRow("logos",$a);

    return array();
  }
  function Commit($post)
  {
    global $currentUser;
    $message = trim($post["message"]);

  	$a = array();
  	$a["who"] = $currentUser->id;
  	$a["addedDate"] = date("Y-m-d H:i:s");
  	$a["message"] = $message;

    SQLLib::InsertRow("oneliner",$a);

    $this->ForceCacheUpdate();

    return array();
  }
예제 #18
0
  function Commit($data)
  {
    global $groupID;

    $a = array();
    $a["name"] = trim($data["name"]);
    $a["acronym"] = $data["acronym"];
    $a["web"] = $data["website"];
    $a["addedUser"] = get_login_id();
    $a["csdb"] = $data["csdbID"];
    //$a["zxdemo"] = $data["zxdemoID"];
    $a["demozoo"] = $data["demozooID"];
    $a["addedDate"] = date("Y-m-d H:i:s");
    $this->groupID = SQLLib::InsertRow("groups",$a);

    return array();
  }
  function LoadFromDB()
  {
    parent::LoadFromDB();

    $this->links = SQLLib::selectRow(sprintf_esc("select * from partylinks where party = %d and year = %d",$this->id,$this->year));

    $this->fields["download"]["value"] = $this->links->download;
    $this->fields["csdbID"]["value"] = $this->links->csdb;
    $this->fields["slengpungID"]["value"] = $this->links->slengpung;
    //$this->fields["zxdemoID"]["value"] = $this->links->zxdemo;
    $this->fields["demozooID"]["value"] = $this->links->demozoo;
    $this->fields["artcity"]["value"] = $this->links->artcity;

    foreach($_POST as $k=>$v)
      if ($this->fields[$k])
        $this->fields[$k]["value"] = $v;
  }
예제 #20
0
  function ParsePostMessage($post)
  {
    global $currentUser;
    if (!$currentUser)
      return "you have to be logged in!";

    if (!$currentUser->CanPostInBBS())
      return "not allowed lol.";

    $message = trim($post["message"]);
    if (!$message)
      return "not too meaningful, is it...";

    $title = trim($post["topic"]);
    if (strlen($title) < 2)
      return "not too meaningful, is it...";

    $r = SQLLib::SelectRow(sprintf_esc("SELECT id FROM bbs_topics where topic='%s'",$title));
    if ($r)
      return "DOUBLEPOST == ROB IS JARIG";

  	$a = array();
  	$a["topic"] = $title;
  	$a["category"] = $post["category"];
  	$a["userfirstpost"] = $a["userlastpost"] = get_login_id();
  	$a["firstpost"] = $a["lastpost"] = date("Y-m-d H:i:s");

    $id = SQLLib::InsertRow("bbs_topics",$a);

  	$a = array();
  	$a["added"] = date("Y-m-d H:i:s");
  	$a["author"] = get_login_id();
  	$a["post"] = $message;
  	$a["topic"] = $id;

    SQLLib::InsertRow("bbs_posts",$a);

    @unlink("cache/pouetbox_latestbbs.cache");

    return "";

  }
  function Commit($data)
  {
    global $currentUser;

    $req = SQLLib::SelectRow(sprintf_esc("select itemID,requestType,requestBlob,approved from modification_requests where id = %d",$data["requestID"]));
    if ($req->approved !== NULL)
      return array("this request was already processed");
      
    if ($data["requestDeny"])
    {
      $a = array();
      $a["gloperatorID"] = $currentUser->id;
      $a["approved"] = 0;
      $a["comment"] = $data["comment"];
      $a["approveDate"] = date("Y-m-d H:i:s");
      SQLLib::UpdateRow("modification_requests",$a,"id=".(int)$data["requestID"]);
      return array();
    }
    
    $reqData = unserialize($req->requestBlob);
    global $REQUESTTYPES;
    if ($REQUESTTYPES[$req->requestType])
    {
      $errors = $REQUESTTYPES[$req->requestType]::Process($req->itemID,$reqData);
      if ($errors) return $errors;

      gloperator_log( $REQUESTTYPES[$req->requestType]::GetItemType(), $req->itemID, $req->requestType, $reqData );
    }
    else
    {
      return array("no such request type!");
    }

    $a = array();
    $a["gloperatorID"] = $currentUser->id;
    $a["approved"] = 1;
    $a["approveDate"] = date("Y-m-d H:i:s");
    SQLLib::UpdateRow("modification_requests",$a,"id=".(int)$data["requestID"]);

    return array();
  }
예제 #22
0
  function Commit($data)
  {
    global $currentUser;
    
    $a = array();
    $a["category"] = $data["category"];
    $a["question"] = $data["question"];
    $a["answer"] = $data["answer"];
    $a["deprecated"] = $data["deprecated"] == "on";
    if ($data["faqID"])
    {
      //gloperator_log( "faq", $data["faqID"], "faq_edit" );
      SQLLib::UpdateRow("faq",$a,"id=".(int)$data["faqID"]);
    }
    else
    {
      //gloperator_log( "faq", 0, "faq_add" );
      SQLLib::InsertRow("faq",$a);
    }

    return array();
  }
예제 #23
0
 function LoadFromDB() {
   global $currentUser;
   if (!$currentUser) return;
   
   $ids = SQLLib::SelectRows(sprintf_esc("select prodID from watchlist where userID = %d",$currentUser->id));
   if (!count($ids)) return;
   
   $i = array();
   foreach($ids as $v) $i[] = $v->prodID;
   
   $s = new BM_Query();
   //$s->AddTable(sprintf_esc("(select * from comments where comments.which in (%s) order by comments.addedDate desc) as c ",implode(",",$i)));
   $s->AddTable(sprintf_esc("(select *, max(comments.addedDate) as maxDate from comments where comments.which in (%s) group by comments.which) as c ",implode(",",$i)));
   $s->AddJoin("left","comments","c.maxDate = comments.addedDate and c.which = comments.which");
   $s->attach(array("comments"=>"which"),array("prods as prod"=>"id"));
   $s->attach(array("comments"=>"who"),array("users as user"=>"id"));
   //$s->AddGroup("c.which");
   $s->AddOrder("comments.addedDate desc");
   $s->AddField("comments.id as commentID");
   $s->SetLimit((int)$this->limit);
   $this->data = $s->perform();
 }
예제 #24
0
  function LoadFromDB() 
  {
    $this->board = SQLLib::SelectRow(sprintf_esc("select * from boards where id = %d",$this->id));
    if (!$this->board) return;

    $a = SQLLib::SelectRows(sprintf_esc("select * from boards_platforms where board = %d",$this->id));
    $this->platforms = array();
    foreach($a as $v) $this->platforms[] = $v->platform;

    $this->addedUser = PouetUser::Spawn($this->board->addedUser);

    $this->nfos = SQLLib::SelectRows(sprintf_esc("select * from othernfos where refid = %d",$this->id));

    $s = new BM_Query("affiliatedboards");
    $s->AddField("affiliatedboards.type");
    $s->Attach(array("affiliatedboards"=>"group"),array("groups as group"=>"id"));
    $s->AddWhere(sprintf_esc("affiliatedboards.board = %d",$this->id));
    $this->groups = $s->perform();

    $s = new BM_Query("prods");
    $s->AddWhere(sprintf_esc("prods.boardID = %d",$this->id));
    $this->bbstros = $s->perform();
  }
예제 #25
0
 function RenderBody() {
   if (!get_login_id())
   {
     echo "<div class='content loggedout'>\n";
     printf( "<a href='login.php?return=%s'>login via SceneID</a>",_html(rootRelativePath()) );
     echo "</div>\n";
   } else {
     global $currentUser;
     echo "<div class='content loggedin'>\n";
     echo "you are logged in as<br/>\n";
     echo $currentUser->PrintLinkedAvatar()." ";
     echo $currentUser->PrintLinkedName();
     echo "</div>\n";
     if ($currentUser->IsGloperator())
     {
       $req = SQLLib::SelectRow("select count(*) as c from modification_requests where approved is null")->c;
       if ($req)
       {
         echo "<div class='content notifications'>\n";
         echo "[ <a href='admin_modification_requests.php' class='adminlink'>";
         echo $req;
         if ($req==1)
           echo " request waiting!";
         else
           echo " requests waiting!";
         echo "</a> ]";
         echo "</div>\n";
       }
     }
     echo "<div class='foot'>\n";
     echo "<a href='account.php'>account</a> ::\n";
     echo "<a href='customizer.php'>cust&ouml;omizer</a> ::\n";
     echo "<a href='logout.php'>logout</a>\n";
     echo "</div>";
   }
 }
예제 #26
0
  function Commit( $data )
  {
    global $currentUser;
    
    $a = array();
    $a["name"] = trim($data["name"]);
    $a["sysop"] = trim($data["sysop"]);
    
    if( $data["started_year"] && $data["started_month"] && checkdate( (int)$data["started_month"], 15, (int)$data["started_year"]) )
      $a["started"] = sprintf("%04d-%02d-15",$data["started_year"],$data["started_month"]);
    else if ($data["started_year"])
      $a["started"] = sprintf("%04d-00-15",$data["started_year"]);

    if( $data["closed_year"] && $data["closed_month"] && checkdate( (int)$data["closed_month"], 15, (int)$data["closed_year"]) )
      $a["closed"] = sprintf("%04d-%02d-15",$data["closed_year"],$data["closed_month"]);
    else if ($data["closed_year"])
      $a["closed"] = sprintf("%04d-00-15",$data["closed_year"]);
    
    $a["phonenumber"] = trim($data["phonenumber"]);
    $a["telnetip"] = trim($data["telnetip"]);

    $a["addedUser"] = $currentUser->id;
    $a["addedDate"] = date("Y-m-d H:i:s");

    $this->boardID = SQLLib::InsertRow("boards",$a);

    $data["platform"] = array_unique($data["platform"]);
    foreach($data["platform"] as $k=>$v)
    {
      $a = array();
      $a["board"] = $this->boardID;
      $a["platform"] = $v;
      SQLLib::InsertRow("boards_platforms",$a);
    }
    return array();
  }
예제 #27
0
<?
require_once("bootstrap.inc.php");

header("Content-type: application/json; charset=utf-8");

$sql = new SQLSelect();
$sql->AddField("id");
$sql->AddField("nickname as name");
$sql->AddField("avatar");
$sql->AddField("glops");
$sql->AddTable("users");

$r = array();
if ($_POST["search"])
{
  $sql->AddWhere(sprintf_esc("nickname like '%%%s%%'",_like($_POST["search"])));
  $sql->AddOrder(sprintf_esc("if(nickname='%s',1,2), nickname, lastLogin DESC",$_POST["search"]));
  $sql->SetLimit(10);
  $r = SQLLib::selectRows( $sql->GetQuery() );
}
else if ($_POST["id"])
{
  $sql->AddWhere(sprintf_esc("id = %d",$_POST["id"]));
  $sql->SetLimit(1);
  $r = SQLLib::selectRows( $sql->GetQuery() );
}
echo json_encode($r);
?>
예제 #28
0
    $user = new PouetUser();
    $user->id = (int)$SceneIDuser["user"]["id"];
    $user->nickname = $SceneIDuser["user"]["display_name"];
    $user->avatar = $a;

    $user->Create();

    $user = PouetUser::Spawn( $user->id );
  }

  if ( $user->IsBanned() )
  {
		redirect("error.php?e=".rawurlencode("We dun like yer type 'round these parts."));
  }

  $_SESSION["user"] = $user;
  
  $currentUserSettings = SQLLib::SelectRow(sprintf_esc("select * from usersettings where id=%d",$user->id));
  if ($currentUserSettings)
    $ephemeralStorage->set( "settings:".$user->id, $currentUserSettings );

  redirect( basename( $returnURL ? $returnURL : "index.php" ) );
  
}
catch(SceneID3Exception $e) 
{
	redirect("error.php?e=".rawurlencode( $e->GetMessage() ));
}

?>
예제 #29
0
 function Load() {
   $row = SQLLib::selectRow("DESC prods type");
   preg_match_all("/'([a-zA-Z0-9\s_\-]+)'/",$row->Type,$m);
   $this->types = $m[1];
 }
예제 #30
0
 function performWithCalcRows(&$count)
 {
     $objects = array();
     $sql = $this->GetQuery();
     $sql = preg_replace("/^SELECT/", "SELECT SQL_CALC_FOUND_ROWS ", $sql);
     $rows = SQLLib::selectRows($sql);
     foreach ($rows as $row) {
         $object = new stdClass();
         $this->populate($object, $this->root, $row);
         foreach (get_object_vars($row) as $k => $v) {
             $object->{$k} = $v;
         }
         if ($this->root->class) {
             $class = $this->root->class;
             $field = $class::getPrimaryKey();
             $objects[$object->{$field}] = $object;
         } else {
             $objects[] = $object;
         }
     }
     $row = SQLLib::selectRow("SELECT FOUND_ROWS() as f");
     $count = (int) $row->f;
     return $objects;
 }