Author Topic: Handy "edit this page" link when your logged in!  (Read 32918 times)

Panther

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #25 on: July 06, 2007, 04:15:04 PM »
There's a system variable for that.. try this..

Code: [Select]
<a href="<?php echo LOGIN_URL?>">member login</a>
I use this to display a link in my templates then is taken from the regular login box, it displays a preferences link, logout link and your name when logged in...

Code: [Select]
<?php
if(FRONTEND_LOGIN AND !$wb->is_authenticated()) {
?>

    <a href="<?php echo LOGIN_URL?>">member login</a>
    <!-- <a href="<?php echo SIGNUP_URL?>">register</a> -->
<?php
} elseif(FRONTEND_LOGIN AND $wb->is_authenticated()) {
?>

    <a href="<?php echo PREFERENCES_URL?>"><?php echo $MENU[&#39;PREFERENCES&#39;]; ?></a>
    <a href="<?php echo LOGOUT_URL?>"><?php echo $MENU[&#39;LOGOUT&#39;]; ?></a><br />
    Logged in as: <span class="caps"><?php echo $wb->get_display_name(); ?></span>
<?php ?>

Panther

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #26 on: July 15, 2007, 06:03:47 PM »
Ok, I'm trying to get it so this can be done as a module, but I can't even get it to work as a function...

I put the following in a CODE section on a page...

Code: [Select]
function edit_this_page()
{
    if (is_numeric($wb->get_session('USER_ID')))
    {
        // Get permissons
        if ($page_id) { $this_page = $page_id; }
        else { $this_page = $wb->default_page_id; }
        $database = new database();
        $results = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$this_page'");
        $results_array = $results->fetchRow();
        $old_admin_groups = explode(',', $results_array['admin_groups']);
        $old_admin_users = explode(',', $results_array['admin_users']);
        $this_user = $wb->get_session('GROUP_ID');
        if (is_numeric(array_search($this_user, $old_admin_groups)) )
        {
            echo '<a href="'.ADMIN_URL.'/pages/modify.php?page_id=';
            if ($page_id) { echo $page_id; }
            else { echo  $wb->default_page_id; }
            echo '" target="_blank"><img align="right" src="'.ADMIN_URL.'/images/modify_16.png" alt="'.$HEADING['MODIFY_PAGE'].' /></a>';
        }
    }     
}

edit_this_page();

and I get...
Quote
Fatal error: Call to a member function get_session() on a non-object in /home/.elijah/mnpages/baker.mnpages.com/modules/code/view.php(30) : eval()'d code on line 3

Any suggestions?

pcwacht

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #27 on: July 15, 2007, 07:56:01 PM »
When using a code section the code will be run through the php interpreter with the function eval();

This is very differrent from using the same code from a module (snippet)

Look at the hello world snippet I once wrote
just replace the echo 'hello world';  with your code and rename the snippet might do just what you need.


Good luck,
John

Offline marccouture

  • Posts: 219
  • Gender: Male
Re: Handy "edit this page" link when your logged in!
« Reply #28 on: August 02, 2007, 02:50:32 PM »
Thanks to all who worked on this, very handy indeed.  I'll echo others by saying it would be great if this were made available eventually as an installable module, but inserting the code into a template isn't too hard... for the time being.  :wink:
Marc C.

Offline RolfP

  • Posts: 18
Re: Handy "edit this page" link when your logged in!
« Reply #29 on: December 23, 2007, 09:20:26 AM »
I found this code snippet pretty need. Took Panthers code and turned it into a snippet modul. Now I am able to use it in a few servers without much additional effort.
For code see
http://forum.WebsiteBaker.org/index.php/topic,8167.0.html

Have fun

Rolf
« Last Edit: December 23, 2007, 12:07:12 PM by RolfP »

heikal

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #30 on: January 30, 2008, 05:21:15 PM »
Hi there, I'm a newcomer in the scene.

I'm very pleased with WB and I have picked up the code snippets about the handy "edit this page" link of which I think it is a great idea.

When using the code in my template, I have had the same problem having the icon being displayed in the "home" condition (page_id = default).
To cope with this I have slightly changed the routine making it check if the group_id is greater than 1,  because the group_id of the top_level page is 1 in my case.
The routine now works perfect and I'm very happy with it. Thanks to all of you.
I hope that this subject was still an issue and that I could eventually help someone.

Good luck and best regards,
heikal


[gelöscht durch Administrator]
« Last Edit: April 03, 2008, 02:48:53 PM by heikal »

Offline DGEC

  • Posts: 388
  • Gender: Male
    • EbelTech homepage
Re: Handy "edit this page" link when your logged in!
« Reply #31 on: January 30, 2008, 06:56:28 PM »
heilcal,

I'm not sure what you mean.  Are you saying you had trouble getting the default (home) page to display the edit icon?

Your code does have the correct code to find it, $wb->default_page_id;
What does it do differently?

Offline nerjuz

  • Posts: 6
Re: Handy "edit this page" link when your logged in!
« Reply #32 on: February 05, 2008, 08:12:35 AM »
I think this will help to make first page editable
Code: [Select]
if (!isset($page_id)) $page_id = $wb->default_page_id;
Code: [Select]
<?php  
                
if (FRONTEND_LOGIN == &#39;enabled&#39; AND is_numeric($wb->get_session(&#39;USER_ID&#39;)))
                    // Get permissons
                    
$database = new database();
                    
/* Checking*/ if (!isset($page_id)) $page_id $wb->default_page_id;
                    
$results $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = &#39;$page_id&#39;");
                    
$results_array $results->fetchRow();
                    
$old_admin_groups explode(&#39;,&#39;, $results_array[&#39;admin_groups&#39;]);
                    
$old_admin_users explode(&#39;,&#39;, $results_array[&#39;admin_users&#39;]);
                    
$this_user $wb->get_session(&#39;GROUP_ID&#39;);
                    
if (is_numeric(array_search($this_user$old_admin_groups)) ) {
                    
?>

                        <a href="<?php echo ADMIN_URL?>/pages/modify.php?page_id=<?php 
                        
if ($page_id
                            echo 
$page_id
                        else 
                            echo  
$wb->default_page_id; ;
                        
?>
" target="_blank"><img align="right" src="<?php echo ADMIN_URL ?>/images/modify_16.png" alt="<?php echo $HEADING[&#39;MODIFY_PAGE&#39;]; ?>" border="0" /></a><br>
                <?php ?>
« Last Edit: February 07, 2008, 08:52:25 PM by nerjuz »

mercator

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #33 on: March 09, 2008, 03:03:15 PM »

This is great. At the moment, it "only" checks if the current user is an admin and them allows editing or not. Can't one change the code such as to check if the current user (or group the user is in) is allowed to edit and then show the icon as well?

THANKS
Mercator

janjoensen

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #34 on: March 20, 2008, 09:23:43 PM »
Plc. HELP I can’t not get it to work on may page, and do not find any descriptions how do it.
Sorry I am a beginner! :x :?

I have tried what Rolf is writhing in his post 29"; I have also installed his module frontedit.zip. But how and where, shell I but "<?php frontend_edit(); ?>", I have try to edit to template, and puts this string there. I have but this string in to "Resultater - Footer:" and to may font page edit.
« Last Edit: March 21, 2008, 03:01:28 PM by janjoensen »

Offline DGEC

  • Posts: 388
  • Gender: Male
    • EbelTech homepage
Re: Handy "edit this page" link when your logged in!
« Reply #35 on: March 20, 2008, 10:56:46 PM »
Try the snippet module up in post #29 - he wrote instructions in the other thread.

janjoensen

  • Guest
Re: Handy "edit this page" link when your logged in!
« Reply #36 on: March 23, 2008, 01:11:38 PM »
I have tried what Rolf is writhing in his post 29"; I have also installed his module frontedit.zip. But how and where, shell I but "<?php frontend_edit(); ?>", I have try to edit to template, and puts this string there. I have but this string in to "Resultater - Footer:" and to may font page edit. :?

Offline RolfP

  • Posts: 18
Re: Handy "edit this page" link when your logged in!
« Reply #37 on: March 23, 2008, 04:25:30 PM »
Did you enable front end login?

If so, try to simply add "<?php print "Test"; ?> to prove if there is no error in your template anywhere else.