Support for SermonSpeaker 5.x is in bugfix mode only, the same as it is for Joomla 3.10.
I will not add any new features to this releases.
Please upgrade to SermonSpeaker 6.x and Joomla 4.x, which is better anyway.

Prediger mit Schalgwörter wird nicht gespeichert!

More
14 Oct 2013 17:57 - 14 Oct 2013 17:59 #3952 by Thomas Hunziker
Versuchs mal mit dem folgenden SQL Query wobei du zuerst das "#__" des Tabellennamens mit deinem Datenbank Prefix ersetzen musst.
Code:
INSERT INTO `#__content_types` (`type_title`, `type_alias`, `table`, `rules`, `field_mappings`, `router`) VALUES ('Speaker', 'com_sermonspeaker.speaker', '{"special":{"dbtable":"#__sermon_speakers","key":"id","type":"Speaker","prefix":"SermonspeakerTable","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"bio","core_hits":"hits","core_publish_up":null,"core_publish_down":null,"core_access":null,"core_params":null,"core_featured":null,"core_metadata":null,"core_language":"language","core_images":"pic","core_urls":null,"core_version":null,"core_ordering":"ordering","core_metakey":"metakey","core_metadesc":"metadesc","core_catid":"catid","core_xreference":null,"asset_id":null},"special":{}}', 'SermonspeakerHelperRoute::getSpeakerRoute'), ('Serie', 'com_sermonspeaker.serie', '{"special":{"dbtable":"#__sermon_series","key":"id","type":"Serie","prefix":"SermonspeakerTable","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"series_description","core_hits":"hits","core_publish_up":null,"core_publish_down":null,"core_access":null,"core_params":null,"core_featured":null,"core_metadata":null,"core_language":"language","core_images":"avatar","core_urls":null,"core_version":null,"core_ordering":"ordering","core_metakey":"metakey","core_metadesc":"metadesc","core_catid":"catid","core_xreference":null,"asset_id":null},"special":{}}', 'SermonspeakerHelperRoute::getSerieRoute');

Das sollte die beiden fehlenden Einträge ergänzen.
Last edit: 14 Oct 2013 17:59 by Thomas Hunziker. Reason: Fehler weggemacht

Please Log in or Create an account to join the conversation.

More
14 Oct 2013 20:53 #3954 by tobisagt
Super, danke! Werde ich gleich morgen früh testen.

Könntest du mir wegen den Tags noch einen kleinen Anreiz geben? :)
Ich bekomme es hin das die Datensätze angezeigt werden, allerdings funktioniert das noch nicht dynamisch. Ich habe mir das sermonspeaker Modul als Hilfe genommen, bekomme aber den letzten Schliff nicht so ganz hin. :(

Mir reichen erstmal Hinweise, sofern du welche geben kannst.
Danke für deinen super Support! :)

Please Log in or Create an account to join the conversation.

More
14 Oct 2013 21:17 #3955 by Thomas Hunziker
Mal sehen. Also grundsätzlich könntest sogar mit Content Plugins arbeiten. Die Tags View wirft verschiedene Events. "afterDisplayTitle", "beforeDisplayContent" und "afterDisplayContent". Das hätte den Vorteil dass man das Plugin dann auch anderen zur Verfügung stellen könnte, ist aber etwas komplexer als ein Layout Override ;-)

Im Layout musste grundsätzlich mal zuerst die Predigt laden um die ID vom Prediger zu kriegen. Entweder direkt mittels SQL Query
Code:
'SELECT speaker_id FROM #__sermon_sermons WHERE id = '.$item->core_content_id
Mit dieser ID kannst dann die Predigerdaten rausholen mit nem ähnlichen Query.

Oder du kannst auch die Tables nutzen, dann musste dich ned mit SQL rumschlagen. Sowas zB sollte gehen:
Code:
require_once(JPATH_ADMINISTRATOR.'/components/com_sermonspeaker/tables/speaker.php'); $table = JTable::getInstance('TableSpeaker', 'Sermonspeaker'); $table->load($id);
Danach hast ein Objekt mit allen Predigerdaten der entsprechend $id. Mit echo $table->title würdest dann den Namen ausgeben.

Please Log in or Create an account to join the conversation.

More
15 Oct 2013 08:45 #3957 by tobisagt
Guten Morgen,

erstmal danke für deine Mühe! :)

Das mit dem SQL Query hat funktioniert! Nun kann ich tags hinzufügen :)

Mit den Predigtdaten bin ich auch ein gutes Stück weiter! :)

Ich bekomme jetzt die Daten rein, allerdings werden die nicht ganz richtig zugeordnet!

Ich habe mal nen Screenshot angehängt damit du siehst was ich meine. Die Titel habe ich mal in die richtige ID's umbenannt.

Ich habe folgendes getestet:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('sermons.id, sermons.title, sermons.notes, sermon_date, sermon_time, audiofile, videofile, sermons.hits, sermon_date');
$query->select('CASE WHEN CHAR_LENGTH(sermons.alias) THEN CONCAT_WS(\':\', sermons.id, sermons.alias) ELSE sermons.id END as slug');
$query->from('`#__sermon_sermons` AS sermons');
$query->where('sermons.id ='.$item->core_content_id);
$db->setQuery($query);
$result = $db->loadResult();


und

'SELECT speaker_id FROM #__sermon_sermons WHERE id = '.$item->core_content_id;
$id = 'SELECT speaker_id FROM #__sermon_sermons WHERE id';



mit dem selben Ergebnis.


Attachments:

Please Log in or Create an account to join the conversation.

More
15 Oct 2013 10:50 #3958 by Thomas Hunziker
Sorry, ganz so einfach kopieren kannst meinen Code nicht :)

Wenn du den Querybilder schon kennst, dann nutz den nur. Ist das Schönste was du machen kannst.
Also um die ID des Predigers herauszukriegen:
Code:
$db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('speaker_id'); $query->from('`#__sermon_sermons`'); $query->where('id ='.$item->core_content_id); $db->setQuery($query); $speaker_id = $db->loadResult();
Danach hast in der Variable $speaker_id die ID des Predigers gespeichert. Mit der kannst dann entweder ein neues Query machen auf die Predigertabelle oder aber eben den Code mit der table Instanz nutzen.

Wenn du dich etwas besser mit SQL auskennst kannst du auch Joins nutzen und alles direkt in einem Query machen. Also zB so etwas:
Code:
$db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('speakers.id, speakers.name, speakers.alias'); $query->from('`#__sermon_sermons` AS sermons'); $query->join('LEFT', '`#__sermon_speakers` AS speakers ON sermons.speaker_id = speakers.id'); $query->where('sermons.id ='.$item->core_content_id); $db->setQuery($query); $speaker = $db->loadObject();

Das würde dann ein Objekt ergeben mit den Feldern als Eigenschaften. Das heisst $speaker->name wär dann der Predigername.

Please Log in or Create an account to join the conversation.

More
15 Oct 2013 12:04 #3959 by tobisagt
mmh... das ganze wird immer komischer. Jetzt gibt er den array nur bei der ersten Ausgabe aus...

Ich glaube als Anfänger komme ich da so nicht allein weiter. Ich denke ich belasse es dann erstmal so wies ist.

Ich möchte deine Zeit auch nicht ins unendliche beanspruchen, aber falls du mal Zeit findest könntest du ja ggfl. ne Lösung hierfür anbieten. Würde auch was dafür "spenden" :)

Vielen herzlichen Danke! :)

Please Log in or Create an account to join the conversation.

Time to create page: 0.121 seconds
Powered by Kunena Forum