Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions

Reply
 
Thread Tools Display Modes
  #1  
Old 07-13-2004, 06:48 PM
gfxhavenowner gfxhavenowner is offline
 
Join Date: Jul 2004
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help With My Addon to Top X

This is my first hack, so try and help in as least complicated words as possible . J/k.

Thanks to Zero Tolerence for giving me some guidence as well.

Here's my code so far.

Code:
<?php

// ######################### ERROR REPORTING #############################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('GET_EDIT_TEMPLATES', true);
define('THIS_SCRIPT', 'topxadmin');

require_once('./global.php');
require_once('./includes/functions_misc.php');

$DB=$DB_site;

// ###################### Edit Settings ########################
if ($_GET['act'] == "update")
{
print_cp_header("Top X Control Panel");

$excludedforums=$DB->query_first("SELECT excludedforums FROM topx_admin");

print_form_header('topxadmin', 'do_update_topxsetting');
	print_table_header("Top X Settings");
	print_input_row("Forums to exclude", 'exclude_forums',$excludedforums['exclude_forums']);
	print_submit_row("Update Top X Settings", 0);
}
	
if($_POST['do']=="do_update_topxsetting")
{
$DB->query("UPDATE topx_admin SET excludedforums='{$_POST['excludedforums']}'");
//Redirect
define('CP_REDIRECT', 'topxadmin.php?act=update');
print_stop_message('excluded_forums_updated');

}	

?>
As you can see, my field name is excludedforums, my table name is topx_admin. excludedforums is a varchar(255), not null, with a blank default. It is the only field in the table.

The page builds everything alright. My AdminCP link is:

Code:
construct_nav_option("Forum Display Settings", 'topxadmin.php?act=update', '<br />');
which works fine.

excluded_forums_admin is a VB phrase. It contains the text "Excluded forums have been updated." and is a global phrase.

In the index.php of the main page(not AdminCP) I replaced the original Top X code of

Code:
$excludedforums = "9,10,11,12,26,58"; // forums to be excluded from latest threads. Format "0,5,7"
with my new code of

Code:
$excludedforums=$DB_site->("SELECT excludedforums FROM topx_admin");
Problem 1.

When I click the Update button in the AdminCP, I get "Could not find phrase 'excluded_forums_updated'."

Problem 2.

After replacing the original Top X code with mine, and going through the AdminCP and typing in any value, I get this error.

Code:
Parse error: parse error, unexpected '(', expecting T_STRING or T_VARIABLE or '{' or '$' in /home/.yardan/gfxhaven/gfxhaven.com/forums/index.php on line 423
Line 423 is the line my code is on.

Sorry for taking up so much space lol, if anyone could help me I would greatly apprieciate it and would glady give you credit.
Reply With Quote
  #2  
Old 07-13-2004, 11:02 PM
Dark_Wizard Dark_Wizard is offline
 
Join Date: Nov 2001
Location: North Carolina
Posts: 1,251
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

First off change this:
PHP Code:
$DB->query("UPDATE topx_admin SET excludedforums='{$_POST['excludedforums']}'"); 
to this:
PHP Code:
$DB->query("
UPDATE topx_admin 
SET excludedforums = 
$excludedforums
"
); 
Then add your phrase to the "Control Panel Stop" phrases group
Reply With Quote
  #3  
Old 07-13-2004, 11:22 PM
Dark_Wizard Dark_Wizard is offline
 
Join Date: Nov 2001
Location: North Carolina
Posts: 1,251
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Also...add an id field to that table and call it "topx_adminid" as well and set it to autoincrement and set it as primary.
Reply With Quote
  #4  
Old 07-13-2004, 11:23 PM
gfxhavenowner gfxhavenowner is offline
 
Join Date: Jul 2004
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That fixed the phrase problem, thanks.

However, I still get the parse error.

Code:
Parse error: parse error, unexpected '(', expecting T_STRING or T_VARIABLE or '{' or '$' in /home/.yardan/gfxhaven/gfxhaven.com/forums/index.php on line 423
Reply With Quote
  #5  
Old 07-13-2004, 11:31 PM
Dark_Wizard Dark_Wizard is offline
 
Join Date: Nov 2001
Location: North Carolina
Posts: 1,251
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well your script is missing some code and doesn't know what to update since you are not defining what to update, another words if you add an id field as I stated in my other post, this line:

PHP Code:
$excludedforums=$DB->query_first("SELECT excludedforums FROM topx_admin"); 
should be changed to this:
PHP Code:
$excludedforums $DB->query_first("SELECT excludedforums FROM topx_admin WHERE id = $id"); 
Then you should globalize id after this:
PHP Code:
if ($_GET['act'] == "update")


and while your at it change the above:
PHP Code:
if ($_GET['act'] == "update")

to this:
PHP Code:
if ($_REQUEST['do'] == "update")

and when you link it with a url set it like this:
Code:
topxadmin.php?do=update&amp;id=$id
also get rid of this:
$DB=$DB_site;
and just use $DB_site

hmmm...I keep finding more...

take this:
PHP Code:
print_cp_header("Top X Control Panel"); 
and move it to where $DB=$DB_site; was
Reply With Quote
  #6  
Old 07-13-2004, 11:44 PM
gfxhavenowner gfxhavenowner is offline
 
Join Date: Jul 2004
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

LOL, damn, didn't my code was so bad lol.

Anyways, here's the new code:

Code:
<?php

// ######################### ERROR REPORTING #############################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('GET_EDIT_TEMPLATES', true);
define('THIS_SCRIPT', 'topxadmin');

require_once('./global.php');
require_once('./includes/functions_misc.php');

print_cp_header("Top X Control Panel");

// ###################### Edit Settings ########################
if ($_REQUEST['do'] == "update")
{

$excludedforums=$DB_site->query_first("SELECT excludedforums FROM topx_admin WHERE id = $topx_adminid");

print_form_header('topxadmin', 'do_update_topxsetting');
	print_table_header("Top X Settings");
	print_input_row("Forums to exclude", 'exclude_forums',$excludedforums['exclude_forums']);
	print_submit_row("Update Top X Settings", 0);
}
	
if($_POST['do']=="do_update_topxsetting")
{
$DB_site->query(" UPDATE topx_admin SET excludedforums = '" . $_POST['excludedforums'] . "' "); 

define('CP_REDIRECT', 'topxadmin.php?act=update');
print_stop_message('excluded_forums_updated');

}
	
	

?>
And here's the error I get when clicking the link.

Code:
Database error in vBulletin 3.0.3:

Invalid SQL: SELECT excludedforums FROM topx_admin WHERE id = 
mysql error: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mysql error number: 1064
Reply With Quote
  #7  
Old 07-13-2004, 11:47 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dark_Wizard
to this:
PHP Code:
$DB->query("
UPDATE topx_admin 
SET excludedforums = '" 
$_POST['excludedforums'] . "'
"
); 
Never-ever should one use a variable from an URL or user input unquoted in an SQL-query!
Reply With Quote
  #8  
Old 07-13-2004, 11:53 PM
Dark_Wizard Dark_Wizard is offline
 
Join Date: Nov 2001
Location: North Carolina
Posts: 1,251
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KirbyDE
Never-ever should one use a variable from an URL or user input unquoted in an SQL-query!

Agreed...just went through this very fast without wanting to rewrite all of his code...
Reply With Quote
  #9  
Old 07-13-2004, 11:54 PM
gfxhavenowner gfxhavenowner is offline
 
Join Date: Jul 2004
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dark_Wizard
Agreed...just went through this very fast without wanting to rewrite all of his code...
I'm getting the feeling like I should just cut my losses now lol.
Reply With Quote
  #10  
Old 07-13-2004, 11:58 PM
Dark_Wizard Dark_Wizard is offline
 
Join Date: Nov 2001
Location: North Carolina
Posts: 1,251
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by gfxhavenowner
I'm getting the feeling like I should just cut my losses now lol.
Your code is missing alot unless your not posting all of it. May I make a suggestion...check out how vb does it and get your ideas from that...if your still having problems let me know offline instead of posting everything back and forth in a thread and getting you more confused.

I really didn't want to rewrite your code for you as this would be a good learning experience for you and at the same time gets you more familiar with php as the dev's a vb.com have done an excellent job on vb 3.x......
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:22 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05322 seconds
  • Memory Usage 2,272KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (9)bbcode_code
  • (9)bbcode_php
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete