Jump to content
Sign in to follow this  
Osya

Вывод Новостей в Подвале

Recommended Posts

Добрый вечер!

 

ocStore 1.5.4.1

модуль новостей для 1.5.5 jотсюда: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=7058 , установка прошла успешно, жалоб нет

 

Теперь нужно вывести новости не отдельным модулем, а в подвале сайта.

Можно ли сделать это путем копирования кода из модуля в соответствующее место в подвале, например:

<div class="column"><ul><li><a href="http://sitename/index.php?route=information/news"><h3><?php echo $heading_title; ?></a></h3></li>
		<li><?php if ($news) { ?>
  <div class="box-content">
    <?php foreach ($news as $news_story) { ?>
      <div class="box-news">
        <h4><?php echo $news_story['title']; ?></h4>
        <?php echo $news_story['description']; ?> <a href="<?php echo $news_story['href']; ?>"><?php echo $text_more; ?></a></p>
        <div><b><?php echo $text_posted; ?></b> <?php echo $news_story['text_posted']; ?></div>
      </div>
    <?php } ?>
  </div>
<?php } ?></li></ul>

 

Если да, то как при этом отредактировать файл контроллера?

Точнее, как добавить в контроллер футера этот код, чтобы всё продолжало работать? Ключевые требования - ограничение к-ва новостей в футере и ограничение по количеству знаков в кратком описании новости.

 

controller/module/news.php:

<?php
class ControllerModuleNews extends Controller {

	private $_name = 'news';

	protected function index($setting) {
		static $module = 0;
	
		$this->language->load('module/' . $this->_name);
	
      	$this->data['heading_title'] = $this->language->get('heading_title');
	
		$this->load->model('localisation/language');
	
		$languages = $this->model_localisation_language->getLanguages();
	
		$this->data['customtitle'] = $this->config->get($this->_name . '_customtitle' . $this->config->get('config_language_id'));
		$this->data['header'] = $this->config->get($this->_name . '_header');
	
		if (!$this->data['customtitle']) { $this->data['customtitle'] = $this->data['heading_title']; } 
		if (!$this->data['header']) { $this->data['customtitle'] = ''; }
	
		$this->data['icon'] = $this->config->get($this->_name . '_icon');
		$this->data['box'] = $this->config->get($this->_name . '_box');
	
		$this->document->addStyle('catalog/view/theme/default/stylesheet/news.css');
	
		$this->load->model('catalog/news');
	
		$this->data['text_more'] = $this->language->get('text_more');
		$this->data['text_posted'] = $this->language->get('text_posted');
	
		$this->data['show_headline'] = $this->config->get($this->_name . '_headline_module');
	
		$this->data['news_count'] = $this->model_catalog_news->getTotalNews();
		
		$this->data['news_limit'] = $setting['limit'];
	
		if ($this->data['news_count'] > $this->data['news_limit']) { $this->data['showbutton'] = true; } else { $this->data['showbutton'] = false; }
	
		$this->data['buttonlist'] = $this->language->get('buttonlist');
	
		$this->data['newslist'] = $this->url->link('information/news');
		
		$this->data['numchars'] = $setting['numchars'];
		
		if (isset($this->data['numchars'])) { $chars = $this->data['numchars']; } else { $chars = 100; }
		
		$this->data['news'] = array();
	
		$results = $this->model_catalog_news->getNewsShorts($setting['limit']);
	
		foreach ($results as $result) {
			$this->data['news'][] = array(
				'title'        		=> $result['title'],
				'description'  	=> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $chars),
				'href'         		=> $this->url->link('information/news', 'news_id=' . $result['news_id']),
				'text_posted'   		=> date($this->language->get('date_format_short'), strtotime($result['date_added']))
			);
		}
	
		$this->data['module'] = $module++; 
	
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/' . $this->_name . '.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/' . $this->_name . '.tpl';
		} else {
			$this->template = 'default/template/module/' . $this->_name . '.tpl';
		}
	
		$this->render();}
}
?>

Share this post


Link to post
Share on other sites

Мне кажется, что это лучше перенести в раздел "услуги".

Share this post


Link to post
Share on other sites

Я не прошу готового решения, буду ковырять сама, просто скажите, допустимо такое решение или нет, и хочется подсказку, в каком направлении копать с контроллерами.

Share this post


Link to post
Share on other sites

Да, друзья, если кто еще пытается вывести модуль в подвале, то так, как я спрашивала изначально, ничего сделать не получится. В самом деле нужно создавать новый контроллер, новый темплейт - словом, заводить новую позицию для всего магазина. Головняк для начинающих тот еще, но всё работает.

Share this post


Link to post
Share on other sites

или одной строчкой кода на jquery (функция load) вывести новости в подвал!!

Share this post


Link to post
Share on other sites

РНР я кое-как понимаю, а с джавой никогда дела не имела

Share this post


Link to post
Share on other sites

или одной строчкой кода на jquery (функция load) вывести новости в подвал!!

Хм, отличное решение :)

Только мне кажется что оно не сработает. 

Но вот поставить display:none; нужному блоку и отобразить его в другом месте через jquery было бы как мне кажется довольно легко

 

РНР я кое-как понимаю, а с джавой никогда дела не имела

Java != jquery ;)

Share this post


Link to post
Share on other sites

deim, ну вы понимаете, что я не понимаю, да?)

 

Можете чуть более подробно о jquery и load? я бы попробовала

Share this post


Link to post
Share on other sites

jquery load в запросе яндекса и гугл выдает много результатов. Почему бы не воспользоваться??

Share this post


Link to post
Share on other sites

Может, потому, что мои знания не позволяют мне вычленить в поисковой выдаче нужный и в то же время правильный ответ?

Или оттого, что здесь все же целевой форум, где вроде не сильно бьют новеньких...

Share this post


Link to post
Share on other sites

или оттого, что здесь все же целевой форум, где вроде не сильно бьют новеньких...

 

да никто здесь никого не бьет :) , бывает посабачимся трохи, не более :)

 

в аттаче рабочий пример, как с помощью ".load" вывести инфу из файла. Содержимое нужно забросить на вэб сервер и вызвать load.html (http://localhost/load.html) не пытайтесь запустить из проводника :)

 

это теория, а вот как корректно отпарсить новость из модуля новостей, безо всей красоты, типа футеров, хедеров и прочего, я не знаю. Возможно тоже "лехко" ;)

jquery-load.zip

  • +1 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.