Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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();}
}
?>

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

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

 

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

Java != jquery ;)

Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

 

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

 

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

 

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

jquery-load.zip

  • +1 1
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.