#1 sreverbe Martedì, 10 Maggio 2011, 23:47
salve a tutti,
dai blocchi esistenti di IP sto cercando di realizzarne uno personalizzato. Il mio obbiettivo è quello di realizzare una progressbar che si incrementa col aumentare dei topics di una certa sezione del forum, quindi mi è stato consigliato di creare un file php con relativi tpl e cfg.
di seguito posto quello che ho fatto:
php:
- <?php
- /**
- *
- * @package Icy Phoenix
- * @version $Id: blocks_imp_sh_visit_counter.php 61 2008-10-30 09:25:26Z Mighty Gorgon $
- * @copyright (c) 2008 Icy Phoenix
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- *
- */
-
- /**
- *
- * @Extra credits for this file
- * masterdavid - Ronald John David
- *
- */
-
- define('IN_ICYPHOENIX', true);
- if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
- if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
- include(IP_ROOT_PATH . 'common.' . PHP_EXT);
- include_once(IP_ROOT_PATH . 'includes/functions_groups.' . PHP_EXT);
-
- if(!function_exists('donation_mod_func'))
- {
- function donation_mod_func()
- {
- global $db, $template, $lang, $block_id, $board_config;
- $sql = "SELECT topic_replies FROM ip_topics where topic_id = '235'";
- if (!($result = $db->sql_query($sql)))
- {
- message_die(GENERAL_ERROR, "Couldn't retrieve site history", "", __LINE__, __FILE__, $sql);
- }
- $row = $db->sql_fetchrow($result);
- $numdon = $row['topic_replies'];
- //echo $numdon;
- 'DONATION_MOD' => sprintf($numdon['topic_replies'])
- }
- }
-
- donation_mod_func();
-
- ?>
se il file è inserito in una subdir della root ottengo questo errore:
Citazione: Parse error: syntax error, unexpected T_DOUBLE_ARROW in C:\xampp\htdocs\iproot\blocks\blocks_imp_donation.php on line 42.
Se invece sposto il file nella root principale ottengo senza errori il valore della query.
Qualcuno riesce a dirmi dove sbaglio ?
Poi volevo chiedere anche un altra cosa relativamente alla parte sul file cfg:
- <?php
- /**
- *
- * @package Icy Phoenix
- * @version $Id: blocks_imp_news.cfg 49 2008-09-14 20:36:03Z Mighty Gorgon $
- * @copyright (c) 2008 Icy Phoenix
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- *
- */
-
- /**
- *
- * @Extra credits for this file
- * masterdavid - Ronald John David
- *
- */
-
- if (!defined('IN_ICYPHOENIX'))
- {
- die('Hacking attempt');
- }
-
- // array(<Field label>, <Field Info>, <Config Name>, <Options>, <Field Values>, <Control Type>, <Block>, <Default Value>);
-
- $block_variables = array(
- //array('Category to retrieve news from', 'Enter 0 for all categories or comma delimited entries', 'md_news_cat_id', '', '', '1', 'news', '0'),
- array('', '', '', '', 'topic_replies', '', 'topic_replies', ''),
- );
-
- $block_count_variables = count($block_variables);
-
- ?>
è corretto il file di configurazione ?
perchè quando dal cms seleziono il blocco dalla combo e lo rendo visibile, ricevo sempre l'errore soprariportato.
Grazie in anticipo a tutti coloro che mi vorranno dare una mano.
Versione di IP: 1.3.0.54
Server: Windows
-

sreverbe
-
Visitatore

-
- Età: 40
- Registrato: Giugno 2009
- Residenza: Reggio Emilia
- Messaggi: 81
-
#2 raphael10 Giovedì, 12 Maggio 2011, 06:05
L'errore che ti esce è un errore di sintassi nella creazione di un array. Credo che la riga incriminata sia
'DONATION_MOD' => sprintf($numdon['topic_replies'])
forse perchè non è un array??
la butto lì, magari è una grande cavolata. Cercando online e dentro il codice di IP ogni volta che viene usata la funzione sprintf vedo sempre che ci sono più elementi separati da virgola.
Versione di IP: 1.3.0.53a
Server: Linux
____________ "Non c'è una via per la Pace, la Pace è la Via!"
-

raphael10
-
VIP
 ...uno shamano tra noi...
-
- Età: 40
- Registrato: Maggio 2007
- Residenza: Lucca
- Messaggi: 991
-
#3 fucile Giovedì, 12 Maggio 2011, 06:45
L'errore che ti esce è un errore di sintassi nella creazione di un array. Credo che la riga incriminata sia
'DONATION_MOD' => sprintf($numdon['topic_replies'])
forse perchè non è un array??
la butto lì, magari è una grande cavolata. Cercando online e dentro il codice di IP ogni volta che viene usata la funzione sprintf vedo sempre che ci sono più elementi separati da virgola.
Se la riga è stata copiata così come è allora manca il puntoevirgola alla fine.
Versione di IP: Versione 2.0 beta1
Server: Linux
____________ Nun c'è peggior sordo de chi nun vò sentì
-

fucile
-
Staff
 Attenzione! Sono carico!
-
- Età: 47
- Registrato: Maggio 2007
- Residenza: Roma
- Messaggi: 1443
-
#4 sreverbe Lunedì, 16 Maggio 2011, 01:10
ringrazio fucile e raphael per i consigli,
ho provato ad inserire un array ed il punto e virgola ma ora ottengo questo errore:
- <?php
- /**
- *
- * @package Icy Phoenix
- * @version $Id: blocks_imp_sh_visit_counter.php 61 2008-10-30 09:25:26Z Mighty Gorgon $
- * @copyright (c) 2008 Icy Phoenix
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- *
- */
-
- /**
- *
- * @Extra credits for this file
- * masterdavid - Ronald John David
- *
- */
-
- /*if (!defined('IN_ICYPHOENIX'))
- {
- die('Hacking attempt');
- }*/
-
- define('IN_ICYPHOENIX', true);
- if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
- if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
- include(IP_ROOT_PATH . 'common.' . PHP_EXT);
- include_once(IP_ROOT_PATH . 'includes/functions_groups.' . PHP_EXT);
-
- if(!function_exists('donation_mod_func'))
- {
- function donation_mod_func()
- {
- global $db, $sql, $template, $numdon;
- $sql = "SELECT topic_replies FROM ip_topics where topic_id = '235'";
- if (!($result = $db->sql_query($sql)))
- {
- message_die(GENERAL_ERROR, "Couldn't retrieve site history", "", __LINE__, __FILE__, $sql);
- }
- $row = $db->sql_fetchrow($result);
- $numdon = $row['topic_replies'];
- //echo $numdon;
- //$numdon = $lang['topic_replies'];
- $template->assign_vars(array(
- 'DONATE_MOD' => sprintf($numdon['topic_replies'])
- )
- );
- }
- }
-
- donation_mod_func();
-
- ?>
Citazione: Fatal error: Call to a member function assign_vars() on a non-object in C:\xampp\htdocs\iproot\blocks_imp_donation.php on line 43
posso chiedere qualche altro aiutino ?
Versione di IP: 1.3.0.54
Server: Windows
-

sreverbe
-
Visitatore

-
- Età: 40
- Registrato: Giugno 2009
- Residenza: Reggio Emilia
- Messaggi: 81
-
#5 raphael10 Lunedì, 16 Maggio 2011, 17:41
Veramente alla linea che abbiamo preso in considerazione non vedo alcun cambiamento di sorta...
Potresti anche specificare se la numerazione delle righe che vediamo noi nella casella di codice è la stessa del file originale?
Versione di IP: 1.3.0.53a
Server: Linux
____________ "Non c'è una via per la Pace, la Pace è la Via!"
-

raphael10
-
VIP
 ...uno shamano tra noi...
-
- Età: 40
- Registrato: Maggio 2007
- Residenza: Lucca
- Messaggi: 991
-
#6 sreverbe Lunedì, 16 Maggio 2011, 19:11
Potresti anche specificare se la numerazione delle righe che vediamo noi nella casella di codice è la stessa del file originale?
Ciao raphael10, sulla base di quanto mi avevi consigliato sugli array, ho modificato il codice dove la riga interessata era:
prima:
- 'DONATION_MOD' => sprintf($numdon['topic_replies'])
dopo:
- $template->assign_vars(array(
- 'DONATE_MOD' => sprintf($numdon['topic_replies'])));
inserendo anche il punto e virgola come consigliato da fucile, ma come dice è cambiato l'errore in:
Citazione: Fatal error: Call to a member function assign_vars() on a non-object in C:\xampp\htdocs\iproot\blocks_imp_donation.php on line 43
dove la linea 43 corrisponde proprio a quella del code, cioè questa:
- $template->assign_vars(array(
- 'DONATE_MOD' => sprintf($numdon['topic_replies'])
Versione di IP: 1.3.0.54
Server: Windows
-

sreverbe
-
Visitatore

-
- Età: 40
- Registrato: Giugno 2009
- Residenza: Reggio Emilia
- Messaggi: 81
-
#7 raphael10 Venerdì, 20 Maggio 2011, 01:12
Veramente io intendevo una cosa diversa...
Se fai una ricerca nei file di IP vedrai che quando c'è la funzione sprintf c'è di solito un array di questo tipo:
'DONATE_MOD' => sprintf($numdon['topic_replies'], qualcosa, eventualmente_qualcosaltro)
L'intestazione che hai aggiunto toglila perchè non credo che serva e lì ti da un errore.
Versione di IP: 1.3.0.53a
Server: Linux
____________ "Non c'è una via per la Pace, la Pace è la Via!"
-

raphael10
-
VIP
 ...uno shamano tra noi...
-
- Età: 40
- Registrato: Maggio 2007
- Residenza: Lucca
- Messaggi: 991
-
#8 sreverbe Venerdì, 20 Maggio 2011, 23:49
grazie per l'aiuto che mi stai dando raphael10, probabilmente mi sto perdendo in un bicchiere d'acqua, data la mia scarsa conoscenza del php
forse spiegandoti cosa voglio fare magari riesci a mettermi sulla strada giusta
il codice php scritto va bene, di questo ne sono sicuro, e ti spiego anche il perchè:
se sostituisco la riga:
- 'DONATION_MOD' => sprintf($numdon['topic_replies'])
con:
ricevo il risultato corretto della query e fin qui tutto bene
ora però voglio mettere il valore della variabile $numdon in 'DONATION_MOD' (o qualsiasi altro nome) per poter richiamare questo valore in un file tpl, dove dentro ci sarà del codice html ad esempio così:
- <table class="empty-table" width="100%" cellspacing="0" cellpadding="0" border="0">
- <tr><td class="row1g-left gen" align="center"><span class="gensmall">{DONATION_MOD}</span></td></tr>
- </table>
dove DONATION_MOD altro non è che il valore restituito dalla pagina php.
Quindi è chiaro che sbaglio questa riga di codice:
- 'DONATION_MOD' => sprintf($numdon['topic_replies'])
Quale dovrebbe essere la sintassi corretta per fare ciò voglio ?
Spero di essere stato il più chiaro possibile ed intanto ti ringrazio per l'aiuto offerto.
Versione di IP: 1.3.0.54
Server: Windows
-

sreverbe
-
Visitatore

-
- Età: 40
- Registrato: Giugno 2009
- Residenza: Reggio Emilia
- Messaggi: 81
-
#9 raphael10 Sabato, 21 Maggio 2011, 14:27
Ti dico subito che anch'io non me ne intendo molto di php, ma si può procedere per tentativi e comparazioni spulciando il codice creato da MG.
Ciò che mi viene in mente adesso è: perchè hai usato sprintf?
Visto che $numdon è già definita hai provato semplicemente con:
Dai un'occhiata ad una pagina con poco codice, come può essere acronyms.php per avere degli spunti.
Versione di IP: 1.3.0.53a
Server: Linux
____________ "Non c'è una via per la Pace, la Pace è la Via!"
-

raphael10
-
VIP
 ...uno shamano tra noi...
-
- Età: 40
- Registrato: Maggio 2007
- Residenza: Lucca
- Messaggi: 991
-
Questo argomento è stato utile?
Questo argomento è stato utile?
| Condividi Argomento |
|
 | | Inserisci un link per questo argomento |
| URL |
|
| BBCode |
|
| HTML |
|
Argomenti Simili
Argomenti Simili
| Argomento |
Autore |
Forum |
Risposte |
Ultimo Messaggio |
 |
Il File .htaccess?
|
sharknos |
Archivio 'Supporto Generale' |
2 |
Venerdì, 08 Giugno 2007, 18:38  sharknos |
 |
Protezione File
|
magico |
Archivio 'Supporto Generale' |
1 |
Martedì, 26 Febbraio 2008, 23:38  dNow |
 |
Estensioni File
|
evil ways |
Archivio 'Supporto Generale' |
18 |
Lunedì, 16 Marzo 2009, 09:20  Andrea75 |
 |
File Swf
|
Salvo89 |
Off Topic |
4 |
Domenica, 31 Gennaio 2010, 12:31  Salvo89 |
 |
Non Trovo Il File Da Modificare Per Cambia...
|
davidone |
Supporto Generale |
14 |
Lunedì, 03 Gennaio 2011, 21:05  davidone |
Lista Permessi
|
Non puoi inserire nuovi Argomenti Non puoi rispondere ai Messaggi Non puoi modificare i tuoi Messaggi Non puoi cancellare i tuoi Messaggi Non puoi votare nei Sondaggi Non puoi allegare files Non puoi scaricare gli allegati Non puoi inserire eventi calendario
|
|
|
|
|