Problemas con la Funcion Theme del Core
Bueno la verdad no acostumbro a preguntar mucho, pero dadas las circunstancias toca.
Mi problemas es el siguiente:
Tenia instalado drupal 6.14 con el modulo Print activado con la libreria tcpdf para la version en pdf de la pagina, este trabajaba perfectamente hasta q actualize a la versión 6.15 cuyo error no vuelvo a cometer hasta q este seguro q van a funcionar bien las cosas. Continuando con mi problema estoy tratando de meterle mano al código de drupal pero no he tenido mucho éxito, ya que al hacer un seguimiento al código el modulo theme.inc es perfectamente construido y llamadas puedo llamar las funciones que estan definidas en él. Bueno llegando al punto en el fuí directamente al modulo print para verificar el problema encontrando lo siguiente:
<?php
// create new PDF document
$pdf = new PrintTCPDF($orientation , 'mm', $print_pdf_paper_size, TRUE);
// set document information
$pdf->SetAuthor(strip_tags($print['submitted']));
$pdf->SetCreator(variable_get('site_name', 'Drupal'));
$pdf->SetTitle(html_entity_decode($print['title'], ENT_QUOTES, 'UTF-8'));
$keys = implode(' ', explode("\n", trim(strip_tags($print['taxonomy']))));
$pdf->SetKeywords($keys);
$pdf->setPDFVersion('1.6');
if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
$pdf->setRTL(TRUE);
}
//Hasta aqui éxiste el objeto $pdf
$pdf = theme('print_pdf_tcpdf_header', $pdf, $html, $font);
$pdf = theme('print_pdf_tcpdf_footer', $pdf, $html, $font);
$pdf = theme('print_pdf_tcpdf_page', $pdf);
//De aqui en adelante el objeto $pdf deja de éxistir
//initialize document
$pdf->AliasNbPages();
// add a page
$pdf->AddPage();
$pdf = theme('print_pdf_tcpdf_content', $pdf, $html, $font);
// reset pointer to the last page
$pdf->lastPage();
// try to recover from any warning/error
ob_clean();
//Close and output PDF document
$output_dest = ($print_pdf_content_disposition == 2) ? 'D' : 'I';
$pdf->Output($filename, $output_dest);
?>Este código es sacado de print_pdf/print_pdf.pages.inc mas especificamente de la funcion
<?php
_print_pdf_tcpdf
?>Bueno el problema es cuando llega a esta linea:
<?php
$pdf->AliasNbPages()
?><?php
$pdf
?>Fatal error: Call to a member function AliasNbPages() on a non-object in C:\xampp\htdocs\sites\all\modules\print\print_pdf\print_pdf.pages.inc on line 247No siendo mas espero que me puedan colaborar, y espero haber sido claro en mi problema, como soy nuevo no sé si esta bien ubicado el tema en el foro, disculpen si lo tenia habia que ubicarlo en otro lugar.
- Inicie sesión o regístrese para enviar comentarios

Gracias
Bueno la verdad abrí el tema abierto para que me colaborarán en una o dos semanas, pero tras pasar esas dos semanas me puse a estudiar el API de drupal y me di cuenta de esos errores que comentabas, y lo solucioné rápidamente, si alguna otra persona tiene el mismo problema, puede contactarse conmigo para enviarle una copia del modulo modificado, cabe aclarar que la versión donde tengo instalado drupal es un CentOs 5.4 con php 5.1.6 y tengo que tener mucho cuidado al realizar una actualización de cualquier módulo ya que algunos vienen para trabajar con php 5.2 o superior.
Mejorando la solución
Tras implementar la solucón que propuse en mi anterior comentario, me da una serie de warnings... Para solucionarlos:
modules/print/print_pdf/print_pdf.pages.inc línea 242
cambiamos:
<?php$pdf = theme('print_pdf_tcpdf_header', $pdf, $html, $font);
$pdf = theme('print_pdf_tcpdf_footer', $pdf, $html, $font);
$pdf = theme('print_pdf_tcpdf_page', $pdf);
?>
Por:
<?php$pdf = theme('print_pdf_tcpdf_header', &$pdf, &$html, $font);
$pdf = theme('print_pdf_tcpdf_footer', &$pdf, &$html, $font);
$pdf = theme('print_pdf_tcpdf_page', &$pdf);
?>
.. y en la línea 252 cambiamos:
<?php$pdf = theme('print_pdf_tcpdf_content', $pdf, $html, $font);
?>
Por:
<?php$pdf = theme('print_pdf_tcpdf_content', &$pdf, &$html, $font);
?>
Un saludo
Arreglado
Fatal error: Call to a member function AliasNbPages() on a non-object in /home/unishop/public_html/sites/all/modules/print/print_pdf/print_pdf.pages.inc on line 247
La verdad es que soy muy vago y cuando encuentro un error me cuesta ponerme a mirar el código... Pero al leer tu entrada, y decir que el objeto pdf no existía tras llamar al theme, me diste una pista ya que yo me encontraba con el mismo error y estaba investigando un poco...
El error está relacionado (al menos en mi caso) con el uso de la rama 5.3.x de php y su comportamiento con las variables pasadas por referencia a las funciones, ya que esta característica se está eliminando progresivamente en las nuevas versiones de php..
bueno, al grano. Para solucionar el error, vas al archivo modules/print/print_pdf.pages.php y ahí a la línea 419. Ahí nos encontramos con la función theme_print_pdf_tcpdf_header, y acontinuación una serie de definiciones de hooks del theme, que pasan parámetros por referencia..
Lo único que hay que hacer es eliminar todos los & de los parámetros, de todas esas funciones. Ejemplo:
cambiamos:
<?phpfunction theme_print_pdf_tcpdf_header(&$pdf, &$html, $font) {
?>
por:
<?phpfunction theme_print_pdf_tcpdf_header($pdf, $html, $font) {
?>
Y así en todas las funciones a continuación..
Un saludo
alguna solucion
eso alguien a solucionado este problema, yo me encuentro con este mismo error, porfavor denme una manito