• 08
  • czerwca

Z pewnego źródła otrzymałem do napisania zadanie, stronicowania - musiałem wykorzystać możliwość obiektowości oraz oprzeć ten skrypt o system szablonów SMARTY. Niestety pisanie od podstaw tego stronicowania było czaschłonne i nie specjalnie szybkie. W internecie poszukałem klasę, która nazywa się smarty.paginate.class.php i jest pluginem do systemu szablonów.  Sprawa okazuje się być prosta. :) Ściągamy naszą klasę z tej strony, dodatkowo aby umożliwić użytkownikowi przepisywanie za pomocą modRewrite możemy sobie ściągnąć TO i mamy to czego potrzebujemy. Jak wygląda kod?


<?php
session_start(); //start sesji wymagany jest do zapamiętania ostaniej odwiedzonej strony
    require('Smarty.class.php'); // include SMARTY
    require('SmartyPaginate.class.php'); // Klasa paginacji

    $smarty =& new Smarty; // Wiadomo :) 

    SmartyPaginate::connect(); // inicjacja paginacji

    SmartyPaginate::setLimit(25); // Proste ustawienie Limitu wyświetlanych rekordów na jednej stronie 

    $smarty->assign('results', get_db_results()); // dołączenie wyników z bazy danych do szablony smarty - jest to return funkcji get_db_results() 

    SmartyPaginate::assign($smarty);

    $smarty->display('index.tpl'); // wyświetlenie wyników

    function get_db_results() {

        $link = mysql_connect("host", "user", "password", "database");
        displaySmartyPagination::mysqlConnection();
                //podmieniamy tylko dane do mysql
    		$_query = sprintf("SELECT SQL_CALC_FOUND_ROWS * FROM `tabela` LIMIT %d,%d",
    		SmartyPaginate::getCurrentIndex(), SmartyPaginate::getLimit());
    		$_result = mysql_query($_query);

    		while ($_row = mysql_fetch_array($_result, MYSQL_ASSOC)) {

      			$_data[] = $_row;

    		}

    		$_query = “SELECT FOUND_ROWS() as total”;
    		$_result = mysql_query($_query);
   		 	$_row = mysql_fetch_array($_result, MYSQL_ASSOC);

    		SmartyPaginate::setTotal($_row['total']);

			displaySmartyPagination::countAllRecords();

    		mysql_free_result($_result);
    		mysql_close($link);

    		return $_data; // zwrócenie wyniku :)
    }
?>
    index.tpl
    ---------

    {* Wyświetli nagłówki i aktualnie wyświetlaną stronę *}
    Items {$paginate.first}-{$paginate.last} out of {$paginate.total} displayed.

    {* wyniki z bazy danych *}
    {section name=res loop=$results}
        {$results[res]}
    {/section}

    {* Nawigacja *}
    {paginate_prev} {paginate_middle} {paginate_next}

    OUTPUT
    ——

    Items 1-25 out of 100 displayed.

    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

    prev [1-25][26-50][51-75][76-100] next

W razie problemów chętnie pomogę przy koniguracji skryptu.

Mam nadzieję jednak, że do czegoś się przydał, często na różnego rodzaju zaliczeniach pojawia się problem paginacji, dlatego też smarty.pagination.class.php powstało po to aby ułatwić użytkownikom możliwość dzielenia na części newsów, galerii, czy dowolnych wyników z bazy danych.

  • 29
  • kwietnia

Przy instalacji Gentoo Minimal’a GRUB postanowił spłatać mi figla, z tego względu, że była to instalka testowa chciałem to usunąć, jak się okazało stare

fixbmr

z XP zdało się na nic :)

ms-sys

pod linux’em także. Zirytowany szukałem dalej, nie mogąc dotrzeć do żadnego źródła przez 1,5h postanowiłem postawić Vistę od nowa, jednak zaświtało mi aby włożyć płytkę Visty z odpaleniem przywracania systemu. Otóż to :) strzał okazał sie być trafnym - narzędzie, które automatycznie miało przywrócić MBR nie dawało rady z GRUB’em i tym sposobem trafiłem do konsoli. Nie wiedziałem jak to ugryźć więc pewnie i ty masz problem będąc na mojej stronie :) poniżej zamieszczam rozwiązanie będące cytatem strony Microsoft :)

Aby uruchomić narzędzie Bootrec.exe, uruchom środowisko Windows RE. W tym celu wykonaj następujące kroki:

1.
Umieść dysk instalacyjny systemu Windows Vista w stacji dysków, a następnie uruchom komputer.
2.
Po wyświetleniu monitu naciśnij dowolny klawisz.
3.
Wybierz język, czas, walutę, klawiaturę lub metodę wprowadzania, a następnie kliknij przycisk Dalej.
4.
Kliknij opcję Napraw komputer.
5.
Kliknij nazwę systemu operacyjnego, który chcesz naprawić, a następnie kliknij przycisk Dalej.
6.
W oknie dialogowym Opcje odzyskiwania systemu kliknij polecenie Wiersz polecenia.
7.
Wpisz Bootrec.exe, a następnie naciśnij klawisz ENTER.

Opcje narzędzia Bootrec.exe

Poniżej opisano opcje udostępniane przez narzędzie Bootrec.exe. Należy wybrać tę, która jest odpowiednia do danej sytuacji.

Uwaga: Jeśli odbudowanie magazynu BCD nie rozwiąże problemu z uruchamianiem, można wyeksportować i usunąć magazyn BCD, a następnie użyć tej opcji ponownie. Ta procedura gwarantuje pełną odbudowę magazynu BCD. W celu jej wykonania wpisz następujące polecenia w wierszu polecenia środowiska Windows RE:

bcdedit /export C:\BCD_Backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec /RebuildBcd

/FixMbr

Użycie opcji /FixMbr powoduje zapisanie głównego rekordu rozruchowego zgodnego z systemem Windows Vista na partycji systemowej, natomiast nie powoduje zastąpienia istniejącej tabeli partycji. Opcji tej należy użyć, gdy konieczne jest rozwiązanie problemów z uszkodzonym głównym rekordem rozruchowym lub usunięcie z tego rekordu niestandardowego kodu.

/FixBoot

Użycie opcji /FixBoot powoduje zapisanie nowego sektora rozruchowego na partycji systemowej za pomocą sektora rozruchowego zgodnego z systemem Windows Vista. Z opcji tej należy skorzystać, jeśli jest spełniony jeden z następujących warunków:

Sektor rozruchowy został zastąpiony niestandardowym sektorem rozruchowym systemu Windows Vista.
Sektor rozruchowy jest uszkodzony.
Po zainstalowaniu systemu operacyjnego Windows Vista zainstalowano wcześniejszą wersję systemu Windows. W tym scenariuszu komputer uruchamia się za pomocą programu Windows NT Loader (NTLDR), a nie za pomocą menedżera rozruchu systemu Windows (Bootmgr.exe).

/ScanOs

Użycie opcji /ScanOs powoduje skanowanie wszystkich dysków w celu znalezienia instalacji zgodnych z systemem Windows Vista. Użycie tej opcji powoduje także wyświetlenie wpisów nieznajdujących się aktualnie w magazynie BCD. Z opcji tej należy korzystać, gdy istnieją instalacje systemu Windows Vista, które nie są wymienione w menu menedżera rozruchu.

/RebuildBcd

Użycie opcji /RebuildBcd powoduje skanowanie wszystkich dysków w celu znalezienia instalacji zgodnych z systemem Windows Vista. Użycie tej opcji umożliwia także wybranie instalacji, które mają być dodane do magazynu BCD. Z opcji tej należy korzystać, gdy konieczne jest pełne odbudowanie magazynu BCD.

  • 27
  • kwietnia

Pewnego dnia w laboratorium PMB w składzie Ja i Szef zrobiliśmy eksperyment, aby uruchomić zasilacz, który poda prąd naszej nagrywarce :) (zabrakło miejsca w złączach zasilacza, który był wmontowany fabrycznie do komputera). Pytacie jak to zrobić? Foto zamieszczam poniżej :) - czyli wszystko jasne i oczywiste - :) Aha no i radziłbym uważać z tym prądem :)

Podane piny należy spiąć jakimś zagiętym spinaczem, oczywiście najpierw spinamy a później doprowadzamy prąd :)

  • 27
  • kwietnia

Już nie wytrzymuję jak co chwilę pisze ktoś do mnie jak sprawdzić jaką użytkownik ma przeglądarkę, aktualną ścieżkę do pliku itp. Nie wiem czy ludzie nie potrafią szukać w google czy intuicja im na to nie pozwala, dlatego podam wam linki do stron, które pomogą w sprawdzeniu przeglądarki, sprawdzeniu co jaki czas odwiedzają nas roboty wyszukiwarek internetowych, adresy ip, dane serwera itp.

Szukając czegoś co jest mi potrzebne, a czego nie wiem na sam początek zaglądam tutaj.
Jeśli chodzi o PHP to tutaj.

Na ten przykład na tej stronie znajdują się wszystkie zmienne predefiniowane i jeśli ktoś ma problem z angielskim to jego problem :P

Jak wykryć SPIDER’a wyszukiwarki?

<?php
if(preg_match(‘/(googlebot|lycos|ask jeeves|whatuseekslurp@inktomi|ia_archiver)/i’, $_SERVER['HTTP_USER_AGENT'], $tablica)){
   echo ‘Robocik ‘.$tablica[1];
}else{
   echo ‘Brak robotów’;
}
?>

Metoda bardzo prosta i nieskomplikowana…. Wrzuciłem to ponieważ o to mnie dręczą młodzi userzy forum.idg.pl :)
Całą resztę zmiennych odnajdziecie w linku, który znajduje się na początku post’u - tam wszystko jest pieknie opisane - wystarczy tylko troszkę znac angielski i do przodu. Powodzenia!

  • 27
  • kwietnia

Projektując panel administracyjny dla jednego z serwisów internetowych postanowiłem napisać administrację opartą o gotowy framework - prosty w użyciu.
W poszukiwaniu natknąłem się przez zupełny przypadek na ExtJS. Biblioteka jak się okazało posiada nawet swoją grafikę :) (co wg. mnie jest przesadą). Ale zacząłem drążyć temat dalej.

Na stronie http://www.extjs.com/ znalazłem masę demo’sów i tutoriali, dlatego teraz nie będę opisywał co i jak zrobić a skupię się jedynie na funkcjonalności.

Jak sie okazuje autorzy skryptu udostępniają nawet WebDesktop gotowy :) (coś a’la EyeOS) . Biblioteka umozliwia dynamiczne tworzenie formularzy z poziomu JavaScript, tworzenie okien dialogowych, tworzenie rozbudowanych portali. (Przykłady możemy zobaczyć tutaj).

Zabrałem się za formularz logowania, obsługę błędów, no i szło pięknie do czasu kiedy próbowałem uwierzytelnić sesję :) jak się okazuje po przejściu walidacji i przekierowaniu do podstrony, w której znajduje się panel administracyjny i wypisaniu zmiennych poprzez:

 <?php
     echo "<pre>";
     print_r($_REQUEST); \\ :) :)
    echo "</pre>";
?>

Jak się okazuje 0 przekazanych zmiennych… ani $_SESSION ani $_POST. Jak szybko się ucieszyłem tak szybko biblioteka poszła na bok i wziąłem starego dobrego advAjax :)

Jeśli masz rozwiązanie powyższego problemu skontaktuj się ze mną… :)