[ create a new paste ] login | about

Link: http://codepad.org/FWheFemB    [ raw code | fork ]

fedecarg - PHP, pasted on Nov 24:
class PostModel extends Model
{
    public function findAll(array $options = array())
    {
        // merge defaults and options
        $options = $this->getDefaultOptions($options);
        
        $sql = "SELECT * FROM post ORDER BY id DESC";

        // add limit
        $sql = $this->limit($sql, $options);
        
        try {
            $stmt = $this->execute($sql);
            return $stmt->fetchAll();
        } catch (Exception $e) {
            throw new ModelException($e->getMessage());
        }
    }
}

class PostsController extends Controller
{
    public function indexAction($request)
    {
        $page = (int) $request->getParam('page', 1);

        $options = array('page'=>$page, 'count'=>10);
        $postModel = $this->getModel('Post');
        $posts = $postModel->findAll($options);

        $view = $this->getView();
        $view->posts = $posts;
        $view->pages = $postModel->paginate($options);

        return $view;
    }
}


views/posts/index.phtml
-------------------------------

<?php foreach ($view->posts as $post): ?>
<h2><?php echo $post->title ?></h2>
<p><?php echo $post->description; ?></p>
<?php endforeach; ?>

<?php include APP_DIR . '/views/partials/pagination.phtml'; ?>


views/partials/pagination.phtml
-------------------------------

<?php if ($view->pages->pageCount): ?>
<div class="pagination">
    <ul>
        <!-- Previous page link -->
    <?php if (isset($view->pages->previous)): ?>
        <li class="prev"><a href="<?php echo $view->pageUrl.$view->pages->previous ?>">Previous</a></li>
    <?php endif; ?>
    
        <!-- Numbered page links -->
    <?php foreach ($view->pages->pagesInRange as $page): ?>
    <?php if ($page != $view->pages->current): ?>
        <li><a href="<?php echo $view->pageUrl.$page ?>"><?php echo $page; ?></a></li>
    <?php else: ?>    
        <li class="active"><a href="#"><?php echo $page; ?></a></li>
    <?php endif; ?>
    <?php endforeach; ?>
    
        <!-- Next page link -->
    <?php if (isset($view->pages->next)): ?>
        <li class="next"><a href="<?php echo $view->pageUrl.$view->pages->next ?>">Next</a></li>
    <?php endif; ?>
    </ul>
</div>
<?php endif; ?>


Create a new paste based on this one


Comments: