phpBB SEO
Boards
Directory  
SEO  
Downloads
  phpBB SEO : Search Engine Optimization, Directory, Forums  
Index
Forums
Annuaire
Référencement
Télécharger
 
  Search Rechercher
    Register
Username :  Password :  Log me on automatically each visit  
S'enregistrer  
 
   
Poll Block of Canver Portal (aka phpBB3 Portal)

 
Post new topic   Reply to topic    phpBB SEO » SEO Forum  » phpBB3 SEO TooLKit  » phpBB SEO Premod
::  
Author Message
ASLAN
PR0
PR0


Joined: 19 Nov 2007
Posts: 58
Location: Chile

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Sun May 25, 2008 9:12 pm    Post subject: Poll Block of Canver Portal (aka phpBB3 Portal)

That's the last block what I need correct the URL

This is the code of the Block
Code:
<?php
/*
*
* @package phpBB3 Portal  a.k.a canverPortal  ( www.phpbb3portal.com )
* @version $Id: poll.php,v 1.4 2008/02/09 08:18:14 angelside Exp $
* @copyright (c) Canver Software - www.canversoft.net
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('IN_PHPBB') or !defined('IN_PORTAL'))
{
   die('Hacking attempt');
   exit;
}

/**
* @ignore
*/

$user->add_lang('viewtopic');

$view = request_var('view', '');
$update = request_var('update', false);
$poll_view = request_var('polls', '');

$poll_view_ar = ( strpos(urldecode($poll_view), ',') !== FALSE ) ? explode(',', urldecode($poll_view)) : ($poll_view != '') ? array($poll_view) : array();

if ($update && $config['portal_poll_allow_vote'])
{
   $up_topic_id = request_var('t', 0);
   $up_forum_id = request_var('f', 0);
   $voted_id = request_var('vote_id', array('' => 0));

   $cur_voted_id = array();
   if ($user->data['is_registered'])
   {
      $sql = 'SELECT poll_option_id
         FROM ' . POLL_VOTES_TABLE . '
         WHERE topic_id = ' . $up_topic_id . '
            AND vote_user_id = ' . $user->data['user_id'];
      $result = $db->sql_query($sql);

      while ($row = $db->sql_fetchrow($result))
      {
         $cur_voted_id[] = $row['poll_option_id'];
      }
      $db->sql_freeresult($result);
   }
   else
   {
      // Cookie based guest tracking ... I don't like this but hum ho
      // it's oft requested. This relies on "nice" users who don't feel
      // the need to delete cookies to mess with results.
      if (isset($_COOKIE[$config['cookie_name'] . '_poll_' . $up_topic_id]))
      {
         $cur_voted_id = explode(',', $_COOKIE[$config['cookie_name'] . '_poll_' . $up_topic_id]);
         $cur_voted_id = array_map('intval', $cur_voted_id);
      }
   }

   $sql = 'SELECT t.poll_length, t.poll_start, t.poll_vote_change, t.topic_status, f.forum_status, t.poll_max_options
         FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
         WHERE t.forum_id = f.forum_id AND t.topic_id = " . (int) $up_topic_id . " AND t.forum_id = " . (int) $up_forum_id;
   $result = $db->sql_query_limit($sql, 1);
   $topic_data = $db->sql_fetchrow($result);
   $db->sql_freeresult($result);

   $s_can_up_vote = (((!sizeof($cur_voted_id) && $auth->acl_get('f_vote', $up_forum_id)) ||
      ($auth->acl_get('f_votechg', $up_forum_id) && $topic_data['poll_vote_change'])) &&
      (($topic_data['poll_length'] != 0 && $topic_data['poll_start'] + $topic_data['poll_length'] > time()) || $topic_data['poll_length'] == 0) &&
      $topic_data['topic_status'] != ITEM_LOCKED &&
      $topic_data['forum_status'] != ITEM_LOCKED) ? true : false;

   if( $s_can_up_vote )
   {
      if (!sizeof($voted_id) || sizeof($voted_id) > $topic_data['poll_max_options'] || in_array(VOTE_CONVERTED, $cur_voted_id))
      {
         $redirect_url = append_sid("./portal.$phpEx");
   
         meta_refresh(5, $redirect_url);
         if (!sizeof($voted_id))
         {
            $message = 'NO_VOTE_OPTION';
         }
         else if (sizeof($voted_id) > $topic_data['poll_max_options'])
         {
            $message = 'TOO_MANY_VOTE_OPTIONS';
         }
         else
         {
            $message = 'VOTE_CONVERTED';
         }
   
         $message = $user->lang[$message] . '<br /><br />' . sprintf($user->lang['RETURN_PORTAL'], '<a href="' . $redirect_url . '">', '</a>');
         trigger_error($message);
      }
   
      foreach ($voted_id as $option)
      {
         if (in_array($option, $cur_voted_id))
         {
            continue;
         }
   
         $sql = 'UPDATE ' . POLL_OPTIONS_TABLE . '
            SET poll_option_total = poll_option_total + 1
            WHERE poll_option_id = ' . (int) $option . '
               AND topic_id = ' . (int) $up_topic_id;
         $db->sql_query($sql);
   
         if ($user->data['is_registered'])
         {
            $sql_ary = array(
               'topic_id'         => (int) $up_topic_id,
               'poll_option_id'   => (int) $option,
               'vote_user_id'      => (int) $user->data['user_id'],
               'vote_user_ip'      => (string) $user->ip,
            );
   
            $sql = 'INSERT INTO ' . POLL_VOTES_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
            $db->sql_query($sql);
         }
      }
   
      foreach ($cur_voted_id as $option)
      {
         if (!in_array($option, $voted_id))
         {
            $sql = 'UPDATE ' . POLL_OPTIONS_TABLE . '
               SET poll_option_total = poll_option_total - 1
               WHERE poll_option_id = ' . (int) $option . '
                  AND topic_id = ' . (int) $up_topic_id;
            $db->sql_query($sql);
   
            if ($user->data['is_registered'])
            {
               $sql = 'DELETE FROM ' . POLL_VOTES_TABLE . '
                  WHERE topic_id = ' . (int) $up_topic_id . '
                     AND poll_option_id = ' . (int) $option . '
                     AND vote_user_id = ' . (int) $user->data['user_id'];
               $db->sql_query($sql);
            }
         }
      }
   
      if ($user->data['user_id'] == ANONYMOUS && !$user->data['is_bot'])
      {
         $user->set_cookie('poll_' . $up_topic_id, implode(',', $voted_id), time() + 31536000);
      }
   
      $sql = 'UPDATE ' . TOPICS_TABLE . '
         SET poll_last_vote = ' . time() . "
         WHERE topic_id = $up_topic_id";
      //, topic_last_post_time = ' . time() . " -- for bumping topics with new votes, ignore for now
      $db->sql_query($sql);
   
      $redirect_url = append_sid("./portal.$phpEx");
   
      meta_refresh(5, $redirect_url);
      trigger_error($user->lang['VOTE_SUBMITTED'] . '<br /><br />' . sprintf($user->lang['RETURN_PORTAL'], '<a href="' . $redirect_url . '">', '</a>'));
   }
}

$where = '';
$poll_forums = false;

if( $config['portal_poll_topic_id'] !== '' )
{
   $poll_forums_config  = explode(',' ,$config['portal_poll_topic_id']);
   foreach($poll_forums_config as $poll_forum )
   {
      if ( is_numeric(trim($poll_forum)) === TRUE )
      {
         $poll_forum = (int) trim($poll_forum);
         if( $auth->acl_get('f_read', $poll_forum) )
         {
            $poll_forums = true;
            $where .= ($where == "") ? "t.forum_id = '{$poll_forum}'" : " OR t.forum_id = '{$poll_forum}'";
         }
      }
   }
}
else
{
   $forum_list = $auth->acl_getf('f_read', true);

   foreach($forum_list as $pf => $pf_data )
   {
      $pf = (int) trim($pf);
      $poll_forums = true;
      $where .= ($where == "") ? "t.forum_id = '{$pf}'" : " OR t.forum_id = '{$pf}'";
   }
}

$where = ($where !== '') ? "AND ({$where})" : '';

if( $poll_forums === TRUE )
{
   
   $sql = 'SELECT t.poll_title, t.poll_start, t.topic_id, t.forum_id, t.poll_length, t.poll_vote_change, t.poll_max_options, t.topic_status, f.forum_status
         FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
         WHERE t.forum_id = f.forum_id AND t.topic_approved = 1 AND t.poll_start > 0
         {$where}
         ORDER BY t.poll_start DESC";

   $limit = ( isset($config['portal_poll_limit']) ) ? $config['portal_poll_limit'] : 3;

   $result = $db->sql_query_limit($sql, $limit);
   
   $has_poll = false;

   if ($result)
   {
      
      while( $data = $db->sql_fetchrow($result) )
      {
         $has_poll = true;
         $poll_has_options = false;

         $topic_id = (int) $data['topic_id'];

         $cur_voted_id = array();
         if( $config['portal_poll_allow_vote'] )
         {
            if ($user->data['is_registered'])
            {
               $vote_sql = 'SELECT poll_option_id
                  FROM ' . POLL_VOTES_TABLE . '
                  WHERE topic_id = ' . $topic_id . '
                     AND vote_user_id = ' . $user->data['user_id'];
               $vote_result = $db->sql_query($vote_sql);
            
               while ($row = $db->sql_fetchrow($vote_result))
               {
                  $cur_voted_id[] = $row['poll_option_id'];
               }
               $db->sql_freeresult($vote_result);
            }
            else
            {
               // Cookie based guest tracking ... I don't like this but hum ho
               // it's oft requested. This relies on "nice" users who don't feel
               // the need to delete cookies to mess with results.
               if (isset($_COOKIE[$config['cookie_name'] . '_poll_' . $topic_id]))
               {
                  $cur_voted_id = explode(',', $_COOKIE[$config['cookie_name'] . '_poll_' . $topic_id]);
                  $cur_voted_id = array_map('intval', $cur_voted_id);
               }
            }
   
            $s_can_vote = (((!sizeof($cur_voted_id) && $auth->acl_get('f_vote', $forum_id)) ||
               ($auth->acl_get('f_votechg', $forum_id) && $data['poll_vote_change'])) &&
               (($data['poll_length'] != 0 && $data['poll_start'] + $data['poll_length'] > time()) || $data['poll_length'] == 0) &&
               $data['topic_status'] != ITEM_LOCKED &&
               $data['forum_status'] != ITEM_LOCKED) ? true : false;
         } else {
            $s_can_vote = false;
         }

         $s_display_results = ( !$s_can_vote || ( $s_can_vote && sizeof($cur_voted_id) ) || ( $view == 'viewpoll' && in_array($topic_id, $poll_view_ar) ) ) ? true : false;

         $poll_sql = 'SELECT po.poll_option_id, po.poll_option_text, po.poll_option_total
            FROM ' . POLL_OPTIONS_TABLE . " po
            WHERE po.topic_id = {$topic_id}
            ORDER BY po.poll_option_id";

         $poll_result = $db->sql_query($poll_sql);
         
         $poll_total_votes = 0;

         $poll_data = array();

         if ($poll_result)
         {
            while( $polls_data = $db->sql_fetchrow($poll_result) )
            {
               $poll_has_options = true;
               $poll_data[] = $polls_data;
               $poll_total_votes += $polls_data['poll_option_total'];
            }
         }

         $db->sql_freeresult($poll_result);
         
         $forum_id = (int) $data['forum_id'];
         
         if( in_array($topic_id, $poll_view_ar) === FALSE )
         {
            $poll_view_ar[] = $topic_id;
         }
         
         $poll_view_str = urlencode( implode(',', $poll_view_ar) );

         $portalpoll_url= append_sid("./portal.$phpEx", "polls=$poll_view_str");
         $portalvote_url= append_sid("./portal.$phpEx", "f=$forum_id&amp;t=$topic_id");
         $viewtopic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id");

         $poll_end = $data['poll_length'] + $data['poll_start'];

         $template->assign_block_vars('poll', array(
            'S_POLL_HAS_OPTIONS' => $poll_has_options,
            'POLL_QUESTION' => $data['poll_title'],
            'U_POLL_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.' . $phpEx . '?t=' . $topic_id . '&amp;f=' . $forum_id),
            'POLL_LENGTH' => $data['poll_length'],

            'TOTAL_VOTES'       => $poll_total_votes,
      
            'L_MAX_VOTES'      => ($data['poll_max_options'] == 1) ? $user->lang['MAX_OPTION_SELECT'] : sprintf($user->lang['MAX_OPTIONS_SELECT'], $data['poll_max_options']),
            'L_POLL_LENGTH'      => ($data['poll_length']) ? sprintf($user->lang[($poll_end > time()) ? 'POLL_RUN_TILL' : 'POLL_ENDED_AT'], $user->format_date($poll_end)) : '',
      
            'S_CAN_VOTE'      => $s_can_vote,
            'S_DISPLAY_RESULTS'   => $s_display_results,
            'S_IS_MULTI_CHOICE'   => ($data['poll_max_options'] > 1) ? true : false,
            'S_POLL_ACTION'      => $portalvote_url,
      
            'U_VIEW_RESULTS'   => $portalpoll_url . '&amp;view=viewpoll',
            'U_VIEW_TOPIC'      => $viewtopic_url
         ));

         foreach($poll_data as $pd)
         {
            $option_pct = ($poll_total_votes > 0) ? $pd['poll_option_total'] / $poll_total_votes : 0;
            $option_pct_txt = sprintf("%.1d%%", ($option_pct * 100));

            $template->assign_block_vars('poll.poll_option', array(
               'POLL_OPTION_ID'       => $pd['poll_option_id'],
               'POLL_OPTION_CAPTION'    => $pd['poll_option_text'],
               'POLL_OPTION_RESULT'    => $pd['poll_option_total'],
               'POLL_OPTION_PERCENT'    => $option_pct_txt,
               'POLL_OPTION_PCT'      => round($option_pct * 100),
               'POLL_OPTION_IMG'       => $user->img('poll_center', $option_pct_txt, round($option_pct * 250)),
               'POLL_OPTION_VOTED'      => (in_array($pd['poll_option_id'], $cur_voted_id)) ? true : false
            ));
         }
      }
   }      

   $db->sql_freeresult($result);

   $template->assign_vars(array(
      'S_DISPLAY_POLL' => true,
      'S_HAS_POLL' => $has_poll,
      'POLL_LEFT_CAP_IMG'   => $user->img('poll_left'),
      'POLL_RIGHT_CAP_IMG'=> $user->img('poll_right'),
   ));
}

?>


Could you help me please
Thanks
Back to top
Visit poster's website
ASLAN
PR0
PR0


Joined: 19 Nov 2007
Posts: 58
Location: Chile

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Tue May 27, 2008 4:04 am    Post subject: Re: Poll Block of Canver Portal (aka phpBB3 Portal)

Help me please Wink
Back to top
Visit poster's website
SeO
Administrateur - Site Admin
Administrateur - Site Admin


Joined: 15 Mar 2006
Posts: 3477

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Tue May 27, 2008 12:41 pm    Post subject: Re: Poll Block of Canver Portal (aka phpBB3 Portal)

Try replacing :

Code:
   $sql = 'SELECT t.poll_title, t.poll_start, t.topic_id, t.forum_id, t.poll_length, t.poll_vote_change, t.poll_max_options, t.topic_status, f.forum_status


with :

Code:
   $sql = 'SELECT t.poll_title, t.poll_start, t.topic_id, t.forum_id, t.topic_type, t.topic_title, t.poll_length, t.poll_vote_change, t.poll_max_options, t.topic_status, f.forum_status, f.forum_name 



and add :
Code:
       // www.phpBB-SEO.com SEO TOOLKIT BEGIN
       if ( empty($phpbb_seo->seo_url['topic'][$topic_id]) ) {
          if ($data['topic_type'] == POST_GLOBAL) {
             $phpbb_seo->seo_opt['topic_type'][$topic_id] = POST_GLOBAL;
          }
          $phpbb_seo->seo_url['topic'][$topic_id] = $phpbb_seo->format_url(censor_text($data['topic_title']));
       }
       if ( empty($phpbb_seo->seo_url['forum'][$forum_id]) ) {
          $phpbb_seo->seo_url['forum'][$forum_id] = $phpbb_seo->set_url($data['forum_name'], $forum_id, $phpbb_seo->seo_static['forum']);
       }
       // www.phpBB-SEO.com SEO TOOLKIT END


after :

Code:
      $poll_view_str = urlencode( implode(',', $poll_view_ar) );


Wink

_________________
phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible !
Back to top
ASLAN
PR0
PR0


Joined: 19 Nov 2007
Posts: 58
Location: Chile

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Tue May 27, 2008 7:53 pm    Post subject: Re: Poll Block of Canver Portal (aka phpBB3 Portal)

Thanks
I will try tonight
I let you know if it worked
Thanks again
Back to top
Visit poster's website
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Joined: 28 Apr 2006
Posts: 14327

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Sat May 31, 2008 2:00 pm    Post subject: Re: Poll Block of Canver Portal (aka phpBB3 Portal)

Did it worked ?

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Back to top
Visit poster's website
ASLAN
PR0
PR0


Joined: 19 Nov 2007
Posts: 58
Location: Chile

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Sat May 31, 2008 4:38 pm    Post subject: Re: Poll Block of Canver Portal (aka phpBB3 Portal)

Sorry I'm late
I was without internet for a few days

For some reason this block worked fine without changes
I modified other block, then deleted the cache and voila the Poll block worked
I don't know why

Thanks for your help
Back to top
Visit poster's website
ASLAN
PR0
PR0


Joined: 19 Nov 2007
Posts: 58
Location: Chile

Poll Block of Canver Portal (aka phpBB3 Portal)Posted: Wed Jun 25, 2008 7:29 pm    Post subject: Re: Poll Block of Canver Portal (aka phpBB3 Portal)

It failed again, so I made the changes what you gave to me and it works perfect
Thanks
Back to top
Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    phpBB SEO » SEO Forum  » phpBB3 SEO TooLKit  » phpBB SEO Premod
Page 1 of 1

Navigation Similar Topics

Jump to: