Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-29-2009, 02:14 PM
AustinKalb AustinKalb is offline
 
Join Date: Jul 2009
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Blog Data Managers

I would like to us the Blog data managers to 1) add a title and description to a users blog and 2) make an initial post for them.

I have tried using the blog DM without any success.

Anyone ever done this sort of thing? Any suggestions on making it work?

Code snippets would be greatly appreciated!

Thanks in advance!!
Austin
Reply With Quote
  #2  
Old 08-29-2009, 02:24 PM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What code have you been trying?
Reply With Quote
  #3  
Old 08-29-2009, 02:57 PM
AustinKalb AustinKalb is offline
 
Join Date: Jul 2009
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is how I would like it to work - unfortunately, it doesnt get past the new statement. Haven't even attempted a post yet!

Code:
<h1>createVbUserBlogDev.php</h1>

<?php
	# Add a user to vBulletin (offline)
		
	function qpc_post($varname)
	{
		return trim(stripslashes((get_magic_quotes_gpc()) ? $_POST[$varname] : addslashes($_POST[$varname])));
	}

	define('THIS_SCRIPT', 'createVbUserBlogDev.php');

	require_once('./global.php');
	require_once('./includes/class_dm.php');
	require_once('./includes/class_dm_user.php');

	$userdmBU = new vB_DataManager_Blog_User($vbulletin, ERRTYPE_ARRAY);

//	$userdmBU->set('bloguserid', 48);
//	$userdmBU ->set('title', 'This is a test Title');
//	$userdmBU ->save();

?>

<h4>Done!</h4>
Reply With Quote
  #4  
Old 08-30-2009, 04:47 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You should initialise data managers with a special function:
PHP Code:
$userdata =& datamanager_init('User'$vbulletinERRTYPE_ARRAY); 
Reply With Quote
  #5  
Old 08-30-2009, 10:23 PM
AustinKalb AustinKalb is offline
 
Join Date: Jul 2009
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dismounted View Post
You should initialise data managers with a special function:
PHP Code:
$userdata =& datamanager_init('User'$vbulletinERRTYPE_ARRAY); 
Code:
	define('THIS_SCRIPT', 'createVbUserBlogDev.php');

	require_once('./global.php');
	require_once('./includes/class_dm.php');
	require_once('./includes/class_dm_user.php');

	$userdmBU =& datamanager_init('User', $vbulletin, ERRTYPE_ARRAY);
Well, that got me past the first line...

These lines:

Code:
	$userdmBU->set('bloguserid', 65);
	$userdmBU ->set('title', 'This is a test Title');
	$userdmBU ->save();
Just create a huge page of error text!
Reply With Quote
  #6  
Old 08-31-2009, 07:26 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You do not need to include any DM files, also, you were meant to change the code I posted to suit your situation.
PHP Code:
define('THIS_SCRIPT''createVbUserBlogDev');

require_once(
'./global.php');

$userdmBU =& datamanager_init('Blog_User'$vbulletinERRTYPE_ARRAY);
$userdmBU->set('bloguserid'65);
$userdmBU->set('title''This is a test Title');
$userdmBU->save(); 
Reply With Quote
  #7  
Old 08-31-2009, 02:24 PM
AustinKalb AustinKalb is offline
 
Join Date: Jul 2009
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just trying to learn the system.

This doesnt run (hangs on set title):

Code:
	$userdmBU =& datamanager_init('Blog_User', $vbulletin, ERRTYPE_ARRAY);
								  
	$userdmBU->set('bloguserid', 65);	
	$userdmBU->set('title', 'This is a test Title');	
	$userdmBU->set('description', 'This is the description of my blog');	
	$userdmBU->save();
This runs but doesnt change anything:

Code:
	$userdmBU =& datamanager_init('Blog_User', $vbulletin, ERRTYPE_ARRAY);
								  
	$existing = array( 'bloguserid' => 65, 'title' => 'This is a test Title', 'description' => 'This is the description of my blog' );  		
	$userdmBU->set_existing(&$existing);
	
	$userdmBU->save();
Thanks for you help!
Austin

--------------- Added [DATE]1251775569[/DATE] at [TIME]1251775569[/TIME] ---------------

Anyone out there who know this stuff and is willing to share??

Thanks!
Reply With Quote
  #8  
Old 09-01-2009, 07:18 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Open up the datamanager file - it will show you all the fields you need to set. Also change ERRTYPE_ARRAY to ERRTYPE_STANDARD.
Reply With Quote
  #9  
Old 09-02-2009, 04:13 PM
AustinKalb AustinKalb is offline
 
Join Date: Jul 2009
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The code below successfully does what its supposed to, changes the blog title and description. I think its the correct use of the dm class.

There is a problem. The verify_title function in vB_DataManager_Blog_User never returns - so I hacked it (second piece of code). I would like to remove that hack - can you help?


PHP Code:
<h1>createVbUserBlogDev.php</h1>

<?php

    
# Change Blog Title and Description
    
define('THIS_SCRIPT''createVbUserBlogDevR2.php');

    require_once(
'./global.php');
    require_once(
'./includes/class_dm.php');
    require_once(
'./includes/class_dm_blog_user.php');

    
$userdm = new vB_DataManager_Blog_User($vbulletinERRTYPE_ARRAY);
    
    
$existing = array( 
        
'bloguserid' => 67
    
);     
    
$userdm->set_existing(&$existing);
    
    
    
$userdm->set('description''Updated Program Created Blog Description');
    
$userdm->set('title'"J Paul's LoanWorkout911 Blog");
    
    
$userdm->pre_save(); 
    if (
count($userdm->errors) > 0
    { 
        echo(
"Some error<br />");
    } 
    else 
    { 
        echo(
"No errors<br />");
        
$userdm->save();
    }      
    
?>

<h4>Done!</h4>


Here is the function (and hack) from the class definition:
PHP Code:
    /**
    * Verifies the title is valid and sets up the title for saving (wordwrap, censor, etc).
    *
    * @param    string    Title text
    *
    * @param    bool    Whether the title is valid
    */
    
function verify_title(&$title)
    {
        
// replace html-encoded spaces with actual spaces
        
$title preg_replace('/&#(0*32|x0*20);/'' '$title);

        
// AK Hack
        
return true;
        
        
// censor, remove all caps subjects, and htmlspecialchars post title
        
$title htmlspecialchars_uni(fetch_no_shouting_text(fetch_censored_text(trim($title))));

        
// do word wrapping
        
$title fetch_word_wrapped_string($title$this->registry->options['blog_wordwrap']);

        return 
true;
    } 

Thanks
Austin
Reply With Quote
  #10  
Old 09-04-2009, 10:28 PM
AustinKalb AustinKalb is offline
 
Join Date: Jul 2009
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, after getting this code to work, I've decided NOT to use it. The problem is that the translation of special characters from the PHP variables to vB was a mess. A single quote, double quote, or ampersand messed things up.

It just seemed easier to instruct the blog owner on how to edit their blog title, description, and first post.

Oh well - it was fun
Reply With Quote
Reply


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 05:15 AM.


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.07318 seconds
  • Memory Usage 2,276KB
  • 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
  • (5)bbcode_code
  • (5)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (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_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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete