+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: !DRINGEND! Ich will mir eine Komponente erstellen und habe folgendes Problem

  1. #1
    Neu an Board
    Registriert seit
    02.06.2005
    Beiträge
    71
    Bedankte sich
    2
    Erhielt 3 Danksagung
    in 1 Beitrag

    Ausrufezeichen !DRINGEND! Ich will mir eine Komponente erstellen und habe folgendes Problem

    Tach auch!

    Ich wbin gerade dabei meine erste Komponente zu erstellen. Es geht um eine Liste (Mit ID 6 Spalten!!!) die im Frontend angezeigt wird. Es sollen aber nur die ersten 3 Spalten angezeigt werden und eine Spalte in der "Details" steht. Klicke ich auf Details soll eine neue Seite aufgehen, auf der die ausführlichen Daten stehen.

    So, meien Liste mit meinen 3 Spalten bekomme ich angezeigt. Das Backend funktioniert auch wie es soll. Es hapert an der "Detail-Seite".

    Wenn ich auf den Link "Details" klicke passiert gar nichts. Woran liegt das??

    Wäre klasse, wenn mir jemand helfen könnte. Ist ziemlich dringend!!!

    Gruss
    Borste

    Hier der Quelltext aus den Dateien gespraeche.php und gespraeche.html.php:

    gespraeche.php
    Code:
    <?
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
    
    require_once( $mosConfig_absolute_path."/components/com_gespraeche/gespraeche.html.php");
    //require_once( $mosConfig_absolute_path."/administrator/components/com_gespraeche/gespraeche.class.php");
    
    
    $id = mosGetParam( $_REQUEST, 'cid', array(0) );
    if (!is_array( $id )) {
    	$id = array(0);
    }
    
    class HTML_gespraeche{
    
    function details($option) {
    	global $database;
    
    	$database->setQuery("SELECT * FROM #__gespraeche ORDER BY id"  );
    	$rows = $database -> loadObjectList();
    	if ($database -> getErrorNum()) {
    		echo $database -> stderr();
    		return false;
    	}
    	HTML_gespraeche::details($option, $rows);
    }
    
    }
    ?>

    gespraeche.html.php
    Code:
    <?
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
    
    global $database;
    
    //get data and output accordingly
    
    $database->setQuery("SELECT * FROM #__gespraeche");
    
    $rows = $database->loadObjectList();
    
    ?>
    <form action="index.php" method="post" name="adminForm">
    <table>
    
    
      <tr>
        <td><strong></strong></td>
        <td><strong>Name</strong></td>
        <td><strong>Gesprächspartner</strong></td>
        <td><strong>Firma</strong></td>
        <td><strong>Datum</strong></td>
        <td><strong>Details</strong></td>
      </tr>
    <?
    foreach($rows as $row)
    {?>
    
      <tr>
        <td></td>
        <td><? echo $row->name; ?></td>
        <td><? echo $row->gespraechspartner; ?></td>
        <td><? echo $row->firma; ?></td>
        <td><? echo $row->datum; ?></td>
        <td><a href="#details" onclick="return listItemTask('cb<?php echo $i;?>','details')"><?php echo $row->name; ?></a></td>
      </tr>
    <? }
    ?></table>
    <!--<input type="hidden" name="option" value="<?php echo $option; ?>" />
    <input type="hidden" name="task" value="" />
    <input type="hidden" name="boxchecked" value="0" />-->
    </form>
    
    
    <?
    function details( $option, &$rows ) {
    ?>
    <form action="index.php" method="post" name="adminForm">
    
    <table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
    <tr>
    <th><input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count($rows); ?>);" /></th>
    <th>Name</th>
    <th>Gesprächspartner</th>
    <th>Kostentr./Krankenh.</th>
    <th>Datum</th>
    </tr>
    
    <?php
    	$k = 0;
    	for($i=0; $i < count( $rows ); $i++) {
    	$row = $rows[$i];
       ?>
    	<tr class="<?php echo "row$k"; ?>">
    	<td><input type="checkbox" id="cb<?php echo $i;?>" name="cid[]" value="<?php echo $row->id; ?>" onclick="isChecked(this.checked);" /></td>
    	<td><?php echo $row->name; ?></a></td>
    	<td><?php echo $row->gespraechspartner; ?></a></td>
    	<td><?php echo $row->firma; ?></a></td>
    	<td><?php echo $row->datum; ?></a></td>
    	<?php $k = 1 - $k; ?>
    	</tr>
    <?php }
    
    ?>
    </table>
    <input type="hidden" name="option" value="<?php echo $option; ?>" />
    <input type="hidden" name="task" value="" />
    <input type="hidden" name="boxchecked" value="0" />
    </form>
    
    
    <?
     }
    ?>

    P.S.: Ich habe die Dateien von einer Anleitung aus dem Internet (http://www.jlleblanc.com/Mambo/Tutor...l_File_by_File) abgeändert. Kennt jemand noch mehr solcher Anleitungen und evtl. auch auf Deutsch???
    "Vertrauen sie mir, ich weiss was ich tue!"

    Mein Homepage: http://www.stache-service.de

  2. #2
    Neu an Board
    Registriert seit
    02.06.2005
    Beiträge
    71
    Bedankte sich
    2
    Erhielt 3 Danksagung
    in 1 Beitrag

    Unglücklich HALLOOOOO!! Kann mir denn gar keiner Helfen???



    Gruss
    Borste
    "Vertrauen sie mir, ich weiss was ich tue!"

    Mein Homepage: http://www.stache-service.de

  3. #3
    Hat hier eine Zweitwohnung Avatar von tommad
    Registriert seit
    08.06.2004
    Ort
    Woodquater
    Alter
    35
    Beiträge
    1.302
    Bedankte sich
    8
    Erhielt 225 Danksagungen
    in 211 Beiträgen

    Standard

    also so wie ich das sehen versucht du zu einem Anker #details zu springen.
    du musste deine gespräche.php aufrufen und zb die variable $task abfragen und je nachdem die liste oder die details ausgeben.
    www.joomla.at || http://www.joomla.at/forum/index.php

    Wurde dein Problem gelöst? Dann bitte markiere den Thread entsprechend (http://www.joomlaportal.de/ankuendig...l-aendern.html)

  4. #4
    Hat hier eine Zweitwohnung Avatar von tommad
    Registriert seit
    08.06.2004
    Ort
    Woodquater
    Alter
    35
    Beiträge
    1.302
    Bedankte sich
    8
    Erhielt 225 Danksagungen
    in 211 Beiträgen

    Standard

    noch was: ich würde für das Grundgerüst den AddOnWizzard benutzen. funkt super!!
    www.joomla.at || http://www.joomla.at/forum/index.php

    Wurde dein Problem gelöst? Dann bitte markiere den Thread entsprechend (http://www.joomlaportal.de/ankuendig...l-aendern.html)

  5. #5
    Neu an Board
    Registriert seit
    03.06.2004
    Beiträge
    24
    Bedankte sich
    0
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Also eine deutsche Anleitung oder besser gesagt ich hab eine Diplomarbeit geschrieben in der viel über die Entwicklung und Architektur von Komponenten und Mambo steht.

    http://www.ifi.unizh.ch/ifiadmin/sta...rlin_Simon.pdf
    und meine Komponente findest du bei mamboos.de

    Zu deinem Problem .. so viel ich noch weiss .. ist die Javascript Function listItemTask nur im Backend verfügbar. Was zeigt dir die JavaScript Konsole (Firefox unter Extras) an.. wenn du auf details clickst? (IE links unten in Statusleiste)

    Schreib doch eine eigene Javascript Funktion --> oder einfach die Seite selbst wieder aufrufen mit URL Parameter MAMBOURL&option=com_[Deine_Komponente]&detailid=..
    und diesen dann auswerten.. -> Funktionsaufruf
    Lies mal meine DA .. auch bezüglich wie du den Code am besten Strukturiest (Pattern)

    Übrigens du übergibst da die Variable $i (listItemTask) die wird aber erst in der Funktion detail gesetzt.. :-)

  6. #6
    Neu an Board
    Registriert seit
    02.06.2005
    Beiträge
    71
    Bedankte sich
    2
    Erhielt 3 Danksagung
    in 1 Beitrag

    Standard Besten Dank erstmal!

    Moin!

    Besten Dank für Eure Antworten!!!

    @sibi

    oder einfach die Seite selbst wieder aufrufen mit URL Parameter MAMBOURL&option=com_[Deine_Komponente]&detailid=.. und diesen dann auswerten.. -> Funktionsaufruf
    Wie soll ich die denn verlinken? Ich habe das alles schon einmal auf einer einzelnen Seite (nicht unter Mambo) am laufen gehabt. Da habe ich den Link folgendermaßen gesetzt:

    Code:
    <a href="gespraechsnotiz_details.php?id='.$row->id.'">Details</a>
    Unter http://www.ehk-reha.de/barrierefrei_...aechsnotiz.php kannst Du auch sehen wie das im Endeffekt funktionieren soll.

    Gruss
    Borste
    "Vertrauen sie mir, ich weiss was ich tue!"

    Mein Homepage: http://www.stache-service.de

  7. #7
    Neu an Board
    Registriert seit
    03.06.2004
    Beiträge
    24
    Bedankte sich
    0
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    <a href="index.php?option=[Komponenten_Name]&Itemid=[MenuNr.]&id='.$row->id.'">
    Details</a>
    z.b.:
    <a href="index.php?option=com_tavz&Itemid=10&id='.$ro w->id.'">
    Details</a>

    Also so sollte es gehen.. Bei Mambo wird immer die Hauptseite (Komponentenname.php) einer Komponente mittels der HTTP_Variable option aufgerufen. In dieser baust du dann einen "Entscheidungsbaum" auf.. also falls die variable id=1 dann mach das falls id=null oder id="" dann zeige hauptliste.. aber besser wäre eine zusätzliche Variable wie z.B. task abfragen -> also task=showdetail / task=showlist

    -> aber das steht ja alles so in meiner DA.. zur Mambo Architektur

  8. #8
    Neu an Board
    Registriert seit
    02.06.2005
    Beiträge
    71
    Bedankte sich
    2
    Erhielt 3 Danksagung
    in 1 Beitrag

    Unglücklich

    Danke sehr! Leider klappt das so nicht. Das hatte ich auch schon ausprobiert. Ich werde mir am Wochenende mal deine Arbeit in Ruhe vornehmen und mich ggf. hier wieder melden!

    Schönes Wochenende!

    Gruss
    Borste
    "Vertrauen sie mir, ich weiss was ich tue!"

    Mein Homepage: http://www.stache-service.de

  9. #9
    Neu an Board
    Registriert seit
    03.06.2004
    Beiträge
    24
    Bedankte sich
    0
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Ja das Problem ist das dein ganzer Code nicht sinnvoll ist.. hat sehr viele Backendfunktionen drin.. und der Aufbau macht für mich gar keinen Sinn..

    Wenn du die Seite schon hast ohne Mambo.. dann mach es folgendermassen:

    Benutze deine alte PHP Struktur und Dateien und schreibe einfach ein Hauptfile das je nach übergebener task - Variable etc. eine andere Seite included

    Hier ein Auszug aus meiner Komponente -> Hauptfile
    Code:
    $task=$_GET['task'];
    
    switch($task){
    	case show: 
    		include_once (_MYPATH."show.php");
    		break;	
    	case store: 
    		include_once (_MYPATH."store.php");
    		break;
    	case del: 
    		if ($_GET['mode']=="auth") include_once (_MYPATH."auth.php");
    		else include_once (_MYPATH."delete.php");
    		break;
    	case sendconfirm:
    		include_once (_MYPATH."sendconfirm.php");
    		break;
    	case search:
    		include_once (_MYPATH."search.php");
    		break;
    	default: 
    		include_once (_MYPATH."showlist.php");
    		break;
    }
    und sonst keine HTML Elemente und Contents ins Hauptfile!
    + die Links noch anpassen wie oben beschrieben
    einfach noch der URL die Variable task anhängen
    Geändert von sibi (22.07.2005 um 12:04 Uhr)

  10. #10
    Neu an Board
    Registriert seit
    02.06.2005
    Beiträge
    71
    Bedankte sich
    2
    Erhielt 3 Danksagung
    in 1 Beitrag

    Idee Aaaah! Das sieht doch schon etwas simpler aus!

    Besten Dank! Da sieht das Wochenende doch schon viel besser aus. Ich werde das am Wochenende mal testen und melde mich mit dem Ergebnis wieder hier!

    Gruss
    Borste
    "Vertrauen sie mir, ich weiss was ich tue!"

    Mein Homepage: http://www.stache-service.de

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Komponente Letterman 1.1 Problem...
    Von Mi-Ru im Forum Mambo Komponenten
    Antworten: 4
    Letzter Beitrag: 13.07.2005, 16:34
  2. Komponente zum Erstellen von User-Gruppen???
    Von ger555 im Forum Mambo Komponenten
    Antworten: 7
    Letzter Beitrag: 13.06.2005, 15:57
  3. Antworten: 2
    Letzter Beitrag: 08.02.2005, 09:51
  4. Problem mit books Komponente
    Von tommytompson im Forum Mambo 4.5.0 Module
    Antworten: 0
    Letzter Beitrag: 06.12.2004, 21:28
  5. Problem mit Partystaff Komponente
    Von Zerlot im Forum Allgemeine Fragen zu Mambo 4.5.0
    Antworten: 0
    Letzter Beitrag: 25.08.2004, 14:45

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein