vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Display a variable in my template (https://vborg.vbsupport.ru/showthread.php?t=318992)

Bastien 06-08-2015 02:36 PM

Display a variable in my template
 
Hello,

I created a php file, the display is correct, except the variable $out that doesn't display where it should ... with a echo, it display well the result of my query, but I can't display it directly in my template.

Could someone help me ?

This is my php file :

Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'fournisseurs');
define('CSRF_PROTECTION', true); 
// change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('index',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir('/var/www/vhosts/lecoinduprothesiste.fr/httpdocs/forums');
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = construct_navbits(array('' => 'Options fournisseurs'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = '';

$item='';
        $liste_produits_parent = $vbulletin->db->query_read_slave("
                SELECT *
                FROM devis_produits AS produits
                WHERE est_parent = 1
                ORDER by id_affichage
        ");
        while ($produit = $vbulletin->db->fetch_array($liste_produits_parent))
        {               
        $item .= "$produit[nom]";
        }
        $vbulletin->db->free_result($liste_produits_parent);


echo $item;


// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('FOURNISSEURS');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
$templater->register('out', $item);
print_output($templater->render());

?>

and this is my FOURNISSEURS template :

Code:

{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
  <head>
    <title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
    {vb:raw headinclude}
    {vb:raw headinclude_bottom}
  </head>
  <body>
   
    {vb:raw header}
   
    {vb:raw navbar}
   
    <div id="pagetitle">
      <h1>{vb:raw pagetitle}</h1>
    </div>
   
    <h2 class="blockhead">G?rez vos produits commercialis?s</h2>
    <div class="blockbody">
      <div class="blockrow" align="center">
 



      Ici, vous pouvez g?rer les produits que vous commercialisez, et ainsi etre contact? quand un membre du site fait une demande de devis.
<p><br /><p>Chaque fois qu'une demande de devis est faite correspondant ? un produit que vous commercialisez, vous recevrez automatiquement un courriel, afin de pouvoir r?pondre ? cette demande de devis.
<p><br /><p>

Votre pseudo est {vb:raw bbuserinfo.username}, votre id : {vb:raw bbuserinfo.userid}, votre usergroupid : {vb:raw bbuserinfo.usergroupid}

<br /><br />
articles : $out $item {vb raw:out} {vb raw:item}


      </div>
    </div>
   
    {vb:raw footer}
  </body>
</html>

How could I display this variable $item ?!:confused:

kh99 06-08-2015 03:42 PM

In the template it should be:
Code:

{vb:raw out}

That's if you want the name to be able to contain html, or if you're sure it doesn't contain any special characters. If you think it could contain special characters (or if you're getting the field from a user so you're not sure what it might contain) you could use {vb:var out} instead.

TheAdminMarket 06-08-2015 03:43 PM

Try this:
Code:

articles : {vb:raw out} {vb:raw item}

Bastien 06-08-2015 05:39 PM

I'm so stupid .... I'll try ! :)

Thank you for helping, I'm back to vbulletin after about 10years without coding, and it's really not easy, everything has so much changed !!! This code is prety simple, but I have to understand how ever

This was my old account : https://vborg.vbsupport.ru/search.php?searchid=22636405

I'll b back :)

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

It works ! thank you, but now I've another problem :D

Bastien 06-17-2015 05:08 PM

1 Attachment(s)
So, my page fournisseurs.php is now finished and it works well, thanks to you :)

Now I need, when a user is in the wanted forum, to display a select box to choose the type of product he needs.

I added it to the newthread template :

Code:

<vb:if condition="$foruminfo['forumid']=='7'">

<label for="subject" class="full">Produit concern? :</label>
<select name="produit">
        <option value="" selected="selected">Faites votre choix</option>
        {vb:raw template_liste}
        <option value="7" style="font-weight:bold; background:#EBEBE6">7</option>
        <option value="8" style="font-weight:italic;">8</option>
</select>
<br />
<font size=1>
        <i>Un produit "gris?" est une cat?gorie rassemblant la liste de tous SES produits, soit tous les produits en dessous de celle ci, jusqu'? la prochaine cat?gorie</i>
</font>
<br /><br />
</vb:if>

and added a hook linked to newthread_start :
Code:

  $liste="
<option value=\"3\">3</option>
<option value=\"4\">4</option>";

$templater=vB_Template::create('liste_produits');
$templater->register('liste ', $liste);
$liste_produits .= $templater->render();

And finally created this template liste_produits
Code:

<option value="1">1</option>
<option value="2">2</option>

{vb:raw liste}

But the content of this new template is not displayed, what did I do wrong ? :confused:

Bastien 06-17-2015 08:22 PM

1 Attachment(s)
Pfiouuuuuuuuuuuu, I did it ....

In the newthread template, added :


Code:

<vb:if condition="$foruminfo['forumid']=='7'">
<label for="subject" class="full">Produit concern? :</label>
<select name="produit">
<option value="" selected="selected">Faites votre choix</option>
{vb:raw liste_produits}

</select><br />
<font size=1><i>Un produit "gris?" est une cat?gorie rassemblant la liste de tous SES produits, soit tous les produits en dessous de celle ci, jusqu'? la prochaine cat?gorie</i></font><br /><br />
</vb:if>

In my hook linked to newthread_start :
Code:

$listes_produits = $vbulletin->db->query_read("
                        SELECT *
                        FROM devis_produits
                        ORDER by id
                        ");                       
               
                       
while ($liste_produit = $vbulletin->db->fetch_array($listes_produits))
{

if ($liste_produit[est_parent]==1)
$liste .="<option value=\"$liste_produit[id]\" style=\"font-weight:bold; background:#EBEBE6\">$liste_produit[nom]</option>";
else $liste .="<option value=\"$liste_produit[id]\">$liste_produit[nom]</option>";



$templater = vB_Template::create('liste_produits');
    $templater->register('liste', $liste);
$templatevalues['liste_produits'] = $templater->render();
vB_Template::preRegister('newthread', $templatevalues);

And my template liste_produits :

Code:

{vb:raw liste}
This is the result :)

MarkFL 06-17-2015 09:13 PM

Thank you for taking the time to post your solution...others who may face a similar situation will benefit from your post. :D

Bastien 06-17-2015 09:27 PM

That's why I do it ;)

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

I get an other problem.

So I get this in newthread

https://vborg.vbsupport.ru/external/2015/06/6.png

which is, in HTML :

HTML Code:

<label for="subject" class="full">Produit concern? :</label>
<select name="produit">
<option value="" selected="selected">Faites votre choix</option>
<option value="1" style="font-weight:bold; background:#EBEBE6">Platre</option>
<option value="2">Classe I - de Paris</option>
<option value="3">classe III</option>
<option value="4">classe IV</option>
<option value="5" style="font-weight:bold; background:#EBEBE6">CFAO</option>
<option value="6">Scanner 3D</option>
<option value="7">Imprimante 3D</option>
<option value="8" style="font-weight:bold; background:#EBEBE6">Moteurs</option>
<option value="9">Pi?ce ? main</option>
<option value="11">Turbine</option>
<option value="12">Aspirations</option>
<option value="13">avion</option>
<option value="15" style="font-weight:bold; background:#EBEBE6">C?ramique</option>


</select>

I would like to force the user, to select a product when creating a new thread, so I created a hook linked to newthread_form_complete :

Code:

if(THIS_SCRIPT == newthread AND $post['produit'] == '')
{       
                $errors[] = $vbphrase["force_produit_error"];
}

but it doesn't return an error if the user has not touched at the select box.

Could someone help me ?

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

Solved !

The hook used has to be linked to newpost_process :)

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

Not solved :D

It always display the error, even if the select box is filled ... :rolleyes:

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

I added in a hook linked to newthread_start :

Code:

$vbulletin->input->clean_array_gpc('p', array(
                'produit'        => TYPE_STR));

$newpost['produit'] =& $vbulletin->GPC['produit'];

It seems to be good :) I just need to restrict it to the wanted forum now :)


All times are GMT. The time now is 05:30 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.01333 seconds
  • Memory Usage 1,776KB
  • 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
  • (12)bbcode_code_printable
  • (1)bbcode_html_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)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