Zum Inhalt springen

cwt_community Gästebuch aktivieren

Erstellt am 24. Oktober 2007 · 2 Antworten · letzte Antwort am 24. Oktober 2007

Tags: Frage

sobi555 ·

Hallo,
hat von euch jemand mal in der Community das Gästebuch standartmäßig aktiviert? (Finde das für eine Communtiy etwas umständich, wenn User ein Gästebuch aktiveren / deaktiveren können. - Für was bin ich sonst in einer community?? - Vor allem, dass es Standartmäßig deaktiviert ist, find ich unglücklich!)

Wer also da schon mal "rumgeschraubt" hat, ist herzlich eingeladen, mir zu antworten! *g* (und wer noch nicht da rumgeschraubt hat, darf auch antworten! 😉 )
LG - Simon

Ach ja, meine Überlegung ist, dass ich einfach den Code finden muss, welcher in die DB schreibt, welchen zustand das Gästebuch hat und diesen dann gleich bei der Anmeldung einbinde. Was denkt ihr? - Oder ist es besser, den Code rauszustreichen, welcher aus der DB ausliest, ob das GB aktiv ist?

sobi555 ·

Ging schneller als erwartet... Wer ähnliches plant, hier die Stellen welche geändert werden müssen:
class.tx_cwtcommunity_pi1.php

    function doGetGuestbookStatus($uid)
    {
        // Check if an entry for a guestbook exists
		$res = $this->doDatabaseQuery("SELECT gb.status FROM tx_cwtcommunity_guestbook AS gb WHERE gb.fe_users_uid = $uid");
		//Okay...let us check
		//Guestbook OPEN
		if ($res[0]['status'] == "0") {
			return "0";
		}
		//Guestbook CLOSED
		elseif ($res[0]['status'] == "1"){
			return "0"; #retun "1";
		}
		//Guestbook CLOSED
		else{
			return "0"; #retun "1";
		}
    }

tx_cwtcommunity_pi1_guestbook.tmpl

	<!--tr>
		<td colspan="4">
	<!-- ###DEACTIVATE### begin>
		###ACTIVE_MSG###
		<FORM action="###FORM_ACTION###" method="POST">
			<INPUT type="submit" name="###LOCK_GUESTBOOK_BUTTON_NAME###" value="###LOCK_GUESTBOOK_BUTTON_VALUE###"/>
		</FORM>
	<!-- ###DEACTIVATE### end-->

	<!-- ###ACTIVATE### begin>
		###INACTIVE_MSG###
		<FORM action="###FORM_ACTION###" method="POST">
			<INPUT type="submit" name="###OPEN_GUESTBOOK_BUTTON_NAME###" value="###OPEN_GUESTBOOK_BUTTON_VALUE###"/>
		</FORM>
	<!-- ###ACTIVATE### end>
		</td>
	</tr-->
  <tr>
    <td colspan="4"><h3>Dein Gästebuch:</h3></td>
  </tr>

LG - Simon

sobi555 ·

Wen es intressiert, eine Mail an den User über einen neuen GB - Eintrag:
einfügen in die gleiche Datei in die Funktiion: doInsertGuestbookData

        #Benachrichtigung über einen Neuen GB - Eintrag (Add 24.10.):
        $abfrage = "SELECT email, gender, first_name, last_name FROM fe_users WHERE uid = ".$uid;
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_object($ergebnis))
    	    {
	        	$emailempfaenger = $row->email;
            $geschlecht = $row->gender;
            $vorname = $row->first_name;
            $nachname = $row->last_name;
            if($geschlecht == "0")
          	  {
	        	    $anrede = "Lieber ";
	            }
	          else
	            {
	          	  $anrede = "Liebe ";
	            }
            mail($emailempfaenger, "Eine neuer Gästebucheintrag", $anrede.$vorname."\nDu hast eine neuen Gästebucheintrag erhalten.","From: Name <keineantwortadresse@name>");
	      	}

Nachtrag:

   function doInsertGuestbookData($cruser_id, $text, $uid)
    {
      // Get guestbook uid for uid
      $res = $this->doDatabaseQuery("SELECT tx_cwtcommunity_guestbook.status FROM tx_cwtcommunity_guestbook, fe_users WHERE fe_users.uid = $uid AND fe_users.uid = tx_cwtcommunity_guestbook.fe_users_uid");
			//NO ENTRY --> create one
			if ($res[0]['status'] == null) {
				//Execute the query
				$res1 = $this->doDatabaseUpdateQuery("INSERT INTO tx_cwtcommunity_guestbook (pid, crdate, fe_users_uid, status) VALUES (".$this->sysfolderList.", ".time().", $uid, 0)");
				}
				//ENTRY EXISTS --> only doing an update
			elseif ($res[0]['status'] == "1"){
				//Execute the query
				$res1 = $this->doDatabaseUpdateQuery("UPDATE tx_cwtcommunity_guestbook SET status = 0 WHERE fe_users_uid = $uid");
				}

        $guestbookUID = $this -> doDatabaseQuery("SELECT tx_cwtcommunity_guestbook.uid FROM tx_cwtcommunity_guestbook, fe_users WHERE fe_users.uid = $uid AND fe_users.uid = tx_cwtcommunity_guestbook.fe_users_uid");

Da das GB ja standartmäßig geschlossen ist, muss es vor dem ersten Eintrag geöffnet werden...