Archiwa kategorii: Modyfikacje

WP e-Commerce – Spolszczenie, Polski plik językowy (Polish lang)

Zaraz po pobraniu najnowszej wersji sklepu WP e-Commerce przyszło mi się zderzyć z okrutną prawdą – Nie posiada on polskiego pliku językowego, a brat Google nic też o takim nie wie…
Zmuszony zaistniałą sytuacją przeszedłem do tłumaczenia ponad 1200 linii tego pliku…

pl_PL.php polish lang language file translation
spolszczenie polski plik językowy tłumaczenie

Plik językowy został przetłumaczony w ok 90%.
Nie twierdzę że jest bezbłędny i nie wymaga poprawek, wszelkie źle użyte formy/konstrukcje zdań wyjdą dopiero w praniu przy codziennej obsłudze sklepu dla którego był tworzony.

Ścienne Zegary

Poniżej wstawiam wycinek pliku do oceny:

define('TXT_WPSC_YOU_JUST_ADDED', 'Dodałeś "[product_name]" do koszyka.');
define('TXT_WPSC_SORRY_NONE_LEFT', 'Sorry, ale przedmiot "[product_name]" jest wyprzedany.');
 
define('TXT_WPSC_CONTINUE_SHOPPING', 'Kontynuuj Zakupy');
define('TXT_WPSC_ITEM_GONE_OUT_OF_STOCK', 'Wygląda na to że produkt został wyprzedany, proszę wrócić i zmienić swoje zamówienie.');
define('TXT_WPSC_DISPLAY_FANCY_NOTIFICATIONS', 'Wyświetl ozdobne powiadomienia zakupu');
define('TXT_WPSC_IF_USER_CHECKOUT', 'Jeśli masz już konto, Proszę ');
define('TXT_WPSC_LOG_IN', 'zaloguj się.');
define('TXT_WPSC_IS_DONATION', 'To jest dotacja, zaznaczenie tego pola wypełnia widget dotacja.');
define('TXT_WPSC_DONATION', 'Dotacja');
define('TXT_WPSC_DONATION_LC', 'dotacja');
define('TXT_WPSC_DONATION_SHIPPING', 'Brak wysyłki dla dotacji');
define('TXT_WPSC_DOWNLOADABLEPRODUCT_URL', 'Nazwa pliku Produktu');
define('TXT_WPSC_FILETOBEPRODUCTURL', 'Uwaga: Prześlij swój plik do katalogu plików e-commerce i wpisz jego nazwę tutaj.');
define('TXT_WPSC_DONATIONS', 'Produkt Dotacje');
define('TXT_WPSC_WRONG_FILE_PERMS', 'Następujące katalogi nie są zapisywalne: :directory: Nie można wysyłać tutaj żadnych zdjęć lub plików. Musisz zmienić uprawnienia do tych katalogów, aby móc zapisywać.');
define('TXT_WPSC_RESET_API', 'Resetuj Klucz API');
define('TXT_WPSC_PRODUCTS_PER_PAGE', 'Produktów na Strone');
define('TXT_WPSC_OPTION_PRODUCTS_PER_PAGE', 'ilość produktów do pokazania na stronę');
define('TXT_WPSC_PAGE_NUMBER_POSITION', 'Pozycja numeru strony');

A teraz krótka instrukcja co zrobić aby nasz lang był widziany w systemie WP e-Commerce…
Otwórz plik

/wp-content/plugins/wp-e-commerce/wpsc-admin/includes/settings-pages/general.php

Przejdź do linii 186 i wstaw info o polskiej wersji

					case "pl_PL.php";
					$language = "Polish";
					break;

I to już koniec modyfikacji naszego WP e-Commerce aby rozmawiał z klientami po polsku 😉

Tłumaczenie zgodne z wersją 3.7.5.3

Tłumaczenie WP e-Commerce 3.8 dostępne tutaj.

Bramka płatności DotPay do WP e-Commerce tutaj.

Zlecenie:
Jeśli chciałbyś zakupić polski plik językowy, pisz na maila,
lub zamów w sklepie: WP e-Commerce – Spolszczenie

Cena: 20zł netto

[hack] Plugin WP e-Commerce – Wyświetlanie ceny z VAT

Stawiając sklep na plugin’ie WP e-Commerce dla odbiorców indywidualnych przyjdzie nam się zmierzyć z małą dolegliwością tego systemu, a mianowicie wyświetlanie cen produktów bez podatku VAT…
co prawda możemy wprowadzić przy dodawaniu produktu cenę z VAT, a następnie zaznaczyć aby do tego produktu nie naliczało już podatku – niemniej jednak będzie to rozwiązanie nie estetyczne i może wprowadzić klienta w błąd gdy przy zamawianiu zobaczy informację „Podatek: 0 PLN”

Jak wykonać taką modyfikację?
Jak zamienić cenę netto z brutto?
Jak wyświetlać ceny z VAT?

Aby tego dokonać potrzebujemy wyedytować 3 następujące pliki w których przemnożymy ceny o nasze kochane 22%
(edytowane tutaj na szablonie iStore).

/wp-content/plugins/wp-e-commerce/widgets/specials_widget.php
/wp-content/uploads/wpsc/themes/iShop/single_product.php
/wp-content/uploads/wpsc/themes/iShop/products_page.php

Update 07/04/2010
W związku z ostatnią potrzebą ustawiania różnych stawek vat na produkty cały ten hack został przepisany od nowa z uwzględnieniem cen brutto w koszyku, mailu i cechach produktu których w tym brakuje – koniec mnożenia ceny na sztywno przez 1.22 ;P… wkrótce będzie dostępny w pakiecie polskiej wersji wtyczki WP e-Commerce;)

Update 15/12/2009
W praktyce wyszło ,ze nie wszystkie ceny fajnie się mnożą i trzeba było jeszcze opakować naszą cenę w funkcję „round()” aby zaokrąglić ceny do 2 miejsc po przecinku;)

Plik specials_widget.php
Przechodzimy do linii 54 i 58 gdzie dodajemy tylko „*1.22” i opakowujemy w „round()” jak na listingu poniżej… i widget z promocjami już śmiga z VATowskimi cenami;)

					$output .= "<span class='oldprice'>".nzshpcrt_currency_display(round($special['price']*1.22, 2), $special['notax'],false)."</span><br />";
				}
 
				$output .= "<span id='special_product_price_".$special['id']."'><span class='pricedisplay'>";       
				$output .= nzshpcrt_currency_display(round(($special['price'] - $special['special_price'])*1.22, 2), $special['notax'],false,$product['id']);

Plik single_product.php
Przechodzimy do linii 144, odnajdujemy poniższy kawałek kodu…

<?php echo wpsc_product_normal_price(); ?></span>

…i zamieniamy z następującym…

<?php echo round($wpsc_query->product['price']*1.22, 2); ?> PLN</span>

Przechodzimy do linii 146, odnajdujemy poniższy kawałek kodu…

<?php echo wpsc_the_product_price(); ?></span>

…i zamieniamy z następującym…

<?php echo round(($wpsc_query->product['price'] - $wpsc_query->product['special_price'])*1.22, 2); ?> PLN</span>

Plik products_page.php
Przechodzimy do linii 205, odnajdujemy poniższy kawałek kodu…

<?php echo wpsc_product_normal_price(); ?></span>

…i zamieniamy z następującym…

<?php echo round($wpsc_query->product['price']*1.22, 2); ?> PLN</span>

Przechodzimy do linii 207, odnajdujemy poniższy kawałek kodu…

<?php echo wpsc_the_product_price(); ?></span>

…i zamieniamy z następującym…

<?php echo round(($wpsc_query->product['price'] - $wpsc_query->product['special_price'])*1.22, 2); ?> PLN</span>

To by było na tyle modyfikacji naszego ukochanego sklepu na silniczku WP e-Commerce aby wyświetlał klientom ceny z VAT 😉

Bramka płatności DotPay do WP e-Commerce dostępna tutaj.

Zlecenie:
Jeśli chciałbyś abym wykonał tą modyfikację za Ciebie, pisz na maila.

Cena: od 20zł netto
Wymagania: dostęp do FTP

Integracja systemu AtomSMS z phpBB by Przemo

Prowadzisz forum na silniku phpBB?
Twoi użytkownicy zamieszczają zdjęcia?
Twoi użytkownicy posiadają galerie?

Jeśli odpowiedź na powyższe pytania brzmi TAK, to możesz zaoferować im dodatkową funkcjonalność – dopasowane tematycznie tapety na telefon komórkowy, które jak się okazuje chętniej pobierają niż te oferowane przez serwisy typu „wapacz.pl” i „wapster.pl”, a wraz z większą popularnością, większe Twoje dochody;)

Jak się prezentuje ta modyfikacja w realu można zobaczyć na stronie:

Demo: www.himfans.com/forum/
HIMfans-MojaTapeta

1. Cały proces dla jasności zaczniemy od rejestracji konta w systemie AtomSMS tutaj (jeśli go nie posiadasz), w formularzu konieczne będzie zaznaczenie chęci korzystania z „wariantu nr 3” (3. Odnośnik z parametrem wskazującym na obrazek w Twoim serwisie) i dodanie domeny/domen serwisów w polu poniżej. Po pomyślnej rejestracji i akceptacji przez administratora do każdego z serwisów otrzymamy unikalny identyfikator, który będzie niezbędny przy instalacji modyfikacji forum. Teraz możemy już zacząć właściwą część tutorialu.

2. Otwieramy plik album_cat.php
# Po:

$template->assign_block_vars('picrow.piccol', array(
				'U_PIC' => $u_pic,
				'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']),
				'DESC' => $picrow[$j]['pic_desc'],
				'APPROVAL' => $approval_link,

# Dodajemy:

				'PICMT' => ALBUM_UPLOAD_PATH . $picrow[$j]['pic_filename'],

3. Otwieramy plik templates/subSilver/overall_header.tpl
# Po:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
<head>

# Dodajemy:

<script type='text/javascript'>
function MojaTapeta(s,l) {
	w=window.open('http://www.mojatapeta.com/'+s+'/'+escape(l),
		'MT','width=500,height=500,scrollbars=yes');
	return false;
}
</script>

4. Otwieramy plik templates/subSilver/album_cat_body.tpl
# Po:

<!-- END no_pics -->
  <!-- BEGIN picrow -->
  <tr>
  <!-- BEGIN piccol -->
	<td align="center" width="{S_COL_WIDTH}" class="row1"><span class="genmed"><a href="{picrow.piccol.U_PIC}" {TARGET_BLANK}><img src="{picrow.piccol.THUMBNAIL}" border="0" alt="{picrow.piccol.DESC}" title="{picrow.piccol.DESC}" vspace="10" /></a><br />

# Dodajemy:

<a href="http://www.mojatapeta.com/" title="wyślij na telefon" onclick="return MojaTapeta('555555','forum/{picrow.piccol.PICMT}')">+ wyślij na telefon +</a><br />

WAŻNE:

* zmienić w
onclick=”return MojaTapeta(‚555555′,'{picrow.piccol.PICMT}’)”
numer serwisu w mojatapeta.com na swój
* oraz jeśli adres naszego forum wygląda np. tak http://www.jakasdomena.pl/forum/
przed {picrow.piccol.PICMT} wstawić forum/
np. onclick=”return MojaTapeta(‚555555′,’forum/{picrow.piccol.PICMT}’)”

5. Otwieramy plik templates/subSilver/viewtopic_attach_body.tpl
# Po:

	<!-- BEGIN cat_images -->
	<table width="95%" border="0" cellpadding="2" cellspacing="0">
	<tr>
		<td align="left"><span class="gensmall">{postrow.attach.cat_images.DOWNLOAD_NAME}{postrow.attach.cat_images.COMMENT}</span></td>
	</tr>
	<tr>
		<td align="left"><img src="{postrow.attach.cat_images.IMG_SRC}" alt="" border="0" />

# Dodajemy:

                <br /><a href="http://www.mojatapeta.com/" title="wyślij na telefon" onclick="return MojaTapeta('555555','{postrow.attach.cat_images.IMG_SRC}')"><span class="gensmall">+ wyślij na telefon +</span></a>

# Po:

	<!-- BEGIN cat_thumb_images -->
	<table width="95%" border="0" cellpadding="2" cellspacing="0">
	<tr>
		<td align="left"><span class="gensmall">{postrow.attach.cat_thumb_images.DOWNLOAD_NAME}{postrow.attach.cat_thumb_images.COMMENT}</span></td>
	</tr>
	<tr>
		<td align="left"><a href="{postrow.attach.cat_thumb_images.IMG_SRC}" target="_blank"><img src="{postrow.attach.cat_thumb_images.IMG_THUMB_SRC}" alt="" border="0" /></a>

# Dodajemy:

                <br /><a href="http://www.mojatapeta.com/" title="wyślij na telefon" onclick="return MojaTapeta('555555','{postrow.attach.cat_thumb_images.IMG_THUMB_SRC}')"><span class="gensmall">+ wyślij na telefon +</span></a>

WAŻNE:

* zmienić w
onclick=”return MojaTapeta(‚555555’,'{postrow.attach.
numer serwisu w mojatapeta.com na swój
* oraz jeśli adres naszego forum wygląda np. tak http://www.jakasdomena.pl/forum/
przed „{postrow.attach.” wstawić forum/
np. onclick=”return MojaTapeta(‚555555’,’forum/{postrow.attach.

6. Otwieramy plik album.php
# Po:

				$template->assign_block_vars('recent_pics.recent_col', array(
					'U_PIC' => $u_pic,
					'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $recentrow[$j]['pic_id']),

# Dodajemy:

					'PICMT' => ALBUM_UPLOAD_PATH . $recentrow[$j]['pic_filename'],

7. Otwieramy plik templates/subSilver/album_index_body.tpl
# Po:

  <!-- BEGIN recent_col -->
	<td class="row1" width="{S_COL_WIDTH}" align="center"><a href="{recent_pics.recent_col.U_PIC}" {TARGET_BLANK}><img src="{recent_pics.recent_col.THUMBNAIL}" border="0" alt="{recent_pics.recent_col.DESC}" title="{recent_pics.recent_col.DESC}" vspace="10" /></a>

# Dodajemy:

 <br /><a href="http://www.mojatapeta.com/" title="wyślij na telefon" onclick="return MojaTapeta('555555','forum/{recent_pics.recent_col.PICMT}')">+ wyślij na telefon +</a><br />

WAŻNE:

* zmienić w
onclick=”return MojaTapeta(‚555555’,'{recent_pics.recent_col.
numer serwisu w mojatapeta.com na swój
* oraz jeśli adres naszego forum wygląda np. tak http://www.jakasdomena.pl/forum/
przed „{recent_pics.recent_col.” wstawić forum/
np. onclick=”return MojaTapeta(‚555555’,’forum/{recent_pics.recent_col.

8. Otwieramy plik album_portal.php
# Po:

 
				$template->assign_block_vars('album_pics', array(
					'PIC_TITLE' => $recentrow[$j]['pic_title'],
					'PIC_SRC' => $u_pic,
					'TARGET_B' => $target_blank,
					'PIC_DESC' => $recentrow[$j]['pic_desc'],
					'PIC_THUMB' => append_sid("album_thumbnail.$phpEx?pic_id=" . $recentrow[$j]['pic_id']),
					'RECENT_POSTER' => $recent_poster,
					'PIC_DATE' => create_date($board_config['default_dateformat'], $recentrow[$j]['pic_time'], $board_config['board_timezone']),
					'RATE_URL' => append_sid("album_rate.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
					'RATING' => $recentrow[$j]['rating'],
					'COMMENT_URL' => append_sid("album_comment.$phpEx?pic_id=". $recentrow[$j]['pic_id']),

# Dodajemy:

					'PICMT' => ALBUM_UPLOAD_PATH . $recentrow[$j]['pic_filename'],

9. Otwieramy plik templates/subSilver/portal_modules/album_menu.tpl
# Po:

	<!-- BEGIN album_pics -->
	<tr>
		<td class="row1" align="{ALBUM_ALIGN}"><span class="gensmall" style="line-height: 150%">
		<object><center><b>{album_pics.PIC_TITLE}</b><br /><a href="{album_pics.PIC_SRC}"{album_pics.TARGET_B} title="{album_pics.PIC_DESC}">
		<img src="{album_pics.PIC_THUMB}" border="0" alt="" /></a>

# Dodajemy:

 <br /><a href="http://www.mojatapeta.com/" title="wyślij na telefon" onclick="return MojaTapeta('555555','forum/{album_pics.PICMT}')">+ wyślij na telefon +</a><br />

WAŻNE:

* zmienić w
onclick=”return MojaTapeta(‚555555’,'{album_pics.
numer serwisu w mojatapeta.com na swój
* oraz jeśli adres naszego forum wygląda np. tak http://www.jakasdomena.pl/forum/
przed „{album_pics.” wstawić forum/
np. onclick=”return MojaTapeta(‚555555’,’forum/{album_pics.

10. Spoglądamy na zadowolonych użytkowników;)

Zlecenie:
Jeśli chciałbyś abym wykonał tą modyfikację za Ciebie, pisz na maila.

Cena: od 30zł netto
Wymagania: dostęp do FTP

Własne tłumaczone menu w Coppermine Photo Gallery

Własne tłumaczone dodatkowe menu w Coppermine Photo Gallery 1.4.25 i 1.4.24 jak na screenshot’cie z galerii Castle Party (na pasku z button’em „słuchaj”). Wybór języka w tym tutorialu odbywa się poprzez dodanie do pliku .php końcówki ?lang=pl i ?lang=polish.

Dodatkowe menu w CPG

Dodatkowe menu w CPG

Jest to bardzo przydatna funkcja gdy galeria jest uzupełnieniem posiadanej już przez nas wielojęzycznej strony… a więc zaczynamy…

1. W pliku template.html w miejscu gdzie chcemy wstawić menu dodajemy poniższy kod

{MELONIQ_NET_MENU}

2. Otwieramy plik include/themes.inc.php, i odnajdujemy poniższy kod (ok. wiersza 1250)

 '{CUSTOM_HEADER}' => $custom_header,

Pod nim dodajemy nowy kod

'{MELONIQ_NET_MENU}' => theme_meloniq_net_menu(),

Aby to wyglądało w ten sposób

 $template_vars = array('{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => $CONFIG['gallery_name'] . ' - ' . strip_tags(bb_decode($section)),
'{CHARSET}' => $charset,
'{META}' => $meta,
'{GAL_NAME}' =>; $CONFIG['gallery_name'],
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
'{SYS_MENU}' => theme_main_menu('sys_menu'),
'{SUB_MENU}' => theme_main_menu('sub_menu'),
'{ADMIN_MENU}' => theme_admin_mode_menu(),
'{CUSTOM_HEADER}' => $custom_header,
'{MELONIQ_NET_MENU}' => theme_meloniq_net_menu(),
);

3. Otwieramy plik themes/nasz_styl/theme.php i przed końcem dokumentu ( ?> ) wstawiamy własną funkcję

function theme_meloniq_net_menu()
{
 
global $lang_meloniq_net_menu, $template_meloniq_net_menu;
 
static $meloniq_net_menu = '';
 
if ($meloniq_net_menu != '') return $meloniq_net_menu;
 
$param = array(
'{MELONIQ_NET_LINK1}' => $lang_meloniq_net_menu['meloniq_net_link1'],
'{MELONIQ_NET_LINK2}' => $lang_meloniq_net_menu['meloniq_net_link2'],
'{MELONIQ_NET_LINK3}' => $lang_meloniq_net_menu['meloniq_net_link3'],
'{MELONIQ_NET_LANG}' => $lang_meloniq_net_menu['meloniq_net_lang'],
'{MELONIQ_NET_LANGFG}' => $lang_meloniq_net_menu['meloniq_net_langfg'],
);
 
$meloniq_net_menu = template_eval($template_meloniq_net_menu, $param);
return $meloniq_net_menu;
}

Należy wyedytować i wstawić tyle odnośników ile jest nam potrzebne.

4. W pliku themes/nasz_styl/theme.php tworzymy teraz menu

// HTML template for meloniq.net menu
$template_meloniq_net_menu = <<<EOT
:: <a class="menu_linki" href="http://www.twoja-domena.pl/link1.php{MELONIQ_NET_LANG}">{MELONIQ_NET_LINK1}</a>
:: <a class="menu_linki" href="http://www.twoja-domena.pl/link2.php{MELONIQ_NET_LANG}">{MELONIQ_NET_LINK2}</a>
:: <a class="menu_linki" href="http://www.twoja-domena.pl/link3.php{MELONIQ_NET_LANG}">{MELONIQ_NET_LINK3}</a>
::
EOT;

Należy wyedytować i wstawić tyle odnośników ile jest nam potrzebne. Zapisujemy i zamykamy.

5. Otwieramy pliki językowe (np. lang/english.php, lang/polish.php) i dodajemy tłumaczenie.
lang/english.php

$lang_meloniq_net_menu = array(
'meloniq_net_link1' => 'Contact',
'meloniq_net_link2' => 'Domains',
'meloniq_net_link3' => 'Software',
'meloniq_net_lang' => '?lang=en',
'meloniq_net_langfg' => '?lang=english',
);

lang/polish.php

$lang_meloniq_net_menu = array(
'meloniq_net_link1' => 'Kontakt',
'meloniq_net_link2' => 'Domeny',
'meloniq_net_link3' => 'Oprogramowanie',
'meloniq_net_lang' => '?lang=pl',
'meloniq_net_langfg' => '?lang=polish',
);

To już wszystko;)

Zlecenie:
Jeśli chciałbyś abym wykonał tą modyfikację za Ciebie, pisz na maila.

Cena: od 30zł netto
Wymagania: dostęp do FTP