Webboard

Pełna wersja: Brak ustawień pluginu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Niby zrobiłem ustawienia pluginu, ale w ACP się jakoś nie wyświetlają:

Kod PHP:
<?php
if(!defined("IN_MYBB")) die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");

function 
reminder_info() {
return array(
"name" => "Przypomnienie",
"description" => "Ten plugin przypomina uzytkownikowi o zrobieniu jakiejs czynnosci (domyslnie: przeczytanie regulaminu).",
"website" => "http://csgoforum.ct8.pl/index.php",
"author" => "CezPlayer",
"version" => "1.0",
"guid" => "",
"compatibility" => "18*"
);
function 
reminder_install() {
global 
$db//


$db -> write_query("CREATE TABLE ".TABLE_PREFIX."mojatabela (
kolumna1 int(11) NOT NULL,
kolumna2 tinyint(1) NOT NULL,
kolumna3 int(11) NOT NULL
) ENGINE=MyISAM"
);
}

function 
reminder_uninstall() {
global 
$db$mybb$reminder;
$db -> drop_table('mojatabela');
}

function 
reminder_is_installed() {
global 
$db;
return 
$db -> table_exists('mojatabela');
}
$plugins -> add_hook('global_start''reminder_write_reminder');

$plugins -> add_hook('global_start''reminder_write_reminder');

function 
reminder_write_reminder() {
global 
$db$mybb$reminder;

$reminder '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr><td class="thead">Ogłoszenie</td></tr>
<tr><td class="trow1">Drogi użytkowniku! Nie zapomnij się zapoznać z regulaminem Naszego forum!</td></tr>
</table><ol>'
;
$reminder_group = array(
'name' => 'reminder', 
'title' => 'Ustawienia przypomnienia', 
'description' => "Ustawienia dotyczące przypomnienia.", 
'disporder' => 1,
'isdefault' => 0
);

$gid $db->insert_query("settinggroups"$reminder_group);

$reminder_1 = array(
"name" => "reminder_1",
"title" => "Jest włączony?",
"description" => "Czy przypomnienie ma być pokazywane?",
"optionscode" => "yesno",
"value" => 1,
"disporder" => 1,
"gid" => $gid
);
$db->insert_query("settings"$reminder_1);


}


global 
$db$mybb$reminder;


Po co dwa razy ten sam hook?
Ustawienia dodaje sie w funckji instalacji aktywacji pluginu
Rebuild settings brak

Otwórz sobie jakis plik gotowej wtyczki i zobacz jak i co
Znowu masz to samo co we wcześniejszym wątku... Dlaczego nie pracujesz na bazie tego co dałem? Ogrom błędów tu jest, począwszy od ponownego braku klamry zamykającej funkcję *_info()...
Jaki sens bytu ma linijka 72?
Brakuje też na samym końcu ?> .
(12.08.2016, 20:44)Gamerpl napisał(a): [ -> ]Brakuje też na samym końcu ?> .
Nie praktykuje się już zamykania tagu php o ile nie musimy tego robić
Tak więc problem dotyczy tego tematu.
Znowu jakiś error na linii 53. Jestem pewien, że wszystkie klamry są (chyba, że o którejś nie wiem).

Kod:
Kod PHP:
<?php
if(!defined("IN_MYBB")) die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");


$plugins->add_hook('global_start''reminder_write_reminder');

function 
reminder_info() {
    return array(
        
"name"            => "Przypomnienie",
        
"description"    => "Ten plugin przypomina uzytkownikowi o zrobieniu jakiejs czynnosci (domyslnie: przeczytanie regulaminu).",
        
"website"        => "http://csgoforum.ct8.pl/index.php",
        
"author"        => "CezPlayer",
        
"version"        => "BETA",
        
"guid"             => "",
        
"compatibility" => "18*"
    
);
}
function 
reminder_install() {
    global 
$db;

$db -> insert_query('settinggroups', array(
        
"gid" => "NULL"
        
"name" => "Przypomnienie"
        
"title" => "Ustawienia przypomnienia"
        
"description" => "Tu możesz zmieniać ustawienia przypomnienia."
        
"disporder" => "1"
        
"isdefault" => "1"
    
)); 
    
    
$id $db -> insert_id();
    
    
$db -> insert_query('settings', array( 
        
"sid" => "NULL"
        
"name" => "reminder_przypomnienie"
        
"title" => "Pokazywać?"
        
"description" => "Czy pokazywać przypomnienie?."
        
"optionscode" => "yesno"
        
"value" => "1"
        
"disporder" => "1"
        
"gid" => $id
        
"isdefault" => "1"
    
));
 
    
rebuild_settings(); 
}


    
$db->write_query("CREATE TABLE ".TABLE_PREFIX."mojatabela (
        kolumna1 int(11) NOT NULL,
        kolumna2 tinyint(1) NOT NULL,
        kolumna3 int(11) NOT NULL
    ) ENGINE=MyISAM"
);
}

function 
reminder_uninstall() {
    global 
$db;
    
$db->drop_table('mojatabela');
}

function 
reminder_is_installed() {
    global 
$db;
    if(
$db->table_exists("mojatabela"))
    {
        return 
true;
    }
    return 
false;
}

function 
reminder_write_reminder() {
    global 
$db$reminder;


    
$reminder '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr><td class="thead">Przypomnienie</td></tr>
<tr><td class="trow1">Drogi uzytkowniku! Nie zapomnij sie zapoznac z regulaminem Naszego forum!</td></tr>
</table>'
;

Treść błędu była by mile widziana.

Klamry są, a jakże. Nawet za dużo.
function reminder_install() {
global $db;

$db -> insert_query('settinggroups', array(
"gid" => "NULL",
"name" => "Przypomnienie",
"title" => "Ustawienia przypomnienia",
"description" => "Tu możesz zmieniać ustawienia przypomnienia.",
"disporder" => "1",
"isdefault" => "1"
));

$id = $db -> insert_id();

$db -> insert_query('settings', array(
"sid" => "NULL",
"name" => "reminder_przypomnienie",
"title" => "Pokazywać?",
"description" => "Czy pokazywać przypomnienie?.",
"optionscode" => "yesno",
"value" => "1",
"disporder" => "1",
"gid" => $id,
"isdefault" => "1"
));

rebuild_settings();
}


$db->write_query("CREATE TABLE ".TABLE_PREFIX."mojatabela (
kolumna1 int(11) NOT NULL,
kolumna2 tinyint(1) NOT NULL,
kolumna3 int(11) NOT NULL
) ENGINE=MyISAM");
}

Ten fragment do jakiej funkcji się zalicza i co ta klamra zamyka? Po rebuild_settings zamknąłeś funkcję install
$db->write_query("CREATE TABLE ".TABLE_PREFIX."mojatabela (
kolumna1 int(11) NOT NULL,
kolumna2 tinyint(1) NOT NULL,
kolumna3 int(11) NOT NULL
) ENGINE=MyISAM");
}
Teraz nie ma erroru, ale ustawień wciąż brak.

Usunąłem:

Kod PHP:
$db->write_query("CREATE TABLE ".TABLE_PREFIX."mojatabela (
        kolumna1 int(11) NOT NULL,
        kolumna2 tinyint(1) NOT NULL,
        kolumna3 int(11) NOT NULL
    ) ENGINE=MyISAM"
);


EDIT: Co to robi w ustawieniach forum? https://zapodaj.net/2ff4b9d37a553.png.html
to moze pokaz jak wyglada kod po poprawkach?
Może niech zmieni IDE(np NetBeans,Notepad++), bo widać że tworzy na czymś bez IntelliSense i nie widzi własnych błędów. ;)
W ACP nic się nie rozwaliło, ale nie widzę ustawień
Kod PHP:
<?php

/**
 * MyBB 1.8
 * Copyright 2010 MyBB Group, All Rights Reserved
 *
 * Website: https://webboard.pl
 *
 * Author: CezPlayer
 * Created: 08/12/2014
 * Version: 1.0
 */

if(!defined("IN_MYBB"))
    die(
"This file cannot be accessed directly.");
    
if (!
defined("PLUGINLIBRARY"))
    
define("PLUGINLIBRARY"MYBB_ROOT."inc/plugins/pluginlibrary.php");

$plugins->add_hook('global_start''reminder'); 

function 
reminder_info() {
    return array(
        
"name"            => "Przypomnienie",
        
"description"    => "Ten plugin przypomina uzytkownikowi o zrobieniu jakiejs czynnosci.",
        
"website"        => "http://hmybboard.pl",
        
"author"        => "CezPlayer",
        
"authorsite"    => "http://forumreklamowe.ct8.pl",
        
"version"        => "1.0",
        
"compatibility" => "18*"
    
);
}

function 
reminder_activate() {
    global 
$mybb$db;
    
    if (!
file_exists(PLUGINLIBRARY)) {
    
flash_message($lang->myalerts_pluginlibrary_missing"error");
    
admin_redirect("index.php?module=config-plugins");
    }

    
$PL or require_once PLUGINLIBRARY;

    if ((int) 
$PL->version 9) {
    
flash_message('This plugin requires PluginLibrary 9 or newer''error');
    
admin_redirect('index.php?module=config-plugins');
    }

    
$stylesheet "@import url(http://fonts.googleapis.com/css?family=Ubuntu:400,700);
@import url(http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css);
    
.reminder {
  background: rgba(0,0,0,0.85);
  width: 300px;
  padding: 28px 23px 28px 23px;
  position: fixed;
  top:80%;
  right: 30px;
  font-family: 'Ubuntu', sans-serif;
  font-size: 13px;
  color: #fff;
  text-align: left;
  opacity: 0.7;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
}

.reminder i.fa.fa-close {
  height: 20px;
  width: 20px;
  position: absolute;
  top: 8px;
  right: 8px;
  text-align: center;
  line-height: 20px;
  font-size: 16px;
  cursor: pointer;
}"
;

    
$PL->stylesheet('guestwarn.css'$stylesheet);
    
    
$reminder_group = array(
        
'name' => 'Przypomnienie'
        
'title' => 'Ustawienia Przypomnienia'
        
'description' => "Tu możesz zmieniać ustawienia przypomnienia."
        
'disporder' => 1,
        
'isdefault' => 0
    
);
    
    
$gid $db->insert_query("settinggroups"$guestwarn_group);
    
    
$reminder_1 = array(
        
"name"            => "reminder_1",
        
"title"            => "Pokazywac?",
        
"description"    => "Pokazywac przypomnienie na forum?",
        
"optionscode"    => "yesno",
        
"value"            => 1,
        
"disporder"        => 1,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_1);
    
    
$reminder_2 = array(
        
"name"            => "reminder_2",
        
"title"            => "Wiadomosc",
        
"description"    => "Tutaj wpisz wiadomosc, ktora bedzie sie wyswietlala w przypomnieniu.",
        
"optionscode"    => "textarea",
        
"value"            => 'Drogi uzytkowniku! Nie zapomnij sie zapoznac z regulaminem Naszego forum!',
        
"disporder"        => 2,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_2);
    
    
$guestwarn_3 = array(
        
"name"            => "reminder_3",
        
"title"            => "Czas wyswietlania sie przypomnienia (w sekundach).",
        
"description"    => "Tutaj wpisz, jak dlugo ma sie wyswietlac przypomnienie.",
        
"optionscode"    => "text",
        
"value"            => '3600',
        
"disporder"        => 3,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_3);
    
    
$reminder_4 = array(
        
"name"            => "reminder",
        
"title"            => "Kto widzi przypomnienie?",
        
"description"    => "Ktora grupa widzi przypomnienie?.",
        
"optionscode"    => "text",
        
"value"            => '1',
        
"disporder"        => 4,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_4);
    
    
rebuild_settings();

    
$templatearray = array(
        
"tid" => "NULL",
        
"title" => 'reminder',
        
"template" => $db->escape_string('<div class="guest_warn"><i class="fa fa-close"></i>{$message}</div>

<script type="text/javascript">
$(document).ready(function() {
  $(".reminder").fadeIn("slow");
  $(".reminder i.fa.fa-close").click(function() {
    $(".reminder").fadeOut("slow");
    $.post(document.location.href, {cookie_reminder: 1});
  });
});                      
</script>'
),
        
"sid" => "-1",
    );

    
$db->insert_query("templates"$templatearray);
    
    require_once 
MYBB_ROOT.'inc/adminfunctions_templates.php';
    
    
find_replace_templatesets('headerinclude''#'.preg_quote('{$stylesheets}').'#i','{$stylesheets} {$reminder}');
}

function 
reminder_deactivate() {
    global 
$db;
    
    if (!
file_exists(PLUGINLIBRARY)) {
    
flash_message($lang->myalerts_pluginlibrary_missing"error");
    
admin_redirect("index.php?module=config-plugins");
    }

    
$PL or require_once PLUGINLIBRARY;

    
$PL->stylesheet_delete('reminder.css');
    
    
$db->delete_query("settinggroups""name = 'reminder'");

    
$db->delete_query('settings''name IN (\'reminder_1\',\'reminder_2\',\'reminder_3\',\'reminder_4\')');

    
rebuild_settings();
    
    
$db->delete_query('templates''title IN (\'reminder\') AND sid=\'-1\'');
    
    require_once 
MYBB_ROOT."inc/adminfunctions_templates.php";
    
    
find_replace_templatesets('headerinclude''#'.preg_quote('{$reminder}').'#i'''0);
}

function 
reminder() {
    
    global 
$mybb$db$lang$templates$reminder$theme;
    
    
$message $mybb->settings['reminder_2'];
    
    if (
$mybb->user['usergroup'] == $mybb->settings['reminder_4']) {
        if(
$mybb->settings['reminder_1'] == 1) {
            if(isset(
$_POST['cookie_reminder'])) {
                
setcookie("isclosed""1"time()+$mybb->settings['reminder_3']);
            }
            if(
$_COOKIE['isclosed'] != 1) {
                eval(
"\$reminder = \"".$templates->get('reminder')."\";");
            }
        }
    }
}

?>
P.S. Może Wam się zdawać, że wziąłem to z guestwarn - to prawda, ale jeszcze będę zmieniał :v
Mnie to dziwi, że nie ma ustawień, bo jak brałem z GuestWarn, to powinny być.

Zorientowałem się, że w niektórych miejscach miałem coś źle i poprawiłem to, ale i tak to się nie wyświetla się w liście ustawień.

Kod:

Kod PHP:
<?php

/**
 * MyBB 1.8
 * Copyright 2010 MyBB Group, All Rights Reserved
 *
 * Website: https://webboard.pl
 *
 * Author: CezPlayer
 * Created: 08/12/2014
 * Version: 1.0
 */

if(!defined("IN_MYBB"))
    die(
"This file cannot be accessed directly.");
    
if (!
defined("PLUGINLIBRARY"))
    
define("PLUGINLIBRARY"MYBB_ROOT."inc/plugins/pluginlibrary.php");

$plugins->add_hook('global_start''reminder'); 

function 
reminder_info() {
    return array(
        
"name"            => "Przypomnienie",
        
"description"    => "Ten plugin przypomina uzytkownikowi o zrobieniu jakiejs czynnosci.",
        
"website"        => "http://hmybboard.pl",
        
"author"        => "CezPlayer",
        
"authorsite"    => "http://forumreklamowe.ct8.pl",
        
"version"        => "1.0",
        
"compatibility" => "18*"
    
);
}

function 
reminder_activate() {
    global 
$mybb$db;
    
    if (!
file_exists(PLUGINLIBRARY)) {
    
flash_message($lang->myalerts_pluginlibrary_missing"error");
    
admin_redirect("index.php?module=config-plugins");
    }

    
$PL or require_once PLUGINLIBRARY;

    if ((int) 
$PL->version 9) {
    
flash_message('This plugin requires PluginLibrary 9 or newer''error');
    
admin_redirect('index.php?module=config-plugins');
    }

    
$stylesheet "@import url(http://fonts.googleapis.com/css?family=Ubuntu:400,700);
@import url(http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css);
    
.reminder {
  background: rgba(0,0,0,0.85);
  width: 300px;
  padding: 28px 23px 28px 23px;
  position: fixed;
  top:80%;
  right: 30px;
  font-family: 'Ubuntu', sans-serif;
  font-size: 13px;
  color: #fff;
  text-align: left;
  opacity: 0.7;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
}

.reminder i.fa.fa-close {
  height: 20px;
  width: 20px;
  position: absolute;
  top: 8px;
  right: 8px;
  text-align: center;
  line-height: 20px;
  font-size: 16px;
  cursor: pointer;
}"
;

    
$PL->stylesheet('reminder.css'$stylesheet);
    
    
$reminder_group = array(
        
'name' => 'Przypomnienie'
        
'title' => 'Ustawienia Przypomnienia'
        
'description' => "Tu możesz zmieniać ustawienia przypomnienia."
        
'disporder' => 1,
        
'isdefault' => 0
    
);
    
    
$gid $db->insert_query("settinggroups"$reminder_group);
    
    
$reminder_1 = array(
        
"name"            => "reminder_1",
        
"title"            => "Pokazywac?",
        
"description"    => "Pokazywac przypomnienie na forum?",
        
"optionscode"    => "yesno",
        
"value"            => 1,
        
"disporder"        => 1,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_1);
    
    
$reminder_2 = array(
        
"name"            => "reminder_2",
        
"title"            => "Wiadomosc",
        
"description"    => "Tutaj wpisz wiadomosc, ktora bedzie sie wyswietlala w przypomnieniu.",
        
"optionscode"    => "textarea",
        
"value"            => 'Drogi uzytkowniku! Nie zapomnij sie zapoznac z regulaminem Naszego forum!',
        
"disporder"        => 2,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_2);
    
    
$guestwarn_3 = array(
        
"name"            => "reminder_3",
        
"title"            => "Czas wyswietlania sie przypomnienia (w sekundach).",
        
"description"    => "Tutaj wpisz, jak dlugo ma sie wyswietlac przypomnienie.",
        
"optionscode"    => "text",
        
"value"            => '3600',
        
"disporder"        => 3,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_3);
    
    
$reminder_4 = array(
        
"name"            => "reminder",
        
"title"            => "Kto widzi przypomnienie?",
        
"description"    => "Ktora grupa widzi przypomnienie?.",
        
"optionscode"    => "text",
        
"value"            => '1',
        
"disporder"        => 4,
        
"gid"            => $gid
    
);
    
$db->insert_query("settings"$reminder_4);
    
    
rebuild_settings();

    
$templatearray = array(
        
"tid" => "NULL",
        
"title" => 'reminder',
        
"template" => $db->escape_string('<div class="guest_warn"><i class="fa fa-close"></i>{$message}</div>

<script type="text/javascript">
$(document).ready(function() {
  $(".reminder").fadeIn("slow");
  $(".reminder i.fa.fa-close").click(function() {
    $(".reminder").fadeOut("slow");
    $.post(document.location.href, {cookie_reminder: 1});
  });
});                      
</script>'
),
        
"sid" => "-1",
    );

    
$db->insert_query("templates"$templatearray);
    
    require_once 
MYBB_ROOT.'inc/adminfunctions_templates.php';
    
    
find_replace_templatesets('headerinclude''#'.preg_quote('{$stylesheets}').'#i','{$stylesheets} {$reminder}');
}

function 
reminder_deactivate() {
    global 
$db;
    
    if (!
file_exists(PLUGINLIBRARY)) {
    
flash_message($lang->myalerts_pluginlibrary_missing"error");
    
admin_redirect("index.php?module=config-plugins");
    }

    
$PL or require_once PLUGINLIBRARY;

    
$PL->stylesheet_delete('reminder.css');
    
    
$db->delete_query("settinggroups""name = 'reminder'");

    
$db->delete_query('settings''name IN (\'reminder_1\',\'reminder_2\',\'reminder_3\',\'reminder_4\')');

    
rebuild_settings();
    
    
$db->delete_query('templates''title IN (\'reminder\') AND sid=\'-1\'');
    
    require_once 
MYBB_ROOT."inc/adminfunctions_templates.php";
    
    
find_replace_templatesets('headerinclude''#'.preg_quote('{$reminder}').'#i'''0);
}

function 
reminder() {
    
    global 
$mybb$db$lang$templates$reminder$theme;
    
    
$message $mybb->settings['reminder_2'];
    
    if (
$mybb->user['usergroup'] == $mybb->settings['reminder_4']) {
        if(
$mybb->settings['reminder_1'] == 1) {
            if(isset(
$_POST['cookie_reminder'])) {
                
setcookie("isclosed""1"time()+$mybb->settings['reminder_3']);
            }
            if(
$_COOKIE['isclosed'] != 1) {
                eval(
"\$reminder = \"".$templates->get('reminder')."\";");
            }
        }
    }
}

?>

Nie mam forum, więc daję Wam plik w załączniku. Wiem, że nic szkodliwego w ACP nie robi, ale chcę wiedzieć ,czy ustawienia się wyświetlają.
[Obrazek: 15ed63ba82fe9b1eec3ed55f2f2877bd.png]

Spróbuj dezaktywować plugin i zobacz, czy nie masz nic odnośnie tego w tabelach *_settings oraz *_settinggroups, jeśli są jakieś szczątki po pluginie to usuń je.