Plugin Advanced Mod Rewrite für Contenido 4.8.x

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mo 10. Mai 2010, 11:34

VincentVega hat geschrieben:...da steht: 'http://www.meineDomain.de/'...
Die Web-Adresse des Mandanten wird in der Session gespeichert, eine nachträgliche Änderung der Web-Adresse aktualisiert nicht automatisch die Session aller User. Eventuell Sessiontaballen leeren?

Code: Alles auswählen

TRUNCATE TABLE `con_phplib_active_sessions`;
Es kann auch sein, das der Code der Frontendseiten noch einen base-Tag mit der alten Web-Adresse haben. Das siehts du, wenn du dir den ausgelieferten Quellcode der Seiten im Browser ansiehst. Hier kannst du auch die Tabelle leeren:

Code: Alles auswählen

TRUNCATE TABLE `con_code`;
Der Tabellenprefix ist bei dir eventuell nicht 'con_'!
VincentVega hat geschrieben:...Könnten meine manuellen Änderungen in der Contenido/inlcude/config.php die Probleme verursachen?
Eine Änderung der contenido/inlcude/config.php wirkt sich nicht auf die Web-Adresse des Mandanten aus, vermutlich ist es eines der oben genannten Punkte.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

VincentVega
Beiträge: 7
Registriert: So 9. Mai 2010, 01:22
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von VincentVega » Mo 10. Mai 2010, 15:36

Hallo!
leider kein Erfolg. Habe Beide Tabellen geleert!
Ich schicke Dir mal den Link.. vielleicht willst Du Dir das mal Live anschauen...

Wäre echt klasse..

VincentVega
Beiträge: 7
Registriert: So 9. Mai 2010, 01:22
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von VincentVega » Mo 10. Mai 2010, 21:47

Ich hab es geschafft!
Natürlich wieder sonn' richtig blöder Fehler... bei mir in der htaccess

Richtig ist:
1.RewriteCond %{HTTP_HOST} ^meineDomain.de$
2.RewriteRule ^(.*) http://www.meineDomain.de/$1 [R=301,L]
3.RewriteRule ^$ front_content.php [QSA,L]

Falsch ist:
1.RewriteRule ^$ front_content.php [QSA,L]
2.RewriteCond %{HTTP_HOST} ^meineDomain.de$
3.RewriteRule ^(.*) http://www.meineDomain.de/$1 [R=301,L]


Also einfach die Reihenfolge der Bedingungen änden.. außerdem für alle DAUs da draußen.. immer fleißig beim Testen den Cache leeren.... sonnst passiert nämlich nichts!

Schönen Tag noch..
ein glücklicher VincentVega

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von stefkey » So 16. Mai 2010, 15:30

Hallo,

was kann ich machen wenn eine neu angelegte Kategorie mit Startartikel nicht "umgesetzt" wird. Der Browser zeigt wenn ich mit der Maus im Frontend auf die neue Kategorie zeige nur die Domain mit Slash am Ende, aber eben nicht Kategorie+Slash. Aliase habe ich schon zurüclgesetzt.

Hat jemand einen Tip?

Grüße,
stefkey

[edit] Das Problem wurde naträglich dann wie folgt gelöst: in der /contenido/includes/config.php $cfg["is_start_compatible"] = false statt true setzen. Danach noch einmal in den Kategorieren den Startartikel markieren.
Danke an xmurrix Website und die Anleitung dort zum Advanced Mod Rewrite (der Hinweis steht dort ganz unten)
Zuletzt geändert von stefkey am Mi 11. Mai 2011, 14:53, insgesamt 2-mal geändert.

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von BagHira » So 16. Mai 2010, 18:34

Servus stefkey,
stefkey hat geschrieben:Hat jemand einen Tip?
Artikel & Kategorie sind aber schon "Online" und auch nicht "gesperrt"?
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von stefkey » So 16. Mai 2010, 19:03

genau, alles online und nicht gesperrt (wobei sperren doch nichts mit dem Problem zu tun haben?!)

Wenn ich AMR deaktiviere geht es natürlich, da steht dann als Links eben http://subdomain.domain.de/front_content.php?idcat=221

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mo 17. Mai 2010, 14:24

stefkey hat geschrieben:...was kann ich machen wenn eine neu angelegte Kategorie mit Startartikel nicht "umgesetzt" wird.
...
Hat jemand einen Tip?
...
Hallo stefkey,

hast du mal probiert, die Artikelid der Startseite auch zu übergeben?

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von stefkey » Mo 17. Mai 2010, 14:41

verstehe nicht ganz. Wie übergebe ich die ArtikelID?
Ich habe nun als URL mal den Link wie er sein soll benutzt, die Seite erscheint auch. Aber eben nicht wenn ich mit der Maus auf den entsprechenden Navipunkt gehe/klicke. Da gehts nur zur Startseite, eben ohne /kategorie/ in der URL

Wie kann ich den Fehler einkreisen?

PS Wie gesagt: bei deaktiviertem AMR klappt aber alles.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mo 17. Mai 2010, 15:06

stefkey hat geschrieben:verstehe nicht ganz. Wie übergebe ich die ArtikelID?
Indem das Navigationsmodul auch die ID des Startartikels ausgibt. front_content.php?idcat=3&idart=5.
stefkey hat geschrieben:bei deaktiviertem AMR klappt aber alles.
Es kann sein, dass die Erstellung der URL nur über die Kategorieid in manchen Fällen nicht funktioniert, weil das AMR-Plugin nicht den richtigen Kategoriepfad dazu findet.

Um welche Version des AMR handelt es sich denn?
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von idea-tec » Mo 17. Mai 2010, 15:49

xmurrix hat geschrieben:Es kann sein, dass die Erstellung der URL nur über die Kategorieid in manchen Fällen nicht funktioniert, weil das AMR-Plugin nicht den richtigen Kategoriepfad dazu findet.
Am zuverlässigsten funktioniert es mit der idartlang
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von stefkey » Di 18. Mai 2010, 11:48

Es ist Advanced Mod Rewrite Plugin 0.5.5 und Contenido 4.8.12

Das Navigationsmodul ist zielich alt:
Input

Code: Alles auswählen

?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname  :      Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

#Select tree
?>
<table cellspacing="0" cellpadding="0" cellpadding="4">
    <tr>
        <td class="text"><?php echo mi18n("Baum wählen");?>:</td>
        <td>
            <select name="CMS_VAR[0]">
            <option value="0">-- <?php echo mi18n("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
Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation

#Includes
cInclude("frontend", "includes/functions.navigation.php");

#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
    $cApiClient = new cApiClient($client);
    $start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}

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, $start_cat) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = $start_cat;
}

/* 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, $start_cat;

        $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 != $start_cat ){

                $navitems = array();
              
                $sql = "SELECT
                            A.idcat,
                            C.name,
                            C.public,
                            C.idcatlang
                        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  = '".$start_cat."'
                        ORDER
                            BY A.idtree";

                      $db->query($sql);

                      while ($db->next_record()) {

                            /* Check for external redirects... */
                            $sql = "SELECT
                                        a.external_redirect AS ext,
                                        a.idartlang AS idartlang
                                    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
                                        c.idclient  = '".$client."' AND
                                        c.idcat     = b.idcat AND
                                        a.idart     = b.idart AND
                                        a.idlang    = '".$lang."'";

                            $db2->query($sql);
                            $flag = false;
                            while ($db2->next_record()&&!$flag) {
                                if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
                                {
                                    $flag = true;
                                    $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
    
                                    $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
                                                                        "name"      => $db->f("name"),
                                                                        "target"    => $target,
                                                                        "public" => $db->f("public"),
                                                                        "idcatlang" => $db->f("idcatlang"));
                                }
                            }
                      }

           }
           
           return true;
        }

        $sql = "SELECT
                    A.idcat,
                    C.name,
                    C.public,
                    C.idcatlang
                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,
                            a.idartlang AS idartlang
                        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
                            c.idclient  = '".$client."' AND
                            c.idcat     = b.idcat AND
                            a.idart     = b.idart AND
                            a.idlang    = '".$lang."'";

                $db2->query($sql);
                $flag = false;
                while ($db2->next_record() && !$flag) {
                    if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
                    {
                        $flag = true;
                        $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
                        
                        $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"),
                                                          "name"    => $db->f("name"),
                                                          "public" => $db->f("public"),
                                                          "idcatlang" => $db->f("idcatlang"),
                                                          "target"  => $target);
                    }
                }
        }

        $tmp_nav[$idcat]["sub"] = $navitems;
        $navitems = $tmp_nav;

        /* Function call */
        nav($parentid);

}  // end function

$sql = "SELECT
            A.idcat,
            C.name,
            C.public,
            C.idcatlang
        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,
                    a.idartlang AS idartlang
                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
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
        $flag = false;
        while ($db2->next_record()&&!$flag) {
            if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
            {
                $flag = true;
                $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
        
                $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                                   "name"   => $db->f("name"),
                                                   "public" => $db->f("public"),
                                                   "idcatlang" => $db->f("idcatlang"),
                                                   "target" => $target);
            }
        }
}

/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}

nav($sel_idcat);

/* Start Output buffer */
ob_start();

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

    /* 1. Navigation level */
    if (checkCatPermission($data['idcatlang'],$data['public'])) {
        $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/navfirst_on.html');
        }elseif(is_array($data['sub'])){
            $tpl->generate('templates/navfirst_open.html');
        } else {
            $tpl->generate('templates/navfirst_off.html');
        }
    
        /* 2. Navigation level */
        if (is_array($data['sub'])) {
            foreach ($data['sub'] as $key => $data) {
                if (checkCatPermission($data['idcatlang'],$data['public'])) {
                    $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/navsecond_on.html');
                    }elseif(is_array($data['sub'])){
                        $tpl->generate('templates/navsecond_open.html');
                    } else {
                        $tpl->generate('templates/navsecond_off.html');
                    }

                    /* 3. Navigation level */
                    if (is_array($data['sub'])) {
                        foreach ($data['sub'] as $key => $data) {
                            if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                $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');
                                }elseif(is_array($data['sub'])){
                                    $tpl->generate('templates/navthird_open.html');
                                } else {
                                    $tpl->generate('templates/navthird_off.html');
                                }

                                /* 4. Navigation level */
                                if (is_array($data['sub'])) {
                                    foreach ($data['sub'] as $key => $data) {
                                        if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                            $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/navfourth_on.html');
                                            }elseif(is_array($data['sub'])){
                                                $tpl->generate('templates/navfourth_open.html');
                                            } else {
                                                $tpl->generate('templates/navfourth_off.html');
                                            }

                                            /* 5. Navigation level */
                                            if (is_array($data['sub'])) {
                                                foreach ($data['sub'] as $key => $data) {
                                                    if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                                        $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/navfifth_on.html');
                                                        } else {
                                                            $tpl->generate('templates/navfifth_off.html');
                                                        }
                                                    } // end if
                                                } // end foreach
                                            } // end if
                                        } // end if
                                    } // end foreach
                                } // end if
                            } // end if
                        } // end foreach
                    } // end if
                } // end if
            } // end foreach
        } // end if
    } // end if
} // end foreach

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

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;
?>
Kann es doch mit de Naimodul zusammenhängen Aber ohne AMR geht es doch... :-(

Außerdem folgendes funktioniert auch nicht:

In den Mandanteneinstellungen folgender Eintrag:
Typ: frontend.no_outputbuffer
Name: idart
Wert: 415

Oder in der AMRConfig:
/>>>front_content.php?idcat=221
(Da sollte doch bei Aufruf von sub.domain.de der Startartikel von Kategorie 221 erscheinen?!? )

derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von derju » Di 18. Mai 2010, 15:56

Guten Tag

Ich bin gerade am Contenido von 4.6 auf 4.8.12 Upgraden.

Das hat auch alles super funktioniert, jetzt hab ich nur ein Problem mit dem Mod Rewrite.

Es funktioniert so weit auch nur bei gewissen Modulen muss ich das anpassen.

Vielleicht hat mir jemand von Euch einen Tip da ich hier voll auf dem Schlauch stehe.

Ich denke das ich das ertmals von:
cInclude('classes', 'class.modrewrite.php');
in
cInclude('classes', 'UrlBuilder/Contenido_UrlBuilder_MR.class.php');

umwandel muss, ich hoffe das ist so richtig. Doch dann muss ja der rest Angepasst werden doch leider hab ich von dem Modul nicht viel Ahnung.

Code: Alles auswählen

if ( $cfg['mod_rewrite']['use'] == 1 ) {
		cInclude('classes', 'class.modrewrite.php');

		if ( preg_match ( "/^front_content\.php(.*|.+?)/i", $referer, $arr_hits ) == 1 ) {
			$referer = ModRewrite::build_new_url($arr_hits[1], false);
		}
	}
Vielen Dank für Eure Hilfe

DerJu
Contenido 4.8.20 | Contenido 4.9.12

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Di 18. Mai 2010, 22:46

stefkey hat geschrieben:Es ist Advanced Mod Rewrite Plugin 0.5.5 und Contenido 4.8.12
...
Das Navigationsmodul ist zielich alt:
...
Kann es doch mit de Naimodul zusammenhängen Aber ohne AMR geht es doch... :-(
...
Am Navigationsmodul liegt es bestimmt nicht, aber wie schon von idea-tec angemerkt, kann es hilfreich sein, wenn du die Links um die idartlang erweiterst. Das geht folgendermaßen:
1. Überall in der Modulausgabe das Vorkommen von

Code: Alles auswählen

$navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                   "name"   => $db->f("name"),
                                   "public" => $db->f("public"),
                                   "idcatlang" => $db->f("idcatlang"),
                                   "target" => $target);
um "idartlang" wie folgt erweitern

Code: Alles auswählen

$navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                   "name"   => $db->f("name"),
                                   "public" => $db->f("public"),
                                   "idcatlang" => $db->f("idcatlang"),
                                   "idartlang" => $db2->f("idartlang"),
                                   "target" => $target);
2. Überall, wo die URL generiert wird, den Code

Code: Alles auswählen

$tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
um "idartlang" wie folgt erweitern

Code: Alles auswählen

$tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'].'&idartlang='.$data['idartlang']));
stefkey hat geschrieben: ...Außerdem folgendes funktioniert auch nicht:

In den Mandanteneinstellungen folgender Eintrag:
Typ: frontend.no_outputbuffer
Name: idart
Wert: 415
...
Versuche mal in der front_content.php herauszufinden, in welchen Zweig die Verarbeitung des Codes läuft. Ändere an Zeile 977 die folgenden Zeilen

Code: Alles auswählen

            $aExclude = explode(',', getEffectiveSetting('frontend.no_outputbuffer', 'idart', ''));
            if (in_array(Contenido_Security::toInteger($idart), $aExclude)) {
                eval ("?>\n".$code."\n<?php\n");
            } else {

in

Code: Alles auswählen

            $aExclude = explode(',', getEffectiveSetting('frontend.no_outputbuffer', 'idart', ''));
            if (in_array(Contenido_Security::toInteger($idart), $aExclude)) {
die('ausgabe ohne pufferung');
                eval ("?>\n".$code."\n<?php\n");
            } else {
die('ausgabe mit pufferung');
Bei idart 415 sollte "ausgabe ohne pufferung". Das klappt natürlich nur, wenn der Artikel ausgegeben werden kann (zugriff erlaubt, ist online und hat keinen Redirect in Artikeleigenschaften). Wenn nichts von beidem ausgegeben wird, dann kommt es gar nicht zur Ausgabe des Artikels.
stefkey hat geschrieben:...
Oder in der AMRConfig:
/>>>front_content.php?idcat=221
(Da sollte doch bei Aufruf von sub.domain.de der Startartikel von Kategorie 221 erscheinen?!? )
...
Handelt es sich um eine Mehrmandantensystem, dann sollte man noch die ID des Mandanten angeben. Dabei sollte sub.domain.de auch als Webadresse des Mandanten eingestellt sein.
Handelt es sich um ein Mehrsprachensystem, sollte da die id der default Sprache angegeben werden.
Leitet das Apache mod_rewite Modul überhaupt Anfragen auf den Webbroot von sub.domain.de an front_content.php im Madantenverzeichnis?
Wenn Anfragen auf sub.domain.de von einer index.php per header-Directive an die front_content.php weitergeleitet werden, kann dann die Konfiguration />>>front_content.php?idcat=221 nicht greifen.

Das kannst du auch debuggen, ändere in der Datei contenido/plugins/mod_rewrite/classes/class.modrewritecontroller.php die Zeile 254

Code: Alles auswählen

            if ($secondCall == true) {
in

Code: Alles auswählen

            if ($secondCall == true) {
echo '<pre>this path: ' . $aUrlComponents['path'] . '</pre>';
echo '<pre> existing routings: ' . print_r(parent::getConfig('routing'), true) . '</pre>';
Dabei sollte beim Aufruf von sub.domain.de in der Ausgabe der Wert neben "this path" in der ausgegebenen Routingkonfiguration (nach "existing routings") vorkommen.

So viele Probleme auf einmal gab es schon lange nicht mehr. Wie sieht denn deine AMR-Konfiguration aus, gibt es da bei dem Projekt außergewöhnliche Einstellungen?

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Di 18. Mai 2010, 22:54

derju hat geschrieben:...

Ich bin gerade am Contenido von 4.6 auf 4.8.12 Upgraden.

Das hat auch alles super funktioniert, jetzt hab ich nur ein Problem mit dem Mod Rewrite.

Es funktioniert so weit auch nur bei gewissen Modulen muss ich das anpassen.
....
Hallo derju,

normalerweise musst du folgendes machen:
- Update der Contenido Installation
- Installieren/Aktivieren des AMR-Plugins
- Falls erwünscht, anpassen der Module des Beispielmandanten, siehe http://forum.contenido.org/viewtopic.php?f=66&t=23501

mehr nicht...

Was funktioniert denn nicht bei dir?

Wenn die URLs nicht umschrieben werden, dann ist wohl ds Plugin nicht aktiviert, oder es ist beim Update etwas schief gegangen oder die Ausgabe der Seite findet schon in einem Modul oder woanders statt und nicht in der front_content.php, wo es sein sollte und daher kann das Plugin die URLs der ausgegebenen Seite nicht umschreiben.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von stefkey » Mi 19. Mai 2010, 13:56

Hi xmurrix,

1000 Dank!

Ich habe nun deine Lösung mit der Ergänzung der idartlang im Navimodul umgesetzt. Allerdings habe ich nur die folgende Zeile (1x vorhanden) um "idartlang" => $db2->f("idartlang") ergänzt, nicht wie du vorgeschlagen hast in $navitems.... .

Code: Alles auswählen

$tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"),
                                                          "name"    => $db->f("name"),
                                                          "public" => $db->f("public"),
                                                          "idcatlang" => $db->f("idcatlang"),
                                                          "idartlang" => $db2->f("idartlang"),
                                                          "target"  => $target);
                    }
Und dann noch (nur mal) in der ersten Ebene die Ausgabe wie du gesagt hast. Besten Dank!

Aber wieso kann dein AMR Plug in in manchen Fällen nicht die URL nur durch die KategorieID bilden?


Zu den Mandanteneinstellungen und frontend.no_outputbuffer:
Das funktioniert ja, habe leider die Logik flasch verstanden. Ich dachte ich kann damit einen Artikel für das Plugin auf "Bypass" schalten und dann wird auf der gesamten Website in der Navigation dieser Artikel eben nicht per AMR umgewandelt. Es ist aber so: Wenn ich den definierten Artikel im Brower aufrufe werden darin stehende Links ( Navi...) nicht vom PlugIn berücksichtigt. Bei allen anderen Artikeln arbeitet AMR.

Und die Geschichte mit dem />>>front_content.php?idcat=221 in der AMR Config habe ich jetzt nicht mher verfolgt. Wird aber sicher auch gehen wie du es beschrieben hast.

Herzlichen Dank für deinen tollen Support und das unglaublich wichtige PlugIn! Super!



[edit] Das Problem wurde naträglich dann wie folgt gelöst: in der /contenido/includes/config.php $cfg["is_start_compatible"] = false statt true setzen. Danach noch einmal in den Kategorieren den Startartikel markieren.
Danke an xmurrix Website und die Anleitung dort zum Advanced Mod Rewrite (der Hinweis steht dort ganz unten)
Zuletzt geändert von stefkey am Mi 11. Mai 2011, 14:52, insgesamt 2-mal geändert.

Gesperrt