Ajax dla początkujących - łatwy ajax, łatwa asynchornizacja.

Posted by camillo | Inne, Internet, WebDesign, ajax | czwartek 24 lipiec 2008 13:27

Wielu początkujących webmasterów staje czasami przed różnymi problemami z dziedziny: jak zrobić coś żeby moja strona zaczęła być zauważalna. Dzisiaj postaram się wam przedstawić kilka framework’ów, które ułatwiają pracę z technologią ajax, a wręcz wykonują wszystko za nas, dlatego przy tworzeniu jakiejkolwiek aplikacji nie musimy posiadać znaczącej wiedzy o pisaniu skryptów w JavaScript. Wystarczą podstawy.

Poniżej podam linki do framework’ów ajax’owych, na tych stronach znajdują się obszerne dokumentacje i tutoriale dotyczące tych skryptów:

MintAjax - framework umożliwia: asynchronizację i bardzo proste do wykonania efekty graficzne m.in akordeon, drag & drop itd.

jQuery - jak wyżej rozbudowany framework i prosty do modyfikacji

xAjax - umożliwia asynchnchronizację z plikami PHP. Bardzo prosty jeśli znasz podstawy PHP, choć czasem potrafi sprawić niezły problem :)

MooTools - ładne efekty, przejścia, asynchronizacja - czyli wszystko czego nam potrzeba :)

Na stronie FreeAjaxScripts znajdziecie najlepsze galerie, playery, chat’y i inne przydatne skrypty.

Konstruktor i Destruktor __construct() & __destruct()

Posted by camillo | Bez kategorii, Internet, WebDesign, php | czwartek 24 lipiec 2008 09:58

Mój przyjaciel u.Ghost zadał mi pytanie, na które nie potrafiłem odpowiedzieć… Tyczyło się to mojego opisu w komunikatorze, który mniej więcej wyglądał następująco: “__destruct(){}” w sensie Destrukcji organizmu pod koniec dnia pracy :).
Mała zagadka dla czytelników mojego BLOG’a :) (sam jestem ciekaw jakie będą odpowiedzi) jako nagrodę sponsoruję uścisk dłoni prowadzącego blog’a pytanie brzmi następująco:

Czy przy deklaracji __construct(); powinno być słowo kluczowe public, private lub protected? :>

Znam odpowiedź ale na razie się z wami nie podzielę… :) niech to będzie mały QUIZ a Slafur niech milczy, żeby nie zepsuł całej zabawy :D

W zasadzie nastąpiło małe zamieszanko wokół tego wpisu :) ale chętnie wysłucham i przeczytam wasze odpowiedzi :)

Nikt nie udzielił odpowiedzi dlatego odpowiadam ja:
Istnieją dwie możliwości

  1. Przyjmuje public gdy nie ma zdefiniowanego singletonu.
  2. Przyjmuje protected gdy mamy zdefiniowany singleton dla danej klasy

Jeśli masz jeszcz jakąś wersje tego co napisałem wyżej to pisz - o zadane pytanie toczyło się niezłe mózgowanie :)

Pozdrawiam.

Stronicowanie SMARTY - PHP, paginacja, podział artykułów na strony

Posted by camillo | Bez kategorii, Inne, Internet, WebDesign, php | niedziela 8 czerwiec 2008 17:12

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); // ustawienie Limitu wyświetlanych rekordów na stronie

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

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.

MBR przy Windows Vista (bootrec.exe)

Posted by camillo | Inne | wtorek 29 kwiecień 2008 21:16

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.

Uruchomienie zasilacza bez komputera? Teraz to możliwe…

Posted by camillo | Bez kategorii, Inne, Sprzęt | niedziela 27 kwiecień 2008 11:29

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 :)

Następne »