1.Контроллер Articles
class Articles extends CI_Controller {
function index()
{
$this->load->library('pagination');
$config['base_url'] = base_url().'index.php/articles/index/';
$config['total_rows'] = $this->db->count_all('articles');
$config['per_page'] = '2';
$config['full_tag_open'] = "<div class='pagination'>";
$config['full_tag_close'] = '</div>';
$config['first_link'] = 'Первая';
$config['last_link'] = 'Последняя';
$config['prev_tag_open'] = "<div class='prev_1'>";
$config['prev_tag_close'] = '</div>';
$config['next_tag_open'] = "<div class='prev_4'>";
$config['next_tag_close'] = '</div>';
$config['last_tag_open'] = "<div class='prev_2'>";
$config['last_tag_close'] = '</div>';
$config['first_tag_open'] = "<div class='prev_3'>";
$config['first_tag_close'] = '</div>';
$config['num_tag_open'] = "<div class='prev_5'>";
$config['num_tag_close'] = '</div>';
$config['cur_tag_open'] = "<div class='prev_6'>";
$config['cur_tag_close'] = '</div>';
$this->pagination->initialize($config);
$this->load->model('articles_model');
$this->load->helper('text');
$data['pages'] = $this->pages_model->get_pages();
$data['pages_dop'] = $this->pages_model->get_pages_dop();
$data['pages_dop2'] = $this->pages_model->get_pages_dop2();
$data['pages_info'] = $this->pages_model->get_pages_info('articles');
$data['categories'] = $this->pages_model->get_cat();
$data['articles'] = $this->articles_model->get_all_articles($config['per_page'],$this->uri->segment(3));
$data['latest_articles'] = $this->pages_model->get_latest_articles();
$data['user'] = $this->session->userdata('user');
$data['user_info']['status'] = $this->session->userdata('status');
$data['user_info']['avatar'] = $this->session->userdata('avatar');
$name = 'articles';
$this->template->page_view($data,$name);
}
function cat($cat)
{
$this->load->library('pagination');
$this->load->model('articles_model');
$this->load->helper('text');
$data['pages'] = $this->pages_model->get_pages();
$data['pages_dop'] = $this->pages_model->get_pages_dop();
$data['pages_dop2'] = $this->pages_model->get_pages_dop2();
$data['pages_info'] = $this->pages_model->get_pages_info('articles');
$data['categories'] = $this->pages_model->get_cat();
$data['articles'] = $this->articles_model->get_cat_articles($cat);
$data['latest_articles'] = $this->pages_model->get_latest_articles();
$data['user'] = $this->session->userdata('user');
$data['user_info']['status'] = $this->session->userdata('status');
$data['user_info']['avatar'] = $this->session->userdata('avatar');
$name = 'articles';
$this->template->page_view($data,$name);
}
}
2.Модель Article
class Articles_model extends CI_Model {
function get_all_articles($num, $offset)
{
$this->db->order_by('id','desc');
$query = $this->db->get('articles',$num, $offset);
return $query->result_array();
}
function get_cat_articles($cat)
{
$this->db->order_by('id','desc');
$this->db->where('category',$cat);
$query = $this->db->get('articles');
return $query->result_array();
}
function get_article($title)
{
$this->db->where('title_en',$title);
$query = $this->db->get('articles');
return $query->row_array();
}
function add_comment($add)
{
$this->db->insert('comments',$add);
}
function get_comments($title)
{
$this->db->order_by('id','desc');
$this->db->where('note_id',$title);
$query = $this->db->get('comments');
return $query->result_array();
}
}
3. Вид articles_view
<div class="middle">
<!--Контейнер-->
<div class="container">
<main class="content"><!--Контент-->
<?php foreach($articles as $item):?>
<div class="articles">
<div class="view_stat"><?=$item['views'];?></div><!--Колличество просмотров-->
<div class="zag_stat"><a href="<?=base_url();?>index.php/article/<?=$item['title_en'];?>"><?=$item['title'];?></a></div>
<div class="author_stat"><div><?=$item['author'];?></div></div>
<div class="date_stat"><div><?=$item['date'];?></div></div>
<div class="img_stat"><img src="<?=base_url();?>img/mini_img/<?=$item['mini_img'];?>" alt="<?=$item['title'];?>"/></div>
<?$string = $item['text'];?>
<div class="text_stat"><p><?=$string = character_limiter($string,780);?><span class="chitat"><a href="<?=base_url();?>index.php/article/<?=$item['title_en'];?>">Читать далее→</a></span></p></div>
<div class="both"></div>
</div>
<?php endforeach;?>
<div class="both"></div>
<div class="pag"><?php echo $this->pagination->create_links();?></div>
</main>
</div>
Подскажите логику скрипта.В URL передаётся title_en каждой статьи из поля в таблице.
Что-то вроде того-в контроллере должно быть событие при нажатии на ссылку(счётчик), в модели происходит обновление строки views, в виде вывод переменной(уже есть)?
Я не ошибаюсь?
п.с. сильно не серчайте -я новичок)первый динамический сайт...
Проделал следующее
-В виде добавил селектор(id) для ссылки при клике на которую запуститься функция из модели;
-В модели добавил функцию которая добавляет клик к значению в базе;
-В контроллере создал условие что при клике на ссылку с селектором add_v происходит запуск функции из модели;
Вот код:
1.Вид
<a id="add_v" href="<?=base_url();?>index.php/article/<?=$item['title_en'];?>">Читать далее→</a></span></p></div>
2.Модель
function add_views($add_v)
{
$click = $this->db->where('views',$add_v);
$new_click = $click + 1;
$this->db->insert('articles',$new_click);
}
3.Контроллер
if($this->input->post('add_v'))
{
$this->articles_model->add_views($add_v);
}
Подскажите что не так...сайт пропадает)Профи хэлп
Структура таблицы базы