Gästebuch - Seitenaufrufe funktionieren nicht

Alles über die Anwendung und Entwicklung von AddOns.

Gästebuch - Seitenaufrufe funktionieren nicht

Beitragvon Maidenaustria » 6. Nov 2006, 15:52

Hallo!

Bei einem meiner Projekte ist ein Gästebuch verbaut:
http://www.mv-jedenspeigen.at/index.php ... 44&clang=0

Da funktioniert aus einem mir unerklärlichen Grund die Seiten URL's nicht...

Hat jemand einen Tip für mich?

Danke!

Arbeite mit Redaxo 3.2
Maidenaustria
 
Beiträge: 254
Registriert: 7. Mär 2006, 09:43
Wohnort: Österreich

Beitragvon Dr KillerJoe » 6. Nov 2006, 20:05

Die URL's für die Unterseiten des GB werden nicht richtig generiert -> das index.php fehlt

richtig: http://www.mv-jedenspeigen.at/index.php ... =44&page=1

momentan: http://www.mv-jedenspeigen.at/?article_id=44&page=1


mfg
Flo
Die Doku und Wiki sind Deine Freunde!!!
Dr KillerJoe
 
Beiträge: 1729
Registriert: 24. Nov 2005, 21:29

Beitragvon Markus.Staab » 6. Nov 2006, 21:19

Hi,

bei richtig gesetzten DirectoryIndex sollte auch die 2. Url richtig funktionieren

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Maidenaustria » 6. Nov 2006, 21:32

kills hat geschrieben:Hi,

bei richtig gesetzten DirectoryIndex sollte auch die 2. Url richtig funktionieren

Gruß,
Markus


öhm - und was mach ich da jetzt?
Soll ich das in der Modulausgabe umstellen?
Maidenaustria
 
Beiträge: 254
Registriert: 7. Mär 2006, 09:43
Wohnort: Österreich

Beitragvon Markus.Staab » 6. Nov 2006, 21:48

Hi,

die Links werden via rex_getUrl() generiert?

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Maidenaustria » 6. Nov 2006, 22:59

Das steht im Ausgabemodul:
Code: Alles auswählen
<?php
include ($REX['INCLUDE_PATH'].'/addons/guestbook/modules/module.list.inc.php');

$f1 = <<<EOD
REX_VALUE[1]
EOD;

$f2 = <<<EOD
REX_VALUE[2]
EOD;

$f3 = <<<EOD
REX_VALUE[3]
EOD;

$f4 = <<<EOD
REX_VALUE[4]
EOD;

$f5 = <<<EOD
REX_VALUE[5]
EOD;

$f6 = $this->getValue( 'article_id');

gbook_list_output($f1, $f2, $f3, $f4, $f5, $f6);
?>


Und das steht in der 'module.list.inc.php':
Code: Alles auswählen
<?php

/**
* Guestbook Addon
* @author staab[at]public-4u[dot]de Markus Staab
* @author <a href="http://www.public-4u.de">www.public-4u.de</a>
* @package redaxo3
* @version $Id: module.list.inc.php,v 1.6 2006/01/27 18:07:52 kills Exp $
*/

function gbook_list_input($elementsPerPage, $paginationsPerPage, $dateFormat, $emailFormat, $encryptEmails)
{
?>
    Einträge pro Seite:
    <br/>
    <input type="text" name="VALUE[1]" value="<?php echo $elementsPerPage ?>" size="5" maxlength="2" style="text-align: center"/>
    <br/><br/>
    Anzahl anzuzgeigender Seiten:
    <br/>
    <input type="text" name="VALUE[2]" value="<?php echo $paginationsPerPage ?>" size="5" maxlength="2" style="text-align: center"/>
    <br/><br/>
    Email-Adressen verschlüsseln:
    <br/>
    <select name="VALUE[5]">
     <option value="0" <?php echo $encryptEmails == '0' ? 'selected="selected"' : '' ?>>Nein</option>
     <option value="1" <?php echo $encryptEmails == '1' ? 'selected="selected"' : '' ?>>Ja</option>
    </select>
    <br/><br/>
    Datums-Format:
    <br/>
    <input type="text" name="VALUE[3]" value="<?php echo $dateFormat ?>" size="45"/>
    <br/>
    siehe <a href="http://php.net/strftime" target="_blank">PHP Manual - strftime()</a>
    <br/><br/>
    Email-Adressen-Format:
    <br/>
    <input type="text" name="VALUE[4]" value="<?php echo $emailFormat ?>" size="45"/>
    <br/><br/>
    Beispiel:<br/>
    max.mustermann@nowhere.no<br/>
    %to% == max.mustermann<br/>
    %domain% == nowhere<br/>
    %tldomain% == no<br/>
    <br/>
    Format-Beispiele:<br/>
    %to%@%domain%.%tldomain%<br/>
    %to%[AT]%domain%[DOT]%tldomain%<br/>
    %to%*AT*%domain%*DOT*%tldomain%<br/>
    <?php


}

function gbook_list_output($elementsPerPage, $paginationsPerPage, $dateFormat, $emailFormat, $encryptEmails, $article_id)
{
  global $REX;

  // hier beliebige mail encrypt funktion einbinden
  include ($REX['INCLUDE_PATH'].'/addons/guestbook/encryptions/mailcrypt2.php');

  $article_id = $article_id;

  // Ausgabe nur im Frontend
  if ($REX['REDAXO'] != true)
  {
    $page = empty ($_GET['page']) ? 0 : $_GET['page'];

    $qry = 'SELECT * FROM '.TBL_GBOOK.' ORDER BY id DESC LIMIT '. ($page * $elementsPerPage).', '.$elementsPerPage;
    $sql = new sql();
    $data = $sql->get_array($qry);

    if (is_array($data))
    {
      echo '<div class="gbook">';
      echo '<div class="pagination">'.gbook_pagination($page, $elementsPerPage, $paginationsPerPage).'</div>';
      foreach ($data as $row)
      {
        $url = strpos($row['url'], 'http://') === false ? 'http://'.$row['url'] : $row['url'];
        $row['url'] = empty ($row['url']) ? 'keine Angabe' : '<a href="'.$url.'">'.$row['url'].'</a>';
        $row['created'] = strftime( $dateFormat, $row['created']);

        $maillabel = gbook_formatemail($row['email'], $emailFormat);
        if ($encryptEmails == '1')
        {
          $maillabel = gbook_encryptmail($maillabel);
          $row['email'] = gbook_encryptmail($row['email']);
        }
        $row['email'] = '<a href="mailto:'.$row['email'].'">'.$maillabel.'</a>';
?>
<div class="entry">
   <div class="name">
     <div class="label">Name:</div>
     <div class="value"><?php echo stripslashes( $row['author']) ?></div>
   </div>
   <div class="email">
     <div class="label">Email:</div>
     <div class="value"><?php echo $row['email'] ?></div>
   </div>
   <div class="url">
     <div class="label">Homepage:</div>
     <div class="value"><?php echo $row['url'] ?></div>
   </div>
   <div class="time">
     <div class="label">Verfasst:</div>
     <div class="value"><?php echo $row['created'] ?></div>
   </div>
   <div class="text">
     <div class="label">Nachricht:</div>
     <div class="value"><?php echo nl2br( stripslashes( $row['message'])) ?></div>
   </div>
   <?php if ( trim( $row['reply']) != '') : ?>
   <div class="reply">
     <div class="label">Antwort:</div>
     <div class="value"><?php echo nl2br( stripslashes( $row['reply'])) ?></div>
   </div>
   <?php endif; ?>
</div>
<?php


      }
      echo '<div class="pagination">'.gbook_pagination($page, $elementsPerPage, $paginationsPerPage).'</div>';
      echo '</div>';
    }

  }
  else
  {
?>
<b>Die Einträge sind nur im Frontend sichtbar!</b>
<br/><br/>
<b>Konfiguration:</b>
<br/>
Einträge pro Seite: <b><?php echo $elementsPerPage ?></b>
<br/>
Anzahl anzuzgeigender Seiten: <b><?php echo $paginationsPerPage ?></b>
<br/>
Emailverschlüsselung: <b><?php echo $encryptEmails == '1' ? 'Ja' : 'Nein' ?></b>
<br/>
Datumsformat: <b><?php echo $dateFormat ?></b>
<br/>
Emailformat: <b><?php echo $emailFormat ?></b>
<?php


  }

}
function gbook_pagination($currentPage, $elementsPerPage, $paginationsPerPage)
{
  $qry = 'SELECT count(*) rowCount FROM '.TBL_GBOOK;
  $sql = new sql();
  $data = $sql->get_array($qry);

  $oneSidePaginations = floor($paginationsPerPage / 2);
  //var_dump( $oneSidePaginations);
  $rowCount = $data[0]['rowCount'];
  //var_dump( $rowCount);
  $pageCount = ceil($rowCount / $elementsPerPage) + 1;
  //var_dump( $pageCount);
  if ($currentPage <= $oneSidePaginations)
  {
    $start = 1;
  }
  else
  {
    $start = $currentPage - $oneSidePaginations;
  }
  //var_dump( $start);

  $str = '';

  if ($currentPage != 0)
  {
    $str .= gbook_paginationurl(0, '&laquo;');
  }

  for ($i = 0; $i <= $paginationsPerPage; $i ++)
  {
    if ($start == $pageCount)
    {
      break;
    }
    $str .= gbook_paginationurl($start -1, $start);
    $start ++;
  }

  if ($currentPage != ($pageCount -2))
  {
    $str .= gbook_paginationurl($pageCount -2, '&raquo;');
  }
  return $str;
}

function gbook_paginationurl($page, $label = null)
{
  if ($label === null)
  {
    $label = $page;
  }
  return '<a href="?article_id='.$GLOBALS['article_id'].'&amp;page='.$page.'">'.$label.'</a>';
}

function gbook_formatemail($email, $format)
{
  $iATPos = strpos($email, '@');
  $iDotPos = strrpos($email, '.');

  $to = substr($email, 0, $iATPos);
  $domain = substr($email, $iATPos +1, $iDotPos - $iATPos -1);
  $tldomain = substr($email, $iDotPos +1);

  return str_replace(array ('%to%', '%domain%', '%tldomain%'), array ($to, $domain, $tldomain), $format);
}
?>
Maidenaustria
 
Beiträge: 254
Registriert: 7. Mär 2006, 09:43
Wohnort: Österreich

Beitragvon Dr KillerJoe » 6. Nov 2006, 23:27

Probier mal folgendes:

Ersetze (Zeile 201 modul.list.inc.php):
Code: Alles auswählen
  return '<a href="?article_id='.$GLOBALS['article_id'].'&amp;page='.$page.'">'.$label.'</a>';


mit
Code: Alles auswählen
  return '<a href="index.php?article_id='.$GLOBALS['article_id'].'&amp;page='.$page.'">'.$label.'</a>';

(ungetestet)

Wahrscheinlich hat Markus eine elegantere Lösung, aber erstmal sollte es funktionieren ;)

mfg
Flo
Die Doku und Wiki sind Deine Freunde!!!
Dr KillerJoe
 
Beiträge: 1729
Registriert: 24. Nov 2005, 21:29

Beitragvon Maidenaustria » 7. Nov 2006, 10:35

Toll das hat funktioniert - SPITZE!

Danke!
Maidenaustria
 
Beiträge: 254
Registriert: 7. Mär 2006, 09:43
Wohnort: Österreich

Beitragvon Markus.Staab » 7. Nov 2006, 11:49

Hi,

Dr KillerJoe hat geschrieben:Wahrscheinlich hat Markus eine elegantere Lösung, aber erstmal sollte es funktionieren ;)


stimmt ... :-)

Probier mal folgendes:
Ersetze (Zeile 201 modul.list.inc.php):
Code: Alles auswählen
  return '<a href="?article_id='.$GLOBALS['article_id'].'&amp;page='.$page.'">'.$label.'</a>';


mit
Code: Alles auswählen
  return '<a href="'. rex_getUrl('','', array('page' => $page)) . '">'.$label.'</a>';

(ungetestet)


Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Maidenaustria » 7. Nov 2006, 12:32

Läuft ebenso!!

Vielen dank an euch beide!!!!!
Maidenaustria
 
Beiträge: 254
Registriert: 7. Mär 2006, 09:43
Wohnort: Österreich

Beitragvon Dr KillerJoe » 7. Nov 2006, 12:34

kills hat geschrieben:Hi,

Dr KillerJoe hat geschrieben:Wahrscheinlich hat Markus eine elegantere Lösung, aber erstmal sollte es funktionieren ;)


stimmt ... :-)

^^

Du kleiner Textklauer ;) :lol:

mfg
Flo
Die Doku und Wiki sind Deine Freunde!!!
Dr KillerJoe
 
Beiträge: 1729
Registriert: 24. Nov 2005, 21:29

Beitragvon mina30de » 26. Mai 2010, 19:41

Das klappt auch noch bei dieser Version.

Code: Alles auswählen
/**
* Guestbook Addon
* @author staab[at]public-4u[dot]de Markus Staab
* @author <a href="http://www.public-4u.de">www.public-4u.de</a>
* @author redaxo[at]koalashome[dot]de Sven (Koala) Eichler
* @package redaxo4
* @version $Id: module.list.inc.php,v 1.19 2009/05/28 22:13:19 koala_s Exp $
*/


etwa Zeile 331 ersetzen
/*
  $link = '<li class="'.$class_aktuell.'"><a href="?article_id='.$_art_id.'&amp;page='.$page.'" title="Seite '.$title_name.'" name="Seite '.$title_name.'">';
  $link .= $label.'</a></li>'; */

mit
 
   
  $link = '<li class="'.$class_aktuell.'"><a href="'. rex_getUrl('','', array('page' => $page)) . '" title="Seite '.$title_name.'" name="Seite '.$title_name.'">';
  $link .= $label.'</a></li>';


Vielen Dank :wink:
mina30de
 
Beiträge: 152
Registriert: 19. Mär 2007, 10:43


Zurück zu AddOns [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste