Volání proměnné ve funkci – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Volání proměnné ve funkci – PHP – Fórum – Programujte.comVolání proměnné ve funkci – PHP – Fórum – Programujte.com

 

Hrabosh
~ Anonymní uživatel
9 příspěvků
14. 11. 2015   #1
-
0
-

Zdravím, na wordpressu mám plugin mingle, který z webu dává funkce sociální sítě (uživ. profil, chat, atd.) a potřeboval jsem do údajů uživatele dodělat datum narozeni a k tomu nastavní soukromí, tj. viditelné pro všechny, nebo viditelné pouze pro přátelé. To jsem udělal pomocí funkce a funguje to, ale když se nějaký uživatel podívá na profil jiného, tak se tam má vypsat to datum narození, co si nastavil. A to funguje pouze v případě, že je soukromí data narození nastaveno na veřejné, ale pokud je datum narození privátní, tak se nezobrazí. Celkem težko se to vysvětluje. Přikládám zdrojový kód.

http://pastebin.com/xCwkGv2X Odkaz na část kódu, která zajišťuje kontrolu nastavení profilu a vypsaní data. Když jsou uživatelé přátelé a datum je privátní, tak se zobrazí "Datum narození:Privátní, ale přátelé,zobrazit datum", ale už se nevypíše proměnná, která je pod tím ($user->birthday). A když mám vypsání té proměnné mimo funkci, tak to normálně funguje. Nevíte, čím to může být? Zkoušel jsem do global dostat ruzné věci, ale pořád nic.

A tady je část, která zpracovává datum http://pastebin.com/zRBkk8pp

Děkuju za každou radu.

Nahlásit jako SPAM
IP: 46.33.103.–
Kit+15
Guru
14. 11. 2015   #2
-
+1
-
Zajímavé

#1 Hrabosh
Kdysi jsem se vrtal ve Wordpressu, ve kterém největší potíže způsobuje právě  klíčové slovo "global". Stačilo ho z těch postižených míst odstranit. Zbav se těch "global".

Nauč se formátovat kód, ať se to dá číst. A přestaň používat zkratky v názvech proměnných. Není pak jasné, co se v té proměnné má nacházet.

Ta podmínka ve větvi "else" je zcela zbytečná. Ve funkci check_friend() by nemělo být vůbec žádné echo. Pokud se má chovat jako funkce, měl by místo echo být return. - viz její volání. Je to strašně zmatené.

Abys neřekl, že ti nepomůžu, tak tady máš záplatu: 

<?php
function check_friend($mngl, $friend) {
    global $current_user, $mngl_friend, $mngl_user, $mngl_options, $wpdb; 
    $friend = $mngl_friend->get_one_by_user_ids($mngl->id, $friend->id);
    if ($friend) {
        if ($friend->status == 'verified'
            && !$user->privacy_narozeniny == 'public') {
            return "Datum narození: "
                . "Privátní, ale přátelé, zobrazit datum "
                . ($user->birthday);
        }
    }
    return "Datum narození je viditelné pouze pro přátele.";
};

if($user->privacy_narozeniny == 'public') {
    echo  "Datum narození:";
    echo wptexturize($user->birthday); 
} else {
    echo check_friend($mngl_user, $user);
}
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Hrabosh
~ Anonymní uživatel
9 příspěvků
15. 11. 2015   #3
-
0
-

Jsem čiště začátečník, kterej začíná nejen s wordpressem, ale taky s php, takže vím, že tam jsou chyby. Ale děkuju az radu, už jsem to vyřešil.

Nahlásit jako SPAM
IP: 46.33.103.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý