Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2012, 09:00:54 PM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155553 Posts in 21715 Topics by 7737 Members
Latest Member: gx-world
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: code snippet: alphabetical listing of pages  (Read 1816 times)
N1l3Z

Offline Offline

Posts: 21



« on: April 08, 2006, 05:19:12 PM »

Hello All!

I just made a small snippet for displaying all the public pages alphabetically.. This is a nice supplement to sitemap.

Here's some code to put into a code-module and put on any page..

Code:
$private_sql = "";
$private_where_sql = "NOT visibility = 'private'";
global $database;
global $private_sql;
global $private_where_sql;
global $shown;
$shown="z";
// Query pages
$query_menu = $database->query("SELECT page_id,parent,link,page_title,menu_title,description,keywords,modified_when,modified_by,link,target,visibility FROM ".TABLE_PREFIX."pages WHERE $private_where_sql ORDER BY page_title ASC");

// Check if there are any pages to show
if($query_menu->numRows() > 0) {
echo '<h1>Pages index</h1>';


while($page = $query_menu->fetchRow()) {

$firstletter = substr($page['page_title'], 0, 1);
if ($firstletter != $shown){

echo $firstletter;
echo'<br />';
$shown = $firstletter;
}

echo '<a href="';
echo page_link($page['link']);
echo '">';
echo $page['page_title'];
echo'</a>';
echo '<br />';

}

}

The code can be modified to look into the modules also, but here it just lists the pages..

Cheers!

/N1L3Z
Logged
xiff

Offline Offline

Posts: 7


« Reply #1 on: December 03, 2007, 03:15:20 PM »

hi all Wink

another version of this code Cheesy

Code:
$private_sql = "";
$private_where_sql = "NOT visibility = 'private'";
global $database;
    global $private_sql;
    global $private_where_sql;
    global $shown;
$shown="z";

   
    //SELECT distinct LEFT(nom, 1) AS firstletter FROM t_pilote order by firstletter ASC
   
    // Check if there are any pages to show
    echo '<h1>Pages A to Z</h1>';
       
    $alpha = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
   
    $query_menu = $database->query("SELECT distinct LEFT(page_title, 1) AS firstletter FROM ".TABLE_PREFIX."pages order by firstletter ASC");
   
    $page = $query_menu->fetchRow();
    for($i=0;$i<count($alpha);$i++){
        if($page['firstletter']!=$alpha[$i]){
            echo'&nbsp; | &nbsp;'.$alpha[$i].'';
        }else{
            echo'&nbsp; | &nbsp;<a href="#'.$alpha[$i].'">'.$alpha[$i].'</a>';
            $page = $query_menu->fetchRow();
        }
       
    }
    echo"&nbsp; |<br><br>";

    // Query pages
    $query_menu = $database->query("SELECT page_id,parent,link,page_title,menu_title,description,keywords,modified_when,modified_by,link,target,visibility FROM ".TABLE_PREFIX."pages WHERE $private_where_sql ORDER BY page_title ASC");
   
    if($query_menu->numRows() > 0) {
        while($page = $query_menu->fetchRow()) {

            $firstletter = substr($page['page_title'], 0, 1);
            if ($firstletter != $shown){
                echo '<h2><a name="'.strtoupper($firstletter).'" id="'.strtoupper($firstletter).'">'.$firstletter.'</a></h2>';
                echo'<br />';
                $shown = $firstletter;
            }
           
            echo '<a href="';
                echo page_link($page['link']);
                echo '">';
                echo $page['page_title'];
                echo'</a>';
                echo '<br />';        
        }
    }
Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!