Ja, das Objekt $module reicht mir aus. Die Reihenfolge steht nicht drin, aber zur Identifikation kann ich ja nun die ID nehmen.
Danke!
Ja, das Objekt $module reicht mir aus. Die Reihenfolge steht nicht drin, aber zur Identifikation kann ich ja nun die ID nehmen.
Danke!
Hallo Community,
ich schreibe mir gerade ein eigenes Modul, um Diagramme in meine Webseite einbinden zu können.
Im Backend kann ich für das Modul verschiedene Parameter im <config> der mod_.xml vergeben. Diese kann ich dann im Module mit:
auslesen und weiter verarbeiten.
Soweit so gut. Aber wie komme ich an die anderen Informationen, wie z.B. Titel oder Reihenfolge?
Hat jemand eine Idee?
Ich habe es über:
versucht, aber dort finde ich die Infos nicht. Ich könnte es natürlich über die DB abfragen, aber dazu müsste das Modul über sich selbst bescheid wissen.
teccrow
Hallo Community,
auf einer Seite habe ich Content, wo eine Email über das Plugin verschleiert werden soll und auch ein Modul, wo eine Email verschleiert werden soll.
Im Modul habe ich die Option "Inhalte vorbereiten" aktiviert und die Email wird verschleiert. Im Content wird die Email jedoch mit der Meldung "Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!"
Das passiert auch, wenn ich im Modul eine zweite Email angebe.
Kann das Plugin nur eine Email pro Seite verschleiern oder habe ich etwas falsch konfiguriert?
Aha! Alles klar.
Dann gehts auch.
Danke
Hallo Community,
ich habe das Plugin "JCE Mediabox" installiert. Wenn ich nach der Installation, das PlugIn im Backend in der Tabellenansicht nur aktiviere läuft es prima.
Wenn ich die Einstellungen des PlugIn öffne und diesen Dialog speichere funktioniert das PlugIn nicht mehr.
Ich habe die JoomlaInstallation auf einem Kundenserver gemacht, der Windows nutzt. In den Einstellungen des JCE Mediabox Plugin habe ich beim Parameter "Popupthema" folgende Auswahl:
Wenn ich nun speichere bekomme ich beim Frostend, wenn ich auf das Bild klicke in der Console die Fehlermeldung:
Failed to load resource: the server responded with a status of 400 (Bad Request): http://dannenmann-gmbh.de/dev/plugins/system/jcemediabox/themes/C:Inetpub%0Bhostsdannenmann-gmbh.dehttpdocsdevpluginssystemjcemediaboxhemes/light/popup.htmlFailed to load resource: the server
Kann mir da jemand helfen?
Hallo,
ich erstelle hier gerade ein neues Template.
Die vorgesehene Slideshow wird Bilder in der Größe 860x430 enthalten. Wenn der Browser größer als 860 Pixel (bis max. 1600px) ist entstehen link und rechts neben der Slideshow weiße Ränder die jeweils mit einem IMG gefüllt werden sollen.
<div class="row wrapper-slideshow"> <div class="slideshow"><img src="http://placehold.it/860x430"> <div class="slideshow-left"></div> <div class="slideshow-right"></div> </div> </div>
.wrapper-slideshow{
-webkit-box-shadow: 0px 5px 5px 0px rgba(120,120,120,0.75);
-moz-box-shadow: 0px 5px 5px 0px rgba(120,120,120,0.75);
box-shadow: 0px 5px 5px 0px rgba(120,120,120,0.75);
}
.slideshow{
margin: 0 auto;
max-width: 860px;
position: relative;
img {
max-width: 100%;
}
}
.slideshow-left, .slideshow-right{
display: none;
}
.slideshow-left{
background-image: url(templates/templateburgermetallbaugmbh/images/slidelinks.jpg);
}
.slideshow-right{
background-image: url(templates/templateburgermetallbaugmbh/images/sliderechts.jpg);
}
@media (min-width: 861px) {
.slideshow-left, .slideshow-right{
display: none;
width: 370px;
height: 430px;
position: absolute;
overflow: hidden;
}
.slideshow-left{
top: 0px;
left: -370px;
}
.slideshow-right{
top: 0px;
right: -370px;
}
}
Alles anzeigen
Wenn ich nun im CSS Zeile 31 die Eigenschaft display auf block setze, werden die IMG über den Rand rechts hinaus angezeigt.
Kann mir jemand helfen und mir einen Tipp geben?
teccrow
Ich nutze das Plugin "DirectPHP" um php-Code direkt im Beitrag auszuführen. Diese Beiträge mag der Indexierer nicht.
Hallo Community,
ich habe eine Joomla 3.5.1 Installation mit ca. 280 Beiträgen. Für die Beiträge möchte ich gerne die Indexierung nutzen. Deshalb habe ich auch nur die PlugIns "Inhalt - Suchindex" vom Typ "content" und "Suchindex - Inhalt" vom Typ "finder" aktiviert.
Wenn ich die Indexierung starte, öffnet sich auch das Popup, aber der Fortschrittsbalken bleibt bei 0%. Schließe ich das Popup nach einer Weile (5 min) werden mir 16 Titel angezeigt.
Wenn ich die Safari-Konsole öffne, bekomme ich folgende Fehlermeldung:
SyntaxError: JSON Parse error: Unrecognized token '<'
Kann mir jemand helfen?
teccrow
Hallo,
ich möchte Daten aus der Datenbank in einer Liste anzeigen. Dazu nutze ich die Funktion "getListQuery()" im Model. Hier der Code:
protected function getListQuery() { // Start der Datenbankabfrage $db = $this->getDbo(); $query = $db->getQuery(true); // Erzeugen der Abfrage $query->from('#__heka_rss_feeds_sources as a'); $query->select('a.*'); $query->where('a.published = 1'); // Add the list ordering clause. $sort = $this->getState('list.ordering'); $order = $this->getState('list.direction'); $query->order($db->escape($sort). ' ' .$db->escape($order)); $query->setLimit (50,2); // Rückgabe des Query-Objektes echo $query->dump(); //Testausgabe SQL-Dump return $query; }
In der View wird die Limitauswahl nicht verwendet, da ich nur 50 Datensätze anzeigen lasse. Wenn ich allerdings das Limit über setLimit() setze wird nur der Offset übernommen. Die Limit der Datensätze bleibt bei 20, obwohl ich ihn auf 50 gesetzt habe. Die Ausgabe des Dump ist korrekt!
SELECT a.*
FROM vgfrs_heka_rss_feeds_sources as a
WHERE a.published = 1
ORDER BY last_build_date ASC LIMIT 2, 50
Denkfehler oder gibt es da einen Bug?
teccrow
Hallo Community,
ich habe eine eigene Komponente geschrieben, welche externe RSS-Feeds und in der Joomla Datenbank speichert. Im Backend verwaltet ich die Quellen und die einzelnen Feeds.
Über einen Cronjob, wird eine versteckte Frontend Seite in Joomla aufgerufen, die das Speichern der Feeds in die Datenbank übernimmt.
Um die Daten zu Speichern nutze ich folgenden Code:
$db = JFactory::getDBO();
foreach ($this->feedProperties as $key => $value) {
$query = $db->getQuery(true);
$query->select('COUNT(*)');
$query->from($db->quoteName('#__heka_rss_feeds'));
$query->where($db->quoteName('id_feedsource')." = ".$db->quote($db->escape($value['source'])));
$query->where($db->quoteName('title')." = ".$db->quote($db->escape($value['title'])));
// Reset the query using our newly populated query object.
$db->setQuery($query);
$count = $db->loadResult();
if ($count < 1){
// Create a new query object.
$query = $db->getQuery(true);
// Insert columns.
$columns = array('id',
'id_feedsource',
'title',
'link',
'pubDate',
'timePubDate',
'guid',
'description',
'creator',
'content' ,
'read',
'smart',
'demografie',
'urbanisierung',
'arbeitswelten',
'konnektivitaet',
'nano',
'femaleshift',
'energie',
'bildung',
'individualisierung',
'public',
'cache');
// Insert values.
$values = array('NULL',
$db->quote($db->escape($value['source'])),
$db->quote($db->escape($value['title'])),
$db->quote($db->escape($value['link'])),
$db->quote($db->escape($value['pubDate'])),
$db->quote($value['timePubDate']),
$db->quote($db->escape($value['guid'])),
$db->quote($db->escape($value['description'])),
$db->quote($db->escape($value['creator'])),
$db->quote($db->escape($value['content'])),
0,0,0,0,0,0,0,0,0,0,0,0,0);
// Prepare the insert query.
$query
->insert($db->quoteName('#__heka_rss_feeds'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
// Set the query using our newly populated query object and execute it.
$db->setQuery($query);
$db->execute();
}
}
Alles anzeigen
Nun habe ich ein Problem mit der Funktion $db->escape(). Vor den Sonderzeichen wird immer ein Backslash hinzugefügt und so in der Datenbank gespeichert. Und im Backend auch angezeigt.
Was mache ich falsch?
teccrow
Hallo,
in meiner Komponente lese ich unterschiedliche externe RSS-Feed XML-Dateien aus und speichere sie in meiner Datenbank.
Vor dem Speichern in die DB werden die String's escaped:
$values = array('NULL',$db->quote($db->escape($value['source'])),$db->quote($db->escape($value['title'])),$db->quote($db->escape($value['link'])),$db->quote($db->escape($value['pubDate'])),$db->quote($value['timePubDate']),$db->quote($db->escape($value['guid'])),$db->quote($db->escape($value['description'])),$db->quote($db->escape($value['creator'])),$db->quote($db->escape($value['content'])),0,0,0,0,0,0,0,0,0,0,0,0,0);
Nun ist mir aufgefallen, dass bei zwei unterschiedlichen XML-Dateien (beide UTF-8), die Daten mal mit "\" mal ohne eingetragen werden:
<title>SED-Zentralkomitee: "Hier wird unsere Partei beleidigt!"</title>
<title>Smart, kompakt und vielseitig: „Biosensoren“ sollen patientennahe Diagnostik erleichtern</title>
Ergebnis:
Wie kommt das? Worauf muß ich achten?
Fehler gefunden:
Ich hatte die falsche Controller Class erweitert. Statt 'JControllerForm' hatte ich 'JControllerAdmin' verwendet.
Jetzt läuft es!
Hallo Community,
ich stehe voll auf dem Schlauch und sehe scheinbar den Wald vor lauter Bäumen nicht.
Ich habe im Backend eine Liste "Sources" erstellt. Die einzelnen Einträge will ich nun editieren. Dazu habe ich den 'title' mit
<?php$mylink = JRoute::_('index.php?option=com_hekarssfeeds&task=source.edit&id='.$item->id);echo '<a href="'.$mylink.'">'.$this->escape($item->title).'</a>';?>
Normalerweise sollte dieser Link nun in
http://localhost:8888/Joomla_3x/administrator/index.php?option=com_hekarssfeeds&view=source&layout=edit&id=1
ausgelöst werden. Jedoch steht im Browserfenster:
http://localhost:8888/Joomla_3x/administrator/index.php?option=com_hekarssfeeds&task=source.edit&id=1
Nach meinem Verständnis löst der Controller den Task auf, aber dies ist ja eine Standardfunktion. Bei einer weiteren selbst erstellten Komponente funktioniert es. Ich bin den Code schon rauf und runter gegangen, aber ...
Könnt ihr mir einen Denkanstoss geben, bitte?
teccrow
ZitatDu bekommst eine Fehlermeldung durch den Browser Chrome, weil du dessen Validierung verwendest.
Aha, das war mir bisher nicht klar!
Zitat3) "client-seitige" Validierung verwenden = Joomla-Validierung
Okay, habe ich gemacht und funktioniert. Dieses Tutorial hat mir dabei geholfen.
Danke!
Aus meiner Sicht:
Oder liege ich da falsch?
Wenn ich im Fieldset required="true" angebe, wird ja bereits geprüft, ob das Feld ausgefüllt wurde. Es gibt nur keine Anzeige mehr, das das Feld "display:none;" ist.
Hallo Community,
ich mir eine eigene Komponente gebaut. Diese Komponente beinhaltet ein Formular im Frontend. Dieses Formular enthält neben einer Kategorieliste, Textfeldern auch eine Multiselect-Liste. Diese Multiselect-Liste habe ich mit der JS-Bibliothek "chosen.jquery" versehen, um das Handling zu verbessern. So weit so gut.
Hier mal die Felddefinitionen:
<field name="field_id" type="list" label="COM_HEKAINNOVATIONS_FIELD_LABEL" description="COM_HEKAINNOVATIONS_FIELD_DESC" class="span9" multiple="true" default="" required="true"> <option value="1">COM_HEKAINNOVATIONS_FIELD_1</option> <option value="2">COM_HEKAINNOVATIONS_FIELD_2</option> <option value="3">COM_HEKAINNOVATIONS_FIELD_3</option> <option value="4">COM_HEKAINNOVATIONS_FIELD_4</option> <option value="5">COM_HEKAINNOVATIONS_FIELD_5</option> <option value="6">COM_HEKAINNOVATIONS_FIELD_6</option> </field>
Meine Harausforderung liegt im "required=true". Die Multiselect-Liste ist default nur mit einem Placeholder versehen. Es muss eine Option ausgewählt werden, bevor das Formular abgesendet werden kann.
Bei den anderen Pflichtfeldern wird über JS ein Hinweis angezeigt (siehe Anhang). Bei der Multiselect-Liste jedoch nicht. Und ich erhalte die Fehlermeldung:
Die JS-Bibliothek "chosen.jquery" ersetzt ja quasi die Multiselect-Liste und setzt diese auf "display: none;".
Gibt es einen Workaround, um den Hinweis, wie bei den anderen Feldern einzublenden?
teccrow