Express jest jak najbardziej komercyjny, studenckie wersje oczywiście nie.
Wersja do druku
ey, to bez sensu... Ulti od miliarda expressow różni sie glownie tym, że powiela niektóre pliki. Także to bez sensu. No ale jeśli faktycznie to ok, ale na pewno jest jakieś większe ograniczenie...
Słowo klucz - dodatki. w Expressie nie zainstalujesz ReSharpera i wielu innych dodatków do VS. W branży się mawia, że głównym atutem ulti jest jednak to, że "sam robi dokumentację".
Mozesz uzywac VS Express dla celow komercyjnych, zrodlo: http://www.visualstudio.com/pl-pl/pr...dio-express-vs
"Produkty Visual Studio Express są dostępne bezpłatnie i mogą być wykorzystywane do celów komercyjnych; użycie w środowisku produkcyjnym podlega postanowieniom licencyjnym dołączonym do każdego z produktów. Na przykład programu Express for Windows możesz używać do tworzenia aplikacji, które później możesz przesłać do sprzedaży w Sklepie Windows."
@Kusterek
Dopisz gettera ktory zwroci FirstName + LastName :)
Wie ktoś jak includnąć klasy joomli na nowej podstronie?
Chodzi o to że tworzę czystą podstronę np. gowno.php i chcę sprawdzić czy ktoś jest zalogowany tam na tej głównej.
ale wyrzuca miKod:if(JFactory::getUser()->guest) {
echo 'niezalogowany';
}
else {
echo 'zalogowany';
}
i nie wiem jak includnąć te klasy żeby to śmigało i czy w ogóle się da?Cytuj:
Fatal error: Class 'JFactory' not found in /home/costam/public_html/test.php on line 2
Zapewne się nie da, ze zwględu na to, że aby to działało to i tak musi się wczytać cała Joomla prawie. W Wordpressie można wczytać plik wp-load.php który wczyta całego wordpressa, i można wtedy korzystać z funkcji użytkowników, postów, opcji, wtyczek itp. Ale to jest bez sensu, bo lepiej w tym celu tam stworzyć nową wtyczkę, albo chociaż plik szablonu za to odpowiedzialny.
Innymi słowy, lepiej zrobić osobny widok dla jakiejś wybranej strony, w której stworzysz swój kod z opcjami dostępnymi w Joomli, a który będzie wykonywany tylko przez konkretny wybrany adres.
W Wordpressie jest to tak, że tworzysz plik moj-skrypt.php, a w nim coś takiego:
A dalej tworzy się w panelu stronę, której przypisuje się ten szablon. Ostatecznie wychodzi nam otworzenie swojego pliku, kompletnie jakby niezależnego od WP, a jednak można korzystać z jego funkcji.Kod PHP:/* * Template name: Moj wlasny skrypt */ $tutaj_zmienna = jakas_wlasna_funkcja(); $user = wp_get_current_user(); jakiś_wlasny_dalszy_skrypt();
Wiem że Joomla jest kompletnie inna od WP, ale w tej kwestii pewnie da się zrobić coś bardzo podobnego.
http://msdn.microsoft.com/pl-pl/libr...vs.110%29.aspxKod:<TextBlock Name="textBox2" DataContext="{StaticResource NameListData}">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myNameConverter}"
ConverterParameter="FormatLastFirst">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
http://stackoverflow.com/questions/1...ng-two-columns
Może to pomoże? :)
@Kusterek
Jakis konktretny powod? Z drugiej strony, jesli chcesz wyswietlic FirstName + LastName w tym cboxie, musisz/powinienes miec do tego pole - w innym wypadku, podchodzi to pod blad projektowy. Im wiecej bedzie takich 'hackow', tym trudniej bedzie maintainowac taki kod. Ot, moje 3 slowa :)
jebane programowanie na Windows 8 ;sCytuj:
MultiBinding is not supported in a Windows App project.
@up
założyłem sobie, że jeżeli tylko raz będę potrzebował takiego czegoś to bez sensu mi robić gettera albo nie daj boże nowe pole o nazwie FullName. Wszystko by się udało gdyby nie to, że Windows Store App nie wspiera multibindowania :P ale w takim przypadku, pozostało mi tylko dodanie gettera ;s
@Mistrzu dragon ;
Jesli chodzi tylko o sprawdzenie czy zalogowany czy nie, to może nie ma sensu wczytywac calej joomli, a wystarczy sprawdzic dane z sesji czy gdzie tam sa zapisywane dane o zalogowaniu. Czy to Cookies czy Session czy cos jeszcze. Nie znam sie akurat na tym, nigdy nie uzywalem. Ale sprawdzenie 1 wartosci w tablicach superglobalnych jest lepsze niz wczytywanie calej Joomli tylko po to zeby sprawdzic czy jest zalogowany.
Jesli chodzi tylko o to zalogowanie, to ja bym szukal w sesji a nie w joomli ;p
Próbowałem, wszystko się pierdoli i sypie errorami albo w ogóle nie działa, nie chciało mi się w tym grzebać i zrobiłem tak jak proponowałeś.
Zrobiłem pusty szablon , przypisałem do niego stronę i wypełniłem jak mi się podoba.
C++;
Pisałem na PW do Havarana, ale on chyba dość zajęty, więc rzucam pytanie tutaj:
Mam klase 'Gracz', użytkownik wybiera ilość graczy, np. 6. Musze stworzyć 4 obiekty - Gracz1, Gracz2 itd. Pomyślałem że zrobie to forem, np. w ten sposób:
Teraz nie wiem co mam umieścić na końcu? Bo powinno być "Gracz Gracz i", ale nie wiem jak mam to "i" umieścić żeby czytało jako liczbe. nie wiem, pewnie banalny problem ale licze na pomoc ;dKod:for(int i=0; i<=ilosc; i++)
Gracz Gracz
Nie, nie chce tablicy. Tak mi sie przynajmniej wydaje ;dd
Ogólnie to tworzyłem sobie wcześniej obiekt pisząc:i już miałem dwa obiekty, dwóch graczy. Teraz chciałbym zrobić dokładnie to samo tylko zamiast liczby musze wpisac 'i', a nie wiem jak to 'i' wpisac zeby nie traktowalo tego jako znaku tylko liczbe ;dKod:Gracz Gracz1, Gracz2;
No nie wiem, tak to sie chyba robi nie? Gdzies podlapalem ze tak sie definiuje te obiekty i tak robie ;d
http://stackoverflow.com/questions/1...string-and-int
Masz kilka sposobów.
To nie to.
Ty mowisz o zrobieniu String nazwa = John21
A on o zrobieniu
Kod:Gracz John1 = new Gracz();
Gracz John2 = new Gracz();
Gracz John3 = new Gracz();
a dokladniej to cos takiego:
for (i:=0;i<=ilosc;i++) {
Gracz Johni = new Gracz();
}
Na konkretna odpowiedz musisz czekac na Havarana i innych koksow, ale o ile dobrze pamietam, to byc moze tobie chodzi o fabryke. Cos poczytaj wiecej o factory.
W PHP da sie zrobic cos na zasadzie (chyba) :
Ale c++ nie jest tak latwy w obsludze jak PHP :PKod:$zmienna = 'temat';
$$zmienna = 'tresc';
echo $temat; // wyswietli tresc.
@edit
Na mysl mi jeszcze przychodzi zrobienie Macro ktore zamieni fraze _m_licznik<i> na i
Wtedy zrobisz Gracz gracz_m_licznik<i> a w efekcie dla i = 4 da ci Gracz gracz4
Dobrze kombinuje?
@up
https://i.imgur.com/voaSbNh.jpg ?
każdy result może zawsze zapisać do tablicy jak chce go potem używać , chyba ze naprawdę nie rozumiem xd
ej bez kitu, nie wiem jak to zrobic ;D Nawet nie wiem czy tak się da w C++?
nie lepiej
a imho przy tak malej ilosc to for jest zbedny i latwiej napisac to recznie i to bez tablic :PKod:for(int i=0;i<ilosc;i++)
Gracz John[i] = new Gracz();
@up
ja zrozumiałem tamto pytanie jako jak wygenerować obiekty w forze tak, aby miały nazwy obiektów brzmiały NazwaX gdzie X to wartość i
@topic
tablica / jakis stl container, eg. wektor.
Pozatym:
nie zadziala. Po wyjsciu z fora, wszystkie obiekty 'gracz' beda usuniete.Kod:for (uint32_t i = 0; i < 5;i++)
Gracz gracz;
Yup, obiekty zostaną wyrzucone z stacka od razu po wyjsciu z fora ( albo nawet nie zostaną w ogóle stworzone , bo kompilator zobaczy, że i tak nie używasz tych obiektów ) . ;)
I @kuba_k31 ; - ja Ci na pw odpisałem, sprawdź skrzynkę xD
Tak jak szulak mówi, wektor najlepiej.
ale chyba jak je jebnie static, to mu zostana?
@up
Zrob tak:
i teraz zamiast odwolywac sie tak jak chcesz - John0, John1, John2 to bedziesz to miał jako John[0],John[1],John[2];Kod:Gracz John[ilosc];
for(int i=0;i<ilosc;i++)
John[i]=new Gracz();
a jeżeli zwiększać chcesz to albo wektor albo tablica dynamiczna
@up
w C++ static działa tak:
troszke inaczej niż w C#Cytuj:
Modyfikator static sprawia, że obiekt w danej funkcji jest umieszczany w tej samej pamięci, co zmienna globalna i nie jest usuwany wraz z zakończeniem funkcji.
http://media.gizmodo.co.uk/wp-conten...lp-fiction.jpg
Tablica wskaźników Gracz?
Może C++0x11 czy jak to się tam zwie ma jakies lepsze rozwiązanie
@kuba_k31 ;
http://ideone.com/yYcbfk
Jak chcesz dynamicznie dodawać aktorów do gry (npc, potworki czy inne gówna) to pomyśl nad std::vector.
Nie wiem czy temat mojego posta podchodzi pod temat tego wątku, ale spróbuję:
Macie jakiś program/apkę do komunikacji między członkami grupy projektowej? Mam grupę 7-osobową w projekcie na studiach, ale nie każdy ma skype, nie każdy gg i nie każdy facebooka... A i tak wolałbym pisać na czymś w rodzaju miniforum, żeby było łatwo się połapać kto co i kiedy napisał i co/kiedy zamierza zrobić itd.
Jak dla mnie najlepsze do czegoś takiego jest www.trello.com. Można założyć konto na fejkowego maila nawet. Tworzysz sobie taka jakby tablice z karteczkami, do każdej możesz przydzielić jakiegoś pracownika, deadline czy kategorię.
Przykład dosyć dużego boarda: https://trello.com/board/a-problem-a...bf4c914d0137f8
Jakikolwiek system do zarządzania projektami, w pracy używamy JIRY, ale Tobie polecę jakiś darmowy odpowiednik, nazw niestety nie znam :D
C++ nie obsługuje takich pokracznych rzeczy. Da się to pewnie zrobić makrami, ale nie jest to dobre rozwiązanie. Preprocessor nie ma pisać za Ciebie kodu. Tutaj najładniej byłoby to zrobić wektorem/zbiorem/tablicą. Na przykład tak:
Ze zbiorem analogicznie, tylko zamień vector na set i zamiast push_back daj insert. Set ma dużą stałą jeżeli chodzi o zajmowane miejsce i wolniej działa, więc raczej słabo się tu spisze.Kod:std::vector<Fred> v;
for (unsigned int i = 0; i < n; ++i) {
v.push_back(Fred(mój_argument));
}
for (Fred& f : v) {//C++11, można zrobić to iteratorami, ale tak jest ładniej. & skutkuje tym, że f jest referencją, a nie skopiowanym obiektem.
f.zrob_cos();
}
Na tablicy.
Kod:Fred *moja_tablica = new Fred[n] //new wywoła domyślny konstruktor na każdym z elementów, więc trzeba jeszcze wywołać init na każdym, init oczywiście musisz samemu napisać.
//oczywiście na stercie, bo stos jest od innych rzeczy
for (Fred *iterator = moja_tablica; iterator != moja_tablica + n; ++iterator) {
iterator->init(argument);
iterator->cośtam();
}
//zwolnienie pamieci
delete[] moja_tablica;
Może napisze. Zrobiłem to jednak tablicą, w ten sposób:
i wydaje mi się że wszystko działa, więc na razie rozwiązuje to mój problem ; pKod:Gracz * gracz[20];
for (int i = 1; i <= ilosc_graczy; i++)
{
gracz[i] = new Gracz;
}
Wystarczy cofnąć wskaźnik do tablicy o jeden do tyłu (--gracz).
@LGTK - czytaj, potem pytaj
kuba_k31
jeśli Ci zależy na wywołaniu domyślnego konstruktora na wszystkich elementach tablicy (bo to robisz) to wystarczy walnąć coś takiego:
potem to zwalniasz zwykłymKod:gracz = new Gracz[liczba_graczy];
Zalety:Kod:delete[] gracz
-atomowość operacji (albo się wszyscy gracze zrobią albo żaden) jeśli domyślny konstruktor klasy Gracz to zapewnia
-pozbywasz się dwóch pętli
-mniej zużywanej pamięci
-łatwiejsze odwoływanie się do argumentów
ps. pisze się liczba, bo gracze są policzalni, a nie bezkształtna masa
Czepiacie się.
Swoją drogą, jak już mamy dzień pomocy dla nowych to może powiecie mi czym w C++ różni się public od private? To znaczy, wiem że w private umieszczam rzeczy, do ktorych uzytkownik nie ma miec dostepu poza klasa, ale nie rozumiem w jaki sposob użytkownik miałby otrzymać dostęp do rzeczy które są public? Przecież daje mu gotowy produkt, nie otrzymuje on dostępu do kodu.
Jak udostepniasz bibliotekę to robi i to głównie to
To bardziej na przyszłość się ustawia, i przy tworzeniu w kilka osób. Przykład najlepszy jest:
Jeśli masz pole które trzeba przefiltrować jakąś funkcją, czyli np. masz pole dzielnik gdzie trzymasz liczbe przez ktora bedziesz dzielil. Wiadomo, ze liczba ta nie moze byc 0.
Wiec ustawiasz pole dzielnik na prywatne, i jego zmiana moze sie wtedy odbyc przez odpowiednia funkcje typu
No i chodzi o to, że jak byś zrobił to pole publicznym, to ktoś inny mógłby za pomocą:Kod PHP:public function setDzielnik(int nowy_dzielnik) { if (nowy_dzielnik==0) { //tutaj cos pokazujesz, jakis alert czy np ustawiasz go na 1, cokolwiek } else { this->dzielnik = nowy_dzielnik; } }
Co jest błędne, ale możliwe do zrobienia. W przypadku zrobienia tego pola prywatnym, nie jest to mozliwe, a jedyna mozliwosc ustawienia pola da sie zrobic poprzez setDzielnik(), ktory nigdy nie pozwoli zrobic temu polu wartosci 0.Kod PHP:MojaKlasa obiekt; obiekt.dzielnik = 0;
Profit, bo nie musisz po x czasie pamietac ze ta zmienna nie moze miec wartosci 0.
Inna sprawa jest taka, ze jesli np zrobisz pole publicznym, bo nie musisz go filtrowac. To ktos inny uzywajac twojej klasy (robicie wspolnie projekt), odwoluje sie poprzez obiekt.pole;
Ale po pewnym czasie, ty stwierdziles ze pole nie moze zawierac frazy 'Wojtek', wiec robisz pole prywatnym i tworzysz mu setter, zakazujacy umiescic w nim slowa wojtek.
Wszystkie inne klasy ktore wykorzystuja twoj stary kod nie kompiluja sie, i jest duzy problem z przepisaniem wszystkich wystapien obiekt.pole na obiekt.getPole() oraz obiekt.setPole();
Profilaktycznie pola uzywa sie jako private (lub protected, do dziedziczenia) , w szczegolnych przypadkach publici :)