0byt3m1n1
Path:
/
data
/
17
/
1
/
18
/
11
/
1670011
/
user
/
1801231
/
htdocs
/
marketting
/
system
/
application
/
controllers
/
[
Home
]
File: content.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); /* | ------------------------------------------------------------------------- | COPYRIGHT NOTICE | Copyright 2008 JROX Technologies, Inc. All Rights Reserved. | ------------------------------------------------------------------------- | This script may be only used and modified in accordance to the license | agreement attached (license.txt) except where expressly noted within | commented areas of the code body. This copyright notice and the | comments above and below must remain intact at all times. By using this | code you agree to indemnify JROX Technologies, Inc, its corporate agents | and affiliates from any liability that might arise from its use. | | Selling the code for this program without prior written consent is | expressly forbidden and in violation of Domestic and International | copyright laws. | | ------------------------------------------------------------------------- | FILENAME - content.php | ------------------------------------------------------------------------- | | This controller file is used to generate content for articles | */ class Content extends Public_Controller { function __construct() { parent::Public_Controller(); //load css body style $this->config->set_item('css_body', 'jroxContent'); //load required models $this->load->model('init_model', 'init'); $this->load->model('content_model', 'content'); //create pagination links $this->config->set_item('uri', $this->config->item('base_folder_path') . '/' . $this->uri->segment(1)); } // ------------------------------------------------------------------------ function index() { //redirect to default view redirect(CONTENT_ROUTE . '/view'); } // ------------------------------------------------------------------------ function view() { //set data array $data = $this->security_model->_load_config('public'); //initialize site with required db config $sdata = $this->init->_initialize(__CLASS__, __FUNCTION__); //set up the languages array $data['languages'] = $sdata['languages']; //set all text foreach ($sdata['text'] as $key => $val) { $data[$key] = $val; } //set referral info foreach ($sdata['aff_cfg'] as $key => $val) { $data[$key] = $val; } $data['offset'] = $this->uri->segment(5, 0); $data['sort_column'] = 'date_published'; $data['sort_order'] = $this->uri->segment(6, 'DESC'); $data['next_sort_order'] = $this->uri->segment(6) == 'DESC' ? 'ASC' : 'DESC'; $data['page_title'] = $data['layout_design_header_tag_line'] . ' - ' . $this->lang->line('content'); $data['meta_keywords'] = $data['sts_store_default_keywords']; $data['meta_description'] = $data['sts_store_description']; $data['lang_view_comments'] = $this->lang->line('view_comments'); //get content_articles switch ($this->uri->segment(3)) { case 'search': //load convert library $this->load->library('convert'); $category_type = 'custom'; $search_term = $this->uri->segment(4); $uri = $data['uri'] . '/view/search/' . $search_term; $data['query_string'] = base64_decode($this->convert->HexToAscii($search_term)); $sdata = $this->content->_get_site_articles($data['sts_content_articles_per_page'], $data['offset'], $data['sort_column'], $data['sort_order'], 'content_body', $data['query_string'], $category_type, true); break; case 'tos': $category_type = 'public'; $uri = $data['uri'] . '/view/tos/3'; $sdata = $this->content->_get_site_articles($data['sts_content_articles_per_page'], $data['offset'], $data['sort_column'], $data['sort_order'], 'category_id', '3', $category_type); break; case 'privacy_policy': $category_type = 'public'; $uri = $data['uri'] . '/view/tos/2'; $sdata = $this->content->_get_site_articles($data['sts_content_articles_per_page'], $data['offset'], $data['sort_column'], $data['sort_order'], 'category_id', '2', $category_type); break; case 'about_us': $category_type = 'public'; $uri = $data['uri'] . '/view/tos/4'; $sdata = $this->content->_get_site_articles($data['sts_content_articles_per_page'], $data['offset'], $data['sort_column'], $data['sort_order'], 'category_id', '4', $category_type); break; default: $category_type = 'custom'; $category_id = (int)$this->uri->segment(4, 1); $uri = $data['uri'] . '/view/category_id/' . $category_id; $sdata = $this->content->_get_site_articles($data['sts_content_articles_per_page'], $data['offset'], $data['sort_column'], $data['sort_order'], 'category_id', $category_id, $category_type); break; } if (empty($sdata['rows'])) { $data['articles'] = array(); $data['pagination_rows'] = ''; $data['no_articles'] = '1'; $data['lang_no_articles_found'] = $this->lang->line('no_articles_found'); } else { //add the data to the array $data['articles'] = $sdata['rows']; $data['no_articles'] = '0'; $data['lang_read_more'] = $this->lang->line('read_more'); //set pagination $pagination = $this->db_validation_model->_set_pagination($uri, 'content_articles', $data['sts_content_articles_per_page'], 5, $data['sort_order'], $data['sort_column'], $sdata['total_rows'], '', '', 'public'); $data['pagination_rows'] = $pagination['rows']; $data['num_pages'] = $pagination['num_pages']; $data['no_pages'] = $data['num_pages'] > 1 ? 1 : 0; } if ($category_type == 'custom') { $this->parser->_JROX_load_view('tpl_content', 'content_pages', $data); } else { $this->parser->_JROX_load_view('tpl_public', 'content_pages', $data); } } // ------------------------------------------------------------------------ function article() { //set data array $data = $this->security_model->_load_config('public'); //initialize site with required db config $sdata = $this->init->_initialize(__CLASS__, __FUNCTION__); //set up the languages array $data['languages'] = $sdata['languages']; //set all text foreach ($sdata['text'] as $key => $val) { $data[$key] = $val; } //set referral info foreach ($sdata['aff_cfg'] as $key => $val) { $data[$key] = $val; } //set the category ID $data['content_title_url'] = $this->uri->segment(4); $data['article_id'] = (int)$this->uri->segment(3, 1); $data['lang_login_to_comment'] = $this->lang->line('login_to_comment'); $data['lang_click_to_register'] = $this->lang->line('click_to_register'); $data['lang_click_to_login'] = $this->lang->line('click_to_login'); $data['lang_post_comment'] = $this->lang->line('post_comment'); $data['lang_comments'] = $this->lang->line('comments'); $data['show_message'] = ''; if ($this->_check_comment() == false) { //reload add banner form if (!empty($_POST)) { $data['show_message'] = '<div class="errorMessage">' . $this->validation->error_string . '</div>'; $data['article_comment'] = $this->validation->article_comment; $this->security_model->_auto_block_ip('block', $this->input->ip_address()); } else { $data['article_comment'] = ''; } //check if this is a success redirect if ($this->session->flashdata('user_success_comment')) { $msg = $this->config->item('sts_content_require_comment_moderation') == 1 ? $this->lang->line('comment_waiting_moderation') : $this->lang->line('comment_posted_successfully'); $data['show_message'] = '<div class="successMessage">' . $msg . '</div>'; $this->security_model->_auto_block_ip('remove', $this->input->ip_address()); } //get the article $row = $this->content->_get_article_details($data['article_id']); $this->content->_check_perms('public', $row['category_id']); //set the meta tags $data['page_title'] = $data['layout_design_header_tag_line'] . ' - ' . $row['content_title']; $data['meta_keywords'] = $data['sts_store_default_keywords'] . ', ' . $row['content_tags']; $data['meta_description'] = $row['content_description']; $data['enable_fb_tweetmeme'] = ''; if ($this->config->item('sts_content_enable_tweetmeme_code') == 1 || $this->config->item('sts_content_enable_facebook_share') == 1) { $data['url'] = _format_url(CONTENT_ROUTE .'/article', $row['article_id'], $row['content_title']); $data['url_encoded'] = urlencode(_format_url(CONTENT_ROUTE .'/article', $row['article_id'], $row['content_title'])); $data['enable_fb_tweetmeme'] = '<div style="float:left; padding:1em;">'; if ($this->config->item('sts_content_enable_tweetmeme_code') == 1) { $data['enable_fb_tweetmeme'] .= '<iframe scrolling="no" height="61" frameborder="0" width="50" src="http://api.tweetmeme.com/widget.js?url=' . $data['url'] . '"></iframe>'; } if ($this->config->item('sts_content_enable_facebook_share') == 1) { $data['enable_fb_tweetmeme'] .= ' <a href="javascript:void(window.open(\'http://www.facebook.com/share.php?u=' . $data['url_encoded'] . '\', \'popup\', \'width=850,height=500, location=no, menubar=no, status=no,toolbar=no, scrollbars=yes, resizable=yes\'))"><img src="' . _jrox_public_url() . '/images/misc/fb.png" /></a>'; } $data['enable_fb_tweetmeme'] .= '</div>'; } //if there is no data redirect if (empty($row)) { redirect_301(CONTENT_ROUTE); } else { //format data for parsing foreach ($row as $k => $v) { $data[$k] = $v; } //check if comment option is enabled $data['enable_comments'] = '0'; if ($this->config->item('sts_content_enable_comments') == 1) { //check disqus first //load disqus code if ($this->config->item('sts_content_enable_disqus_form')) { $data['enable_comments'] = '2'; $data['disqus_code'] = base64_decode($this->config->item('sts_content_enable_disqus_form')); } elseif ($this->session->userdata('userid') && $data['category_type'] == 'custom') { $data['enable_comments'] = '1'; $this->load->helper('captcha'); $captcha = _generate_captcha(); $data = array_merge($data, $captcha); } else { $data['enable_comments'] = '3'; } } } if ($data['category_type'] == 'custom') { if ($data['content_type'] == '1') { $this->parser->_JROX_load_view('tpl_blog_details', 'content_pages', $data); } elseif ($data['content_type'] == '2') { $this->parser->_JROX_load_view('tpl_content_details', 'standard_pages', $data); } elseif ($data['content_type'] == '3') { $this->parser->_JROX_load_view('tpl_content_details', 'advanced_pages', $data); } } else { $this->parser->_JROX_load_view('tpl_public_details', 'content_pages', $data); } } else { //add the comment and notify admin $comment_id = $this->content->_add_article_comment(); if (!empty($comment_id)) { //send notifications out to admins $admins = $this->db_validation_model->_get_details('admin_users', '*', 'alert_admin_article_comment', '1'); if (!empty($admins)) { $this->load->model('emailing_model'); foreach ($admins as $k => $v) { $v['article_comment'] = $this->validation->article_comment; $v['article_id'] = $data['article_id']; $v['article_url'] = base_url(). CONTENT_ROUTE . '/article/' . $data['article_id'] . '/' . $data['content_title_url']; if ($this->config->item('sts_content_require_comment_moderation') == 1) { $template = 'admin_alert_comment_moderation_template'; $comment_hash = 'jroxComments'; } else { $template = 'admin_alert_new_content_comment_template'; $comment_hash = 'jroxContentCommentID_' . $comment_id; } if ($this->emailing_model->_send_template_email('admin', $v, $template, true)) { //log success log_message('info', 'Admin Alert on Content Comment Sent to ' . $v['primary_email']); } else { show_error($this->lang->line('could_not_send_email') . '. ' . $this->lang->line('check_email_settings')); log_message('error', 'Could not send email to ' . $v['primary_email'] . '. Check email settings.'); } } } $this->session->set_flashdata('user_success_comment', true); redirect(CONTENT_ROUTE .'/article/' . $this->uri->segment(3) . '/' . $this->uri->segment(4) . '/#'.$comment_hash); } } } // ------------------------------------------------------------------------ /* | ------------------------------------------------------------------------- | supporting functions - these are used to support the main functions above | ------------------------------------------------------------------------- */ // ------------------------------------------------------------------------ function _check_comment() { $rules['article_comment'] = 'trim|required|min_length[2]'; if ($this->config->item('sts_sec_enable_captcha') == 1) { $rules['jroxVerifyField'] = 'trim|required|callback__check_captcha'; } $this->validation->set_rules($rules); //repopulate form $fields['article_comment'] = $this->lang->line('comment'); $fields['jroxVerifyField'] = $this->lang->line('verification_code'); $this->validation->set_fields($fields); if ($this->validation->run() == FALSE) { return false; } return true; } // ------------------------------------------------------------------------ function _check_captcha() { if ($this->session->userdata('user_captcha_set') != $this->validation->jroxVerifyField) { $this->validation->set_message('_check_captcha', $this->lang->line('invalid_verification_code')); return false; } } } ?>