+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Ähnliche Schlagworte - mit Beitragsbild

  1. #1
    Neu an Board Avatar von malloth
    Registriert seit
    27.04.2011
    Beiträge
    61
    Bedankte sich
    6
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard Ähnliche Schlagworte - mit Beitragsbild

    Hallo,
    ich bin mal wieder an meine Grenzen gerade gekommen und ich finde leider keine Lösung bei meinen Recherchen.

    Und zwar würde ich gerne, dass Schlagwort-Tool für eine Art Blog nutzen. Es gibt ja nun auch das "Verwandte Artikel" Tool, aber da funktioniert es nur über die Meta-Schlagwörter. Ziel sind aber schon die richtigen Schlagworte, da es wohl auch noch Kategorien geben wird, nach denen man wählen kann.

    Mein Problem ist nun, dass ich die Beitragsbilder nicht in das Schlagwort-Ähnliche Modul bekomme.

    Habe es schon mit folgenden Override Probiert. Kombiniert mit dem JPATH Helpers am Code-Beginn
    HTML-Code:
                <?php $images = json_decode($item->images); ?>
                
            <?php if( $images->image_intro ) : ?>
                <img src="<?php echo $images->image_intro; ?>" alt="<?php echo htmlspecialchars($item->title); ?>" />
            <?php endif; ?>
    Dies Produziert mir aber den Fehler

    HTML-Code:
    Notice: Undefined property: stdClass::$images in D:\xampp\htdocs\promenade\templates\promenade_magazin\html\mod_tags_similar\blog.php on line 32
    
    Notice: Trying to get property of non-object in D:\xampp\htdocs\promenade\templates\promenade_magazin\html\mod_tags_similar\blog.php on line 34
    Wie kann ich in Modulen das Beitragsbild abrufen?

    Hat jemand da eine Lösung parat und vorallem: wo ist mein Gedankenfehler? Wonach muss ich am besten Suchen für eine Lösung, vielleicht suche ich einfach nur falsch.

    Schöne Grüße
    Susanne
    Geändert von malloth (22.05.2019 um 14:39 Uhr)

  2. #2
    Gehört zum Inventar Avatar von Re:Later
    Registriert seit
    21.04.2014
    Ort
    Berlin
    Beiträge
    5.779
    Bedankte sich
    155
    Erhielt 2.246 Danksagungen
    in 2.014 Beiträgen

    Standard

    Wenn es funktionieren würde, dann sowieso mit $item->core_images und nicht $item->images.
    Weil diese Einträge in einer anderen Tabelle (#__ucm_content) gespeichert werden, wo das Feld eben core_images heißt (alles etwas verquast).

    Da aber hier dieses Feld nicht abgefragt wird: https://github.com/joomla/joomla-cms...er.php#L72-L76
    also ein
    $db->quoteName('cc.core_images'),
    fehlt (leider nicht nur (mir jetzt zu viel Erklärbär) ), musst eine Datenbankabfrage ins Modul einbauen.

    Wenn ich es eilig hätte würde ich das so machen:
    Gleich nach der defined(...)-Zeile
    Code:
    if ($list)
    {
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select($db->qn('core_images'))
       ->from($db->qn('#__ucm_content'));
    
      foreach ($list as $i => $item)
      {
        $query->clear('where')
       ->where($db->qn('core_content_id') . ' = ' . (int) $item->core_content_id);
    
       $db->setQuery($query);
       $list[$i]->images = $db->loadResult();
      }
    }
    Und dann deine Zeilen für jedes einzelne $item
    Code:
    <?php $images = json_decode($item->images); ?>
    <?php if( !empty($images->image_intro) ) : ?>
    
    usw.
    Mit empty() in diesem Fall arbeiten, um Warnings zu vermeiden.

    (Auswendig getippt. Deshalb weiß ich nicht ganz sicher ;-) )
    Geändert von Re:Later (22.05.2019 um 15:30 Uhr)
    Joomlafachmann: https://www.ghsvs.de

  3. Erhielt Danksagungen von:


  4. #3
    Neu an Board Avatar von malloth
    Registriert seit
    27.04.2011
    Beiträge
    61
    Bedankte sich
    6
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Danke für deine Mühe. Habe nun etwas damit rumgespielt. Aber leider klappt es nicht so ganz mit dem Db-Abruf,..

    Muss mich wohl doch nach einer Erweiterung umschauen müssen. Denn leider bringt mir eine Link-Liste nichts. Schade, dass das verwandte Beiträge nur über Meta-Daten funktioniert. Hoffe das sich da im neuen Joomla eine bessere Lösung finden lässt *seufz*

    Weiß jemand sonst eine Lösugn wie ich die Schlagwörter als Meta-Schlüsselwörter ausgeben kann - so dass ich beide Funktionen nutzen kann, ohne es doppelt einzutragen?
    Geändert von malloth (21.05.2019 um 11:29 Uhr)

  5. #4
    Gehört zum Inventar Avatar von Re:Later
    Registriert seit
    21.04.2014
    Ort
    Berlin
    Beiträge
    5.779
    Bedankte sich
    155
    Erhielt 2.246 Danksagungen
    in 2.014 Beiträgen

    Standard

    Poste deinen kompletten Code des Modul-Overrides, nachdem du meinen Code iengesetzt hast. Dann kann man helfen. Sonst nicht.
    Joomlafachmann: https://www.ghsvs.de

  6. #5
    Neu an Board Avatar von malloth
    Registriert seit
    27.04.2011
    Beiträge
    61
    Bedankte sich
    6
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Das wäre folgender:

    HTML-Code:
    <?php
    /**
     * @package     Joomla.Site
     * @subpackage  mod_tags_similar
     *
     * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
     * @license     GNU General Public License version 2 or later; see LICENSE.txt
     */
    
    defined('_JEXEC') or die;
    
    if ($list)
    {
      $db= JFactory::getDbo();
      $query = $db->getQuery(true);
    
      foreach ($list as $i => $item)
      {
        $query->clear('where')
        ->select($db->qn('core_images'))
       ->from($db->qn('#__ucm_content'))
       ->where($db->qn('core_content_id') . ' = ' . (int) $item->core_content_id);
    
       $db->setQuery($query);
       $list[$i]->images = $db->loadResult();
      }
    }
    
    ?>
    <div class="tagssimilar<?php echo $moduleclass_sfx; ?>">
    <?php if ($list) : ?>
    	<ul>
    	<?php foreach ($list as $i => $item) : ?>
    		<li>
    			<?php if (($item->type_alias === 'com_users.category') || ($item->type_alias === 'com_banners.category')) : ?>
    				<?php if (!empty($item->core_title)) : ?>
    					<?php echo htmlspecialchars($item->core_title, ENT_COMPAT, 'UTF-8'); ?>
                        
    				<?php endif; ?>
    			<?php else : ?>
    				<a href="<?php echo JRoute::_($item->link); ?>">
    					<?php if (!empty($item->core_title)) : ?>
    						<?php echo htmlspecialchars($item->core_title, ENT_COMPAT, 'UTF-8'); ?>
    					<?php endif; ?>                    
    				</a>
    				<?php $images = json_decode($item->images); ?>
    				<?php if( !empty($images->image_intro) ) : ?>
    			<?php endif; ?>
    
    		</li>
    	<?php endforeach; ?>
    	</ul>
    <?php else : ?>
    	<span><?php echo JText::_('MOD_TAGS_SIMILAR_NO_MATCHING_TAGS'); ?></span>
    <?php endif; ?>
    </div>
    Geändert von malloth (21.05.2019 um 13:17 Uhr) Grund: Bild angehangen

  7. #6
    Gehört zum Inventar Avatar von Re:Later
    Registriert seit
    21.04.2014
    Ort
    Berlin
    Beiträge
    5.779
    Bedankte sich
    155
    Erhielt 2.246 Danksagungen
    in 2.014 Beiträgen

    Standard

    Hast wohl nur das "usw." überlesen. Also "usw." wie du es ja schin im ersten Post hattest.

    Hast den Teil vergessen:
    Code:
      <img src="<?php echo $images->image_intro; ?>" alt="<?php echo htmlspecialchars($item->title); ?>" />
     <?php endif; ?>
    Komplett:
    Code:
    <?php
    /**
     * @package     Joomla.Site
     * @subpackage  mod_tags_similar
     *
     * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
     * @license     GNU General Public License version 2 or later; see LICENSE.txt
     */
    
    defined('_JEXEC') or die;
    
    if ($list)
    {
    	$db = JFactory::getDbo();
    	$query = $db->getQuery(true);
    	$query->select($db->qn('core_images'))->from($db->qn('#__ucm_content'));
    	
      foreach ($list as $i => $item)
      {
    		$query->clear('where')
    		->where($db->qn('core_content_id') . ' = ' . (int) $item->core_content_id);
    
    		$db->setQuery($query);
    		$list[$i]->images = $db->loadResult();
      }
    }
    ?>
    <div class="tagssimilar<?php echo $moduleclass_sfx; ?>">
    <?php if ($list) : ?>
    	<ul>
    	<?php foreach ($list as $i => $item) : ?>
    		<li>
    			<?php if (($item->type_alias === 'com_users.category') || ($item->type_alias === 'com_banners.category')) : ?>
    				<?php if (!empty($item->core_title)) : ?>
    					<?php echo htmlspecialchars($item->core_title, ENT_COMPAT, 'UTF-8'); ?>
                        
    				<?php endif; ?>
    			<?php else : ?>
    				<a href="<?php echo JRoute::_($item->link); ?>">
    					<?php if (!empty($item->core_title)) : ?>
    						<?php echo htmlspecialchars($item->core_title, ENT_COMPAT, 'UTF-8'); ?>
    					<?php endif; ?>                    
    				</a>
    				<?php $images = json_decode($item->images); ?>
    				<?php if( !empty($images->image_intro) ) : ?>
    				 <img src="<?php echo $images->image_intro; ?>" alt="<?php echo htmlspecialchars($item->title); ?>" />
    				<?php endif; ?>
    
    			<?php endif; ?>
    
    		</li>
    	<?php endforeach; ?>
    	</ul>
    <?php else : ?>
    	<span><?php echo JText::_('MOD_TAGS_SIMILAR_NO_MATCHING_TAGS'); ?></span>
    <?php endif; ?>
    </div>
    Geändert von Re:Later (22.05.2019 um 13:21 Uhr)
    Joomlafachmann: https://www.ghsvs.de

  8. #7
    Neu an Board Avatar von malloth
    Registriert seit
    27.04.2011
    Beiträge
    61
    Bedankte sich
    6
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Ah, ja klar... macht ja auch durchaus Sinn. Vielen lieben Dank für deine Mühe und Geduld.

    Leider funktioniert es immer noch nicht.

    Es kommt nun der Fehler "Not unique table/alias: '#__ucm_content' "

    Ich habe auch schon versucht den Präfix con #__ucm auszutauschen Aber dann ist core_content falsch usw.

  9. #8
    Gehört zum Inventar Avatar von Re:Later
    Registriert seit
    21.04.2014
    Ort
    Berlin
    Beiträge
    5.779
    Bedankte sich
    155
    Erhielt 2.246 Danksagungen
    in 2.014 Beiträgen

    Standard

    Probier ich das bei mir mal aus. War ja Trockenübung ;-)
    Joomlafachmann: https://www.ghsvs.de

  10. #9
    Gehört zum Inventar Avatar von Re:Later
    Registriert seit
    21.04.2014
    Ort
    Berlin
    Beiträge
    5.779
    Bedankte sich
    155
    Erhielt 2.246 Danksagungen
    in 2.014 Beiträgen

    Standard

    So noch mal. Code oben unter "Komplett:" berichtigt.

    Habe aber nur mit 2 Bildern getestet. Wenn bei dir jetzt Durcheinander (falsche Bilder), mach ich halt noch mal ganz "unschick" ;-) Bin verunsichert ;-)
    Joomlafachmann: https://www.ghsvs.de

  11. Erhielt Danksagungen von:


  12. #10
    Neu an Board Avatar von malloth
    Registriert seit
    27.04.2011
    Beiträge
    61
    Bedankte sich
    6
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Ah, Super! Das klappt bestens!

    Vielen vielen Dank für deine Mühe. Ich werde mir die Thematik auf jedenfall nochmal genauer anschauen.

    Das hat mir bei dem Projekt wirklich sehr geholfen.

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein