Framepflicht

zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Framepflicht

Beitrag von zwiebel »

Hallo, ich kann meinen Kunden nicht davon überzeugen keine Frames zu nutzen!! Er möchte keinen neuen Seitenaufbau der Navigation und des Layouts, nur Content soll logischerweise neuaufbauen. Muß ich einzelne Templates anlegen und wie binde ich die in die Html-Framedatei ein oder nehme ich die gesamte framedatei und lege darin die Container an. Brauche eine ziemlich genaue Beschreibung.

Danke im voraus :?
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

sag ihm einfach frames sind out und sind für blinde und pda benutzer fast unhändelbar.

mfg stony :>
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

Der Kunde ist König und manchmal uneinsichtig.Insofern muß ich mich fügen, hat jemand keine Idee??
ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb »

Mach am besten 2 bzw. mehr Templates / Layouts (zumindestens jeweils eins für Navi bzw. Content) und binde sie in die Frame-Definitionen ein.
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

hallo ttb, ich brauche 3 frames top, left, content und am besten noch die möglichkeit das sich der naviframe (left) nicht auch noch neu aufbaut. Wo finde ich diese defintion unter 4.4.2??

ich habe auch schon drei templates erstellt, wieß nur nicht wie ich die einbinde
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

dafür gebe es einige möglichkeiten...

eine ganz normale html datei mit dem frameset anlegen und in dieser die verweise auf eigens erstellte contenido artikel legen, die jeden einzelnen frame bereich beinhalten...

die navigation wäre dann vermutlich die meiste arbeit um sie immer auf die aktuelle idart und idcat zu verweisen...

man könnte natürlich das frameset auch innerhalb eines layouts definieren -> mit container die dann mittels modul auf einen jeweiligen artikel verweisen können... (das modul würde dann die frame tags einfach hineinschreiben) diese möglichkeit wäre etwas flexibler

ebenso gut könnte man das komplette frameset construkt in einem modul erzeugen lassen...

das frameset layout wäre dann nur bei dem startartikel der website anzuwenden...

alle anderen teile des framesets erhalten ihr eigenes layout...

na ja vielleicht hilfts dir ja ein wenig...
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

Hallo emergence, ich habe es jetzt so

Code: Alles auswählen

<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
	<link rel="StyleSheet" href="css/format.css" type="text/css">
		<title>demo</title>
	</head>

	<frameset cols="*">
		<frameset border="0" frameborder="no" framespacing="0" rows="155,*">
			<frame name="top" noresize scrolling="no" src="Aro_topframe.html">
			<frameset border="0" cols="189,*" frameborder="no" framespacing="0">
				<frame name="left" noresize scrolling="no" src="aro_leftframe.html">
				<frame name="content" noresize src="aro_content.html">
			</frameset>
		</frameset>
		<noframes>

			<body bgcolor="#ffffff">
				<p></p>
			</body>

		</noframes>
	</frameset>

</html>
nur wo finde ich die zuweisungen für navi top und content??
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

delicart hat geschrieben:nur wo finde ich die zuweisungen für navi top und content??
irgendwie versteh ich nicht was du brauchst. es steht ja alles in der frameset definition...

1 frame
name: top
src: Aro_topframe.html

2 frame
name: left
src: aro_leftframe.html

3 frame
name: content
src: aro_content.html

****
die werte die du bei src drinnen stehen hast, definierts du einfach um -> zB wenn dein top element als artikel angelegt ist zB mit idcat=1 und idart=1 müsste die url mindestens so aussehen front_content.php?idcat=1&idart=1

kann natürlich weitere parameter auch enthalten (wenn es über php erzeugt werden würde) zb front_content.php?idcat=1&idart=1&client=X&lang=X (X wäre entweder $client, $lang)

****
das gleiche machst du mit jedem weiteren frame

obriges beispiel würde in deinem quelltext dann so aussehen:
<frame name="top" noresize scrolling="no" src="front_content.php?idcat=1&idart=1">

wenn du weitere infos für frameset benötigst:
http://selfhtml.teamone.de/html/frames/verweise.htm
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

aaahhaaa ich glaube solangsam...
..aber woher weiß die navigation wo der frame liegt
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

sicherlich ist der kunde könig, das habe ich nie bestritten, aber fakt ist das webauftritte mit frames schlecht sind, und wie es wohl aussieht für dich 100 mal mehr arbeitsstunden anfallen, sprich mehrkosten!

und ich denke es ist deine aufgabe als webdesigner oder wie man uns auch immer nennen will, dem kunden zu erklären was das beste für seinen webauftritt ist.

cya stony
ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb »

delicart hat geschrieben:aaahhaaa ich glaube solangsam...
..aber woher weiß die navigation wo der frame liegt
über das target-Attribut beim Link-Tag -> siehe Link zu selfhtml in emergence' Post.
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

Das ist absolut richtig, das Problem ist, das ich selbst mit Beispielen und allen negativen erläuterungen zu keiner einsicht bei ihm komme. Er hat lange Zeit seine Seite mit Frontpage selber erstellt und hat panik das durch den ständigen Seitenaufbau (trotz cache) seine Besucher wegbleiben.
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

..also das allgemeine target ist mir schon klar. Probiere jetzt hier die ganze Zeit rum im navitemplate das Ziel angegeben werden muß wenn ja dann muß ich doch {TARGET} durch{CONTENT} ersetzen oder
ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb »

Nein, das Target-Attribut vergibst du normalerweise in der Hauptnavi als Linkziel, es wird dann in den template-Dateien automatisch ersetzt. - Wenn du anstatt target="{TARGET}" target="content" schreiben willst, müsstest du das Modul für die Navi-Dateien auch anpassen.
zwiebel
Beiträge: 67
Registriert: Fr 17. Okt 2003, 20:54
Kontaktdaten:

Beitrag von zwiebel »

Also das kann ja wohl nicht reichen oder:

Code: Alles auswählen

<?php

/***********************************************
* 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;
}

/**
 * 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;

}

if ( catIsChildOf($idcat, CMS_VALUE[0]) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = CMS_VALUE[0];
}

/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

/**
 * 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;

        $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
                        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';

                            $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
                                                                "name"      => $db->f("name"),
                                                               [b] "target"    => $content);[/b]
                      }

           }
           
           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);

/* Start Output buffer */
ob_start();

echo '<table cellspacing="0" cellpadding="0" border="0">';

foreach ($navitems as $key => $data) {

    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }

    if (is_array($data['sub'])) {

        foreach ($data['sub'] as $key => $data) {

            /* 2. Navigations Ebene */
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'TARGET', $data['target']);
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
            $tpl->next();

            if ($idcat == $data['idcat'] || is_array($data['sub'])) {
                $tpl->generate('templates/navsecond_on.html');
            } else {
                $tpl->generate('templates/navsecond_off.html');
            }

            if (is_array($data['sub'])) {

                foreach ($data['sub'] as $key => $data) {

                    /* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                    $tpl->next();

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }

                } // end foreach

            } // end if

        } // end foreach

    } // end if

} // end foreach

echo '</table>';

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;

?>
Gesperrt