Перейти к содержанию
Osya

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

Рекомендуемые сообщения

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

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

Java != jquery ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

jquery-load.zip

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.