vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Plugin for Genders: Help! (https://vborg.vbsupport.ru/showthread.php?t=180945)

Kiros72 05-29-2008 09:12 PM

Plugin for Genders: Help!
 
Alright, let me give a little background info before everyone notices my lack of intelligence. I have a decent amount of programming experience (at least enough to be able to read much of anything and write a good bit). However, I'm new to plugins, in fact, I'm new to many coding aspects of vBulletin, but I've been able to edit templates on my own and fix things up for sometime. With the help of a person over at vBulletin.com, I was able to make my first plugin to add advert content into the Ad Location templates automatically.

Now I'm trying to make a plugin to automatically use a gender modification.

I'm using the hook parse_templates:
PHP Code:

<if condition="((THIS_SCRIPT == 'showthread') OR (THIS_SCRIPT == 'showpost')">
    
$vbulletin->cachedtemplates['postbit'] = str_replace('$post[age]</div></if>''$post[age]</div></if> <if condition=\"$post[field6]\">$vbphrase[gender]: <img src=\"$stylevar[imgdir_misc]/$post[field6].gif\" alt=\"$post[field6]\" /></if>'$vbulletin->cachedtemplates['postbit']);
<else />
    <if 
condition="(THIS_SCRIPT == 'memberlist')">
        
$vbulletin->cachedtemplates['memberlist_resultsbit'] = str_replace('$userinfo[usertitle]</div></if>''$userinfo[usertitle]</div></if> <if condition=\"$userinfo[field6]\"><div class=\"smallfont\">$vbphrase[gender] <img src=\"$stylevar[imgdir_misc]/$userinfo[field6].gif\" alt=\"$userinfo[field6]\" /></div></if>'$vbulletin->cachedtemplates['memberlist_resultsbit']);
    </if>
</if> 

I need some help... What am I doing wrong? =[

MoT3rror 05-29-2008 09:20 PM

You can't use PHP in templates. You must do all PHP in plugins.

Paul M 05-29-2008 09:58 PM

Quote:

Originally Posted by MoT3rror (Post 1535613)
You can't use PHP in templates. You must do all PHP in plugins.

He is, parse_templates is a hook.

Quote:

Originally Posted by Kiros72 (Post 1535599)
I need some help... What am I doing wrong?

You are trying to insert template conditionals into a cached template - the cached versions are not the same as the raw versions - they are compiled into php code so you cannot do the replacements you are trying to do.

Kiros72 05-29-2008 10:34 PM

Thanks Paul! But I don't know what else to do. I'm just trying to replace it with what the modification requires:

Quote:

POSTBIT TEMPLATE EDIT

-----------

POSTBIT OR POSTBIT_LEGACY
-------

FIND

<if condition="$post['age']"><div>$vbphrase[age]: $post[age]</div></if>

ADD BELOW

<if condition="$post[field6]">$vbphrase[gender]: <img src="$stylevar[imgdir_misc]/$post[field6].gif" alt="$post[field6]" /></if>

CHANGE X TO THE FIELD NUMBER NOTED IN STEP 2 (6)
----------------------------------------------
MEMBERS LIST TEMPLATE EDIT

In Template memberlist_resultsbit

FIND

<if condition="$show['usertitlecol']"><div class="smallfont">$userinfo[usertitle]</div></if>

AFTER ADD

<if condition="$userinfo[field6]"><div class="smallfont">$vbphrase[gender] <img src="$stylevar[imgdir_misc]/$userinfo[field6].gif" alt="$userinfo[field6]" /></div></if>

Paul M 05-30-2008 12:08 AM

You cannot do that on the fly easily, you will either need to manually edit the template, or find a suitable template hook.

Kiros72 05-30-2008 08:09 PM

Okay, I see. Is there anyway I can edit the raw versions of the templates through plugins?

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

Oh wait, can't I use something like this in the plugin code?

PHP Code:

if (($vbulletin->THIS_SCRIPT == 'showthread' OR $vbulletin->THIS_SCRIPT == 'showpost') AND $vbulletin->$post[field6]) // I have no clue if that would be right
{
    
$vbulletin->cachedtemplates['postbit'] = str_replace('$post[age]</div>''$post[age]</div> <div class=\"postbit\">$vbphrase[gender]: <img src=\"$stylevar[imgdir_misc]/$post[field6].gif\" alt=\"$post[field6]\" />'$vbulletin->cachedtemplates['postbit']);
}
else if (
$vbulletin->THIS_SCRIPT == 'memberlist'// again, no idea if that is even possible
{
    if (
$vbulletin->$userinfo[field6]) // be gentle
    
{
        
$vbulletin->cachedtemplates['memberlist_resultsbit'] = str_replace('$userinfo[usertitle]</div>''$userinfo[usertitle]</div> <div class=\"smallfont\">$vbphrase[gender] <img src=\"$stylevar[imgdir_misc]/$userinfo[field6].gif\" alt=\"$userinfo[field6]\" /></div>'$vbulletin->cachedtemplates['memberlist_resultsbit']);
    }


I know that must look horrible and completely incorrect, but could I use something like that (if the code and variables were right)?


All times are GMT. The time now is 01:06 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.01056 seconds
  • Memory Usage 1,743KB
  • 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
  • (2)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)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