Добавить новое поле изображения в Joomla 1.7 com_content - PullRequest
6 голосов
/ 13 октября 2011

Я пытаюсь внести некоторые изменения в компонент com_content Joomla 1.7 Для Joomla 1.7

не так много документов по конкретной теме.

Может быть, вы могли бы помочь мне в этом.

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

В административной части мне удалось добавить поле - просто в html, затем в файл xml и, наконец, в БД.

Теперь я пытаюсь отобразить эту запись в моем собственном html-представлении для избранных статей.

Я просто использовал простой код echo $this->item->addimage;, но, к сожалению, он не отображается.

Есть идеи, как этого добиться?

Спасибо!

И еще одна вещь, насколько я заметил, структура разработки компонентов, регистрация БД и так далее, была изменена в Joomla 1.7. Любые полезные ссылки, где все хорошо объяснено?

Ответы [ 2 ]

1 голос
/ 22 октября 2011

com_content больше не подходит для создания переменного содержимого в Joomla. Это все тот же негибкий код со времен мамбо. Вы должны попробовать такие решения, как K2, flexicontent или мой любимый ZOO. Их легко выучить, и с ними можно делать много интересных вещей. Лишние поля? Нет проблем. Некоторые из них уже существуют для Joomla 1.7 / 2.5. Взламывать ядро ​​всегда плохо. Главным образом потому, что вы потеряли свой путь обновления.

1 голос
/ 17 октября 2011

Хорошо. Если вы уверены, что ваша реализация того, что вы сделали, работает. то есть. Встроенное изображение или просто URL-ссылка из поля, которое вы добавили, хранятся в базе данных. Загляните в файл титульной страницы / components / com_content / views / featured / tmpl / default_item.php

Там вы должны поместить переменную $ this-> item-> addimage, например:

<img src="<?php echo $this->item->addimage; ?>" />

Если вы храните URL-ссылку, или

<img src="image/png;base64,<?php echo $this->item->addimage; ?>" />

, если вы сохраняете изображение как данные в формате RAW base64


Edit: Это должно решить вашу проблему, если вы добавите свои статьи из веб-интерфейса (если бэкэнд, просто дайте мне знать)

  1. Сначала создайте новый столбец в таблице jos_content , например:

'addimage' varchar (255) ПО УМОЛЧАНИЮ NULL

Затем измените следующие файлы:

  1. .. / com_content / views / featured / tmpl / default_image.php [LINE: 29]

    29 #</h2>

    30 #<?php endif; ?>

    32: <?php if(!empty($this->item->addimage)): ?>

    33: <img src="<?php echo $this->item->addimage; ?>" alt="ADDIMAGE" />

    34: <?php endif; ?>

    36: #<?php if ($params->get('show_print_icon') || $params->get('show_email_icon') || $canEdit) : ?>

  2. .. / com_content / models / article.php [LINE: 160]

    160: # $this->getState(

    161: # 'list.select',

    162: 'a.id, a.title, a.alias, a.title_alias, a.introtext, a.addimage, ' .

    163: #'a.checked_out, a.checked_out_time, ' .

  3. .. / com_content / models / forms / article.xml [ДОБАВИТЬ КУДА-ТО]

    <field id="addimage" name="addimage" type="text" label="Add Image" class="inputbox" />

  4. .. / com_content / views / form / tmpl / edit.php [LINE: 82]

    82: #<?php echo $this->form->getInput('created_by_alias'); ?>

    83: #</div>

    85: <div class="formelm">

    86: <?php echo $this->form->getLabel('addimage'); ?>

    87: <?php echo $this->form->getInput('addimage'); ?>

    88: </div>

    90: #<?php if ($this->item->params->get('access-change')): ?>

...