Google+

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rezolvat Adaugare pagina noua in UserCP
#1
Vreau sa adaug o pagina noua in panoul de control al utilizatorului.
Am adaugat linkul in usercp_nav_profile, usercp.php?action=profile_mobi, am facut pagina, usercp_profile_mobi, si am adaugat codul intr-un nou template (usercp_profile_mobi) in tema default.
acum insa am nevoie de putin ajutor sa afisez aceasta pagina.

am incercat eu sa fac niste modificari in fisierul usercp.php insa rezultatul este o pagina alba, iar pe mybb.com nu am gasit nimic care sa ma ajute.

ceea ce vreau eu sa fac este un profil secundar (un al doilea loc de unde se pot modifica niste campuri) ma chinui de ceva timp sa fac chestia asta insa nu reusesc in fel si chip sa ii dau se cap.
#2
Nu trebuie să modifici nimic din usercp.php. Pur și simplu faci o noua modificare, în fișierul acesteia din directorul plugins adaugi următoarele cârlige în antet :

PHP Code:
$plugins->add_hook('usercp_menu_built', 'advinvsys_menu_built');
$plugins->add_hook('usercp_start', 'advinvsys_main_page');

și funcțiile :

PHP Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// Functia care adauga in cadrul meniului din User CP un link catre formularul de trimitere a unei invitatii
function advinvsys_menu_built()
{
	global $mybb;
	// daca modificarea nu este activa atunci legatura nu va aparea in meniu
	if($mybb->settings['advinvsys_setting_enable'] != 1) {
		return;
	}
	// altfel va aparea
	global $lang, $templates, $usercpnav, $advinvsys_nav_option;
	// se incarca fisierul de limba al modificarii
	$lang->load("advinvsys");
	// daca ne aflam in scriptul usercp.php sau private.php
    if(THIS_SCRIPT == "usercp.php") 
    {
        $advinvsys_nav_option = "";
        $class1 = "usercp_nav_item";
		$class2 = "usercp_nav_advinvsys";
		$nav_link = "usercp.php?action=advinvsys";
		$nav_text = $lang->advinvsys_usercp_my;
		// adauga codul optiunii tale
		eval("\$advinvsys_nav_option .= \"".$templates->get("advinvsys_nav_option")."\";");
        $usercpnav = str_replace("{advinvsys_nav_option}", $advinvsys_nav_option, $usercpnav);
	}
}

// Functia ce afiseaza pe ecran formularul de trimitere a unei invitatii
function advinvsys_main_page()
{
	global $mybb;
	// este activa modificarea?
	if($mybb->settings['advinvsys_setting_enable'] != 1) {
		return;
	}
	// daca este activa se afiseaza pagina pe ecran
	global $db, $cache, $lang, $theme, $templates, $forum, $headerinclude, $header, $footer, $usercpnav;
	// mai intai se incarca fisierul de limba
	$lang->load("advinvsys");
	if(THIS_SCRIPT == "usercp.php" && $mybb->input['action'] == "advinvsys")
	{
        // se realizeaza paginarea tabelului
        $per_page = 10; // in mod implicit
        if($mybb->input['page'] && intval($mybb->input['page']) > 1) {
            $mybb->input['page'] = intval($mybb->input['page']);
            $start = ($mybb->input['page'] * $per_page) - $per_page;
        }
        else {
            $mybb->input['page'] = 1;
            $start = 0;
        }
        // se obtine id-ul utilizatorului curent
        $uid = $mybb->user['uid'];
        // interogare ce ne permite calculul numarului total de randuri din tabel
        $query = $db->simple_select("advinvsys_codes", "COUNT(cid) AS total", "did = '$uid' AND used != '1'");
        // variabila ce retine numarul de randuri obtinute din interogare
        $total_rows = $db->fetch_field($query, "total");
        // dupa paginare urmeaza afisarea unor date
        $get_invites = $db->simple_select("advinvsys_codes", "*", "did = '$uid' AND used != '1'", array("order_by" => "date", "order_dir" => "DESC", "limit_start" => $start, "limit" => $per_page));
        $invitations = "";
        // exista cel putin un rand de afisat?
        if ($db->num_rows($get_invites) < 1) {
            $invitations .= "<tr><td class='trow2' align='center'>".$lang->sprintf($lang->advinvsys_usercp_noinvs, "advinvsys_buy_toogle", "advinvsys_buy_form")."</td></tr>";
            $buy_form = '<div id="advinvsys_buy_form" class="advinvsys_buy_form"><br/><form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="buyform">
<input type="hidden" name="my_post_key" value="'.$mybb->post_code.'" />
<table border="0" cellspacing="' . $theme['borderwidth'] . '" cellpadding="' . $theme['tablespace'] . '" class="tborder">
<thead>
<tr>
<td colspan="3" class="thead">
<strong>Buy some invitations</strong>
</td>
</tr>
</thead>
<tbody>
<tr>
<td class="trow2" width="40%"><strong>How many invitations do you want to buy ?</strong></td>
<td colspan="2" class="trow2" width="60%"><select name="perioada" id="perioada" size="1" onchange="changevalue()">
                                <option value="1">1</option>
                                <option value="10">10</option>   
                                <option value="20">20</option>  
                                <option value="30">30</option>                           
                              </select>
</td>
</tr>
<tr>
<td class="trow1" width="40%"><strong>Your username is :</strong></td>
<td colspan="2" class="trow1" width="60%"><input class="textbox" readonly="true" size="6" name="username" value="'.$mybb->user['username'].'" type="text"></td>
</tr>
<tr>
<td class="trow2" width="40%"><strong>You have to pay :</strong></td>
<td colspan="2" class="trow2" width="60%"><input class="textbox" readonly="true" size="6" name="price" value="0" type="text"> E.</td>
</tr>
<tr>
<td class="trow1" width="40%"><strong>You will pay with :</td>
<td colspan="2" class="trow1" width="40%"><input class="textbox" size="50" name="legatura" value="" type="text"></td>
</tr>
<td colspan="3" class="trow2" align="center"><input name="action" value="do_license" type="hidden">
<input class="button" value="Buy now!" type="submit"></td>
</tr>
</tbody>
</table>
</form></div>';
        }
        else {
            // se creaza antetul tabelului
            $invitations .= "<tr><td class=\"tcat\" width=\"50%\"><span class=\"smalltext\"><strong>Invitatie catre adresa de e-mail</strong></span></td><td class=\"tcat\" width=\"50%\"><span class=\"smalltext\"><strong>Data trimiterii invitatiei</strong></span></td></tr>";
            // se afiseaza randurile in cadrul tabelului
            $class = 1;
            while ($row = $db->fetch_array($get_invites)) {
                $invitations .= "<tr>
                <td class=\"trow{$class}\" width=\"40%\" align=\"center\">".$db->escape_string($row['email'])."</td>
                <td class=\"trow{$class}\" width=\"60%\" align=\"center\">".my_date($mybb->settings['dateformat'], intval($row['date']), '', false).", ".my_date($mybb->settings['timeformat'], intval($row['date']))."</td>
                </tr>";
                // clasa fiecarui rand alterneaza
                $class = $class % 2 + 1;    
            }
        }
        // se afiseaza paginarea
        $pagination = multipage($total_rows, $per_page, $mybb->input['page'], "usercp.php?action=advinvsys&amp;page={page}");
        // se evalueaza sablonul principal
        eval("\$main_page = \"".$templates->get("advinvsys_main_page")."\";");
        // in fine, codul HTML e afisat pe ecran
        output_page($main_page);
	}
}

Asta e o parte din codul meu pentru următoarea modificare Advanced Invitations System. Sper că înțelegi mecanismul de funcționare și utilizare.

Users : collective term for those who use computers. Users are divided into three types : novice, intermediate and expert.
Novice users : people who are afraid that simply pressing a key might break their computer.
Intermediate users : people who don`t know how to fix their computer after they`ve just pressed a key that broke it.
Expert users : people who break other people`s computers.
#3
hmmm, speram sa nu ajung la partea asta in care trebuie sa fac o modificare.
studiez putin codul si fac niste probe sa vad daca imi iese ceva si revin sa povesesc cum a mers.
multumesc de raspuns Mihu.


Forum Jump:


Users browsing this thread: 1 Guest(s)