Autolinks 2.1.4 (UpDate von 2.0.0 und eine kleine Anpassung)

Kleine Codeänderungen oder Mini-MODs
Keine Anfragen!!! -- No requests!!!

Moderator: Supporter

Autolinks 2.1.4 (UpDate von 2.0.0 und eine kleine Anpassung)

Beitragvon AmigaLink » 2. Apr 2007 21:51

Der Autolinks 2.1.4 (von Afkamm) ist ein wirklich großartiger MOD, den man dem altem Quicklinks (von Bananeweizen) auf jeden Fall Vorrang gewähren sollte, weil er diverse Probleme -die mit dem Quicklinks auftreten können- sehr geschickt umgeht und außerdem noch mehr bietet.
Die Version 2.0.0 des Autolinks war schon toll und die aktuelle 2.1.4 setzt da noch einen drauf. Bild

Einziger Nachteil:
Wer von 2.0.0 auf 2.0.4 Updaten möchte steht vor einem kleinem Problem, weil keine Update-Anleitung existiert. :o
Und außerdem ist eine kleine Funktion nicht mehr (bzw. nur indirekt) vorhanden, die ich schmerzlich Vermisse. :?

Kommen wir erstmal zum Update:
  1. Autolinks 2.0.0 anhand der alten Anleitung deinstallieren.
  2. In phpMyAdmin diese SQL-Anweisung ausführen:
    Code: Alles auswählen
    ALTER TABLE `phpbb_autolinks` CHANGE link_id link_id SMALLINT(4) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE `phpbb_autolinks` ADD `link_order` SMALLINT(4) DEFAULT '0' NOT NULL AFTER `link_id`;
    ALTER TABLE `phpbb_autolinks` CHANGE link_title link_text VARCHAR(50) DEFAULT '' NOT NULL;
    ALTER TABLE `phpbb_autolinks` CHANGE link_forum link_forum VARCHAR(255) DEFAULT '' NOT NULL;
    ALTER TABLE `phpbb_autolinks` ADD `link_pm` TINYINT(1) DEFAULT '0' NOT NULL AFTER `link_forum`;
    ALTER TABLE `phpbb_autolinks` ADD `link_viewing` TINYINT(1) NOT NULL default '0';
    ALTER TABLE `phpbb_autolinks` ADD `link_counter` MEDIUMINT(6) NOT NULL default '0';

    UPDATE `phpbb_autolinks` SET link_order = link_id;
  3. Autolinks 2.0.4 installieren.
Damit ist die neue Version nun da ohne das die alten Linkdefinitionen verloren gegangen sind. 8)
Einziger Nachteil: Autolinks die für alle Foren definiert sind funktionieren jetzt (noch) nicht.
Und damit sind wir bei der verloren gegangenen Funktion des MODs.

Du kannst nun im ACP hingehen und alle Links die über keine Forendefinition verfügen editieren. Anhand der neuen Mehrfachauswahl, ist es kein Problem den Link wieder für alle Foren zu aktivieren.
Aaaber wenn man dies genau Überdenkt, ist dies nicht mit der alten "Alle Foren" Einstellung gleich zu setzen. Denn wenn man ein neues Forum erstellt, müsste das nachträglich ebenfalls wieder in den jeweiligen Link eingepflegt werden. Was, bei vielen Links, sehr aufwändig und Lästig ist. :roll:
Deswegen gehen wir nun noch hin und machen folgendes:
Code: Alles auswählen
#
#-----[ OPEN ]----------------------------------------------------------------
#

admin/admin_autolinks.php

#
#-----[ FIND ]----------------------------------------------------------------
#

         for( $j=0; $j<count($link_forum); $j++ )

#
#-----[ BEFORE, ADD ]---------------------------------------------------------
#

      if ($autolink_rows[$i]['link_forum'] != '0')
      {

#
#-----[ FIND ]----------------------------------------------------------------
#

         }
         unset($j, $k, $id);

#
#-----[ AFTER, ADD ]----------------------------------------------------------
#

      }
      else
      {
         $link_forum_menu .= '<option>' . $lang['Select_all_forums'] . '</option>';
      }

#
#-----[ OPEN ]----------------------------------------------------------------
#

language/lang_english/lang_admin.php

#
#-----[ FIND ]----------------------------------------------------------------
#

$lang['Click_return_autolinkadmin'] = 'Click %sHere%s to return to Autolink Administration';

#
#-----[ AFTER, ADD ]----------------------------------------------------------
#

$lang['Select_all_forums'] = 'All Forums';

#
#-----[ OPEN ]----------------------------------------------------------------
#

includes/functions.php

#
#-----[ FIND ]----------------------------------------------------------------
#

   $where = ( $forum_id == 'pm' ) ? "link_pm = 1" : "link_forum LIKE '%" . $forum_id . "%'";

#
#-----[ REPLACE WITH ]--------------------------------------------------------
#

   $where = ( $forum_id == 'pm' ) ? "link_pm = 1" : "link_forum LIKE '%" . $forum_id . "%' OR link_forum = '0'";

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------------
#
# EoM

Dadurch Funktionieren nun alle Links wieder und die Anzeige im ACP ist ebenfalls korrekt. :)
Allerdings kann die neue (alte) "Alle Foren" Einstellung jetzt erstmal nur via phpMyAdmin definiert werden, indem das Feld link_forum mit einer 0 gefüllt wird. Was nötig ist um diese Einstellung auch im ACP vornehmen zu können, werde ich in den nächsten Tagen noch Posten (im Moment fehlt mir für diese Änderung die Zeit). :P
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon AmigaLink » 3. Apr 2007 20:34

Ging schneller als Gedacht. :)
Hier sind die nötigen Anpassungen um über den ACP wieder "Alle Foren" wählen zu können (das Snippet aus Beitrag #1 muss bereits installiert sein):
Code: Alles auswählen
#
#-----[ OPEN ]----------------------------------------------------------------
#

admin/admin_autolinks.php

#
#-----[ FIND ]----------------------------------------------------------------
#

   $forums = ( isset($HTTP_POST_VARS['link_forum']) ) ? $HTTP_POST_VARS['link_forum'] : '';

#
#-----[ AFTER, ADD ]----------------------------------------------------------
#

   $forums = ( isset($HTTP_POST_VARS['all_forums']) ) ? '0' : $forums;

#
#-----[ FIND ]----------------------------------------------------------------
#

   if( $link_id_edit )
   {
      $forums_array = explode(" ", $autolink_rows[$link_edit_id[1]-1]['link_forum']);

#
#-----[ AFTER, ADD ]----------------------------------------------------------
#

      $all_forums = ( $autolink_rows[$link_edit_id[1]-1]['link_forum'] == '0' ) ? TRUE : FALSE;

#
#-----[ FIND ]----------------------------------------------------------------
#

         "COUNTER" => $autolink_rows[$link_edit_id[1]-1]['link_counter'],

#
#-----[ AFTER, ADD ]----------------------------------------------------------
#

         "ALL_FORUMS" => ( $all_forums ) ? ' checked="checked"' : '',

#
#-----[ FIND ]----------------------------------------------------------------
#

      "L_YES" => $lang['Yes'],

#
#-----[ AFTER, ADD ]----------------------------------------------------------
#

      "L_ALL_FORUMS" => $lang['Select_all_forums'],

#
#-----[ OPEN ]----------------------------------------------------------------
#

templates/subSilver/admin/autolinks_body.tpl

#
#-----[ FIND ]----------------------------------------------------------------
#

      <td class="row2"><select multiple="multiple" size="8" name="link_forum[]">{S_FORUM_LIST}</select></td>

#
#-----[ REPLACE WITH ]--------------------------------------------------------
#

      <td class="row2"><select multiple="multiple" size="8" name="link_forum[]">{S_FORUM_LIST}</select>&nbsp;&nbsp;&nbsp;<input type="checkbox" name="all_forums" value="1"{ALL_FORUMS} />&nbsp;{L_ALL_FORUMS}&nbsp;</td>

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------------
#
# EoM
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW


Zurück zu phpBB2 Snippets



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste

cron