2016-03-29 2 views
0

Hallo Ich versuche, Artikel Newsflash in eine Liste von Links in einer Tabelle zu verwandeln. Ich entferne Intro-Text, indem ich es auskommentiere, so dass es nur den Titel des Artikels anzeigt und die tmpl-Dateien ändert.Ausgabe Artikel newsflash in eine Tabelle

Dies ist eine PHP-Datei namens Links. Ich habe vertical.php von modules/mod_article_news dupliziert und dann diese Information eingefügt.

<?php 
 
/** 
 
* @package \t \t Joomla.Site 
 
* @subpackage \t mod_articles_news 
 
* @copyright \t Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. 
 
* @license \t \t GNU General Public License version 2 or later; see LICENSE.txt 
 
*/ 
 

 
// no direct access 
 
defined('_JEXEC') or die; 
 

 
echo '<div class="newsflash-vert">'; 
 
for ($i = 0, $n = count($list); $i < $n; $i ++) { 
 
\t $item = $list[$i]; 
 
if ($i==0){ 
 
echo "<table>"; 
 
} 
 

 
if ($i & 1){ 
 
//odd 
 
}else{ 
 
//even 
 
echo "<tr>"; 
 
} 
 
echo "<td>"; 
 
\t echo '<div class="newsflash-item">'; 
 
\t require JModuleHelper::getLayoutPath('mod_articles_news', '_item_links'); 
 
\t if ($n > 1 && (($i < $n - 1) || $params->get('showLastSeparator'))) { 
 
\t \t echo '<span class="article-separator">&#160;</span>'; 
 
\t } 
 
\t echo '</div>'; 
 

 
echo "</td>"; 
 
if ($i & 1){ 
 
//odd 
 
}else{ 
 

 
if ($i == $n){ 
 
echo "</tr>"; 
 
} 
 
} 
 
if ($i == $n){ 
 
//end 
 
echo "</table>"; 
 
} 
 
} 
 
echo "</div>";

ich auch duplicatied _item.php und benannte sie in _item_links und haben diese PHP-Code: mit aussehen schöner

<?php 
 
/** 
 
* @package \t \t Joomla.Site 
 
* @subpackage \t mod_articles_news 
 
* @copyright \t Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. 
 
* @license \t \t GNU General Public License version 2 or later; see LICENSE.txt 
 
*/ 
 

 
// no direct access 
 
defined('_JEXEC') or die; 
 
$item_heading = $params->get('item_heading', 'h4'); 
 
?> 
 
<?php if ($params->get('item_title')) : ?> 
 

 
\t <<?php echo $item_heading; ?> class="newsflash-title<?php echo $params->get('moduleclass_sfx'); ?>"> 
 
\t <?php if ($params->get('link_titles') && $item->link != '') : ?> 
 
\t \t <a href="<?php echo $item->link;?>"> 
 
\t \t \t <?php echo $item->title;?></a> 
 
\t <?php else : ?> 
 
\t \t <?php echo $item->title; ?> 
 
\t <?php endif; ?> 
 
\t </<?php echo $item_heading; ?>> 
 

 
<?php endif; ?> 
 

 
<?php if (!$params->get('intro_only')) : 
 
\t echo $item->afterDisplayTitle; 
 
endif; ?> 
 

 
<?php echo $item->beforeDisplayContent; ?> 
 

 
<?php //echo $item->introtext; ?> 
 

 
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) : 
 
\t echo '<a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>'; 
 
endif; ?>

Dann wollte ich es css, aber ich erhalte einen Fehler in meinem error_log: [29-Mar-2016 00:19:58 America/New_York] PHP Hinweis: Der Versuch, Eigentum von Nicht-Objekt in /home/loverevo/public_html/clearlove/templates/clearlove_home/html/com_content/article/view.html.php on line 217

Dieser Fehler geht weg, wenn ich die Datei wieder gesagt, ich glaube, es hat etwas mit meinen if-Anweisungen zu tun. Aber ich bin mir nicht sicher. Ich habe auch den Code ausprobiert, ohne alles als PHP zu haben, und eine Menge davon zu verwenden, den gesamten HTML-Code als HTML zu lassen und nicht zu wiederholen.

Nicht sicher, was das verursacht, hat jemand irgendwelche Ideen?

Antwort

0

Überprüfen Sie Ihren Code und stellen Sie sicher, dass Ihre Variablen, die Sie aussprechen möchten, tatsächlich einen Wert haben. Ich bin mir ziemlich sicher, dass es Sie anschreien wird, wenn Sie beispielsweise versuchen, $item->title anzurufen, aber die $item selbst hat keinen Wert, der in sie eingegeben wurde. Also sagen Sie, dass Sie versuchen, einen Titel zu bekommen, aber das Objekt $ item existiert nicht oder ist etwas anderes als ein Objekt.

Ich würde dies tun, bevor sie in die $item Objekt gehen:

if ($item) { 

    echo $item->title; 
echo $item->value2; 

} 

oder wenn einige Ihrer Objektwerte manchmal einen Wert nicht angeschlossen haben, überprüfen Sie den Ist-Wert vor der Ausgabe

$itme->value1 ? $item->value1 : ""; 

Hoffnung das hilft

+0

Dank krank geben Sie einen Versuch, wenn ich nach Hause komme. Das Problem ist, dass die Werte kein Problem haben, wenn sie nicht in eine if-Anweisung eingebettet sind. Nicht sicher, warum das if ein Problem verursacht oder was es nicht lesbar macht. –

+0

Scheint wie das Problem ist.nicht die Werte sondern eher mit dem ersten div. Wenn ich den Test vor und nach dem Code abhöre, erscheint er in meinem Artikel. (Einschließlich Ladeposition, um diesen Artikel zu laden). Aber der eigentliche Tisch wird unter meiner Fußzeile angezeigt und ist nicht in einem Div. Was mit dem div andbwhy passiert, ist nicht der Tisch in meinem Artikel auch.Sie können die Ergebnisse auf einer Fehlerseite sehen. http://www.Clearlove.ca/jsh –

+0

Ok ..... Was haben Sie in Zeile 217 der Datei view.html.php? – max234435

0

Es gibt mehrere Probleme im Code. Das erste und wichtigste Problem ist, dass ich versuche, die Tabelle mit einer Bedingung zu beenden, wenn $ i == $ n. aber die for-Anweisung nur so lange Schleifen wie $ i < $ n, deshalb muss ich meine Bedingung haben, um die Tabelle zu beenden, sollte $ i == $ n -1 sein;

Auch in Bezug auf meine vorherigen Code, putting Isset funktioniert, so dass der Code nicht verarbeitet wird, wenn nicht in einigen verschiedenen Bereichen festgelegt. Ich werde weiter darauf eingehen, da ich dieses Problem vorher nicht bekommen habe, aber jetzt funktioniert es!

Verwandte Themen