Italian SMF

Supporto SMF => SMF 2.0.x => Bridge - Collegare SMF ad altri Script => Discussione aperta da: Flavio93Zena il Martedì - 05 Luglio 2016 - 02:15

Titolo: SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Martedì - 05 Luglio 2016 - 02:15
Seguendo: http://www.simplemachines.org/community/index.php?topic=12936.0
Molto semplicemente ho chiamato nel tema di Coppermine (theme.php) il file come descritto nella procedura e funziona il require, ma mi ritorna una pagina bianca con:

Fatal error: require_once(): Failed opening required '/QueryString.php' (include_path='.:/hsphere/shared/apache/libexec/php5ext/php/') in /hsphere/local/home/sybsite/site.com/board/SSI.php on line 62

Dove alla linea 62 trovo (non modificata, partendo dalla 61) quel che segue:
// Load the important includes.
require_once($sourcedir . '/QueryString.php');
require_once($sourcedir . '/Subs.php');
require_once($sourcedir . '/Errors.php');
require_once($sourcedir . '/Load.php');
require_once($sourcedir . '/Security.php');require_once($sourcedir . '/TPortal.php');


...Perchè? A quanto pare non riconosce $sourcedir, ma come mai? Che posso farci (so che non devo modificare SSI.php)?

La cosa stupida è che devo solo mostrare il menu seguendo i permessi di smf, e dovrebbe bastarmi un ssi_menubar(); ... ... se solo funzionasse il require_once.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Martedì - 05 Luglio 2016 - 08:18
Metti il require (che poi sarebbe meglio require_once o include) all'inizio del file di coppermine... potrebbe funzionare.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Martedì - 05 Luglio 2016 - 15:16
Grazie, ma purtroppo non cambia nulla (stesso errore) :/
<?php
require_once('/hsphere/local/home/sybsite/site.com/board/SSI.php');
/*************************
  Coppermine Photo Gallery
  ************************
  Copyright (c) 2003-2012 Coppermine Dev Team
  v1.0 originally written by Gregory Demar

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 3
  as published by the Free Software Foundation.

**********************************************/

// HTML template for template  sub menu buttons
$template_sys_menu_button $template_sub_menu_button = <<<EOT
<!-- BEGIN {BLOCK_ID} -->
(...)
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Martedì - 05 Luglio 2016 - 15:17
Ed allora copia il blocco di global che c'è all'inizio di SSI prima del require di SSI stesso.
global $boardurl, $sourcedir, $whatever;
require_once('SSI.php');
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Martedì - 05 Luglio 2016 - 15:22
<?php
global $time_start$maintenance$msubject$mmessage$mbname$language;
global 
$boardurl$boarddir$sourcedir$webmaster_email$cookiename;
global 
$db_server$db_name$db_user$db_prefix$db_persist$db_error_send$db_last_error;
global 
$db_connection$modSettings$context$sc$user_info$topic$board$txt;
global 
$smcFunc$ssi_db_user$scripturl$ssi_db_passwd$db_passwd$cachedir;
require_once(
'/hsphere/local/home/sybsite/sybeaumonde.com/board/SSI.php');
/*************************
  Coppermine Photo Gallery

Non gliene frega nulla, identico errore su QueryString O.o
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Martedì - 05 Luglio 2016 - 15:57
Prova a fare il require di SSI nell'index.php di coppermine.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Martedì - 05 Luglio 2016 - 16:04
<?php
require_once('/hsphere/local/home/sybsite/sybeaumonde.com/board/SSI.php');
/*************************
  Coppermine Photo Gallery
  ************************
  Copyright (c) 2003-2016 Coppermine Dev Team
  v1.0 originally written by Gregory Demar

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 3
  as published by the Free Software Foundation.

  ********************************************
  Coppermine version: 1.5.42
  $HeadURL: https://svn.code.sf.net/p/coppermine/code/trunk/cpg1.5.x/index.php $
  $Revision: 8846 $
**********************************************/

/**
* Unless this is true most things wont work - protection against direct execution of inc files
*/
define('IN_COPPERMINE'true);

define('INDEX_PHP'true);
define('RESTRICTED_PRIV'true);

require(
'include/init.inc.php');


Coppermine critical error:
Unable to connect to UDB database !

MySQL said:

E non ho tagliato l'errore, finisce proprio lì O_o Ci sono due tag <strong></strong> messi così, ispezionando la pagina, con nulla all'interno.


Oh wait, messo alla fine di index.php lo include correttamente!!!
Però, appena provo a chiamare ssi_menubar nel theme.php "Fatal error: Call to undefined function ssi_menubar()" :/

Nvm, non lo carica, è solo che non mostra l'errore, ma lo vedo (l'errore) visualizzando il sorgente della pagina.
Sempre si blocca a QueryString (sì, ho messo anche il blocco di global).
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Martedì - 05 Luglio 2016 - 23:19
Suppongo dovrò installare coppermine...
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Mercoledì - 06 Luglio 2016 - 02:41
Basta che poi non ti venga un infarto guardando il codice (rimpiangerai vbgamer) :/

CPG: https://sourceforge.net/projects/coppermine/files/Coppermine/1.5.x/cpg1.5.42.zip/download

Bridge: http://svn.code.sf.net/p/coppermine/code/trunk/cpg1.5.x/bridge/

How-to-bridge: http://documentation.coppermine-gallery.net/en/bridging.htm#bridge_manager_start

Tema in utilizzo (Pinmine) (anche se credo sia irrilevante): http://forum.coppermine-gallery.net/index.php?action=dlattach;topic=75270.0;attach=41704

Perlomeno ti ho risparmiato un bel po' di ricerca :P
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Giovedì - 07 Luglio 2016 - 09:10
Ohhh... ho scoperto che ne avevo già una copia installata in un anfratto (ed ho anche scoperto che sulla partizione di home ho solo 4 GB liberi!!! :o).
Qua funziona perfettamente ("ovvio" che la funzione non va chiamata in themes.php).

Per scrupolo controllerei che in Settings le directory ci siano e siano corrette.
Come tentativo, proverei ad usare percorsi relativi invece che assoluti (sì, lo so che è un'idiozia, ma al momento non mi viene in mente altro):
require_once('../board/SSI.php');
Un'altra possibilità da considerare, è cambiare la versione di php, magari quella in uso potrebbe essere una con qualche strano bug (e se non ricordo male ve ne è qualcuna).


Unrelated: controllerei perché, puntando a SSI.php il browser si ottiene l'errore Warning: in_array(): Wrong datatype for second argument in /.../board/Sources/Subs.php on line 3952
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Giovedì - 07 Luglio 2016 - 13:28
Proverò con il path relativo...

L'errore di Subs è un altro problema che non capisco, ho fatto una condizione per mostrare un bottone solo se l'utente può amministrare il forum o gruppo id in array 2,10. Non sono al pc (cellulare) ma era qualcosa del tipo (in_array 2, 10($user['group']['ID']).
Il bello è che ho copiato/incollato il codice da una qualche guida ._.

La versione php è 5.2 mi pare... Già, dovrei chiedere di aggiornarla.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Giovedì - 07 Luglio 2016 - 13:51
Come al solito, non posso che suggerire una lettura veloce del manuale di in_array: http://php.net/manual/it/function.in-array.php

Ad ogni modo, sarebbe sempre meglio legare ad un permesso che non ad un gruppo, ma va beh.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Sabato - 09 Luglio 2016 - 13:27
Alla fine l'ho legato ad un permesso, lol. (Non ne avevo voglia xD)

Comunque, tornando sul display... Php ora sta a 5.5, ed effettivamente sono riuscito a far venir fuori il menu, solo che 1) viene mostrato senza css, per qualche motivo, e vabbè qui potrei anche metterlo a posto caricandolo a mano da template.html EDIT: no, non lo carica nemmeno da template.html, non carica nessun css per colpa di --> 2) la galleria va in crash con un "Unable to connect to UDB database !"

Ho provato ad includerlo all'inizio di index.php, alla fine (errore QueryString lì), e ora provo pure nel tema... E non va, come avevi detto (QueryString).
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Sabato - 09 Luglio 2016 - 14:39
Quindi ora il menù viene generato, ma manca il CSS.
Corretto?

Strano che mettendolo in template.html non venga usato, ma la domanda che mi sorge è: la riga la riga di HTML si vede nell'output, ma il file è vuoto, oppure proprio nemmeno la riga viene generata?
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Sabato - 09 Luglio 2016 - 20:45
Il css non è un problema, armeggiando con template.html lo avevo richiamato nell'head e lo caricava solo e soltanto se non cercavo di caricare anche il menu (cioè se eliminavo il require_once il css funzionava sballandomi il design della galleria, avendolo messo di proposito a caricare dopo i css della stessa per controllarne il funzionamento).

Nel template è... Strano. Avevo incluso erroneamente un path errato per il css e mi sono ritrovato gli errori nella console, per cui significa che almeno le righe il server le ha "lette", ma anche dopo aver corretto il percorso... Non gliene è fregato nulla xD Menu costruito con gli stylesheet di default di chrome.

Fondamentalmente il problema non è tanto il css (in qualche modo lo forzo a caricarlo) quanto che se chiamo il menu (ovunque) crasha la galleria o non carica QueryString, senza una ragione apparente.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Sabato - 09 Luglio 2016 - 21:20
Citazione di: emanuele il Giovedì - 07 Luglio 2016 - 09:10
Per scrupolo controllerei che in Settings le directory ci siano e siano corrette.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Sabato - 09 Luglio 2016 - 22:23
Beh non funzionerebbe il forum se non fossero corrette xD
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Sabato - 09 Luglio 2016 - 23:37
Non necessariamente, dati che index.php controlla e corregge i percorsi.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Domenica - 10 Luglio 2016 - 00:06
Sorry, intendevo che l'ho effettivamente controllato e sembra ok, ma farò girare un repair_settings dalla proprietaria, per essere sicuri.

EDIT: sono (ed erano) corretti.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Lunedì - 11 Luglio 2016 - 07:45
Idee? Dici che quelli di Coppermine potrebbero averne qualcuna in più? ;D
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Lunedì - 11 Luglio 2016 - 08:18
L'unica cosa che puoi fare è iniziare ad escludere tutte le possibilità per capire dove sta il problema.
Al momento hai due sistemi complessi, quindi la prima cosa da fare è eliminarne uno e vedere se l'altro funziona: crea un file vuoto, mettici il require_once di SSI e vedi se funziona.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Lunedì - 11 Luglio 2016 - 15:24
1) File vuoto, con

require_once('../board/SSI.php');
ssi_menubar();

e carica senza css.

2) File vuoto, con
$ssi_theme = 16;
require_once('../board/SSI.php');
ssi_menubar();

e carica CON il css (dafuq?). Tuttavia mi mostrava il menu da sloggato mentre avevo effettuato il login...

3) Messo nella galleria, quest'ultima crasha con l'errore Unable to connect to UDB database (quello della pagina precedente di questo topic), oppure con QueryString, a seconda di dove metto il blocco di codice (rispettivamente prima o dopo gli include di Coppermine).
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Lunedì - 11 Luglio 2016 - 17:19
I due script usano lo stesso database, stesso utente e stessa password?
Cercando si trova:
http://www.simplemachines.org/community/index.php?topic=283840.msg1863156#msg1863156
stesso problema, dovuto a password sbagliata, controlla?
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Martedì - 12 Luglio 2016 - 17:40
Non stesso database, apparentemente, ma stessa password sì. Dovremmo... Fare un merge?
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Martedì - 12 Luglio 2016 - 23:16
Il problema, più che altro è se è lo stesso utene con gli stessi permessi su entrambi i database.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Martedì - 12 Luglio 2016 - 23:29
Stesso utente sicuramente, con stessa password, stesso account, per cui azzarderei stessi permessi..?
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Mercoledì - 13 Luglio 2016 - 10:42
Sicuramente perché hai controllato o perché vai a buonsenso?
Io ho imparato che il buonsenso è meglio metterlo da parte in molti casi.

Ad ogni modo, SMF dovrebbe gestire correttamente diversi database, onestamente non so CPG.
E' la prima volta che viene fatto il bridge o esisteva già?
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Mercoledì - 13 Luglio 2016 - 15:58
L'utente è uno solo sul cPanel, per cui è per forza admin su entrambi i database, questo intendo @_@ Se mi stai chiedendo altro ti chiedo scusa che ti ho frainteso, fa un caldo bestia e nonostante l'aranciata mi si scioglie la testa xD

Il bridge esisteva già da prima, non l'ho fatto io (e funziona come da manuale).
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Mercoledì - 13 Luglio 2016 - 21:17
CPG è l'ultima versione?
Il bridge è l'ultima versione?

Onestamente non so cosa dire, io ho fatto le stesse identiche cose, con sostanzialmente la stessa configurazione (a parte che uso root come utente mysql) e mi funziona senza nemmeno fare una piega.
A te fa casino.

Non so...
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Giovedì - 14 Luglio 2016 - 17:43
Sì e sì.
Apparentemente è qualcosa di strano in alcune configurazioni e non si è mai capito cosa sia... http://forum.coppermine-gallery.net/index.php/topic,75759.0.html

Ho fatto così, anche se applicare stile ad un iframe è un *enorme* PITA :/
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Giovedì - 14 Luglio 2016 - 20:25
Perché?
Alla fine non è altro che un file html, quindi gli metti il suo foglio di stile e sei a posto.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Giovedì - 14 Luglio 2016 - 20:28
E' un php, non un html. Ricorda che devo fare i require_once da lì perchè non va se lo faccio da CPG.
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: emanuele il Giovedì - 14 Luglio 2016 - 20:38
sigh...
Perché secondo te al browser fa qualche differenza se una pagina è html, php, asp, c, o altro?
Quello che il browser vede è html.
Se tu usi un iframe, vuol dire che avrai fatto:
<iframe src="htp://qualcosa.tld/miofile.php" />
Poi, in miofile.php avrai:
<?php

require_once('/path/to/forum/SSI.php');
// Ora, immagino che nel tuo file avrai brutalmente fatto:
ssi_menubar();

guess what?
Questo renderizza un file HTML che contiene il solo menù senza fogli di stile... bummer!

<?php

require_once('/path/to/forum/SSI.php');
global 
$settings;

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="<?php echo $settings['current_theme_url']; ?>/css/index.css?fin20" />
</head>
<body><?php

ssi_menubar
();
?>

</body>
</html>


Ecco qui una pagina HTML con il foglio di stile di SMF che mostra il solo menù.

Quando dico che un minimo di tutorial bisognerebbe leggerli non lo dico perché voglio fare pubblicità a chi scrive tutorial. ;)
Titolo: Re:SMF - Coppermine, problema require_once
Inserito da: Flavio93Zena il Giovedì - 14 Luglio 2016 - 20:44
Lol, ci siamo un tantino fraintesi ;D

Ad importare lo stile ci pensa già il php che ho messo :P
echo '
<link rel="stylesheet" href="/board/Themes/integration_theme/css/index.css" type="text/css" />';
error_reporting(E_ALL);

$ssi_theme = 18;

require_once('/blahblah/board/SSI.php');
ssi_menubar();
?>


Il fatto è che l'iframe non va molto d'accordo con l'overflow, nel senso che qualsiasi cosa faccia  i menu a cascata vengono tagliati dalla larghezza massima dell'iframe, oppure vengono mostrati "sotto" al resto del contenuto sulla destra. Oltre al fatto che importando roba chiaramente non funziona *esattamente* come dovrebbe e bisogna sempre adattare @_@