Přeskupení účtů v Mozilla Thunderbird

30. Říjen 2009

Mám v Thunderbirdovi více poštovních účtů (IMAP) a kvůli změně hostingu jsem přidával nové úcty, které se mi přidali dospodu. Přijde mi, že toto byla nejvíc chybějící funkce, co mi vadila na Thunderbirdu. A přitom řešení je velmi jednoduché.

Stačí si stáhnou a nainstalovat rozšíření Folderpane Tools. Po restartu Thunderbirdu musíte znovu do Addonů (Doplňků), které najdete v Tools menu (Nástroje). U tohoto rozšíření klikněte na Options (Nastavení). Tam už jednoduše určíte, který účet má být defaultní (hlavní) a pomocí move up / move down seřadíte ostatní účty.

Zdroj: Best Add-ons for Mozilla Thunderbird

Rubriky: Ostatní | Štítky: , | Žádné komentáře

Vlastní registrace i do phpBB

19. Prosinec 2008

Pokud potřebujete převést stávající databázi uživatelů do tabulky uživatelů patřící phpBB a umožnit tak pouze jedno přihlašování pro vaše stránky i fórum, pak si přečtěte tento návod: Hromadné přidávání uživatelů ze souboru.

Aby vše proběhlo hladce, použijeme funkci add_user(), kterou používá phpBB pro registraci nových uživatelů.

Záleží na nastavení phpBB, co je vyžadováno při registraci, ale nám nyní stračí jen jméno, heslo a email. Tyto data jsou v našem příkladě uložena v proměnných. $_GET["username"], $_GET["pwd"], $_GET["email"].

Všechna data musíme samozřejmě před vložením zkontrolovat a ošetřit (není součástí tohoto článku). Myslím tím maximální délku nicku, minimální délku hesla, složitost hesla, zda je email platný a funkční atp…

Základ php souboru s registrací bude vypadat asi takto:

// phpBB inicializace
define('IN_PHPBB', true); // základní kostanta
$phpbb_root_path = "./forum/"; // cesta k fóru
$phpEx = "php"; // koncovky php souborů


include($phpbb_root_path . "common." . $phpEx);
include($phpbb_root_path . "includes/functions_user." . $phpEx);
$arrTime = getdate();
$unixTime = strtotime($arrTime["year"] . “-” . $arrTime["mon"] . “-” . $arrTime["mday"] . ” ” . $arrTime["hours"] . “:” . $arrTime["minutes"] . “:” . $arrTime["seconds"]);


$user_row = array(
'username'              => $_GET["username"],
‘user_password’         => phpbb_hash($_GET["pwd"]),
‘user_email’            => $_GET["email"],
‘group_id’              => (int) 2,
‘user_timezone’         => (float) 0,
‘user_dst’              => “0″,
‘user_lang’             => “cs”,
‘user_type’             => 0,
‘user_actkey’           => “”,
‘user_ip’               => $_SERVER["REMOTE_HOST"],
‘user_regdate’          => $unixTime,
‘user_inactive_reason’  => 0,
‘user_inactive_time’    => 0
);


$user_id = user_add($user_row);

Na konci získáváme uživatelovo id ($user_id) pro párování s tabulkami, které jsme vytvořili a používáme my.

Hlavní zdroj: Automated member registration for phpBB

Dále:

Rubriky: phpBB | Štítky: , | 1 komentář

Vlastní přihlašování a odhlašování i v phpBB

19. Prosinec 2008

Náš cíl je mít jedno uživatelské jméno a heslo pro stránky a zároveň pro phpBB. Formulář pro přihlašování bude na každé stránce webu a chceme se přihlašovat přes vlastní formulář = bez nutnosti navštívit fórum. V jiném článku se můžete dočíst o vlastní registraci i do phpBB.

Příhlášení

Pro přihlášení potřebujeme přihlašovací formulář:

<form action="./forum/ucp.php?mode=login" method="post"><div>
Uživatelské jméno: <input name="username" type="text" />
Heslo: <input name="password" type="password" />
<input name="redirect" type="hidden" value="..<?=$_SERVER['PHP_SELF']?>” >
<input name=”login” type=”submit” value=”Přihlásit” /></div>
</form>

Upravte si správně cestu k souboru ucp.php a hodnotu pole redirect abyste se po zalogování vrátili na původní stránku. (Uvidíte stránku fóra na pár vteřin, řešení viz níže)

Je návštěvník přihlášený?

První možnost:

if(isset($user->data['is_registered']) && $user->data['is_registered']){
// je přihlášený
}else{
// není přihlášený
}

Druhá možnost:

if($user->data['username'] != “Anonymous”){
// je přihlášený
}else{
// není přihlášený
}

V případě, že je uživatel přihlášen, může se nám hodit uživatelovo id pro výběr dalších informací z jiné tabulky v databázi:

$user->data['user_id'];

Případně další informace: Obsah proměnné $user->data v phpBB

Odhlášení

Pro odhlášení stačí zavolat tyto dvě funkce:

$user->session_kill();
$user->session_begin();

Vylepšení přihlašování

Nejprve je dobré vyhnout se několika vteřinám po zalogování strávených na stránce fóra. Chceme tedy abychom po vyplnění formuláře ihned byly zpět na té samé stránce.

V souboru functions.php (/forum/includes/functions.php) najděte funkci login_box() (v mé verzi to je řádek 2425) a tam najděte a vymažte nebo dejte do komentáře řádek, kde se volá funkce meta_refresh():

$redirect = meta_refresh(3, $redirect);

Na toto místo přidejte tento řádek kódu:

$redirect = redirect($redirect);

Celkově to tedy bude vypadat asi takto:

$redirect = redirect($redirect); // nove
//vymazano: $redirect = meta_refresh(3, $redirect);

V případě špatného zadání jména nebo hesla musíme vyřešit oznámení chyby. Přidáme celou větev else

if ($result['status'] == LOGIN_SUCCESS)
{
// zde jsme upravovali kód
}
else
{
$redirect = redirect($redirect.’?err=’.$result['error_msg']); // nove
}

Zde se rovnou také přesměrováváme na původní soubor současně také souboru posíláme, co se stalo za chybu a můžeme tak tedy vypsat chybovou zprávu. Například takto:

switch ($_REQUEST["err"]) {
case “LOGIN_ERROR_USERNAME”: echo “Bylo zadáno špatné uživatelské jméno!”; break;
case “LOGIN_ERROR_PASSWORD”: echo “Bylo zadáno špatné heslo!”; break;
case “NO_PASSWORD_SUPPLIED”: echo “Zadejte heslo!”; break;
}

Pokud je přihlášení neúspěšné přesměrování se v tomto příkladě provede vždy na náš přihlašovací soubor. Šlo by například do přihlašovacího formuláře přidat další skrytou hodnotu, podle které bychom poznali, že soubor ucp.php voláme my a ne phpBB. Záleží samozřejmě na konkrétní potřebě…

Další čtení:

Rubriky: phpBB | Štítky: , | Žádné komentáře

Vlastní stránka v phpBB

19. Prosinec 2008

Koukněte se na phpBB.cz: Přidaní vlastní stránky do phpBB, což je v zásadě překlad Add a New Custom Page to phpBB.

Toto je velmi čisté a zřejmě doporučované řešení. Ale má nevýhodu, že stránky jsou společně s fórem. Mají stejné rozvržení designu a pro jednu stránku musíte editovat dva soubory na dvou různých místech.

Musím upozornit, že předpokládám vývoj nějaké složitější PHP aplikace a fórum je jednou z mnoha částí a ostatní stránky budou mnohem odlišnější.

Základ je tedy, že porušíme oddělovaní obsahu stránky od designu a PHP kódu. Každá stránka musí mít na začátku definovánu konstantu IN_PHPBB.

define('IN_PHPBB', true);

Je dobré taky definovat cestu k fóru kvůli volání dalších souborů s funkcemi. Současně také existuje v phpBB proměnná pro koncovky souborů (php). Pokud chceme vědět, zda je uživatel přihlášený musíme taky naplnit pole $user. Celý začátek stránky tedy bude vypadat takto:

// phpBB inicializace
define('IN_PHPBB', true); // základní kostanta
$phpbb_root_path = "./forum/"; // cesta k fóru
$phpEx = "php"; // koncovky php souborů
include($phpbb_root_path . 'common.' . $phpEx); // základní funkce
$user->session_begin(); // naplnení $user

Možné konflikty ve zdrojovém kódu: třída $user, třída $db, funkce user_add() se připojuje k databázi, kde je phpBB uloženo, funkce, třídy, proměnné, konstanty.

Pokud budete používat ve vašem projektu dvě databáze, pak musíte u vašich SQL dotazů určit, které spojení se má použít ($db2):

$db2 = mysql_connect($db_host, $db_user, $db_pswd, true);
$z = mysql_query(”SELECT sloupec FROM tabulka”, $db2);

Pokud budete používat jednu databázi, tak můžete na to zapomenout. Připojit se můžete dvakrát.

Více se dozvíte v článcích:

Rubriky: phpBB | Štítky: , | Žádné komentáře

České phpBB

10. Prosinec 2008

Na serveru phpBB.com si stáhnete aktuální verzi phpBB 3.

Na serveru phpBB.cz si stáhnete jazykový balík pro češtinu a pro vaši verzi phpBB.

Anglickou verzi si rozbalíte na disk a nahrajete pomocí FTP na váš server. Jazykový balí si také rozbalíte a nahrajete složku cs do složky language na vašem serveru.

Po instalaci, kdy se přihlásíte do administrace najdete nastavení jazykových balíku v Systém -> Jazykové balíky. Jazykový balík musíte nainstalovat a aktivovat.

Záleží v jakém pořadí uvedené kroky provedete, jestli projdete anglickou instalací nebo českou (měla by být aktivní pokud nahrajete všechny soubory phpBB i jazykového balíku najednou).

Zkontrolujte také zda máte v Obecné -> Nastavení fóra nastavenou Češtinu jako výchozí jazyk. Zde si také můžete nastavit časové pásmo a formát data a času, já preferuji vlastní nastavení: “j. F Y, H:i” tedy například “10. prosinec 2008, 12:39″.

Po instalaci a úpravách nezapomeňte zmazat potřebné složky (Install) a změňte zpět práva souborů (CHMOD, 604/644). Instalační procedura i Administrační rozhraní by vás na to mělo upozornit.

phpBB.cz: phpBB 3.0: Instalace

Rubriky: phpBB | Štítky: , , | Žádné komentáře