+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Link Setzen

  1. #1
    Neu an Board Avatar von FwColbitz
    Registriert seit
    22.09.2007
    Alter
    27
    Beiträge
    63
    Bedankte sich
    14
    1 Danksagung in 1 Beitrag

    Pfeil Link Setzen

    Moin,

    bin gerade dabei eine Komponente zu erstellen und stehe vor dem sehr schwierigen Problem einen link zu setzten , gibt es schon eine vorgefertigte möglichkeit (pfad) denn ich verwenden kann um in der komponente zu verlinken?

    z.B.:
    PHP-Code:
    <a href="{JoomlaURI}/meinedatei.php">weiter</a
    Vielen Dank im Voraus

  2. #2
    Ex-Über-Mod Avatar von rico
    Registriert seit
    04.12.2005
    Ort
    Potsdam
    Alter
    47
    Beiträge
    1.699
    Bedankte sich
    237
    Erhielt 466 Danksagungen
    in 383 Beiträgen

    Standard

    Hallo,

    Links setzt Du in Joomla Komponenten folgendermaßen:

    Code:
    <a href=\"".sefRelToAbs("index.php?option=com_meinekomponente&Itemid=".$itemid)."\" title=\""._TAB_SUBSCRIBE."\">"._TAB_SUBSCRIBE."</a>;
    Falls Du einen anderen Pfad haben möchtest, so verwendest Du $mosConfig_live_site. Für absolute Pfade würde ich Dir empfehlen, zunächst mal einen absoluten Pfad über

    Code:
    define( 'SP2BASEPATH', dirname(__FILE__) );
    zu definieren. Da ist es dann auch für Hacker schwerer, die Scripte zu manipulieren.
    Die Variable _TAB_SUBSCRIBE ist auch eine definierte Beispielvariable die z.B. aus einer Sprachdatei kommen kann.
    Die $itemid musst Du natürlich vorher noch auslesen.


    MFG. Ricola
    Kleines Tutorial zum Objektorientierten Programmieren mit PHP

  3. #3
    Neu an Board Avatar von FwColbitz
    Registriert seit
    22.09.2007
    Alter
    27
    Beiträge
    63
    Bedankte sich
    14
    1 Danksagung in 1 Beitrag

    Standard

    Zitat Zitat von ricola Beitrag anzeigen
    Hallo,

    Links setzt Du in Joomla Komponenten folgendermaßen:

    Code:
    <a href=\"".sefRelToAbs("index.php?option=com_meinekomponente&Itemid=".$itemid)."\" title=\""._TAB_SUBSCRIBE."\">"._TAB_SUBSCRIBE."</a>;
    Falls Du einen anderen Pfad haben möchtest, so verwendest Du $mosConfig_live_site. Für absolute Pfade würde ich Dir empfehlen, zunächst mal einen absoluten Pfad über

    Code:
    define( 'SP2BASEPATH', dirname(__FILE__) );
    zu definieren. Da ist es dann auch für Hacker schwerer, die Scripte zu manipulieren.
    Die Variable _TAB_SUBSCRIBE ist auch eine definierte Beispielvariable die z.B. aus einer Sprachdatei kommen kann.
    Die $itemid musst Du natürlich vorher noch auslesen.


    MFG. Ricola
    viele dank, aber könntest du mir mal nen Beispiel bringen (mit leitstelle.php), weil ich sehe gerade nur bahnhof

  4. #4
    Ex-Über-Mod Avatar von rico
    Registriert seit
    04.12.2005
    Ort
    Potsdam
    Alter
    47
    Beiträge
    1.699
    Bedankte sich
    237
    Erhielt 466 Danksagungen
    in 383 Beiträgen

    Standard

    Ok, hier also mal ein Beispiel einer index.php in einer Minikomponente

    1. Ich setzte die Verhinderung des Aufrufs des Scripts per URL
    Code:
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.');
    2. Ich setzt den Pfad, für z.B. zu includierende Dateien
    Code:
    define( 'SP2BASEPATH', dirname(__FILE__) );
    3. Ich hole mir die Sprachdateien
    Code:
    if (file_exists(SP2BASEPATH.'/languages/'.$mosConfig_lang.'.php') ) { include_once (SP2BASEPATH.'/languages/'.$mosConfig_lang.'.php' );
    } else { include_once (SP2BASEPATH.'/languages/english.php'); }
    4. Ich definiere, z.B. in der languages/german.php eine Variable
    Code:
    DEFINE("_TAB_START"		, "Zur Pinwand");
    5. Ich hole mir die aktuelle ItemID damit die Links innerhalb der Komponente auch diese wieder aufrufen
    Code:
    $itemid = mosGetParam( $_REQUEST, "Itemid" );
    6. Ich setze den Link, mit der Itemid und der Variable aus dem Sprachfile
    Code:
    <a href=\"".sefRelToAbs("index.php?option=com_meinekomponente&Itemid=".$itemid)."\" title=\""._TAB_START."\">"._TAB_START."</a>;
    Das ganze sieht dann so aus:
    Code:
    <?
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.');
    
    define( 'SP2BASEPATH', dirname(__FILE__) );
    
    if (file_exists(SP2BASEPATH.'/languages/'.$mosConfig_lang.'.php') ) { include_once (SP2BASEPATH.'/languages/'.$mosConfig_lang.'.php' );
    } else { include_once (SP2BASEPATH.'/languages/english.php'); }
    
    $itemid = mosGetParam( $_REQUEST, "Itemid" );
    
    echo <a href=\"".sefRelToAbs("index.php?option=com_meinekomponente&Itemid=".$itemid)."\" title=\""._TAB_START."\">"._TAB_START."</a>;
    ?>
    Daraus wird dann das.

    MFG. Ricola
    Kleines Tutorial zum Objektorientierten Programmieren mit PHP

  5. #5
    Neu an Board Avatar von FwColbitz
    Registriert seit
    22.09.2007
    Alter
    27
    Beiträge
    63
    Bedankte sich
    14
    1 Danksagung in 1 Beitrag

    Standard

    vielen dank,

    also ich habe erstmal folgendes versucht:
    PHP-Code:
    define'SP2BASEPATH'dirname(__FILE__) );

    if (
    file_exists(SP2BASEPATH.'/leitstelle1.php') ) { include_once (SP2BASEPATH.'/leitstelle1.php' );
    } else { include_once (
    SP2BASEPATH.'/leitstelle1.php'); }

    DEFINE("_TAB_START""Weiter");

    $itemid mosGetParam$_REQUEST"Itemid" );

    echo 
    "<a href=\"".sefRelToAbs("index.php?option=com_leitstelle&Itemid=".$itemid)."\" title=\""._TAB_START."\">"._TAB_START."</a>"
    allerdings bringt mich das nicht an das gewünschte ziel, ich komme immer wieder auf die gleiche seite Ich möchte ganz einfach die seiten innerhalb der komponente weiterleiten / verlinken bzw. daten via form container übergeben

    Grüße Mirko

  6. #6
    Ex-Über-Mod Avatar von rico
    Registriert seit
    04.12.2005
    Ort
    Potsdam
    Alter
    47
    Beiträge
    1.699
    Bedankte sich
    237
    Erhielt 466 Danksagungen
    in 383 Beiträgen

    Standard

    Ja natürlich kommst Du immer auf die gleiche Seite - Du wolltest ja auch nur wissen, wie man in einer Komponente einen Link setzt.

    Wenn Du jetzt verschiedene Dinge mit dem Link machen willst, dann musst Du natürlich auch noch weitere Parameter übergeben - z.B. den Parameter, ich nenne ihn mal: task

    Der Link sieht dann so aus:

    Code:
    // Link1
    echo "<a href=\"".sefRelToAbs("index.php?option=com_leitstelle&Itemid=".$itemid."&task=0")."\" title=\""._TAB_START."\">"._TAB_START."</a>"; 
    
    //Link2
    echo "<a href=\"".sefRelToAbs("index.php?option=com_leitstelle&Itemid=".$itemid."&task=1")."\" title=\""._TAB_START."\">"._TAB_START."</a>";
    Jetzt musst Du die verschiedenen Zustände abfragen:

    Code:
    $task = mosGetParam( $_REQUEST, "task" );
    
    switch ($task) {
    case "0":
    echo "Mache dies";
    break;
    case "1":
    echo "mache das";
    break;
    }
    Anstatt von "Mache dies" oder "Mache das" kannst Du jetzt auch komplett andere Sachen machen.

    MFG. Ricola
    Kleines Tutorial zum Objektorientierten Programmieren mit PHP

  7. Erhielt Danksagungen von:


  8. #7
    Neu an Board Avatar von FwColbitz
    Registriert seit
    22.09.2007
    Alter
    27
    Beiträge
    63
    Bedankte sich
    14
    1 Danksagung in 1 Beitrag

    Unglücklich

    Puhhh das es so kompliziert ist einen Link zu setzen hätte ich nicht gedacht. Ich bekomme es einfach nicht hin….

    Also ich habe 2 Dateien:
    - leitstelle.php in der ich einen Link zur leitstelle1.php setzen möchte
    - leitstelle1.php von der ich mich dann weiterentwickeln will

    Beide Dateien liegen im gleichen Ordner: /html/components/com_leitstelle
    Wie komme ich nun von leitstelle.php auf leitstelle1.php innerhalb der Komponente. Also auf leistelle.php ist ein Formular womit ich Daten an leitstelle1.php via Form Container senden möchte, hierzu muss ich aber wissen wie sich der link zu leitstelle1.php nennt also z.B. (…./component/option,com_leitstelle/Itemid,148/task,0/).

    Grüße Mirko

  9. #8
    Ex-Über-Mod Avatar von rico
    Registriert seit
    04.12.2005
    Ort
    Potsdam
    Alter
    47
    Beiträge
    1.699
    Bedankte sich
    237
    Erhielt 466 Danksagungen
    in 383 Beiträgen

    Standard

    Zitat Zitat von FwColbitz Beitrag anzeigen
    Wie komme ich nun von leitstelle.php auf leitstelle1.php innerhalb der Komponente.
    Also per Link so nicht - schließlich handelt es sich ja um eine Komponente und die will in Joomla auch als solche angesprochen werden.

    Ich würde es so machen:

    Code:
    $task = mosGetParam( $_REQUEST, "task" );
    
    switch ($task) {
    case "0":
    include("datei.php");
    break;
    case "1":
    include("datei1.php");
    break;
    default:
    include("datei.php");
    break;
    }
    In beiden Dateien können ja jetzt unterschiedliche Links drinstehen und sich so gegenseitig verweisen.

    MFG. Ricola
    Kleines Tutorial zum Objektorientierten Programmieren mit PHP

  10. Erhielt Danksagungen von:


  11. #9
    Neu an Board Avatar von FwColbitz
    Registriert seit
    22.09.2007
    Alter
    27
    Beiträge
    63
    Bedankte sich
    14
    1 Danksagung in 1 Beitrag

    Standard

    Danke nochmals, ich schaue mal ob ich noch woanders Hilfe bekomme. Es funktioniert zwar, aber nicht so wie es soll.

    Grüße Mirko

+ Antworten

Lesezeichen

Berechtigungen

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