Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - KillerCookie

Pages: [1]
1
Update Ticker (V1.3 - working / läuft)

NOTE: All updates till page 5, post #64 are included in this instruction!
HINWEIS: Alle Updates bis Seite 5, post #64 sind in der Anleitung berücksichtigt!


[If you got a good idea for an extension - feel free to post / Wenn du eine Idee für zusätzliche Features hast - poste bitte]

V1.0
- lots of bugs / viele Fehler

V1.1
+ added dual language support (english / german) / Script und Interface in deutsch und englisch
+ added global links and link text / Global nutzbare link und link-text variablen
- still lots of bugs :( / immernoch viele Fehler :(

V1.2
+ script is working fine now (new layout) / Script arbeitet jetzt ordentlich (neues Layout erstellt)
+ fixed error-message bug (message was dsiplayed everytime) / Fehlermeldungs-Bug behoben (Meldung wurde ständig eingeblendet)
+ added thunderstrike´s code (thx) / den Code von Thunderstrike hinzugefügt (thx)
+ script creates image and thumbnail folders now / das Script erstellt jetzt die Bilder- und Thumbnail-Ordner
+ modified and listet mawenzi´s addon in first post / mavenzi´s addon modifiziert und im ersten post aufgelistet

V1.3
+ small updates of the instructions / kleine Neuerungen der Installationsbeschreibung
+ added missing language part / fehlenden Teil in den Sprachdateien hinzugefügt
+ small code update [addcat.php] / kleine code erneuerung [addcat.php]

German:

Hallo Community,
da es bisher noch keine Möglichkeit gab Usern zu erlauben eigene Kategorien bzw. Subkategorien zu erstellen und die einzigste Methode eine Auslagerung der Admin-Funktionen war habe ich nun eine eigene Lösung gebaut. Nun kurz und schmerzlos die Features:

Features:

- Installation in weniger als 5 Minuten (!)
- PHP und HTML sauber getrennt für Template Kompatibilität
- stabil und sicher (hoffentlich ;) )
- sämtliche Daten werden fehlerlos nach den Vorgaben von 4images in die Datenbank eingetragen
- Anpassung auf persönliche Bedürfnisse problemlos machbar
- der gesamte code wurde deutsch und englisch kommentiert


English:

Hello community,
after searching for a way to let users add categories and/or subcategories i found that the only way to do that is to rip the admin functions out and make them available for the users. Because of that i made my own solution.


Features:

- Installation takes < 5 min. (!)
- PHP and HMTL are cleanly separated for for better template compatibility
- stable and secure (i hope so ;) )
- all informations are put into the database like the original functions of 4images do
- customization can be easily done
- the whole code is commented in english and german



Installation (german / english):

Step 1 / Schritt 1
Download the attached File
Lade die Datei im Anhang herunter

1.1
Put the "addcat.php" into your 4images root-folder and the "addcat.html" to your template folder
Lege die Datei "addcat.php" in dein 4images Hauptverzeichnis und die "addcat.html" in dein Template Verzeichnis

1.2
Opfen both files with the editor you like
Öffne beide Dateien mit einem Editor deiner Wahl


Step 2 / Schritt 2

[addcat.php]

Search for / suche nach
Code: [Select]
  // Initial value of the category hits / Startwert der Kategorie Hits
  $cat_hits = '0';
  // Rights for the new categorie / Rechte für die neue Kategorie
  // 0 = all / alle , 2 = registered users / registrierte benutzer , 9 = admin
  $auth_viewcat = '0';
  $auth_viewimage = '0';
  $auth_download = '0';
  $auth_upload = '2';
  $auth_directupload = '9';
  $auth_vote = '2';
  $auth_sendpostcard = '0';
  $auth_readcomment = '0';
  $auth_postcomment = '2';

Change the values according to your needs / Ändere die Werte nach deinen Wünschen ab


Step 3 / Schritt 3

[addcat.html]

Search for / suche nach
Code: [Select]
<!-- Start of Options -->
<tr>
 <td class="row1"><b>{lang_addcat_which_subcat}</b></td>
 <td align="right" class="row1">
 <select name="cat_parent_id" size="">
  <!-- At "value" enter a cat_id and next to it a cat_name / Bei "value" kann die Kategorie ID und daneben der Kategorie Name eingetragen werden -->
  <option value="18">Upload</option>
  <option value="your 2nd id / deine 2 id">your 2nd category name / der name deiner 2. Kategorie</option>
  <option value="...">...</option>
 </select>
 </td>
</tr>
<!-- End of Options -->

At the <option... </option> lines please enter your own values.
(The users will be able to create new categories in all categories that are listet here. You can see category ID "18" and the category name "Upload" for example. Change both values according to your needs.
- you can get the category ID and the names by opening the menu-link "Edit categories" in the admin control panel)
- you can also add or delete <option...</option> lines

In den <option... </option> Zeilen bitte die eigenen Werte eintragen
(Die Benutzer können in den hier angegebenen Kategorien neue Unterkategorien erstellen. Als Beispiel habe ich Kategorie ID "18" und den
Kategorie-Name "Upload" eingetragen. Beide Einträge müssen geändert werden.
- die Kategorie ID und den zugehörigen Name findet man im Menüpunkt "Kategorien bearbeiten" im Admin Control Panel
- man kann <option...</option> Zeilen hinzufügen oder entfernen


Step 4 / Schritt 4

Place a link to addcat.php somewhere in your templates (for example the user_logininfo) ( you can use {url_addcat} for the url and {url_addcat_text} for the link text
Platziere einen Link zur addcat.php irgendwo in deinen templates (als Beispiel hier die user_logininfo.html) (es kann {url_addcat} für die url und {url_addcat_text} für den Link-Text verwendet werden)

[user_logininfo.html]

Search for / suche nach
Code: [Select]
&raquo; <a href="{url_control_panel}">{lang_control_panel}</a><br />
Add after / danach einfügen
Code: [Select]
&raquo; <a href="{addcat_url}">{addcat_url_text}</a></td>   
[The link can be found at the left side of the page in the user-menu now]
[Der Link steht nun im User-Menü auf der linken Seite, sofern man angemeldet ist]


Step 5 / Schritt 4
Open 4images\lang\deutsch\main.php / Öffne 4images\lang\deutsch\main.php
Open 4images\lang\english\main.php / Öffne 4images\lang\english\main.php

5.1

[deutsch\main.php]

Search for / Suche nach
Code: [Select]
?>
Add before / davor einfügen
Code: [Select]
//-----------------------------------------------------
//--- Addcat MOD by Killercookie ----------------------
//-----------------------------------------------------
$lang['addcat_new_cat1'] = 'Neue Kategorie';
$lang['addcat_new_cat2'] = 'Neue Kategorie anlegen';
$lang['addcat_info'] = 'Informationen';
$lang['addcat_description'] = 'Beschreibung der Kategorie';
$lang['addcat_name'] = 'Name der Kategorie';
$lang['addcat_submit_button'] = 'Kategorie erstellen';
$lang['addcat_which_subcat'] = 'Zu welcher Kategorie hinzufügen';
$lang['addcat_error'] = 'Das Formular wurde nicht korrekt ausgefüllt, bitte erneut versuchen.';
$lang['addcat_ok'] = 'Ihre Kategorie wurde erfolgreich erstellt!';
$lang['addcat_no_rights'] = 'Sie besitzen nicht genügend Rechte zum Anzeigen der Seite!';


[english\main.php]

Search for / Suche nach
Code: [Select]
?>
Add before / davor einfügen
Code: [Select]
//-----------------------------------------------------
//--- Addcat MOD by Killercookie ----------------------
//-----------------------------------------------------
$lang['addcat_new_cat1'] = 'New category';
$lang['addcat_new_cat2'] = 'Add new category';
$lang['addcat_info'] = 'Information';
$lang['addcat_description'] = 'Category description';
$lang['addcat_name'] = 'Category name';
$lang['addcat_submit_button'] = 'Create category';
$lang['addcat_which_subcat'] = 'Add to which category';
$lang['addcat_error'] = 'The submitted information is incorrect. Please try again';
$lang['addcat_ok'] = 'Your category was created successfully!';
$lang['addcat_no_rights'] = 'You do not have the permission to display this page!';

5.2
Open includes\page_header.php

Search for / Suche nach
Code: [Select]
  "rss_url" => "",
Add after / danach einfügen
Code: [Select]
  "addcat_url" => ROOT_PATH."addcat.php",
  "addcat_url_text" => $lang['addcat_new_cat1'],

Done! / Fertig!



Addons (german / english):

Addon [1 - Show user who added the cat in cat description / Zeige den user, der die Kat. erstellt hat in der Beschreibung] by mawenzi

1. find in addcat.php / finde in addcat.php
Code: [Select]
$user_access = get_permission();
Add after / danach einfügen
Code: [Select]
$user_name = format_text(trim($user_info['user_name']), 2);

2. find in addcat.php / finde in addcat.php
Code: [Select]
$new_cat_description = (isset($HTTP_POST_VARS['new_cat_description'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS["new_cat_description"])) : "";
Add after / danach einfügen
Code: [Select]
$new_cat_description = str_replace(array("{new_cat_description}", "{user_name}"), array(format_text(trim($new_cat_description), 1, 0, 1), format_text(trim($user_info['user_name']), 2)), $lang['new_cat_description_added_by']);

3. find in lang/english/main.php / finde in lang/english/main.php
Code: [Select]
?>
Add before / davor einfügen
Code: [Select]
$lang['new_cat_description_added_by'] = "<span class=\"smalltext\">{new_cat_description} [added by : {user_name}]</span>";

4. find in lang/deutsch/main.php / finde in lang/deutsch/main.php
Code: [Select]
?>
Add before / davor einfügen
Code: [Select]
$lang['new_cat_description_added_by'] = "<span class=\"smalltext\">{new_cat_description} [hinzugefügt von: {user_name}]</span>";

5. Done :) / Fertig! :)


If you have questions, problems, praise or criticism then please post in this thread.
Bei Fragen, Problemen, Anregungen, Lob oder Kritik einfach hier in den Thread posten oder mir eine PN schicken.

LG / Greets Maik

2
German:
Nachdem ich hier im Forum einige Lösungsansätze bezüglich der Thematik "feste Bildgröße im Detailfenster" gelesen und überdacht habe, so fand ich alle eigentlich ziemlich umständlich und wollte selbst eine schnellere Lösung schaffen. Meine Lösung bietet zudem eines der Dinge, die ich bei vielen anderen vermisst habe: dynamische Verkleinerung! Was ich damit meine?

Nehmen wir an ein Bild liegt in der Größe 1600 x 1600 vor und wir wollen aber 800 x 600 (durch stupides ausschneiden eines Nutzers sind solche Größen durchaus möglich). Normale resizer nehmen jetzt die Breite und reduzieren sie auf 800, dann bestenfalls noch die Breite auf 600 und schon ist das Bild verzerrt. Andere rechnen den Verkleinerungsfaktor der Breite aus und wenden selben auf die Höhe an, das schließt aber nicht aus, das die Höhe immernoch nicht passt (wären im Beispiel ja immerhin 800 und nicht 600).

Was mache ich anders? Ich rechne den Faktor für die Breite aus und passe direkt danach die Höhe daran and _und_ prüfe dann nochmal die Höhe und falls diese zu Groß ist wird wieder ein Faktor berechnet und auf die Breite angewendet. Das stellt ein 100% passendes und nicht verzerrtes Bild sicher.

Features:
- max. Ausmaße des Bildes wählbar (Breite und Höhe)
- dynamisches verkleinern ohne Zerren von _jeder_ denkbaren Bildgröße!
- Installationszeit < 1 min.
- der Mod kann für jede Art von Bildern separat durchgeführt werden, muss aber nicht
- einfaches, englisch kommentiertes PHP
- wahlweise kann eine Information für den Nutzer eingeblendet werden (die natürlich auch als voll-bild link benutzt werden kann)
- der Nutzer kann die Vollansicht des Bildes wahlweise per Klick auf das Bild, den Hinweistext oder whatever öffnen

- *neu* auch zentral per "functions.php" einbindbar (siehe Installation Methode 2)

Erweiterungen (noch nicht eingebaut, aber möglich - einfach bescheid sagen):
Done:
- ...

Todo:
- Javascript einbauen, das die Auflösung des Nutzers ausgibt und diese wird dann zur Berechnung der Bildgröße genutzt (Kann mir dieses Javascript jemand basteln, bitte?). so könnte man jedem Nutzer die beste Bildgröße für seinen Monitor bzw. seine Auflösung liefern!
- eigene Ideen???



English:


Features:
- max. size of the image chooseable (width and height)
- dynamic resizing without stretching. possible with _every_ image size (very big hight, very big width etc.)
- time for installation < 1 min.
- the mod can be applied easily to different image formats
- easy, english commented PHP
- an information that the image was resized can be displayed (and used as full-image link of course)
- users can open the full-image with a single click at the image, the information text or everything else you wish

- *new* integration into functions.php possible, so you only need to change 1 file and it will affect all file types! (see installtion method 2)

Extensions:
Done:
- ...

Todo:
- Make a Javascript, that writes the screen resolution of the user into a PHP-variable and use it to calculate the max. resolution of the image. (Can somebody please write this Javascript?)
- Your Ideas???



Installation [ Methode 1 & 2 ] (german / english):

Bitte eine der beiden Methoden auswählen! Die 1. Methode ist verständlicher, die 2. hingegen muss nur 1 x definiert werden und funktioniert dann für alle Formate. Außerdem ist sie dann zentral in der zugehörigen Funktionsdatei hinterlegt.
 
Please choose one of the following 2 methods! Method 1 is easier to understand and use, but with method 2 you only have to the steps one time for all file types and the the code will be placed in the central funtion file.



1. Methode für jedes Dateiformat im zugehörigen Template / Method which uses the file type template (e.g. jpg.html for jpg files)

1.1
Öffne 'dein4imagesordner'\templates\media
Open 'your4imagesfolder'\templates\media

1.2
Öffne das Template für den Datentyp, dessen Größe geändert werden soll
Open the template for the file-type you wish to be resized (jpg, png, gif...)

1.3
Suche nach / Search for
Code: [Select]
<img src="{media_src}" border="1" alt="{image_name}"{width_height} /><br />
Ersetze durch / Replace with
Code: [Select]
<?php
  
// Step 1: Definiere Variablen / Define variables

  // Sammle benötigte Bildinformationen / Getting required image informations
  
$my_image_info getimagesize ($media_src);

  
// Speichere die gesammelten Daten / Saving gathered informations
  
$original_width $my_image_info[0];
  
$original_height $my_image_info[1];
  
$file_extension $my_image_info[2];

  
// Die gewünschte Bildgröße / The desired image size
  
$desired_width 800;
  
$desired_height 600;

  
// Die errechnete Endgröße / The calculated output size
  
$resized_width 0;
  
$resized_height 0;

  
// Der Vergrößeruntgs-/Verkleinerungsfaktor / The calculated resizing factor
  
$factor_width 0;
  
$factor_height 0;


  
// Step 2: Überprüfe die Größe und ändere sie / Checking size and doing resize


  // Breite / Width operations
  
if ($original_width $desired_width)
    {
    
$resized_width $desired_width;

    
// Berechne den Vergrößeruntgs-/Verkleinerungsfaktor und passe die Höhe an / Calculating the resizing factor and fitting the height to it
    
$factor_width $resized_width / ($original_width 100);
    
$original_height = ($original_height 100) * $factor_width;
    }
    else
    {
    
$resized_width $original_width;
    }

  
// Höhe / Height operations
  
if ($original_height $desired_height)
    {
    
$resized_height $desired_height;

    
// Berechne den Vergrößerungs-/Verkleinerungsfaktor und passe die Breite an / Calculating the resizing factor and fitting the width to it
    
$factor_height $resized_height / ($original_height 100);
    
$resized_width = ($resized_width 100) * $factor_height;
    }

    else
    {
    
$resized_height $original_height;
    }

  
  
// Platz für Info/Link über dem Bild / Space for the info/link _over_ the image

  // Generiere den neuen Link zum Bild / Generating new image link
  
echo '<br><a target="_blank" href="'.$media_src.'"><img src="'.$media_src.'" border="1" alt="'.$image_name.'" width="'.$resized_width.'"height="'.$resized_height.'"></a><br><br>';
  
  
// Platz für Info/Link _unter_ dem Bild / Space for the info/link _under_ the image

  // Platz für den Variablen Test / Space for the variable check
?>

1.4
Die gewünschte Zielgröße kann hier festgelegt werden / The desired image size can be set here
Code: [Select]
  // Die gewünschte Bildgröße / The desired image size
  $desired_width = 800;
  $desired_height = 600;

1.5
Speichere die Datei und schau dir deine Gallerie an / Save the File and browse through your gallery


2. Zentrale Methode für alle Dateiformate / Central Method for all file types

2.1
Öffne 'dein4imagesordner'\includes\functions.php
Open 'your4imagesfolder'\includes\functions.php

2.2
Suche nach / Search for
Code: [Select]
if ($image_info = @getimagesize($src, $info)) {
      $width_height = " ".$image_info[3];
      $width = $image_info[0];
      $height = $image_info[1];

Füge danach ein / Insert below
Code: [Select]
  // Step 1: Definiere Variablen / Define variables


  // Sammle benötigte Bildinformationen / Getting required image informations
  $my_image_info = getimagesize ($media_src);

  // Speichere die gesammelten Daten / Saving gathered informations
  $original_width = $my_image_info[0];
  $original_height = $my_image_info[1];

  // Die gewünschte Bildgröße / The desired image size
  $desired_width = 800;
  $desired_height = 600;

  // Die errechnete Endgröße / The calculated output size
  $resized_width = 0;
  $resized_height = 0;

  // Der Vergrößeruntgs-/Verkleinerungsfaktor / The calculated resizing factor
  $factor_width = 0;
  $factor_height = 0;


  // Step 2: Überprüfe die Größe und ändere sie / Checking size and doing resize


  // Breite / Width operations
  if ($original_width > $desired_width)
    {
    $resized_width = $desired_width;

    // Berechne den Vergrößerungs-/Verkleinerungsfaktor und passe die Höhe an / Calculating the resizing factor and fitting the height to it
    $factor_width = $resized_width / ($original_width / 100);
    $original_height = ($original_height / 100) * $factor_width;
    }
    else
    {
    $resized_width = $original_width;
    }

  // Höhe / Height operations
  if ($original_height > $desired_height)
    {
    $resized_height = $desired_height;

    // Berechne den Vergrößerungs-/Verkleinerungsfaktor und passe die Breite an / Calculating the resizing factor and fitting the width to it
    $factor_height = $resized_height / ($original_height / 100);
    $resized_width = ($resized_width / 100) * $factor_height;
    }

    else
    {
    $resized_height = $original_height;
    }

    $width_height = 'width="'.$resized_width.'" height="'.$resized_height.'"';

2.3
Die gewünschte Zielgröße kann hier festgelegt werden / The desired image size can be set here
Code: [Select]
  // Die gewünschte Bildgröße / The desired image size
  $desired_width = 800;
  $desired_height = 600;

2.4
Speichere die Datei und schau dir deine Gallerie an / Save the File and browse through your gallery




Extensions (german / english):

1. Hinweistext mit/ohne Link oben/unten anzeigen (FÜR METHODE 1) / Show hint with/without link over/under the image (FOR METHOD 1)

a)
Öffne 'dein4imagesordner'\templates\media
Open 'your4imagesfolder'\templates\media

b)
Öffne das Template für den Datentyp, bei dem ein Hinweis angezeigt werden soll
Open the template for the file-type you wish to display a hint (jpg, png, gif...)

c)
Suche nach / Search for
Code: [Select]
  // Platz für Info/Link _über_ dem Bild / Space for the info/link _over_ the imageund / and
Code: [Select]
  // Platz für Info/Link _unter_ dem Bild / Space for the info/link _under_ the image
d) Ersetze einen oder beide Teile mit einem der nachfolgenden Stücke / Replace one or both parts with one of the parts below
Code: [Select]
// Hinweistext / Hint text (change the text according to you language)
echo 'Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!';
Code: [Select]
// Hinweistext (zentriert) / Hint text (centered) (change the text according to you language)
echo '<div align="center">Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!</div>';
Code: [Select]
// Hinweistext mit Link / Hint text with link (change the text according to you language)
echo '<a target="_blank" href="'.$media_src.'">Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!</a>';
Code: [Select]
// Hinweistext mit Link (zentriert) / Hint text with Link (centered) (change the text according to you language)
echo '<div align="center"><a target="_blank" href="'.$media_src.'">Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!</a></div>';

e)
Speichern und fertig / Save and exit


1. Hinweistext mit/ohne Link oben/unten anzeigen (FÜR METHODE 2) / Show hint with/without link over/under the image (FOR METHOD 2)

a)
Öffne 'dein4imagesordner'\templates\media
Open 'your4imagesfolder'\templates\media

b)
Öffne das Template für den Datentyp, bei dem ein Hinweis angezeigt werden soll
Open the template for the file-type you wish to display a hint (jpg, png, gif...)

c)
Suche nach / Search for
Code: [Select]
<!-- Template file for JPG Files -->
Füge darunter ein / Insert below
Bitte wähle den passenden code unter 1. c)  [nicht so einfügen, sondern befolgen ;) ]
Please choose one of the codes under 1. d) [don´t paste this, just choose a code from 1. d ;) ]

d)
Danach einfügen / Insert after
Code: [Select]
<br>
e)
Suche nach / Search for
Code: [Select]
<img src="{media_src}" border="1" alt="{image_name}"{width_height} /><br />
Danach einfügen / Insert after
Code: [Select]
<br>
f)
Danach einfügen / Insert after
Bitte wähle den passenden code unter 1. c)  [nicht so einfügen, sondern befolgen ;) ]
Please choose one of the codes under 1. d) [don´t copy this, just choose a code from 1. d ;) ]

d) Ersetze einen oder beide Teile mit einem der nachfolgenden Stücke / Replace one or both parts with one of the parts below
Code: [Select]
// Hinweistext / Hint text (change the text according to you language)
echo 'Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!';
Code: [Select]
// Hinweistext (zentriert) / Hint text (centered) (change the text according to you language)
echo '<div align="center">Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!</div>';
Code: [Select]
// Hinweistext mit Link / Hint text (change the text according to you language)
echo '<a target="_blank" href="'.$media_src.'">Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!</a>';
Code: [Select]
// Hinweistext mit Link (zentriert) / Hint text with Link (centered) (change the text according to you language)
echo '<div align="center"><a target="_blank" href="'.$media_src.'">Dieses Bild wird evtl. verkleinert dargestellt. Hier klicken um das Bild vollständig anzuzeigen!</a></div>';

e)
Speichern und fertig / Save and exit


3. Alle Variablen unter dem Bild anzeigen (FOR METHOD 1) / Display all variables under the image (FOR METHOD 1)

a)
Öffne 'dein4imagesordner'\templates\media
Open 'your4imagesfolder'\templates\media

b)
Öffne das Template für den Datentyp, dessen Größe geändert werden soll
Open the template for the file-type you wish to be resized (jpg, png, gif...)

c)
Suche nach / Search for
Code: [Select]
  // Platz für den Variablen Test / Space for the variable check
d)
Ersetze durch / replace with
Code: [Select]
  // Variablen Test / Variable check
  echo '<br><br>';
  echo 'original_width = '.$width.'<br>';
  echo 'original_height = '.$height.'<br>';
  echo 'factor_width = '.$factor_width.'<br>';
  echo 'factor_height = '.$factor_height.'<br>';
  echo 'resized_width = '.$resized_width.'<br>';
  echo 'resized_height = '.$resized_height.'<br>';

e)
Speichern und fertig / Save and exit




Bei Fragen, Problemen, Anregungen, Lob oder Kritik einfach hier in den Thread posten oder mir eine PN schicken.
If you have questions, problems, praise or criticism then please post in this thread.

BTW.: I´m german, so please forgive me for this bad (?) english. If u have problems to understand something, then just ask. ;)

LG / Greets Maik

Pages: [1]