CodeIgniter-Slug-Library
CodeIgniter-Slug-Library copied to clipboard
Generate friendly uri strings
CodeIgniter Slug Library
This library is designed to help you generate friendly uri strings for your content stored in the database.
For example if you have a blog post table then you would want uri strings such as: mysite.com/post/my-post-title
The problem with this is each post needs a unique uri string and this library is designed to handle that for you.
So if you add another with the same uri or title it would convert it to: mysite.com/post/my-post-title-2
Requirements
- CodeIgniter
- Some form of database supported by active record
Usage
Here is an example setup:
Please note that these fields map to your database table fields.
$config = array(
'field' => 'uri',
'title' => 'title',
'table' => 'mytable',
'id' => 'id',
);
$this->load->library('slug', $config);
Adding and Editing Records:
When creating a uri for adding to the database you will use something like this:
$data = array(
'title' => 'My Test',
);
$data['uri'] = $this->slug->create_uri($data);
$this->db->insert('mytable, $data);
Then for editing: (Notice the create_uri uses the second param to compare against other fields).
$id = 1;
$data = array(
'title' => 'My Test',
);
$data['uri'] = $this->slug->create_uri($data, $id);
$this->db->where('id', $id);
$this->db->update('mytable', $data);
Methods
__construct($config = array())
Setup the library with your config options.
$config = array(
'table' => 'mytable',
'id' => 'id',
'field' => 'uri',
'title' => 'title',
'replacement' => 'dash' // Either dash or underscore
);
$this->load->library('slug', $config);
set_config($config = array())
Pass an array of config vars that will override setup
Paramaters
- $config - (required) - Array of config options
$config = array(
'table' => 'mytable',
'id' => 'id',
'field' => 'uri',
'title' => 'title',
'replacement' => 'dash' // Either dash or underscore
);
$this->slug->set_config($config);
create_uri($data = '', $id = '')
Creates the actual uri string and in the background validates against the table to ensure it is unique.
Paramaters
- $data - (requied) Array of data
- $id - (optional) Id of current record
$data = array(
'title' => 'My Test',
);
$this->slug->create_uri($data)
$data = array(
'title' => 'My Test',
);
$this->slug->create_uri($data, 1)
This returns a string of the new uri.