Guten Morgen,
inzwischen bin ich minimal weiter, ich drösele es mal auf. Was ich habe, ist diese Funktion, eingebunden als AddOn:
Code: Alles auswählen
function my_extended_urls($_params) {
global $REX;
$sql = rex_sql::factory();
$sql -> setDebug(true);
$tags = $sql->getArray("SELECT t.id, t.term, t.clang as clang_id, c.clang as clang_name FROM `".$REX['TABLE_PREFIX']."mp_tags` t LEFT JOIN `".$REX['TABLE_PREFIX']."clang` c ON c.id = t.clang");
foreach($tags as $tag) :
$pathname = '';
$pathname = seo42_appendToPath($pathname, 'tag');
$pathname = seo42_appendToPath($pathname, $tag['clang_name']);
$pathname = seo42_appendToPath($pathname, $tag['term']);
$pathname = substr($pathname, 0, strlen($pathname) - 1).$REX['ADDON']['seo42']['settings']['url_ending'];
$_params['subject']['SEO42_URLS'][$pathname] = array(
'id' => 8,
'clang' => $tag['clang_id'],
'params' => array('tag_id', $tag['id'])
);
endforeach;
return $_params['subject'];
}
rex_register_extension('SEO42_PATHLIST_CREATED', 'my_extended_urls');
Klicke ich System -> Cache löschen, erhalte ich diese Fehlermeldung:
Code: Alles auswählen
Query: SELECT t.id, t.term, t.clang as clang_id, c.clang as clang_name FROM `rex_mp_tags` t LEFT JOIN `rex_clang` c ON c.id = t.clang
Affected Rows: 0
Error Message: Unknown column 'c.clang' in 'field list'
Error Code: 1054
Leider ist mir der LEFT JOIN Query ein Buch mit sieben Siegeln, also rate ich einfach wild drauf los und ändere c.clang as clang_name in t.clang as clang_name
Immerhin führt er jetzt zu einem Ergebnis:
Code: Alles auswählen
Query: SELECT t.id, t.term, t.clang as clang_id, t.clang as clang_name FROM `rex_mp_tags` t LEFT JOIN `rex_clang` c ON c.id = t.clang
Affected Rows: 2
Dummerweise kommt aber das hier nach:
Code: Alles auswählen
Warning: Missing argument 3 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 12 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 4 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 12 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 3 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 13 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 4 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 13 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 3 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 14 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 4 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 14 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 3 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 12 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 4 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 12 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 3 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 13 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 4 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 13 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 3 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 14 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
Warning: Missing argument 4 for seo42_appendToPath(), called in /www/htdocs/w1234567/domain.de/redaxo/include/addons/functions/funktionen.inc.php on line 14 and defined in /www/htdocs/w1234567/domain.de/redaxo/include/addons/seo42/classes/class.seo42_rewrite.inc.php on line 855
In der Debug-Liste von seo42 sind jetzt zwei fast gute Einträge drin:
Code: Alles auswählen
'tag/0/kreis/' => array ('id' => 8,'clang' => '0','params' => array (
0 => 'tag_id',
1 => '1',),),
'tag/1/circle/' => array ('id' => 8,'clang' => '1','params' => array (
0 => 'tag_id',
1 => '2',),),
Wenn ich mein Halbwissen so gut es geht auswerte, führt der MySQL-Query zwar zu einem Ergebnis, ermittelt aber den Namen der Sprache (de, en) nicht, sondern nimmt stattdessen die ID. Das heißt
funktioniert,
dagegen nicht.
Zwei elementare Fragen bleiben also im Kern:
1. Wie muss der Query lauten, dass er a) zu einem Ergebnis führt und b) den Sprachnamen statt der ID ermittelt?
2. Was sagt mir das wüste Warning-Gewitter übersetzt, besser: wodurch wird es verursacht und wie am besten behoben?
Schöne Grüße
Ralf