vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Blog Data Managers (https://vborg.vbsupport.ru/showthread.php?t=222042)

AustinKalb 08-29-2009 02:14 PM

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

Dismounted 08-29-2009 02:24 PM

What code have you been trying?

AustinKalb 08-29-2009 02:57 PM

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>


Dismounted 08-30-2009 04:47 AM

You should initialise data managers with a special function:
PHP Code:

$userdata =& datamanager_init('User'$vbulletinERRTYPE_ARRAY); 


AustinKalb 08-30-2009 10:23 PM

Quote:

Originally Posted by Dismounted (Post 1876674)
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!

Dismounted 08-31-2009 07:26 AM

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(); 


AustinKalb 08-31-2009 02:24 PM

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!

Dismounted 09-01-2009 07:18 AM

Open up the datamanager file - it will show you all the fields you need to set. Also change ERRTYPE_ARRAY to ERRTYPE_STANDARD.

AustinKalb 09-02-2009 04:13 PM

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

AustinKalb 09-04-2009 10:28 PM

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 :)


All times are GMT. The time now is 06:45 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.01421 seconds
  • Memory Usage 1,764KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (5)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete