Loading ...

Random Photos

This page demonstrates how to select random photos from database and display them with xajax. These photos were from my photo gallery - Minter Gardens.


Model: photo_model.php

<?php
class photo_model extends Model 
{
    function 
photo_model()
    {
        
parent::Model();
    }

    function 
get_random_photos($limit)
    {
        
$query $this->db->query('select * from photo order by rand() limit ' $limit);

        return (
$query);
    }
}
?>

Controller: randomphotos.php

<?php
class randomphotos extends Controller
{
    var 
$NUM_PHOTOS 4;

    function 
randomphotos()
    {
        
parent::Controller();

        
$this->load->model('photo_model''photo_model'true);
    }

    function 
index()
    {
        
// XAJAX
        
$this->load->library('xajax');
        
$this->xajax->registerFunction(array("next_random_photos", &$this"next_random_photos"));
        
$this->xajax->processRequests();
        
$data['xajax_js'] = $this->xajax->getJavascript(null'/js/xajax.js');

        
// load views
        
$data['head_title'] = WEBSITE_NAME " - Examples: Random Photos";
        
$data['highlighted_controller'] = highlight_file("randomphotos.php"TRUE);

        
// get random photos
        
$data['div_random_photos'] = $this->_get_random_photos();

        
// load example MVC
        
$example = new example('randomphotos'true);
        
$data['highlighted_model'] = $example->model;
        
$data['highlighted_view'] = $example->view;

        
$data['subheader'] = $this->load->view('examples_subheader'$datatrue);
        
$data['sidebar'] = $this->load->view('examples_sidebar'$datatrue);
        
$data['body_content'] = $this->load->view('randomphotos_tpl'$datatrue);        
        
$this->load->view('site_layout'$data);
    }

    function 
next_random_photos()
    {
        
$objResponse = new xajaxResponse();

        
$result $this->_get_random_photos();

        
// slower motion
        
usleep(300000);

        
$objResponse->addAssign("div_random_photos""innerHTML"$result);
        return 
$objResponse;
    }

    function 
_get_random_photos()
    {
        
$query $this->photo_model->get_random_photos($this->NUM_PHOTOS);

        
$output "<table border='0' cellpadding='3' cellspacing='0'><tr>";

        if (
$query->num_rows() > 0)
        {
            foreach (
$query->result() as $row)
            {
                
$output .= "<td><img border='0' src='" base_url() . "photos/" .$row->filename "'></td>";
            }
        }
        
        
$output .= "</tr></table>";

        return (
$output);
    }
}
?>

View: randomphotos_tpl.php

<script type="text/javascript">
<!--
    
xajax.loadingFunction = function(){xajax.$('loading_message').style.display='block';};
    
xajax.doneLoadingFunction = function(){xajax.$('loading_message').style.display='none';};
// -->
</script>
<div id="loading_message" class="loadingMessage">Loading ...</div>
<h1 id="introduction">Random Photos</h1>

<p>
This page demonstrates how to select random photos from database and display them with <?=XAJAX_LINK_POPUP?>. These photos were from my photo gallery - <a href="http://www.pbase.com/alextsung/minter_gardens&page=all" target="_new">Minter Gardens</a>.
</p>

<div id="div_random_photos"><?=$div_random_photos?></div>
<br/>
<input type="button" id="btn_next_photos" name="btn_next_photos" value="Next <?=$this->NUM_PHOTOS?> Random Photos" onclick="xajax_next_random_photos()"/>

<h1 id="introduction">Model: photo_model.php</h1>
<p>
<?=$highlighted_model?>
</p>

<h1 id="introduction">Controller: randomphotos.php</h1>
<p>
<?=$highlighted_controller?>
</p>

<h1 id="introduction">View: randomphotos_tpl.php</h1>
<p>
<?=$highlighted_view?>
</p>