DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać dzwonek?
Bez spamu

W przypadku nowoczesnego dużego projektu zwykle konieczne jest użycie cnc do stron. Ma to pozytywny wpływ na indeksowanie strony i emisję w wynikach.

CNC - adres URL zrozumiały dla osoby. Innymi słowy, jest to łacińska transliterowana część adresu URL. Przeanalizowaliśmy już transliterację alfabetu rosyjskiego na pkhp. Bitrix ma taką funkcję, jest używany na przykład, gdy tworzony jest nowy element lub sekcja infobloku, z jego nazwy generowany jest kod symboliczny tego elementu lub sekcji. Ale co, jeśli elementy zostały już stworzone, a kody symboliczne nie są napisane. Spójrzmy na rozwiązanie tego przypadku:

"włącznie"); $ arFilter = array ("IBLOCK_ID" => $ arParams ["IBLOCK_ID"], "IBLOCK_LID" => "s1" // nazwa witryny // "KOD" => "", // "KOD" => false); $ arTransParams = array (// (maksymalna długość kodu, wielkość liter (dolna, górna, nie zmieniaj), // zamień spację na ..., zamień inne znaki na ..., usuń niepotrzebne znaki zastępcze) "max_len" => 100 , "change_case" => "L", // "L" - toLower, "U" - toUpper, false - nie zmieniaj "replace_space" => "-", "replace_other" => "-", "delete_repeat_replace " => prawda); if ($ arParams ["TYPE_WORK"] == "sekcja") (// dla sekcji $ db_elemens = CIBlockSection :: GetList ($ arOrder, $ arFilter, false); $ db_elemens-> NavStart ($ arParams ["LIST_CNT"] ); Echo "
"; while ($ ar_res = $ db_elemens-> GetNext ()) ($ transName = CUtil :: translit ($ ar_res [" NAZWA "]," ru ", $ arTransParams); $ arPropArray = Tablica (" KOD "=> $ transName); $ el = new CIBlockSection; $ res = $ el-> Update ($ ar_res ["ID"], $ arPropArray); echo "result for ". $ ar_res [" NAZWA "]." jest ". $ transNazwa."". ($ res?" i ​​OK ":" i nie powiodło się ")." \ r \ n ";) echo"
";) elseif ($ arParams [" TYPE_WORK "] ==" element ") (// dla elementów $ db_elemens = CIBlockElement :: GetList ($ arOrder, $ arFilter, false, array (" nTopCount "=> $ arParams [" LIST_CNT "])); echo"
"; // dla sformatowanego wyjścia wyniku generowania while ($ obElement = $ db_elemens-> GetNextElement ()) ($ ar_res = $ obElement-> GetFields (); $ transName = CUtil :: translit (trim ($ ar_res [" NAZWA " ]), "ru", $ arTransParams); // funkcja generowania kodu symulacyjnego z nazwy $ arPropArray = Array ("CODE" => $ transName. "-". $ ar_res ["ID"],) ; // к dodaj "przedrostek" - "-id" do gotowego kodu $ el = new CIBlockElement; $ res = $ el-> Update ($ ar_res ["ID"], $ arPropArray); // zapisz wynik , przepisz kod dla tego elementu echo $transName."-". $ar_res ["ID"]." 
"; // wypisz wynik) echo"
"; } ?>

Uruchom skrypt php kilka razy w oddzielny plik lub w konsoli pkhp w panelu administracyjnym Bitrix, dopóki nie przestaną pojawiać się komunikaty o pomyślnym wygenerowaniu kodu symbolicznego. W rezultacie w polu „Kod symbolu” pojawi się łańcuch łaciński w postaci odpowiedniej kontrolki numerycznej.

Narty dla dzieci: lyzhi-detskie
Zabawka LEGO: igrushka-lego

Jeżeli formatowanie kodu nie jest określone w tej sekcji - kod należy sformatować zgodnie z PSR-2

  • Tabulatory są używane jako wcięcia w kodzie.
  • Nawias otwierający znajduje się na tej samej linii.
  • Pokrycie klamra jest na nowej linii.

Komentowanie kodu

Komentowanie kodu PHP jest jego integralną częścią!

Komentując kod, używaj komentarzy PHPDoc.

W przypadku jednowierszowych komentarzy wyjaśniających w kodzie możesz użyć normalne komentarze zaczynając od //.

Zmienne

Podstawową zasadą nazywania zmiennych jest to, że nazwa powinna być taka, aby komentarz wyjaśniający przeznaczenie zmiennej nie był wymagany.

Przedrostki

Nazwy zmiennych używają następujących przedrostków:

  • Ar- dla tablic
  • db- dla CDBResult
  • b- dla zmiennych logicznych, jeśli nie wynika to z nazwy. Perfix jest wymagany, jeśli używana jest wartość logiczna, w której zwykle przechowywany jest ciąg Tak / Nie.

$arUserList = tablica (); $ dbRes = CIBlockElement :: GetByID (identyfikator $); $ bAktywny = fałsz;

Nazwy zmiennych nie mogą zaczynać się od podkreślenia.

Zmienne globalne

Zmienne globalne są pisane WIELKIMI literami, oddzielone podkreśleniem.

Globalne $ USER, $ APPLICATION, $ AR_MESSAGES.

Użycie zmiennych globalnych jest dozwolone tylko wtedy, gdy jest to absolutnie konieczne. Wykorzystaj to, co robi D7 tam, gdzie to robi!

Zmienne lokalne

Zmienne lokalne w skrypcie (funkcja, metoda, klasa) zawsze zaczynają się od małej litery, słowa oddziela się wielką literą pierwszego znaku (camelCase).

Ta zasada dotyczy skrótów.
Te. Stacja BBC pisała $ bbcStation; $ arBbcStacje; ...

Jest tylko jeden wyjątek - identyfikator pisany jest wielkimi literami.
Te. $ identyfikator sekcji, $ identyfikator elementu.

$ licznik = 0; $ bElementActive = false; $ lastErrorMsg = ""; $ID = $_GET ["ID"];

Zmienne pomocnicze (tymczasowe)

Zmienne używane w konstrukcjach FOR ... FOREACH można nazwać skrótowo, jeśli kod bloku, w którym są używane, jest wyświetlany bez przewijania strony.

Dla ($ i = 0; $ i< count($arRows); $i++) { // ... } foreach ($arElement as $k =>$ v) (// ...) while ($ arr = $ dbRes-> Fetch ()) (// ...)

Stałe

Nazwy stałe pisane są WIELKIMI literami, słowa oddzielone podkreśleniem. Ze względu na zasięg globalny, stałe muszą być poprzedzone krótkim prefiksem (o nazwie modułu, komponentu, szablonu).

Kody znaków Bitrix

Niestandardowe kody w bitrixie są potrzebne do wielu rzeczy i dlatego należy trzymać się ich jednolitego nazewnictwa. Kod symboliczny musi być napisany literami łacińskimi, bez cyfr i znaków specjalnych i musi odzwierciedlać istotę infobloku, sekcji lub elementu.

Nazewnictwo klas, metod, funkcji

  • Nazwy klas zawsze zaczynają się od dużej litery. Słowa są oddzielone wielką literą. (Wielbłąd)
  • Nazwy metod i funkcji zawsze zaczynają się od małej litery. Słowa są oddzielone wielką literą. (wielbłądCase)

Ze względu na globalny zakres funkcji ich nazwy powinny zaczynać się od krótkiego prefiksu (przy nazwie modułu, komponentu, szablonu).

Rejestracja struktur zarządzających

Powszechną zasadą dotyczącą struktur kontrolnych jest wcięcie logicznego bloku kodu.

Jeśli blok nie mieści się na jednym ekranie, co najmniej dwie zakładki są wcięte. Duży blok kodu związany z jednym elementem logicznym powinien być oddzielony dwoma lub więcej pustymi wierszami i zaopatrzony w komentarze otwierające i zamykające wyjaśniające logikę elementu.

Narzędzia do automatycznego formatowania kodu, ustawianie parametrów

[Wtyczki dla SublimeText]

  • PhpDoc - Właściwie wtyczka do obsługi formatu PHPDoc.
  • phpfmt - wtyczka do automatycznego formatowania kodu php (wymaga zainstalowanego php).

Konfiguracja wtyczki phpfmt.

Data publikacji: 12.12.2011

Kilka dni temu zajęło wygenerowanie kodów symboli dla sekcji i elementów bloku informacyjnego „Katalog mebli” w Bitrix.

Co kod znaku w sekcji lub elemencie infobloku w Bitrixie? Symboliczny kod elementu (sekcji) infobloku w Bitrix oznacza identyfikator mnemoniczny, czyli zestaw znaków (litery i cyfry łacińskie). Ten identyfikator mnemoniczny może być używany do tworzenia adresów linków strony dynamiczne na stronie. Przykładowo, jeśli element „Przestrzeń na sofę” z sekcji „Meble tapicerowane” ma symboliczny kod „tapeta-kosmos”, to link na stronie może wyglądać tak: „/katalog/myagkaya-mebel/tapeta-kosmos”

Zrobione w mgnieniu oka główne pytanie dotyczyło metody transliteracji. Pierwszą myślą jest tak naprawdę skomponowanie jakiejś własnej metody. Natychmiast odsunęła się na bok. Z tego prostego powodu, że – w końcu, jak te symboliczne kody są generowane w CMS? Jak są generowane? Więc jest metoda! Tak, on jest.

Jest taka prosta funkcja, która z jakiegoś powodu wciąż nie jest opisana w oficjalnej dokumentacji Bitrix API. (w momencie pisania tego tekstu (grudzień 2011) w dokumentacji nie było żadnej wzmianki)

CUtil :: translit ($ str, $ lang, $ params = tablica ())

Funkcja transliteruje ciąg $ str z języka $ lang z parametrami $ param.

Parametry tablicy $ parametry:

W nowych wersjach jądra (widziałem w 11.5.2) pojawił się nowy parametr "bezpieczne_znaki", domyślnie "", również skomentowano "use_google", domyślnie false.

PRZYKŁAD użycia:

"-", "replace_other" => "-"); $ trans = Cutil :: translit ($ nazwa, "ru", $ arParams); echo $ trans; ?>

UPD. W komentarzach padło pytanie:
„I możesz po prostu gdzie zarejestrować coś w Bitrixie, aby CNC generowany podczas importowania infobloków działał?”
Pytanie jest błędne i trudno mi je zrozumieć. Ale jako szczególny przypadek podam taki przykład -
zadaniem jest wygenerowanie kodów symboli dla produktów podczas importu katalogu handlowego z CSV.

"-", "replace_other" => "-"); $ trans = Cutil :: translit ($ nazwa, "ru", $ arParams); $arFields ["KOD"] = $trans; ))?>

Tym samym przy imporcie z pliku CSV zostanie automatycznie wygenerowany kod symboliczny - transliteracja z nazwy.

Ważny UPD2.

Zacząłem zadawać pytania, że ​​transliteracja nie działa, zobacz komentarze. Postanowiłem to rozgryźć, ale nie mogę odtworzyć problemu w żadnym z moich obecnych lub starych projektów - u mnie wszystko jest w porządku. Ale ludzie nie?

ROZWIĄZANIE!

Problem wynika z kodowania. Dodaj do .htaccess:

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

A jeśli to nie pomoże? Przechodzimy do panelu administracyjnego na stronie „sprawdzenie witryny”, uruchamiamy sprawdzanie. Jeśli komunikat o nieprawidłowym kodowaniu pozostanie w czeku, nie zniechęcaj się. Albo musisz skontaktować się z usługodawcą, aby naprawić te ustawienia, albo zapomnieć o standardowej funkcji transliteracji i napisać własną. (A także przestań być zaskoczony wszystkimi innymi usterkami spowodowanymi kodowaniem).

Tekst maszynowy składa się ze znaków drukowanych - symboli graficznych.
Symbole graficzne to symbole, które są widoczne w tekście.
Wszystkie symbole graficzne są zebrane w jednym zestawie uniwersalny system Unikod.
Wstaw znak graficzny Unicode do dokumentu html
jest głównym i jedynym celem tego stołu.

Symbol można wstawić do dokumentu html na jeden z następujących sposobów:

  1. skopiuj obraz symbolu z okna przeglądarki do okna edytora wizualnego html
  2. skopiuj kod html znaku bezpośrednio do kodu dokumentu html
Odrzućmy to, że są to dwa różne sposoby:
  1. wstaw wizualizację do wizualizacji
  2. osadzić kod w kodzie.

Czcionka symbolu, jego rozmiar i kolor w HTML można ustawić za pomocą kodu, takiego jak:
KOD ZNAKU
gdzie,
Arial - czcionka,
10px - wielkość czcionki w pikselach,
# ff0000 - kod koloru czcionki (czerwony)

Na przykład:
☎ - wielkość czcionki symbolu to 30px,
☎ - rozmiar czcionki symbolu to 30px, kolor - czerwony
☎ - wielkość czcionki symbolu to 20px,
☎ - wielkość czcionki symbolu to 10px.
Około. Zalecane czcionki do wstawiania znaków specjalnych to Arial, Verdana i Tahoma. Czcionki te poprawnie wyświetlają znaki Unicode iz kolei są poprawnie obsługiwane przez aplikacje internetowe.

  1. "Symbol"
    (widoczny wyświetlacz symbolu)
    Z tej kolumny możesz skopiować obraz symbolu i wkleić go do okna edytora tekstu html. Znak zostanie skopiowany czcionką o rozmiarze 20px. Po zakończeniu kopiowania może być konieczne dostosowanie rozmiaru czcionki bezpośrednio do kopiowanego znaku.
  2. "Nazwa"
    (tylko dla ważnych lub niezrozumiałych postaci)
    Wyjaśnienie celu symbolu, jego zakresu, przykłady ...
  3. "Mnemonika"
    Mnemonik to dosłowna konstrukcja formy ", oznaczająca alfabetyczny kod znaku w HTML. Wstawiana jest bezpośrednio do kodu html dokumentu html. Mnemoniki są bardzo popularne wśród profesjonalnych projektantów layoutów. Są doskonale zapamiętywane przez ludzi i są obsługiwane przez wszystkie aplikacje html Każdy mnemonik zawiera alfabetyczną nazwę (oznaczenie ) swojego symbolu oraz znak serwisowy (&), który służy jako sygnał do odczytania kodu dla przeglądarki i nie jest wyświetlany na ekranie monitora. każdego mnemonika jest unikalny i łatwy do odczytania, ponieważ pochodzi od angielskiego słowa charakteryzującego dany symbol.

    Mnemonika (grecki) - sztuka zapamiętywania czegoś. Mnemotechnika służy do ułatwienia percepcji trudnych do zapamiętania informacji, gdy obiekt pamięci jest z czymś skojarzony.

  4. "Kod"
    Kod to numeryczny kod dziesiętny znaku w HTML, np. &. Wstawiany bezpośrednio do kodu html dokumentu html. Numeryczny kod dziesiętny składa się z liczby oznaczającej numer porządkowy znaku w systemie Unicode oraz kilku znaków serwisowych (& i #), które służą jako sygnał do odczytania kodu dla przeglądarki i nie są wyświetlane na ekranie monitora. Numeryczny kod dziesiętny jest szeroko rozpowszechniony i szeroko stosowany ze względu na jego wszechstronność i łatwość percepcji.

Znaki kontrolne w HTML (XHTML)

Znaki sterujące w HTML (XHTML) to znaki usługi języka HTML, które są używane w układzie HTML strony internetowej. Znaki te muszą być obsługiwane przez dowolną przeglądarkę, ponieważ bez nich poprawne wyświetlanie tekstu HTML jest niemożliwe. Znaki sterujące nie są wyświetlane w tekście, a wprowadzone bezpośrednio z klawiatury są interpretowane przez przeglądarkę jako znaki interpunkcyjne, które wymagają wykonania dowolnej akcji podczas rysowania strony na ekranie.

Dopuszcza się stosowanie znaków kontrolnych w zwykłych tekstach, w których symbolizują one ogólne pojęcia ludzkie i są interpretowane przez przeglądarkę jako zwykłe znaki typograficzne. Przy takim użyciu symboli serwisowych w tekstach HTML wymagane jest wprowadzenie nie wartości samego symbolu, ale jego kodu HTML. Bo, powtarzam, w przeciwnym razie przeglądarka będzie postrzegać symbol usługi jako wezwanie do działania i nie będzie poprawnie wyświetlać tekstu HTML na ekranie monitora.

Symbole kontrolne i ich kod HTML są znane i rozumiane przez wszystkie przeglądarki bez wyjątku, czego niestety nie można powiedzieć o innych znakach, które mogą być wyświetlane nieprawidłowo w różne przeglądarki lub, co gorsza, w ogóle się nie wyświetlają.

Składnia i interpunkcja

przestrzeń długości N (przestrzeń regularna)
przestrzeń długości M (długa przestrzeń)
- miękkie noszenie (niedrukowalny znak) - ­
łącznik –
- długość kreski N (normalna kreska) -
długość myślnika M (pauzy)
. kropka .
, przecinek ,
elipsa …
: okrężnica :
; średnik ;
! wykrzyknik !
ǃ
? znak zapytania ?
@ "pies" @
* "gwiazda" *
# "krata" #
pojedynczy górny lewy cudzysłów ‘
pojedynczy górny prawy cudzysłów ’
pojedynczy dolny prawy cudzysłów ‚
podwójny górny lewy cudzysłów “
podwójny górny prawy cudzysłów ”
podwójny dolny prawy cudzysłów & bdquo „
« podwójny lewy cudzysłów kątowy (rus) « «
» podwójny cudzysłów prostokątny (rus) » »
́ znak akcentu, przykład: Vasya ́
" apostrof, przykład: ty "i "
´ ostry, przykład: Vas'ya ´ ´
akapit (znak niedrukowalny)
§ ustęp § §
ˆ akcent (odwrócony ptak) ˆ ˆ
ˆ
˜ mała tylda ˜ ˜
˜
¦ pionowa linia przerywana ¦ ¦
( nawias w lewo (
) prawy nawias )
lewy nawias kątowy
nawias kątowy prawy
lewy nawias kątowy, opcja
nawias kątowy prawy, opcja
[ nawias kwadratowy po lewej [
] nawias kwadratowy w prawo ]
/ ukośnik - znak ukośnika /
\ ukośnik wsteczny \
ukośnik (znak podziału)
ǀ pionowy pasek ǀ
ǁ podwójny pionowy pasek ǁ
overline, przykład: Vasya‾vasya
¯ Macron, przykład: Vasya¯vasya ¯ ¯

Znaki towarowe i waluty

+ plus + +
minus -
= równa się =
± plus lub minus ± ±
× znak mnożenia × ×
÷ znak podziału ÷ ÷
operator kropki (linia środkowa) ·
operator gwiazdki (w środku linii)
operator tyldy
. znacznik listy (w środku linii) . •
¹ indeks górny „1” ¹ ¹
² indeks górny „2” ² ²
³ indeks górny „3” ³ ³
Indeks górny i dolny w HTML (XHTML)
można wstawić za pomocą tagów oraz odpowiednio:
NUMER Napisany u góry→ LICZBA Indeks górny
NUMER Indeks→ NUMER Indeks dolny
½ ułamek „jedna sekunda” ½ ½
ułamek „jedna trzecia”
¼ ułamek „jedna czwarta” ¼ ¼
¾ ułamek „trzy czwarte” ¾ ¾
znak liczbowy
% procent %
ppm ‰
° stopnie ° °
udar (minuty, stopy)
podwójny prim (sekundy, cale)
Przykład 1: 30 ° 25 ′ 12 ″
Przykład 2: 25 ′ 12
µ mikro µ µ
π Liczba Pi π π
ƒ znak funkcyjny
(nie mylić z „całką”)
ƒ ƒ
ƒ
całka
przekreślone zero, pusty zestaw
(nie mylić z „średnicą”)
średnica (nie mylić z łacińskim przekreśleniem „o”)
ø Łacińskie „o” przekreślone po przekątnej ø ø
Ø łacińska wielka litera „O” przekreślona po przekątnej Ø Ø
znak pracy
znak sumy
rodnik
(pierwiastek kwadratowy lub pierwiastek potęgi x)
proporcjonalnie
nieskończoność
zastrzyk
ortogonalny (prostopadły)
w konsekwencji znak
w przybliżeniu równa
prawie takie same
nie równe
identycznie
mniejsze lub równe
więcej lub równe
logiczne AND
logiczne OR
znak plusa w kręgu
(kwota bezpośrednia)
mnożenie w kole
(iloczyn krzyżowy, strzałka od obserwatora)
ʘ kropka w kółku
(strzałka na obserwatora)
ʘ

✵ ✵

Standardowy międzynarodowy kod znaku, w którym każdy znak jest zakodowany w siedmiu bitach. Tematy telekomunikacyjne, podstawowe pojęcia EN ISO 7 ...

Kod ISO-7- Standardowy międzynarodowy kod znaków (ISO 646 1973), w którym każdy znak jest zakodowany w siedmiu bitach. W Stanach Zjednoczonych nazywana jest wersja ASCII tego kodu. [ES Aleksiejew, AA Myaczew. Angielsko-rosyjski słownik wyjaśniający inżynierii systemów komputerowych. Moskwa 1993] ... ... Poradnik tłumacza technicznego

Kod (w komputerze cyfrowym)- Kod w komputerze cyfrowym, konwencjonalny system znaków do przedstawiania informacji w komputerze cyfrowym. Każdy K. używa znaków swojego alfabetu. Dla większości K. alfabety są dwuznakowe lub składają się z liter dwuznakowego alfabetu. Fizyczna forma K. zależy od charakteru ... ...

Kod linii lotniczych IATA- Kod linii lotniczej IATA 2 lub 3 znaki indywidualny identyfikator nadawany linii lotniczej przez Międzynarodowe Zrzeszenie Przewoźników Powietrznych (IATA). Ten kod jest przydzielany zgodnie z Uchwałą IATA nr 762 przez siedzibę stowarzyszenia w ... ... Wikipedii

Kod- I (kod francuski, z kodeksu łacińskiego kodeks praw) system znaków konwencjonalnych (symboli) do transmisji, przetwarzania i przechowywania (zapamiętywania) różne informacje... Ostatnia sekwencja punktów kodowych nazywana jest słowem. Liczba różnych znaków, ... ... Wielka radziecka encyklopedia

RADIX-50- kod znakowy, który pozwala na zapisanie trzech znaków w jednym 16-bitowym słowie. Był używany głównie na minikomputerach, głównie z rodziny PDP 11 (komputer SM), do przechowywania nazw plików w systemy plików OS RT 11 i RSX 11, nazwy modułów ... ... Wikipedia

ESCON- (Enterprise Systems Connection) interfejs kanału światłowodowego zapewniający wymianę informacji między serwerem IBM zSeries a urządzeniami peryferyjnymi (lub innym serwerem). Po raz pierwszy użyty na serwerach Archite ... Wikipedia

adres- rzeczownik, m., uptr. często Morfologia: (nie) co? adresy, dlaczego? adres, (zobacz) co? adres, jaki? adres, o czym? o adresie; pl. co? adresy, (nie) co? adresy, co? adresy, (zobacz) co? adresy, co? adresy, o czym? o adresach 1. Dowolny adres ... ... Słownik Dmitrijewa

identyfikator zadania- Symboliczny kod przypisany do zadania w toku lub gotowego do wykonania. [Domarev W.W. Bezpieczeństwo Technologie informacyjne. Podejście systemowe.] Tematy ochrona informacji PL identyfikator zadania ... Poradnik tłumacza technicznego

Pascal (język programowania)- Ten artykuł lub sekcja wymaga korekty. W Pascalu nie ma modułów, OOP i innych nowomodnych trendów. Opisy rozszerzeń powinny być obecne tylko w artykułach o odpowiednich ... Wikipedii

Pascal (język)- Pascal Semantics: proceduralny Typ wykonania: kompilator Wprowadzony w: 1970 Autorzy: Niklaus Wirth Język programowania wysokiego poziomu Pascal ogólny cel... Jeden z najbardziej znanych języków programowania, szeroko ... ... Wikipedia

Książki

  • Metoda językoznawcza we frazeologii. Kody kulturowe, M.L. Kovshova. Monografia poświęcona jest językoznawczemu badaniu jednostek frazeologicznych - znaków językowych, które w formie graficznej przechowują i przekazują z pokolenia na pokolenie wartościowe postawy narodu ... Kup za 1053 UAH (tylko Ukraina)
  • Metoda linguokulturologiczna w frazeologii Kody kultury, Kovshova M. Monografia poświęcona jest językoznawczemu badaniu jednostek frazeologicznych - znaków językowych, które w formie przenośnej przechowują i przekazują z pokolenia na pokolenie wartościowe postawy narodu ...

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać dzwonek?
Bez spamu