[in Entwicklung] Smilies kategoriesieren

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Marco19676
Mitglied
Beiträge: 7
Registriert: 12.04.2008 10:08

[in Entwicklung] Smilies kategoriesieren

Beitrag von Marco19676 »

Status: in Entwicklung - Hilfe benötigt

[MINI-MOD] Smilies kategoriesieren

Autor: Marco19676
mit Hilfe von: 4seven
Level: Beginner
Beschreibung: Smilies kategoriesiert in dem Standard-popup aus "Mehr Smilies anzeigen" anzeigen lassen. Kategorien werden manuel im normalen Smilie-Admin-menü in Feld Emotion eingegeben.

Download: keiner, Anleitung folgt hier.
Hinweise: manuelle Handarbeit. Muß ggf. leicht individuell angepasst werden.


[ externes Bild ]

[ externes Bild ]
--------------------------------
Will versuchen die Smilies nach Kategorie anzeigen zu lassen, da es zu viele sind um Sie schnell auf einer Seite alle anzeigen zu lassen.

benötige da jedoch schon ein paar Tipps von Erfahrenen...

Grundidee:
wenn man auf "Mehr Smilies anzeigen" klickt, öffnet sich ja das popup.
hier soll per Drop-Down-Liste die Auswahl passieren.
Die Kategorien sollen später aus der Datenbank "emotion" ausgelesen werden. Also keine Änderung der Datenbank.

Habe das ungefähr versucht (schon etwas gespielt in den varianten):
im template posting_smilies.html

Code: Alles auswählen

<form id="form" name="form" action="posting.php?mode=smilies&f=11" method="post">
  <select name="auswahl" onchange="document.getElementById('form').submit();">
    <option value="Halloween">Halloween</option>
    <option value="Tiere">Tiere</option>
  </select>
</form>
in includes/fuctions_posting.php bei Zeile 70

Code: Alles auswählen

	$last_url = '';
 		$sql = 'SELECT *
		FROM ' . SMILIES_TABLE . ' WHERE ' .
		(($mode == 'inline') ? ' display_on_posting = 1 ' : ' emotion = "$auswahl" ') . '
		 ORDER BY emotion, smiley_order';
	$result = $db->sql_query($sql, 3600);
das erste Problem welches ich habe, das in der Template-Datei kein php funktioniert. habe auch scon den dateinamen in .php umgenannt, trotzdem gibt es keine Ausgabe aus dem php.

Gibt es da einen Lösungsansatz?
Zuletzt geändert von Marco19676 am 13.04.2008 09:36, insgesamt 6-mal geändert.
Marco19676
Mitglied
Beiträge: 7
Registriert: 12.04.2008 10:08

Beitrag von Marco19676 »

jetzt fehlt mir noch die Möglichkeit wie ich aus der posting_smilies.html-Seite den Wert für $f und für $auswahl an die Seite fuctions_posting.php übergeben kann, wo diese per php verarbeitet werden.

Code: Alles auswählen

	$last_url = '';
 		$sql = 'SELECT *
		FROM ' . SMILIES_TABLE . ' WHERE ' .
		(($mode == 'inline') ? ' display_on_posting = 1 ' : ' (emotion = "' . $auswahl .'") ') . '
		 ORDER BY emotion, smiley_order';
	$result = $db->sql_query($sql, 3600);
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Die Idee find ich superklasse :grin:

php-Datein kannst du via

Code: Alles auswählen

<!-- INCLUDE deine_datei.php -->
in Templates einbinden.

Dazu muss sich die php-Datei aber im Template-Verzeichnis befinden.

Nur "direktes" includen geht halt nicht..

Code: Alles auswählen

<? 
include 
("deine_datei.php"); 
?> 
..da php aus Sicherheitsgründen per default in den Boardeinstellungen für templates > Off ist

lg
4seven
Marco19676
Mitglied
Beiträge: 7
Registriert: 12.04.2008 10:08

Beitrag von Marco19676 »

schon ne gute idee, danke

aber das php funktioniert trotzdem nicht.
z.B.

Code: Alles auswählen

<?php echo "TEST"; ?>
es kommt keine Ausgabe..
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

lies mein edit :wink:
Marco19676
Mitglied
Beiträge: 7
Registriert: 12.04.2008 10:08

Beitrag von Marco19676 »

Habe ich irgendwie nicht verstanden... :-?

heisst das, ich muss
1) die datei mit den php-code im template verzeichnis haben, hier: smilie_cat.php
2) aus der Datei posting_smilies.html per code

Code: Alles auswählen

<!-- INCLUDE incl_smilie.php -->
verweisen

3) aus incl_smilie.php zu

Code: Alles auswählen

<?
include ("smilie_cat.php");
?>
wo dann der php-Code endlich ist?
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Marco19676 hat geschrieben:heisst das, ich muss
1) die datei mit den php-code im template verzeichnis haben, hier: smilie_cat.php
2) aus der Datei posting_smilies.html per code

Code: Alles auswählen

<!-- INCLUDE incl_smilie.php -->
fast richtig:

> styles/xxxxx/template/deine_php_datei.php

> styles/xxxxx/template/posting_smilies.html

und dann in die posting_smilies.html

Code: Alles auswählen

<!-- INCLUDE deine_php_datei.php -->
wie du nun die php dateien untereinander vernetzt, musst du letzlich wissen.
die "dürfen" ja miteinander kommunizieren *g

:wink:
Benutzeravatar
BaerchenHH
Mitglied
Beiträge: 1067
Registriert: 29.02.2008 01:42
Wohnort: Hamburg

Beitrag von BaerchenHH »

Wünschenswert wäre, daß gewisse erstellten Kategorien nur für bestimmte User/Gruppen zugänglich sind...

Kannst du soetwas miteinrichten???
Meistens sitzt der Fehler nicht im Computer, sondern davor... :D :D

Das Diskussionsforum für Schule und Bildung: http://www.SchulBildungsForum.de
Marco19676
Mitglied
Beiträge: 7
Registriert: 12.04.2008 10:08

Beitrag von Marco19676 »

der aktuelle Stand:

habe es soweit geschafft, das dropdown zu erstellen usw.
Scheiter gerade nur daran, dass der übergebene Wert nicht ankommt und ich nicht weiß welshalb.

Fang ich mal einfach an:

functions_posting.php

hier soll der Wert der variabel $auswahl ankommen. Wurde nur leicht abgeändert. ca. Zeile 70

Code: Alles auswählen

#### Verändert ####################################################################################################
		$last_url = '';
 		$sql = 'SELECT *
		FROM ' . SMILIES_TABLE . ' WHERE ' .
		(($mode == 'inline') ? ' display_on_posting = 1 ' : ' (emotion = "' . $auswahl .'") ') . '
		 ORDER BY emotion, smiley_order';
	$result = $db->sql_query($sql, 3600);
### Verändert Ende ################################################################################################
direkt davor habe ich folgendes gequetscht

Code: Alles auswählen

#### Start Modifizierung ####################################################################################

	// $auswahl = "Aliens"; // zum Testen der Datenbankabfrage, entsprechend des inhalts in emotion
	$auswahl =$wert;

		// Datenbank
		$sqlcat = 'SELECT `emotion`, COUNT(`code`) 
				FROM ' . SMILIES_TABLE . ' 
				GROUP BY `emotion` 
				ORDER BY `emotion` ASC ';		
		$resultcat = $db->sql_query($sqlcat, 3600);
		
	// Ausgabe der Tabelle "emotion"	
	$smiliescat = array();
	$f = $_GET['f'];
	${'list_emotions'} = '
			<form id="form" name="form" action="posting.php?mode=smilies&f='.$f.'&auswahl='.$auswahl.'" method="post">
			<select name="wert" >';
	while ($rowcat = $db->sql_fetchrow($resultcat))
	{	
	$selected = ($rowcat['emotion'] == $wert_select) ? ' selected="selected"' : '';
	${'list_emotions'} .= '<option value="' . $rowcat['emotion'] . '" ' . $selected . '>' . $rowcat['emotion'] . '</option>'; 
	if (empty($smiliescat[$rowcat['smiley_url']]))
		{
			$smiliescat[$rowcat['smiley_url']] = $rowcat;
		}
	}
			${'list_emotions'} .= '</select> <input class="btnmain" type="submit" name="submit" value="Senden" /></form> ';	

 if (sizeof($smiliescat))
	{
		foreach ($smiliescat as $rowcat)
		{
			$template->assign_vars(array(
				'S_SMILIE_CAT'	=> $list_emotions)
			);
		}
	}

### Ende ##########################################################################################################

als letztes habe ich im style in posting_smilies.html nur folgendes eingefügt:

Code: Alles auswählen

<tr>
	<td class="row1">
   <center>{S_SMILIE_CAT}</center>
    </td>
</tr>
direkt nach "{$CA_CAP_START}{L_SMILIES}{$CA_CAP_END}" ca. Zeile 17

müsste nicht der Wert $wert aus dem dropdown nicht ankommen?
Komme nicht weiter und das ist die letzte Hürde.
Danke & Gruß
Marco
Marco19676
Mitglied
Beiträge: 7
Registriert: 12.04.2008 10:08

Beitrag von Marco19676 »

was muss ich beachten , damit die Variabel auch ankommt?

(Start per Formular)
/style/.../posting_smilies.html
-->
posting.php
-->
includes/functions_posting.php
-->
(Ziel)
/style/.../posting_smilies.html
Danke & Gruß
Marco
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“