Всего: 2 1 2 >
 Добавить модуль рекламы
Ирина Ка
Cпециалист
: 199
: 21-11-2009


12-01-2010 21:36
Хотела добавить ещё один модуль рекламы. Продублировала имеющийся, переименовала. В админке, в панели вылезло вот что
Fatal error: Cannot redeclare class BlockAdvertising in /home/infoseme/public_html/classes/Module.php(325) : eval()'d code on line 45. Кто-нибудь может подсказать - что это.
 
 
Алекс


Администратор
: 4516
: Красноярск
: 29-05-2009


12-01-2010 22:03
Переименовывать нужно:
  • Директорию
  • Файл *.php
  • Файл *.tpl
  • Название класса в данном файле.
  • Имя в конструкторе в данном файле.
  • Имя файла в выводе *.tpl в данном файле.
 
  
Ирина Ка
Cпециалист
: 199
: 21-11-2009


12-01-2010 22:20
Цитата:( Алекс @ 12-01-2010 23:03 Смотреть сообщение )
Переименовывать нужно:

  • Директорию
  • Файл *.php
  • Файл *.tpl
  • Название класса в данном файле.
  • Имя в конструкторе в данном файле.
  • Имя файла в выводе *.tpl в данном файле.
В принципе я добавила только цифру1

в blockadvertising1.tpl
<!-- MODULE Block advertising1 -->
<div class="advertising_block">
<a href="http://prestadev.ru/"><img src="{$image}" alt="{l s='Advertising1' mod='blockadvertising1'}" /></a>
</div>
<!-- /MODULE Block advertising1 -->

в blockadvertising1.php

<?php

class BlockAdvertising extends Module
{
function __construct()
{
$this->name = 'blockadvertising1';
$this->tab = 'Blocks';
$this->version = 0.1;

parent::__construct();

$this->displayName = $this->l('Block advertising1');
$this->description = $this->l('Adds a block to display an advertising1');
}

function install()
{
if (!parent::install())
return false;
if (!$this->registerHook('rightColumn') OR !$this->registerHook('leftColumn'))
return false;
return true;
}

/**
* Returns module content
*
* @param array $params Parameters
* @return string Content
*/
function hookRightColumn($params)
{
global $smarty, $protocol_content, $server_host;

$smarty->assign('image', $protocol_content.$server_host.__PS_BASE_URI__.'/modules/'.$this->name.'/advertising1.jpg');
return $this->display(__FILE__, 'blockadvertising1.tpl');
}

function hookLeftColumn($params)
{
return $this->hookRightColumn($params);
}

}?>
в ru.php
<?php

global $_MODULE;
$_MODULE = array();
$_MODULE['<{blockadvertising1}prestashop>blockadvertising_fd4c71c948857cce596a69fbaea7426b'] = 'Рекламный блок1';
$_MODULE['<{blockadvertising1}prestashop>blockadvertising_2c6706322b2b9f670251533d907d2bbc'] = 'Добавляет блок показа рекламы1';
$_MODULE['<{blockadvertising1}prestashop>blockadvertising_2ce5fc289845ce826261032b9c6749ea'] = 'Реклама1';
И что ещё?


Сообщение отредактировано Ирина Ка 12-01-2010 23:21 ...
 
 
vadim
Новичок
: 69
: Москва
: 11-11-2009


06-02-2010 23:57
ну что получилось или нет?
мне, например, нужен ещё один модуль типа "производители", но с другим названием и содержанием. Непонятно что такое:
1.) Имя в конструкторе в данном файле.
2.) Имя файла в выводе *.tpl в данном файле.
Кто расшифрует?
 
  
Алекс


Администратор
: 4516
: Красноярск
: 29-05-2009


07-02-2010 00:16
Цитата:( vadim @ 07-02-2010 00:57 Смотреть сообщение )
ну что получилось или нет?
мне, например, нужен ещё один модуль типа "производители", но с другим названием и содержанием. Непонятно что такое:
1.)  Имя в конструкторе в данном файле.
2.) Имя файла в выводе *.tpl в данном файле. 
Кто расшифрует?

Код:
$this->name = 'blockmanufacturer';

на
Код:
$this->name = 'myblockmanufacturer';

соотв. директория и тд. будет myblockmanufacturer

Код:
return $this->display(__FILE__, 'blockmanufacturer.tpl');

на
Код:
return $this->display(__FILE__, 'myblockmanufacturer.tpl');

файл myblockmanufacturer.tpl должен существовать.
 
  
vadim
Новичок
: 69
: Москва
: 11-11-2009


07-02-2010 18:38
Спасибо за оперативный ответ, буду разбираться.
 
  
vadim
Новичок
: 69
: Москва
: 11-11-2009


08-02-2010 01:25
Цитата:( Ирина Ка @ 12-01-2010 22:36 Смотреть сообщение )
Хотела добавить ещё один модуль рекламы. Продублировала имеющийся, переименовала. В админке, в панели вылезло вот что
Fatal error: Cannot redeclare class BlockAdvertising in /home/infoseme/public_html/classes/Module.php(325) : eval()'d code on line 45. Кто-нибудь может подсказать - что это.

У меня получилась точно такая же ошибка...
Потом в файле .php в коде
class BlockManufacturer extends Module
{
function __construct()
{
$this->name = 'myblockmanufacturer';
$this->tab = 'Blocks';
$this->version = 1.0;

я поставил
class MyBlockManufacturer extends Module
{
function __construct()
{
$this->name = 'myblockmanufacturer';
$this->tab = 'Blocks';
$this->version = 1.0;
и модуль появился и заработал...так что попробуй, Ира
 
  
vadim
Новичок
: 69
: Москва
: 11-11-2009


08-02-2010 01:59
Модуль продублировался и показывает тоже самое что и оригинал. Вопрос к Алексу: как теперь сделать так чтобы в них был разный контент? и вообще как в админке организовать наполнение модуля типа производители?
Вообщем, я хочу сделать так как на этом сайте http://www.yogastuff.ru/manufacturer.php
Там блок производителей походу переделали под статьи. Но мне нужно сохранить блок производителей, поэтому я и дублирую. Как нужно разделить контент? чтобы производители отдельно, а статьи отдельно.
 
  
grabos
Cпециалист
: 138
: 24-05-2010


14-02-2011 23:55
сделал три рекламных модуля. картинки разные, а ссылка со всех на одно и то же место. В админке меняешь любую ссылку в одном из трех модулей - меняються все. Где что пропустил?
 
  
grabos
Cпециалист
: 138
: 24-05-2010


15-02-2011 00:17
и еще. сначала сделал и все работало. а потом в config прменял false на true и потом обратно и все стало как написал.
 
  
   
Всего: 2 1 2 >