2016-11-19 16:13:37 +01:00
< ? php
class blog
{
private $entry ;
private $query ;
public $perpage = 10 ;
public $entries = 0 ;
public function __construct ( $entry = false , $page = 1 , $getall = false , $limit = false )
{
global $_set , $_sql ;
if ( ! $getall )
{
$this -> perpage = $_set [ 'entriesPerPage' ];
if ( $entry )
{
$this -> query = $_sql -> query ( " SELECT entries.*, users.userId AS userId, users.userName AS userName, users.userPublicName AS publicName FROM entries INNER JOIN users ON userId = entryBy WHERE entrySlug = ' " . sqlprot ( $entry ) . " ' LIMIT 1 " );
if ( $this -> query -> num_rows )
{
$this -> entries = 1 ;
}
} else
{
$this -> query = $_sql -> query ( " SELECT entries.*, users.userId AS userId, users.userName AS userName, users.userPublicName AS publicName FROM entries INNER JOIN users ON userId = entryBy WHERE entryHidden IS NULL AND entryPublished <= " . time () . " ORDER BY entryPinned DESC, entryPublished DESC, entryId DESC LIMIT " . $this -> perpage . " OFFSET " . (( $page - 1 ) * $this -> perpage ) . " " );
$this -> entries = $this -> query -> num_rows ;
}
} else
{
$this -> query = $_sql -> query ( " SELECT * FROM entries ORDER BY entryPublished DESC " . ( $limit && is_numeric ( $limit ) ? ' LIMIT ' . $limit : null ));
$this -> entries = $this -> query -> num_rows ;
}
}
public function entries ()
{
if ( $this -> entries )
return $this -> query -> fetch_assoc ();
return false ;
}
public function entry ()
{
if ( $this -> entries == 1 )
return $this -> query -> fetch_assoc ();
return false ;
}
public static function update ( $id , $header , $title , $text , $pub , $hidden = false , $pin = false )
{
global $_sql ;
$header = sqlprot ( $header );
$title = sqlprot ( $title );
$text = sqlprot ( $text );
$published = strtotime ( $pub ); if ( ! $published ) $published = time ();
if ( is_numeric ( $id ) && Check :: url ( $header , true ) && Check :: title ( $title ) && $_sql -> query ( " UPDATE entries SET entryHeader = ' $header ', entryTitle = ' $title ', entryContent = ' $text ', entryPublished = $published , entryUpdated = " . time () . " , entryHidden = " . ( $hidden ? '1' : 'NULL' ) . " , entryPIN = " . ( $pin && is_numeric ( $pin ) ? $pin : 'NULL' ) . " WHERE entryId = $id " ))
return true ;
return false ;
}
public static function add ( $header , $title , $slug , $text , $pub , $hidden = false , $pin = false )
{
global $_sql , $user ;
$header = sqlprot ( $header );
$title = sqlprot ( $title );
$text = sqlprot ( $text );
$slug = sqlprot ( $slug );
$published = strtotime ( $pub ); if ( ! $published ) $published = time ();
if ( Check :: url ( $header , true ) && Check :: title ( $title ) && Check :: slug ( $slug ) && $_sql -> query ( " INSERT INTO entries (entryHeader, entryTitle, entrySlug, entryContent, entryBy, entryCreated, entryPublished, entryHidden, entryPIN) VALUES (' $header ', ' $title ', ' $slug ', ' $text ', $user[userId] , " . time () . " , $published , " . ( $hidden ? '1' : 'NULL' ) . " , " . ( $pin && is_numeric ( $pin ) ? $pin : 'NULL' ) . " ) " ))
return true ;
//die($text);
return false ;
}
public static function delete ( $id )
{
global $_sql ;
if ( is_numeric ( $id ) && $_sql -> query ( " DELETE FROM entries WHERE entryId = $id " ))
return true ;
return false ;
}
public static function pin ( $id )
{
global $_sql ;
if ( is_numeric ( $id ) && $_sql -> query ( " UPDATE entries SET entryPinned = 1 WHERE entryId = $id " ))
return true ;
return false ;
}
public static function unpin ( $id )
{
global $_sql ;
if ( is_numeric ( $id ) && $_sql -> query ( " UPDATE entries SET entryPinned = NULL WHERE entryId = $id " ))
return true ;
return false ;
}
public static function tag ( $cid , $id )
{
if ( ! is_numeric ( $cid ) || ! is_numeric ( $id )) return false ;
global $_sql ;
if ( ! $_sql -> query ( " SELECT * FROM tags WHERE tagId = $cid " ) -> num_rows ) return false ;
if ( $_sql -> query ( " SELECT * FROM tagged WHERE taggedTag = $cid AND taggedEntry = $id " ) -> num_rows ) return false ;
if ( $_sql -> query ( " INSERT INTO tagged (taggedTag, taggedEntry) VALUES ( $cid , $id ) " )) return true ;
return false ;
}
public static function tagRemove ( $cid , $id )
{
if ( ! is_numeric ( $cid ) || ! is_numeric ( $id )) return false ;
global $_sql ;
if ( $_sql -> query ( " DELETE FROM tagged WHERE taggedTag = $cid AND taggedEntry = $id " )) return true ;
return false ;
}
}