Metodo para agregar campos en la definicion de Articulos en Joomla 1.5 , enlazado a la base de datos y que luego seran mostrado en el front.

Luego de buscar en media internet sobre como agregar un bendito campo en la edicion de Articulos en Joomla 1.5 (obviamente que luego pueda ser visualizado al acceder al articulo) no encontre NAda de nada, ni en los foros de joomlaspanish, parece que esta muy nueva esta version y los programadores siguen trabajando con las versiones 1.1x

Luego de pasar un total de mm…( 1+1 = 3 .. +5 +8 = 20 +…) unas 22 hras finalmente lo he logrado;

Digamos que queremos agregar un campo llamado Antetitulo y en la vista de articulos se muestre en la parte superior (antes del titulo) del Articulo.

1. debemos editar el archivo
administrator\components\com_content\admin.content.html.php
esta es la pantalla que se muestra cuando le damos en editar o agregar un nuevo Articulo.

ahi por la linea 700 y algo
en la funcion

 

PHP:

  1. </p>
  2. <p>function _displayArticleDetails(&$row, &$lists )</p>
  3. <p>

esta una table donde se listan los campos del formulario
title, subtitle, category ……
entonces simplemente ponemos nuestro textbox o lo que sea:

 

PHP:

  1. <br />
  2. <?php echo $row->antetitulo ?><br />
  3. <label for=»antetitulo»><br />
  4. Antetitulo<br />
  5. </label></p>
  6. <p> <input class=»inputbox» type=»text» name=»antetitulo» id=»antetitulo» size=»40″ maxlength=»255″ value=»antetitulo; ?>» /></p>
  7. <p>

2. Ahora vamos a nuestro gestor de la base de Datos MySQL y agregamos un nuevo campo en la tabla jos_content
(la consulta SQL seria algo asi)

 

  1. </p>
  2. <p>
  3. ALTER TABLE `jos_content` ADD `tipo` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `title` ;
  4. </p>
  5. <p>

3. Editamos el archivo
administrator\components\com_content\controller.php

ahi por la linea 500 algo
donde esta el code

 

PHP:

  1. </p>
  2. <p>  // Create the form<br />
  3. $form = new JParameter(», JPATH_COMPONENT.DS.’models’.DS.’article.xml’);</p>
  4. <p>  // Details Group<br />
  5. $active = (intval($row->created_by) ? intval($row->created_by) : $user->get(‘id’));<br />
  6. $form->set(‘created_by’, $active);<br />
  7. $form->set(‘access’, $row->access);<br />
  8. $form->set(‘created_by_alias’, $row->created_by_alias);
  9. </p>
  10. <p>

le agregamos

  1. </p>
  2. <p>$form->set(‘antetitulo’, $row->antetitulo);</p>
  3. <p>

y en la linea
550 algo

donde esta la funcion
function saveContent()
agregamos

 

  1. </p>
  2. <p>
  3. $row->antetitulo =  JRequest::getVar( ‘antetitulo’);
  4. </p>
  5. <p>

mismo archivo,
controller.php
por la linea 1300 algo

por donde esta

 

PHP:

  1. </p>
  2. <p>
  3. // values loaded into array set for store<br />
  4. $row->id                        = NULL;<br />
  5. $row->sectionid     = $newsect;<br />
  6. $row->catid      = $newcat;<br />
  7. $row->hits            = ‘0’;<br />
  8. $row->ordering          = ‘0’;<br />
  9. $row->title      = $item->title;<br />
  10. …..
  11. </p>
  12. <p>

Agregamos

 

PHP:

  1. </p>
  2. <p>   $row->antetitulo    = $item->antetitulo;</p>
  3. <p>

AH, se me olvidaba, linea 400 algo

 

  1. </p>
  2. <p>jimport(‘joomla.utilities.date’);<br />
  3. $createdate = new JDate();<br />
  4. $row->sectionid = $sectionid;<br />
  5. $row->version = 0;<br />
  6. $row->state = 1;<br />
  7. $row->ordering = 0;<br />
  8. $row->images = array ();<br />
  9. $row->publish_up = $createdate->toUnix();<br />
  10. $row->publish_down = JText::_(‘Never’);<br />
  11. $row->creator = »;<br />
  12. $row->created = $createdate->toUnix();<br />
  13. $row->modified = $nullDate;<br />
  14. $row->modifier = »;<br />
  15. $row->frontpage = 0;
  16. </p>
  17. <p>

agregamos

 

PHP:

  1. </p>
  2. <p>   $row->antetitulo = »;</p>
  3. <p>

4. Ya casi , pero todavia no
ya guarda en la base de datos , pero aun no carga,
entonces debemos modificar una clase del sistema
\libraries\joomla\database\table\content.php

por la linea 80

 

PHP:

  1. </p>
  2. <p> var $attribs    = null;<br />
  3. /** @var int */
  4. var $version                = null;<br />
  5. /** @var int */
  6. var $parentid         = null;<br />
  7. /** @var int */
  8. var $ordering         = null;<br />
  9. /** @var string */
  10. var $metakey                = null;<br />
  11. /** @var string */
  12. var $metadesc         = null;<br />
  13. /** @var string */
  14. var $metadata         = null;<br />
  15. /** @var int */
  16. var $access    = null;
  17. </p>
  18. <p>

agregamos

var $antetitulo = null;

listo la parte del back-end

5. Ahora solo nos queda agregarlo en la parte del front
ahi queda a tu gusto, en mi caso hice un template en el que defino como se ve el componente com_content
para la parte de articles

y le agrego

article->antetitulo; ?>

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO