phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

inserimento dati topic nel DB

Vuoi parlare di un qualunque argomento con la community, cui non riguarda gli argomenti da noi trattati? Ecco la sezione che fa per te.
Rispondi
pippaccio
Utente
Utente
Messaggi: 62
Iscritto il: 10/08/2011, 16:17
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.0
Database: Mysql
Contatta:

inserimento dati topic nel DB

Messaggio da pippaccio » 12/12/2011, 11:05

Ciao, una cortesia, quando inserisco un topic (come questo), compilo il campo Titolo e messaggio e clicco sul tasto invia.
A questo punto in quale file php e in quale funzione avviene l'aggiornamento del DB con questi dati? Dovrei far aggiornare degli altri dati che naturalmente inserirò in quella parte di codice...

Scusate ma non riesco a trovare il punto esatto.

Grazie
Carlo

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: inserimento dati topic nel DB

Messaggio da Micogian » 12/12/2011, 12:00

Quando fai un'azione guarda sempre l'url, ti indica la pagina richiamata.
In questo caso è posting.php ma ci sono diversi "mode" e altri file e funzioni interessate, non è cosa semplice se uno non conosce il php e la struttura di phpbb.

pippaccio
Utente
Utente
Messaggi: 62
Iscritto il: 10/08/2011, 16:17
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.0
Database: Mysql
Contatta:

Re: inserimento dati topic nel DB

Messaggio da pippaccio » 12/12/2011, 15:58

Si ma ci sarà da qualche parte un insert nella tabella Posts?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: inserimento dati topic nel DB

Messaggio da Micogian » 12/12/2011, 16:11

Si certo ma non è una cosa semplice.
Io so di aver aggiunto un campo nella tabella attachments e ho dovuto fare diverse modifiche:
La procedura prevede:
1) la creazione del campo nella tabella
2) La modifica dei file php interessati all'inserimento di un allegato che sono:
- includes/functions_posting.php
- includes/functions_content.php
- includes/message_parser.php
- includes/acp/acp_users.php
- includes/ucp/ucp_attachments.php
- posting.php

3) La modifica del template, con l'inserimento del nuovo valore. I file da modificare sono:
- styles/prosilver/template/attachments.html
- styles/prosilver/template/posting_editor.html
- styles/prosilver/template/posting_attach_body.html

pippaccio
Utente
Utente
Messaggi: 62
Iscritto il: 10/08/2011, 16:17
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.0
Database: Mysql
Contatta:

Re: inserimento dati topic nel DB

Messaggio da pippaccio » 12/12/2011, 16:17

Grazie...provo a vedere.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: inserimento dati topic nel DB

Messaggio da Micogian » 12/12/2011, 16:43

Ti passo quello che ho fatto io per aggiungere un campo alla tabella "attachments".

Inserire campo "attach_comment_title" in Attachments
Questa procedura consente di aggiungere un campo 'attach_comment_title' nella tabella attachments.
Lo scopo è quello di utilizzare il nuovo campo per inserire un titolo all'allegato, lasciando inalterato il campo attuale "attach_comment' che prevede un commento.

La procedura prevede:
1) la creazione del campo nella tabella
2) La modifica dei file php interessati all'inserimento di un allegato che sono:
- includes/functions_posting.php
- includes/functions_content.php
- includes/message_parser.php
- includes/acp/acp_users.php
- includes/ucp/ucp_attachments.php
- posting.php

3) La modifica del template, con l'inserimento del nuovo valore. I file da modificare sono:
- styles/prosilver/template/attachments.html
- styles/prosilver/template/posting_editor.html
- styles/prosilver/template/posting_attach_body.html

1) Creazione del campo nella tabella del Database
Da phpmyadim, aprire la tabella afphpbb3_attachments, selezionare il pulsante SQL e lanciare il seguente script che provvede a inserire nella tabella il nuovo campo.:

Codice: Seleziona tutto

ALTER TABLE `phpbb_attachments` add `attach_comment_title` VARCHAR(255) collate utf8_bin NOT NULL default ''; 
2 - a) Modifica file includes/functions_posting.php
Trova (riga 813):

Codice: Seleziona tutto

		'FILE_COMMENT'			=> (isset($filename_data['filecomment'])) ? $filename_data['filecomment'] : '',
Aggiungi dopo:

Codice: Seleziona tutto

		'FILE_COMMENT_TITLE'	=> (isset($filename_data['filecomment_title'])) ? $filename_data['filecomment_title'] : '',
Trova (riga 837):

Codice: Seleziona tutto

				'FILE_COMMENT'		=> $attach_row['attach_comment'],
Aggiungi dopo:

Codice: Seleziona tutto

				'FILE_COMMENT_TITLE'		=> $attach_row['attach_comment_title'],
Trova (riga 2182):

Codice: Seleziona tutto

$sql = 'UPDATE ' . ATTACHMENTS_TABLE . "
					SET attach_comment = '" . $db->sql_escape($attach_row['attach_comment']) . "'
					WHERE attach_id = " . (int) $attach_row['attach_id'] . '
						AND is_orphan = 0';
Sostituire con:

Codice: Seleziona tutto

$sql = 'UPDATE ' . ATTACHMENTS_TABLE . "
					SET attach_comment = '" . $db->sql_escape($attach_row['attach_comment']) . "', attach_comment_title = '" . $db->sql_escape($attach_row['attach_comment_title']) . "'
					WHERE attach_id = " . (int) $attach_row['attach_id'] . '
						AND is_orphan = 0';
Trova (riga 2204):

Codice: Seleziona tutto

'attach_comment'	=> $attach_row['attach_comment'],
Aggiungi dopo:

Codice: Seleziona tutto

'attach_comment_title'		=> $attach_row['attach_comment_title'],
2 - b) Modifica file includes/functions_content.php
Trova (riga 814):

Codice: Seleziona tutto

				$row['attach_comment'] = $attachments[$attach_ids[$row['attach_id']]]['attach_comment'];
Aggiungi dopo:

Codice: Seleziona tutto

				$row['attach_comment_title'] = $attachments[$attach_ids[$row['attach_id']]]['attach_comment_title'];
Trova (riga 879):

Codice: Seleziona tutto

			'COMMENT'			=> $comment,
Aggiungi dopo:

Codice: Seleziona tutto

			'COMMENT_TITLE'		=> $comment_title,
2 - c) Modifica file includes/message_parser.php
Trova (riga 1372);

Codice: Seleziona tutto

		$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
Aggiungi dopo:

Codice: Seleziona tutto

		$this->filename_data['filecomment_title'] = utf8_normalize_nfc(request_var('filecomment_title', '', true));
Trova la parte di codice (riga 1379):

Codice: Seleziona tutto

		// First of all adjust comments if changed
		$actual_comment_list = utf8_normalize_nfc(request_var('comment_list', array(''), true));

		foreach ($actual_comment_list as $comment_key => $comment)
		{
			if (!isset($this->attachment_data[$comment_key]))
			{
				continue;
			}

			if ($this->attachment_data[$comment_key]['attach_comment'] != $actual_comment_list[$comment_key])
			{
				$this->attachment_data[$comment_key]['attach_comment'] = $actual_comment_list[$comment_key];
			}
		}
Aggiungi il seguente blocco di codice:

Codice: Seleziona tutto

		// Mod Add Comment Title
		$actual_comment_list_title = utf8_normalize_nfc(request_var('comment_list_title', array(''), true));

		foreach ($actual_comment_list_title as $comment_key_title => $comment)
		{
			if (!isset($this->attachment_data[$comment_key_title]))
			{
				continue;
			}

			if ($this->attachment_data[$comment_key_title]['attach_comment_title'] != $actual_comment_list_title[$comment_key_title])
			{
				$this->attachment_data[$comment_key_title]['attach_comment_title'] = $actual_comment_list_title[$comment_key_title];
			}
		}
		// Fine Mod Add Comment Title
Trova (riga 1427);

Codice: Seleziona tutto

'attach_comment'	=> $this->filename_data['filecomment'],
Aggiungi dopo:

Codice: Seleziona tutto

'attach_comment_title'	=> $this->filename_data['filecomment_title'],
Trova (riga 1446):

Codice: Seleziona tutto

'attach_comment'=> $this->filename_data['filecomment']
Aggiungi dopo:

Codice: Seleziona tutto

'attach_comment_title'=> $this->filename_data['filecomment_title'],
Trova (riga 1453):

Codice: Seleziona tutto

$this->filename_data['filecomment'] = '';
Aggiungi dopo;

Codice: Seleziona tutto

$this->filename_data['filecomment_title'] = '';
Trova (riga 1532):

Codice: Seleziona tutto

'attach_comment'	=> $this->filename_data['filecomment'],
Aggiungi dopo:

Codice: Seleziona tutto

'attach_comment_title'		=> $this->filename_data['filecomment_title'],
Trova (riga 1551):

Codice: Seleziona tutto

'attach_comment'=> $this->filename_data['filecomment'],
Aggiungi dopo:

Codice: Seleziona tutto

'attach_comment_title'	=> $this->filename_data['filecomment_title'],
Trova (riga 1557):

Codice: Seleziona tutto

$this->filename_data['filecomment'] = '';
Aggiungi dopo:

Codice: Seleziona tutto

$this->filename_data['filecomment_title'] = '';
Trova (riga 1581):

Codice: Seleziona tutto

$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
Aggiungi dopo:

Codice: Seleziona tutto

$this->filename_data['filecomment_title'] = utf8_normalize_nfc(request_var('filecomment_title', '', true));
Trova (riga 1611):

Codice: Seleziona tutto

$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment
Sostituisci con:

Codice: Seleziona tutto

$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment, attach_comment_title
Trova (riga 1621):

Codice: Seleziona tutto

set_var($this->attachment_data[$pos]['attach_comment'], $_POST['attachment_data'][$pos]['attach_comment'], 'string', true);
Aggiungi dopo:

Codice: Seleziona tutto

set_var($this->attachment_data[$pos]['attach_comment_title'], $_POST['attachment_data'][$pos]['attach_comment_title'], 'string', true);
Trova (riga 1636):

Codice: Seleziona tutto

$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment
Sostituisci con:

Codice: Seleziona tutto

$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment, attach_comment_title
Trova (riga 1647):

Codice: Seleziona tutto

set_var($this->attachment_data[$pos]['attach_comment'], $_POST['attachment_data'][$pos]['attach_comment'], 'string', true);
Aggiungi dopo:

Codice: Seleziona tutto

set_var($this->attachment_data[$pos]['attach_comment_title'], $_POST['attachment_data'][$pos]['attach_comment_title'], 'string', true);
2 - d) Modifica file includes/acp/acp_users.php
Trova (riga 2025):

Codice: Seleziona tutto

'COMMENT'         => nl2br($row['attach_comment']),
Aggiungi dopo:

Codice: Seleziona tutto

'COMMENT_TITLE'			=> nl2br($row['attach_comment_title']),
2 - e) Modifica file includes/ucp/ucp_attachments.php
Trova (riga 151):

Codice: Seleziona tutto

'COMMENT'			=> bbcode_nl2br($row['attach_comment']),
Aggiungi:

Codice: Seleziona tutto

'COMMENT_TITLE'		=> bbcode_nl2br($row['attach_comment_title']),
2 - f) Modifica file posting.php
Trova (riga 419):

Codice: Seleziona tutto

$sql = 'SELECT attach_id, is_orphan, attach_comment, real_filename
Sostituire con:

Codice: Seleziona tutto

$sql = 'SELECT attach_id, is_orphan, attach_comment, real_filename, attach_comment_title
3) Modifica file styles/prosilver/template/attachments.html
Trova

Codice: Seleziona tutto

		<!-- IF _file.S_IMAGE -->
		<dl class="file">
Aggiungi dopo:

Codice: Seleziona tutto

			<!-- IF _file.COMMENT_TITLE --><dd>{_file.COMMENT_TITLE}</dd><!-- ENDIF -->
3) Modifica file styles/prosilver/template/posting_editor.html
Trova

Codice: Seleziona tutto

			<!-- BEGIN attach_row -->
Aggiungi dopo:

Codice: Seleziona tutto

			<dl>
				<dt><label for="filecomment">Nome della specie:</label></dt>
				<dd><textarea name="comment_list_title[{attach_row.ASSOC_INDEX}]" id="comment_list_title_{attach_row.ASSOC_INDEX}" rows="1" cols="35" class="inputbox">{attach_row.FILE_COMMENT_TITLE}</textarea></dd>
			</dl>
3) Modifica file styles/prosilver/template/posting_attach_body.html
Trova:

Codice: Seleziona tutto

<dl>
		<dt><label for="filecomment">{L_FILE_COMMENT}:</label></dt>
		<dd><textarea name="filecomment" id="filecomment" rows="1" cols="60" class="inputbox autowidth">{FILE_COMMENT}</textarea></dd>
	</dl>
Inserisci prima:

Codice: Seleziona tutto

	<dl>
		<dt><label for="filecomment_title">Nome della specie:</label></dt>
		<dd><textarea name="filecomment_title" id="filecomment_title" rows="1" cols="60" class="inputbox autowidth">(FILE_COMMENT_TITLE)</textarea></dd>
	</dl>

Rispondi

Torna a “Off-Topic”

Chi c’è in linea

Visitano il forum: Nessuno e 61 ospiti