SitePoint Sponsor

User Tag List

Results 1 to 2 of 2
  1. #1
    SitePoint Enthusiast
    Join Date
    Mar 2011
    Posts
    52
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Where am I losing my array?

    I am using a news module in Bonfire, which is an extension of the Code Igniter framework... It seems to be working fine at http://brolu.net/news, but when I try to post the same array to http://brolu.net/ it's just printing "Array".

    Controller:
    HTML Code:
    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
    
    /**
     * Bonfire
     *
     * An open source project to allow developers get a jumpstart their development of CodeIgniter applications
     *
     * @package   Bonfire
     * @author    Bonfire Dev Team
     * @copyright Copyright (c) 2011 - 2012, Bonfire Dev Team
     * @license   http://guides.cibonfire.com/license.html
     * @link      http://cibonfire.com
     * @since     Version 1.0
     * @filesource
     */
    
    // ------------------------------------------------------------------------
    
    /**
     * Home controller
     *
     * The base controller which displays the homepage of the Bonfire site.
     *
     * @package    Bonfire
     * @subpackage Controllers
     * @category   Controllers
     * @author     Bonfire Dev Team
     * @link       http://guides.cibonfire.com/helpers/file_helpers.html
     *
     */
    class Home extends Front_Controller
    {
    
    
    	/**
    	 * Displays the homepage of the Bonfire app
    	 *
    	 * @return void
    	 */
    	public function index()
    	{	
    		$count = 7;
    		$startIndex = 0;
    		modules::run('news/get_articles',$count,$startIndex);		
    		$data['articles'] = modules::run('news/get_article_list',$count,$startIndex);
    		Template::set('news_list',$this->load->view('news/news_list',$data, true));
    		Template::render();
    	}//end index()
    
    	//--------------------------------------------------------------------
    
    
    }//end class
    Model:
    HTML Code:
    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
    /*
    	Class: News_model
    
    	The central way to access and perform CRUD on news articles.
    */
    class News_model extends BF_Model {
    
    	protected $table		= 'news_articles';
    	protected $soft_deletes	= true;
    	protected $date_format	= 'int';
    	protected $set_modified = true;
    	protected $set_created 	= true;
    
    	public function __construct()
    	{
    		parent::__construct();
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: insert()
    
    		Creates a new news article in the database.
    
    		Required parameters sent in the $data array:
    			- title
    			- body
    
    		If no _category_id_ is passed in the $data array, it
    		will assign the default category. If no _status_id_ is passed in the $data array, it
    		will assign the default status.
    
    		Parameters:
    			$data	- An array of news article information.
    
    		Returns:
    			$id	- The ID of the new news article.
    	*/
    	public function insert($data=array(), $auth = NULL)
    	{
    		if (!$this->_function_check(false, $data))
    		{
    			return false;
    		}
    
    		if (!isset($data['title']) || empty($data['title']))
    		{
    			$this->error = 'No Title present.';
    			return false;
    		}
    
    		if (!isset($data['body']) || empty($data['body']))
    		{
    			$this->error = 'No Body given.';
    			return false;
    		}
    
    		//Removed because $data['date'] is current a timestamp
        	//$data['date'] = strtotime($data['date']);
    
    		$data['attachment'] = (isset($data['attachment']) && !empty($data['attachment']) ? $data['attachment'] : '');
    
    		$data['image_align'] = (isset($data['image_align']) && !empty($data['image_align']) ? $data['image_align'] : '');
    
    		$data['image_caption'] = (isset($data['image_caption']) && !empty($data['image_caption']) ? $data['image_caption'] : '');
    
    		 //Removed because $data['date_published'] is current a timestamp
    		//$data['date_published'] = (isset($data['date_published']) && !empty($data['date_published']) ? strtotime($data['date_published']) : $data['date']);
    		if(!is_int($data['date_published']) && strlen($data['date_published']) == 10){
    			$data['date_published'] = $data['date'];
    		}
    
    		$data['author'] = $data['created_by'] = $data['modified_by'] = (isset($data['author']) && !empty($data['author'])) ? $data['author'] : (($auth != NULL) ? $auth->user_id() : 1);
    
    		// What's the default category?
    		$data['category_id'] = (!isset($data['category_id']))? 1 : $data['category_id'];
    
    		// What's the default status?
    		$data['status_id'] = (!isset($data['status_id']))? 1 : $data['status_id'];
    
    		$id = parent::insert($data);
    
    		Events::trigger('after_create_news', $id);
    
    		return $id;
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: update()
    
    		Updates an existing news article.alt combo if both password and pass_confirm are passed in.
    			- store the country code
    
    		Parameters:
    			$id		- An INT with the news article's ID.
    			$data	- An array of key/value pairs to update for the news article.
    
    		Returns:
    			true/false
    	*/
    	public function update($id=null, $data=array())
    	{
    		if ($id)
    		{
    			$trigger_data = array('article_id'=>$id, 'data'=>$data);
    			Events::trigger('before_news_update', $trigger_data);
    		}
    
    		$return = parent::update($id, $data);
    
    		if ($return)
    		{
    			$trigger_data = array('user_id'=>$id, 'data'=>$data);
    			Events::trigger('after_news_update', $trigger_data);
    		}
    
    		return $return;
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: find()
    
    		Finds an individual news article record. Also returns role information for
    		the news article.
    
    		Parameters:
    			$id	- An INT with the news article's ID.
    
    		Returns:
    			An object with the news article's information.
    	*/
    	public function find($id=null)
    	{
    		if (empty($this->selects))
    		{
    			$this->select($this->table .'.*, category');
    		}
    
    		$this->db->join('news_categories', 'news_categories.id = news_articles.category_id', 'left');
    
    		return parent::find($id);
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: find_all()
    
    		Returns all news article records, and their associated category information.
    
    		Parameters:
    			$show_deleted	- If false, will only return non-deleted news articles. If true, will
    				return both deleted and non-deleted news articles.
    
    		Returns:
    			An array of objects with each news article's information.
    	*/
    	public function find_all($show_deleted=false)
    	{
    		if (empty($this->selects))
    		{
    			$this->select($this->table .'.*, category');
    		}
    
    		if ($show_deleted === false)
    		{
    			$this->db->where('news_articles.deleted', 0);
    		}
    
    		$this->db->join('news_categories', 'news_categories.id = news_articles.category_id', 'left');
    		$this->db->join('news_status', 'news_status.id = news_articles.status_id', 'left');
    
    		return parent::find_all();
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: find_by()
    
    		Locates a single news article based on a field/value match, with their category information.
    
    		Parameters:
    			$field	- A string with the field to match.
    			$value	- A string with the value to search for.
    
    		Returns:
    			An object with the user's info, or false on failure.
    	*/
    	public function find_by($field=null, $value=null)
    	{
    		$this->db->join('news_categories', 'news_categories.id = news_articles.category_id', 'left');
    		$this->db->join('news_status', 'news_status.id = news_articles.status_id', 'left');
    
    		if (empty($this->selects))
    		{
    			$this->select($this->table .'.*, category');
    		}
    
    		return parent::find_by($field, $value);
    	}
    
    	//--------------------------------------------------------------------
    	public function get_articles( $published = true, $limit = -1, $offset = 0)
    	{
    		$articles = null;
    
    		if ($limit != -1 && $offset == 0)
    		{
    			$this->db->limit($limit);
    		} else if ($limit != -1 && $offset > 0)
    		{
    			$this->db->limit($offset,$limit);
    		}
    		$this->db->order_by('date', 'desc');
    
    		if ($published === true)
    		{
    			$this->db->where('status_id',3);
    		}
    
    		$query = $this->db->get($this->table);
    		if ($query->num_rows() > 0)
    		{
    			$articles = $query->result();
    		}
    
    		//$articles = $this->news_model->find_all_by('status_id',3);
    		//print ($this->db->last_query()."<br />");
    		return $articles;
    	}
    
    	//--------------------------------------------------------------------
    
    	public function get_article($article_id = false, $published = true)
    	{
    
    		$article = false;
    		if ($article_id === false)
    		{
    			$this->errors = "No article ID was received.";
    			return false;
    		}
    
    		$this->db->where('id',$article_id);
    		if ( $published === true )
    		{
    			$this->db->where('status_id',3);
    		}
    
    		$query = $this->db->get($this->table);
    
    		if ($query->num_rows() > 0)
    		{
    			$article = $query->row();
    		}
    
    		$query->free_result();
    
    		//$articles = $this->news_model->find_all_by('status_id',3);
    		//print ($this->db->last_query()."<br />");
    		return $article;
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: count_by_categories()
    
    		Returns the number of news articles that belong to each role.
    
    		Returns:
    			An array of objects representing the number in each role.
    	*/
    	public function count_by_categories()
    	{
    		$prefix = $this->db->dbprefix;
    
    		$sql = "SELECT category, COUNT(1) as count FROM {$prefix}news_articles, {$prefix}news_categories
    						WHERE {$prefix}news_articles.category_id = {$prefix}news_categories.id GROUP BY {$prefix}news_articles.category_id";
    
    		$query = $this->db->query($sql);
    
    		if ($query->num_rows())
    		{
    			return $query->result();
    		}
    
    		return false;
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: count_all()
    
    		Counts all news articles in the system.
    
    		Parameters:
    			$get_deleted	- If false, will only return active news_articles. If true,
    				will return both deleted and active news_articles.
    
    		Returns:
    			An INT with the number of news_articles found.
    	*/
    	public function count_all($get_deleted = false)
    	{
    		if ($get_deleted)
    		{
    			// Get only the deleted users
    			$this->db->where('news_articles.deleted !=', 0);
    		}
    		else
    		{
    			$this->db->where('news_articles.deleted', 0);
    		}
    
    		return $this->db->count_all_results('news_articles');
    	}
    
    	//--------------------------------------------------------------------
    
    	public function get_default_category()
    	{
    
    		$query = $this->db->select('id')->where('default',1)->get('news_categories');
    		if ($query->num_rows() > 0)
    		{
    			return $query->row()->id;
    		} else {
    			return 1;
    		}
    
    	}
    	//--------------------------------------------------------------------
    
    	public function get_news_categories()
    	{
    		$query = $this->db->select('id, category')->get('news_categories');
    
    		if ($query->num_rows() > 0)
    		{
    			return $query->result();
    		} else {
    			return null;
    		}
    	}
    
    	//--------------------------------------------------------------------
    
    	public function get_news_categories_select ( )
    	{
    		$table          = $this->table;
    		$this->table	= 'news_categories';
    
    		$options = $this->format_dropdown('id', 'category');
    
    		$this->table    = $table;
    		unset ( $table );
    
    		return $options;
    	}
    
    	//--------------------------------------------------------------------
    
    	public function get_default_status()
    	{
    		$query = $this->db->select('id')->where('default',1)->get('news_status');
    		if ( $query->num_rows() > 0 )
    		{
    			return $query->row()->id;
    		} else {
    			return 1;
    		}
    
    	}
    
    	//--------------------------------------------------------------------
    
    	public function get_news_statuses_select ( )
    	{
    		$query = $this->db->select('id, status')->get('news_status');
    
    		if ( $query->num_rows() <= 0 )
    			return '';
    
    		$option = array();
    
    		foreach ($query->result() as $row)
    		{
    			$row_id          = (int) $row->id;
    			$option[$row_id] = $row->status;
    		}
    
    		$query->free_result();
    
    		return $option;
    	}
    
    	//--------------------------------------------------------------------
    
    	public function get_news_statuses()
    	{
    		$query = $this->db->select('id, status')->get('news_status');
    
    		if ($query->num_rows() > 0)
    		{
    			return $query->result();
    		} else {
    			return null;
    		}
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: count_all()
    
    		Counts all news articles in the system.
    
    		Parameters:
    			$get_deleted	- If false, will only return active news_articles. If true,
    				will return both deleted and active news_articles.
    
    		Returns:
    			An INT with the number of news_articles found.
    	*/
    	public function count_all_by_field($field = false, $value = false, $get_deleted = false)
    	{
    
    		$this->db->where($field,$value);
    		if ($get_deleted)
    		{
    			// Get only the deleted users
    			$this->db->where('news_articles.deleted !=', 0);
    		}
    		else
    		{
    			$this->db->where('news_articles.deleted', 0);
    		}
    
    		return $this->db->count_all_results('news_articles');
    	}
    
    	//--------------------------------------------------------------------
    
    	/*
    		Method: delete()
    
    		Performs a standard delete, but also allows for purging of a record.
    
    		Parameters:
    			$id		- An INT with the record ID to delete.
    			$purge	- If false, will perform a soft-delete. If true, will permenantly
    				delete the record.
    
    		Returns:
    			true/false
    	*/
    	public function delete($id=0, $purge=false)
    	{
    		if ($purge === true)
    		{
    			// temporarily set the soft_deletes to true.
    			$this->soft_deletes = false;
    		}
    		return parent::delete($id);
    	}
    
    	//--------------------------------------------------------------------
    
    }
    
    // End User_model class
    and Finally the view:
    HTML Code:
    <div class="container">
    
    	<div class="hero-unit">
    		<h1>Welcome to Bonfire.</h1>
    
    		<p>Kickstart your CodeIgniter applications.</p>
    	</div>
    
    <?php if (isset($articles)) :
        echo($articles);
    endif;
    ?>
    
    <?php if (isset($current_user->email)) : ?>
    
    	<div class="alert alert-info" style="text-align: center">
    		<?php echo anchor(SITE_AREA, "Dive into Bonfire's Springboard"); ?>
    	</div>
    
    <?php else :?>
    
    	<p style="text-align: center">
    		<?php echo anchor('/login', '<i class="icon-lock icon-white"></i> '. lang('bf_action_login'), ' class="btn btn-primary btn-large" '); ?>
    	</p>
    
    <?php endif;?>
    
    
    
    </div>
    Any help would be greatly appreciated... Sorry for posting all of the model, but I thought it best to err on the side of overkill.

  2. #2
    SitePoint Enthusiast
    Join Date
    Mar 2011
    Posts
    52
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Found it... it wasn't even in the code at all, it was in the directory structure. Starting with where it was looking for the "views" and then a few language and helper files.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •