easy-language-system-011-beta

Gesponsorde koppelingen

PHP script bestanden

  1. easy-language-system-011-beta

« Lees de omschrijving en reacties

- - - = = = +++ Voorbeeldje +++ = = = - - -

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
include('IncludeFile.php');

#het Talen menu aanroepen
echo '<p>'.$ListMenu.'</p>';

echo "<div style='background-color:#EEEEEE'><b>Normale user:</b><br/>";

# Voor de ogen van de normale gebruikers
$DT = new DispText($_SESSION['lang'],0);
echo $DT->_Text('Home');

echo "</div>";

echo "<div style='background-color:#EEEEEE'><b>Moderator:</b><br/>";

# Voor het de oog van de moderator
$DT = new DispText($_SESSION['lang'],1);
echo $DT->_Text('Home');

echo "</div>";

?>


- - - = = = EditTextClass.php = = = - - -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
#########################################
# By: Pieter van Linschoten                #
# Licence: GNU General Public Licence    #
# Project: Easy Language System            #
# Version: 0.1 BETA                        #
# Publish Date: Januari 23, 2008        #
# Page: EditTextClass.php                #
# Questions: webmaster@lapidi.nl        #
#########################################


class EditTextForm{
    var
$Form;
    var
$Language;
    var
$TextOutput;

    function
EditTextForm($PartCode,$Lang='En',$method){
        $this->Language = $Lang;
        
        $LangSql = "SELECT Text_LangCode FROM Text_Languages ORDER BY Text_Language ASC";
        $LangResponse = mysql_query($LangSql) or die(mysql_error());
        if(mysql_num_rows($LangResponse) == 0){
            echo "There is no language available to edit.";
            exit();
        }

        while($LangRow = @mysql_fetch_array($LangResponse)){
        $TextSql = "SELECT * FROM Text_Display WHERE Text_PartCode = '" . $PartCode . "' and Text_LangCode = '" . $LangRow['Text_LangCode'] . "'";
            $TextResponse = mysql_query($TextSql) or die(mysql_error());
            
            if(mysql_num_rows($TextResponse) == 0){
                $Text = '';
            }
else{
                $TextRow = @mysql_fetch_array($TextResponse);
                $Text = $TextRow['Text_Content'];
            }


            $this->CreateFormContent($LangRow['Text_LangCode'],$PartCode,$Text);
        }

        
        $this->TextOutput = '<form action="' . $_SERVER['PHP_SELF'] . '?mod=edit&Part=' . $PartCode . '" method="POST">' . $this->Form . '<p><input name="TextUpdate" type="submit" value="Update"></p></form>';
    }

    #@ Maak voor elke taal een apart Text Area
    function CreateFormContent($LangCode,$PartCode,$Text){

        $this->Form .= '<p>' . $PartCode . '_' . $LangCode . '<br/>';    
        $this->Form .= '<textarea name="' . $PartCode . '_' . $LangCode . '" >' . $Text . '</textarea>';
        $this->Form .= '</p>';
    }

    function
_Output(){
        return $this->TextOutput;
    }
}


?>


- - - = = = EditText.php = = = - - -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<?php
[code]<?
#########################################
# By: Pieter van Linschoten                #
# Licence: GNU General Public Licence    #
# Project: Easy Language System            #
# Version: 0.1 BETA                        #
# Publish Date: Januari 23, 2008        #
# Page: EditText.php                    #
# Questions: webmaster@lapidi.nl        #
#########################################

#! Let op: Deze pagina is hier onbeveiligd!


require('IncludeFile.php');
require('EditTextClass.php');


#@ Controleer of het er een formulier verzonden is.
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    
    # Loop de array van $_POST af.
    foreach($_POST as $key => $post){
        
        #@ Alles, behalve de update knop hebben we nodig
        if($key != 'TextUpdate'){
            $key = explode('_',$key);
            
            #@ Controleer of het verzonden veld niet leeg was, want dan doen we er niets mee.
            if(!empty($post)){
                
                #@ Kijk of dit tekstgedeelte al bestond in de DB.
                $CheckSql = "SELECT id FROM Text_Display WHERE Text_PartCode = '" . $key[0] . "' AND Text_LangCode = '" . $key[1] . "' LIMIT 1";
                $CheckResponse = mysql_query($CheckSql) or die(mysql_error());
                $Check = mysql_num_rows($CheckResponse);

                switch($Check){
                    case
0:
                        #@ INSERT de text als deze voor het eerst wordt aangepast.
                        $aUpdateQuery[] = "INSERT INTO Text_Display SET id = '', Text_PartCode = '" . $key[0] . "', Text_LangCode = '" . $key[1] . "', Text_Content = '" . mysql_real_escape_string($post) . "'";
                    break;
                    default:

                        #@ UPDATE de text als deze al bestaat.
                        $aUpdateQuery[] = "UPDATE Text_Display SET Text_Content = '" . mysql_real_escape_string($post) . "' WHERE Text_PartCode = '" . $key[0] . "' AND Text_LangCode = '" . $key[1] . "'";
                    break;
                }
            }
        }
    }

    #@ En de functies uitvoeren. Controleer of het goed gaat
    $iError = 0;
    foreach($aUpdateQuery as $Query){
        mysql_query($Query) or $iError = 1;
    }

    
    #@ Kijk of de query gelukt is.
    switch($iError){
        case
0: echo "<p>The languages have been edited.</p><p>(<a href='#' onClick='javascript:window.close();'>Close Window</a>)</p>";
        break;
        case
1: echo "<p>Something went wrong while updating.</p><p><a href='#' onClick='javascript:history.go(-1);'>Please try again.</a></p>";
        break;
    }

}
else{

    $ET = new EditTextForm($_GET['Part'],$_SESSION['lang'],'edit');
    echo $ET->_Output();
}

?>



- - - = = = DispTextClass.php = = = - - -

<?php
#########################################
# By: Pieter van Linschoten                #
# Licence: GNU General Public Licence    #
# Project: Easy Language System            #
# Version: 0.1 BETA                        #
# Publish Date: Januari 23, 2008        #
# Page: DispTextClass.php                    #
# Questions: webmaster@lapidi.nl        #
#########################################


#@ Display Text in correct Language

class DispText{
    var
$Mod;
    var
$Lang;
    var
$Content;
    
    #@ Weergeef foutmeldingen alleen in DEBUGMODUS voor Moderators.
    function DispError($error){
        if($this->Mod == 1){
            die($error);
            $this->Content .= $error;
        }
    }

    
    #@ Initialiseer de class, wanneer deze wordt aangemaakt.
    function DispText($LangCode='EN',$Moderator=0){
        $this->Mod = $Moderator;
        $this->Lang = $LangCode;
    }

    
    #@ Wanneer iemand moderator is, moet hij natuurlijk wel de tekst aan kunnen passen.
    # Daarom zetten we een [EDIT] knopje erbij.

    function Moderator($PartCode){
        if($this->Mod == 1){
            return "&nbsp;[<a <a href=\"class.php?mod=edit&Part=" . $PartCode . "\" onclick=\"window.open('EditText.php?mod=edit&Part=" . $PartCode . "','Edit','width=400, height=400, scrollbars=yes, toolbar=no, location=no'); return false\" title='Edit'>Edit</a>]";
        }
    }

    
    #@ Hier wordt de bijbehorende taal uit de Database gehaalt.
    # Wanneer deze nog niet in de database staat, zetten we de partcode_langcode neer, om te laten zien dat hier nog iets moet komen.

    function _Text($PartCode){
        $qSql    = "SELECT Text_Content FROM Text_Display WHERE Text_LangCode = '" . $this->Lang. "' AND Text_PartCode = '" . $PartCode . "' LIMIT 1";
        $qResponse = mysql_query($qSql) or $this->DispError(mysql_error());
        
        if(mysql_num_rows($qResponse) == 0){
            return "[" . $PartCode . "_" . $this->Lang . "]" . $this->Moderator($PartCode);
        }
else{
            $qRow = mysql_fetch_array($qResponse);
            return $qRow['Text_Content'] . $this->Moderator($PartCode);
        }
    }
    
}

?>



- - - = = = IncludeFile = = = - - -

<?php
#########################################
# By: Pieter van Linschoten                #
# Licence: GNU General Public Licence    #
# Project: Easy Language System            #
# Version: 0.1  BETA                    #
# Publish Date: Januari 23, 2008        #
# Page: IncludeFile.php                    #
# Questions: webmaster@lapidi.nl        #
#########################################



session_start();

#@ Database connectie, ook niet onhandig...
$user = "username";
$dbpass = "password";
$host = "hostname";
$dbdb = "database";

if (!mysql_select_db($dbdb, mysql_connect($host, $user, $dbpass)))
{

     echo "Database connectie mislukt.";
     exit();
}


# Initialiseer variabelen
$aLang = array();
$ListMenu = NULL; # Dit word het menu
$cntr = 0;

#@ Bepaal de ondersteunende talen.
#@ Maak een menu van deze talen.

$LangSql = "SELECT * FROM Text_Languages ORDER BY Text_Language ASC";
$LangResponse = mysql_query($LangSql);

#@ Indien er geen talen in de DB staan, geen menu aanmaken.
if(mysql_num_rows($LangResponse) == 0){
    $ListMenu = '';
    $aLang[] = NULL;
}
else{
    while($LangRow = mysql_fetch_array($LangResponse)){
        $cntr++;
        # Array met bestaande talen
        $aLang[] = $LangRow['Text_LangCode'];
        
        # Het menu: Je kan er ook voor kiezen om plaatjes in te voeren.
        # Ik heb hier gewoon text, waarvan de gekozen taal dikgedrukt is.

        if(isset($_GET['setlang'])){
            if($_GET['setlang'] == $LangRow['Text_LangCode']){
                $bold = ' style= "font-weight:bold; "';
            }
else{
                $bold = ' ';
            }
        }
elseif(isset($_SESSION['lang']) && ($_SESSION['lang'] == $LangRow['Text_LangCode'])){
            $bold = ' style= "font-weight:bold; "';
        }
else{
            $bold = ' ';
        }

        $ListMenu .= "<a".$bold."href='".$_SERVER["PHP_SELF"]."?setlang=" . $LangRow['Text_LangCode'] . "'>" . $LangRow['Text_Language'] . "</a>" . ($cntr == mysql_num_rows($LangResponse) ? ' ' : ' | ');
    }
}


#@ Controleer of iemand van taal wil veranderen
if(!empty($_GET['setlang']) && isset($_GET['setlang'])){
    # Controleer of deze taal toegestaan is.
    if(in_array($_GET['setlang'],$aLang)){
        # Onthoudt gekozen taal dmv een sessie
        $_SESSION['lang'] = $_GET['setlang'];
    }
}


#@ Controleer of er een taal is onthouden. Zo niet: Dwing om er een te kiezen.
if(!isset($_SESSION['lang'])){
    echo '<b>Select Language:</b> <p>' . $ListMenu . '</p>';
    exit();
}


# En haal de display class erbij.
require_once("DispTextClass.php");
?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.