www.timohummel.com (Contenido > 4.4.2)
Moderator: Moderatoren
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
www.timohummel.com (Contenido > 4.4.2)
Projektart: Semi-Private Website
Designphase: ca. 1 Manntag
Implementierungsphase: ca. 4 Manntage
Anzahl der Seiten: ca. 150
Besonderheiten:
- Mitgliederbereich
- Seperierung der Mitgliederrechte (manuelle Rechteabfrage über $perm)
- Automatische Eventverwaltung (direkt über Artikel)
- Automatisches MP3-Listing (sowohl für Mitglieder als auch für jedermann)
WICHTIG! Bitte nicht irgendwas "testen" - ich habe keine Lust ständig eure Test-Einträge zu löschen, DANKE!
Aus gegebenen Anlässen: Der nächste, der die Shoutbox "testet", wird ERSCHOSSEN!.
Designphase: ca. 1 Manntag
Implementierungsphase: ca. 4 Manntage
Anzahl der Seiten: ca. 150
Besonderheiten:
- Mitgliederbereich
- Seperierung der Mitgliederrechte (manuelle Rechteabfrage über $perm)
- Automatische Eventverwaltung (direkt über Artikel)
- Automatisches MP3-Listing (sowohl für Mitglieder als auch für jedermann)
WICHTIG! Bitte nicht irgendwas "testen" - ich habe keine Lust ständig eure Test-Einträge zu löschen, DANKE!
Aus gegebenen Anlässen: Der nächste, der die Shoutbox "testet", wird ERSCHOSSEN!.
Zuletzt geändert von timo am Sa 12. Feb 2005, 16:15, insgesamt 2-mal geändert.
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
60 minuten mp3 download? was lädst du da runter, oder meinst du die tracklänge? dann hast du wohl nen mix erwischt -> die tracks findest du unter "Tracks" und die sind wesentlich kleiner
der server ist einer der schnellsten, den ich je gesehen habe - und das waren viele (lob an dieser stelle an hetzner)
der server ist einer der schnellsten, den ich je gesehen habe - und das waren viele (lob an dieser stelle an hetzner)
-
- Beiträge: 19
- Registriert: Sa 29. Nov 2003, 20:56
- Kontaktdaten:
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
Auf Wunsch hier meine beiden Navigationsmodule:
Wichtig: Die Module sind nur mit der 4.5 entwickelt worden - ob diese auf der 4.4 laufen weiß ich nicht!
nav_Top Input:
nav_Top Output:
nav_Left Input:
nav_Left output:
Wichtig: Die Module sind nur mit der 4.5 entwickelt worden - ob diese auf der 4.4 laufen weiß ich nicht!
nav_Top Input:
Code: Alles auswählen
/**
* Navigation
*
* INPUT
*
* @autor Jan Lengowski <Jan.Lengowski@4fb.de>
* @copyright four for business AG 2003
*/
?>
<table cellspacing="0" cellpadding="0" cellpadding="4">
<tr>
<td class="text">Baum wählen:</td>
<td>
<select name="CMS_VAR[0]">
<option value="0">-- kein --</option>
<?php
$sql = "SELECT
A.idcat,
C.name
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
C.idlang = '".$lang."' AND
B.idclient = '".$client."' AND
C.visible = 1 AND
A.level = '0'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
if ( "CMS_VALUE[0]" == $db->f("idcat") ) {
echo '<option selected="selected" value="'.$db->f("idcat").'">'.$db->f("name").'</option>';
} else {
echo '<option value="'.$db->f("idcat").'">'.$db->f("name").'</option>';
}
}
?>
</select>
</td>
</tr>
</table>
<?php
Code: Alles auswählen
<?php
if (!is_object($db2))
{
$db2 = new DB_Contenido;
}
/**
* Check if a category is child
* of another category
*
* @return boolean true/false
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
* @copyright four for business AG 2003
*/
function catIsChildOf($id, $idparent) {
global $cfg, $client, $lang;
$db = new DB_Contenido;
$parent = $id;
while ( $parent != 0 ) {
$sql = "SELECT
a.parentid
FROM
".$cfg["tab"]["cat"]." AS a,
".$cfg["tab"]["cat_lang"]." AS b
WHERE
a.idclient = '".$client."' AND
b.idlang = '".$lang."' AND
a.idcat = b.idcat AND
a.idcat = '".$parent."'";
$db->query($sql);
$db->next_record();
$parent = $db->f("parentid");
if ($parent == $idparent) {
return true;
}
}
return false;
}
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
/* Template Instance */
//$tpl = new Template;
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
function nav($idcat) {
global $navitems, $client, $lang, $cfg, $perm;
$db = new DB_Contenido;
$db2 = new DB_Contenido;
$sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";
$db->query($sql);
$db->next_record();
$parentid = $db->f("parentid");
if ( $parentid == 0 ) {
if ( $idcat != "CMS_VALUE[0]" ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name,
C.public
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = 'CMS_VALUE[0]'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm())
{
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$parentid'
ORDER BY
A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$sel_idcat'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
/* Create Navigation Array */
nav($sel_idcat);
$fullwrap = '<table height="18" border="0" cellspacing="0" cellpadding="0">
<tr>
%s
</tr>
</table>';
$wrap = '<td class="cw" nowrap="nowrap" onMouseOut="Switch1(this);" onMouseOver="Switch1(this);"><a class="topnav1" href="index-a-%s.html">%s</a></td>
';
$wrap2 = '<td class="c4" nowrap="nowrap"><a class="topnav1" href="index-a-%s.html">%s</a></td>
';
$allitems = "";
$root_idcat = capi_cat_getlevelnode($idcat, 2);
foreach ($navitems as $item)
{
if ( $root_idcat == $item["idcat"])
{
$allitems .= sprintf($wrap2, $item["idcat"], str_replace(" ", " ", $item["name"]));
} else {
$allitems .= sprintf($wrap, $item["idcat"], str_replace(" ", " ", $item["name"]));
}
}
printf($fullwrap, $allitems);
?>
Code: Alles auswählen
// selected category
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr valign=\"top\">
<td>Kategorie wählen:</td>
<td>
<select name=\"CMS_VAR[0]\">";
if($selected!="0" && $selected!=""){
echo"<option value=\"0\">--- kein ---</option>";
}else{
echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
}
// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
$cfg["tab"]["cat"]." AS B, ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
"AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
"AND C.visible=1 ORDER BY A.idtree";
// execute query
$db->query($query);
// loop result and build the options
while ($db->next_record()) {
// indent spacer
$spaces = "|";
// how many levels
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
// add 2 spaces for every level
$spaces = $spaces . "--";
} // end for
$spaces .= ">";
if ($selected == $db->f("idcat")) {
// selected category
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
// category
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} // end if
} // end while
echo " </select>";
echo " </td>
</tr>
</table>";
Code: Alles auswählen
<?php
global $cfgClient;
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Navigation 1.1
* Author : Jan Lengowski
* Copyright : Contenido - four for business
* Created : 15-05-2003
* Modified : 26-05-2003
************************************************/
if ( !is_object($db2) ) {
$db2 = new DB_Contenido;
}
global $cfg;
function isInCache2 ($filename)
{
$cachetime = 30;
if (!file_exists($filename))
{
return false;
}
$mod = filemtime($filename);
if (($mod + 60*$cachetime)< time())
{
return false;
}
return true;
}
/**
* Check if a category is child
* of another category
*
* @return boolean true/false
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
* @copyright four for business AG 2003
*/
function catIsChildOf2($id, $idparent) {
global $cfg, $client, $lang;
$db = new DB_Contenido;
$parent = $id;
while ( $parent != 0 ) {
$sql = "SELECT
a.parentid
FROM
".$cfg["tab"]["cat"]." AS a,
".$cfg["tab"]["cat_lang"]." AS b
WHERE
a.idclient = '".$client."' AND
b.idlang = '".$lang."' AND
a.idcat = b.idcat AND
a.idcat = '".$parent."'";
$db->query($sql);
$db->next_record();
$parent = $db->f("parentid");
if ($parent == $idparent) {
return true;
}
}
return false;
}
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
$root_idcat = capi_cat_getlevelnode($idcat, 2);
/* Create Navigation Array */
if ($auth->auth["uid"] != "nobody")
{
$sql = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B, ".$cfg["tab"]["cat_tree"]." AS C WHERE parentid = '$root_idcat'
AND B.visible = '1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND B.idcat = C.idcat AND A.idclient = '$client' ORDER BY C.idtree ASC";
} else {
$sql = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B, ".$cfg["tab"]["cat_tree"]." AS C WHERE parentid = '$root_idcat'
AND B.visible = '1' AND B.public='1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND B.idcat = C.idcat AND A.idclient = '$client' ORDER BY C.idtree ASC";
}
$db->query($sql);
$db2 = new DB_Contenido;
$db3 = new DB_Contenido;
while ($db->next_record())
{
$mainnavi[$db->f("idcat")]["name"] = $db->f("name");
$mainidcat = $db->f("idcat");
if ($auth->auth["uid"] != "nobody")
{
$sql2 = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B WHERE parentid = '$mainidcat'
AND B.visible = '1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND A.idclient = '$client' ORDER BY B.name ASC";
} else {
$sql2 = "SELECT A.idcat, B.name FROM ".$cfg["tab"]["cat"]." AS A, ".$cfg["tab"]["cat_lang"]." AS B WHERE parentid = '$mainidcat'
AND B.visible = '1' AND B.public='1' AND B.idcat = A.idcat AND B.idlang = '$lang' AND A.idclient = '$client' ORDER BY B.name ASC";
}
$db2->query($sql2);
while ($db2->next_record())
{
$subnavs[$db2->f("idcat")]["name"] = $db2->f("name");
}
$mainnavi[$db->f("idcat")]["subnav"] = $subnavs;
unset($subnavs);
}
$wrap1 = '<tr><td class="ln1" onmouseover="Switch2(this);" onmouseout="Switch2(this);"><a class="topnav1" href="index-a-%s.html">%s</a>
</td>
</tr>';
$wrap1a = '<tr><td class="ln1s"><a class="topnav1" href="index-a-%s.html">%s</a>
</td>
</tr>';
$wrap2 = '<tr><td class="ln2" onmouseover="Switch3(this);" onmouseout="Switch3(this);"><a class="topnav1" href="index-a-%s.html">%s</a>
</td>
</tr>';
$wrap2a = '<tr><td class="ln2s"><a class="topnav1" href="index-a-%s.html">%s</a>
</td>
</tr>';
$ewrap = '<tr><td style="border: 0px; border-top: 1px; border-color: white; border-style: solid;"><img src="images/base/empty.gif" alt="" height="20" width="1"></td></tr>';
$allitems = "";
foreach ($mainnavi as $key => $value)
{
if ($key == $idcat)
{
$allitems .= sprintf($wrap1a, $key, $value["name"]);
} else {
$allitems .= sprintf($wrap1, $key, $value["name"]);
}
if (is_array($value["subnav"]))
{
foreach ($value["subnav"] as $key => $value)
{
if ($key == $idcat)
{
$allitems .= sprintf($wrap2a, $key, $value["name"]);
} else {
$allitems .= sprintf($wrap2, $key, $value["name"]);
}
}
}
$allitems .= $ewrap;
}
?>
<img src="images/base/empty.gif" alt="" width="1" height="20">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
echo $allitems;
?>
</table>
Gefällt mir gut
Hallo.
Gratuliere, ist sehr gut. Wenig Farben, das ist sehr angenehm.
Eines ist mir aber aufgefallen: die Zellenbreite in der oberen Navigation für die Sprachwahl dürfte anscheinend zu kurz ausgefallen sein, drum sehe ich nur Deutsc statt Deutsch bzw. Englis statt English.
Eine andere Frage: die Breadcrumbs. Gibt es diese als Modul?
LG
MHL
Gratuliere, ist sehr gut. Wenig Farben, das ist sehr angenehm.
Eines ist mir aber aufgefallen: die Zellenbreite in der oberen Navigation für die Sprachwahl dürfte anscheinend zu kurz ausgefallen sein, drum sehe ich nur Deutsc statt Deutsch bzw. Englis statt English.
Eine andere Frage: die Breadcrumbs. Gibt es diese als Modul?
LG
MHL
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
ja, den Sprachenwechsler muß ich überarbeiten
klaro gibts das als modul, aber nur als 4.5.2+
klaro gibts das als modul, aber nur als 4.5.2+
Code: Alles auswählen
<?php
function mbCreateLocationString($idcat)
{
global $cfg, $client, $lang, $cat_str;
$db = new DB_Contenido;
$sql = "SELECT
a.name AS name,
c.level AS level,
a.idcat AS idcat,
b.parentid AS parentid
FROM
".$cfg["tab"]["cat_lang"]." AS a,
".$cfg["tab"]["cat"]." AS b,
".$cfg["tab"]["cat_tree"]." AS c
WHERE
a.idlang = '".$lang."' AND
b.idclient = '".$client."' AND
b.idcat = '".$idcat."' AND
c.idcat = b.idcat AND
a.idcat = b.idcat";
$db->query($sql);
$db->next_record();
$name = $db->f("name");
$parentid = $db->f("parentid");
$cat_str[] = Array("name" => $name, "idcat" => $db->f("idcat"), "level" => $db->f("level"));
if ( $parentid != 0 ) {
mbCreateLocationString($parentid);
}
}
mbCreateLocationString($idcat);
foreach ($cat_str as $key => $value)
{
if ($value["level"] > 0)
{
if ($key == 0)
{
$str = '<a class="location" href="index-a-'.$value["idcat"].'.html">'.$value["name"] . "</a>";
} else {
$str = '<a class="location" href="index-a-'.$value["idcat"].'.html">'.$value["name"] . "</a> > ".$str;
}
}
}
echo '<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td align="left"><p class="location">'.mi18n("You are here").": ".$str.'</p></td><td align="right"> </td></tr></table>';
?>
Hallo Timo, ich test gerade ein wenig die Schwachstellen den Shoutbox aus, wie du vielleicht gemerkt hast
Leider musste ich feststellen dass folgendes möglich ist:
http://www.timohummel.com/de/front_cont ... box_page=1
Die Verwendung von
als Überprüfung auf das Backend scheint mir nicht so geeignet. Kann man das besser machen?
Gruß
Nico
Leider musste ich feststellen dass folgendes möglich ist:
http://www.timohummel.com/de/front_cont ... box_page=1
Die Verwendung von
Code: Alles auswählen
if ($edit)
Gruß
Nico
¿ umop ap!sdn - upside down ?
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
So what, weil es nicht von mir ist Das wäre im Thread des Moduls besser aufgehoben.nk111 hat geschrieben:Hätte ja sein können, dass es dich interessiert. Ich habe bei dir ein Modul gesehen. Ich habe es bei mir installiert. Ich habe einen Fehler gefunden. Ich habe dich darauf aufmerksam gemacht. So what?
cheers!