Toon posts:

[PHP/ZF] Event zoeken in specifieke Google Calendar

Pagina: 1
Acties:

Onderwerpen


  • orange.x
  • Registratie: maart 2002
  • Laatst online: 24-03 10:00
Klein beetje frustratie hier. Ik heb een probleempje. Het toevoegen van een event gaat helemaal prima via het Zend Framework en daar zijn verder geen klachten over.

Alleen wil ik in een later stadium een eerder geplaatst event wijzigen. In 1e instantie is een event een hele dag totdat er tijden gespecificeerd zijn en die moeten dan natuurlijk toegevoegd worden aan het event.

Nu is de agenda waar het om draait niet mijn default agenda en als ik ga zoeken dan zoekt hij altijd door de default agenda.

Bij het toevoegen van een event heb ik een manier gevonden om eerst door alle agenda's te loopen en zo de juiste agenda te vinden. Daarvan wordt dan de $calendar->title->src van opgeslagen en daarmee wordt het event toegevoegd aan die calendar.

Maar met het zoeken krijg ik het dus niet voor elkaar. Ik kan bij het zoeken weer door de agenda's loopen, en vervolgens de juiste agenda vinden, maar dat wordt dan niet de actieve agenda, want je moet voor je query een user meegeven wat het id moet zijn van de calendar. Nu kan ik die wel van de site plukken, erin plakken en gaan met die banaan, maar dat is totaal niet dynamisch.

Als ik door de agenda's loop en de juiste is gevonden dan kan ik het id wel uitlezen, maar ik kan helemaal niets met die gegevens doen. Ik kan er geen stuk uitknippen of wat ook.

Is er een manier om eventueel over alle agenda's van mijn google account te zoeken? Ik wil namelijk gewoon op de titel zoeken omdat deze een unieke code bevatten waardoor ik niet met de direct url's hoef te werken.

  • CodeCaster
  • Registratie: juni 2003
  • Niet online

CodeCaster

👌👀 good shit ✔💯

Ik snap niet helemaal je vraag. Wat probeer je nu precies te doen, een item op titel zoeken terwijl je het ID al hebt? Anyhow, heb je hier wat aan?
I'm pretty sure there's no way to query across multiple calendars with a single API call. My suggestion would be to either write your app to query each calendar (not terribly efficient) or to write one app that syncs all of your calendars with your "master" calendar and then write another app to search and query against the master.
Verder hier en hier al gekeken?

As always, we are nailed to a cross of our own construction.


  • orange.x
  • Registratie: maart 2002
  • Laatst online: 24-03 10:00
Ik roep een functie aan, en bij de aanroep geef ik de naam van de agenda mee. In die functie wil ik dus het event zoeken met nog wat meer gegevens maar dus alleen in die agenda.

Ik haal eerst alle agenda's op en loop erdoor zodat ik de juiste kan vinden.
PHP:
1
2
3
4
5
6
7
8
$calFeed = $gcal->getCalendarListFeed();
foreach ($calFeed as $calendar)
{
    if($calendar->title->text == "Naam agenda")
    {
        $url = $calendar->content->src;
    }
}


Die $url bevat uiteindelijk de complete url van die agenda. Maar daar zit het ID in van de agenda die ik in de volgende query wil verwerken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$query = $gcal->newEventQuery();
$query->setUser('default'); // <- daar moet het id inkomen, als ik dat hard erin zet werkt het prima..
$query->setVisibility('private');
$query->setProjection('basic');

try
{
    $feed = $gcal->getCalendarEventFeed($query);
}
catch (Zend_Gdata_App_Exception $e)
{
    echo "Error: " . $e->getResponse();
}

  • CodeCaster
  • Registratie: juni 2003
  • Niet online

CodeCaster

👌👀 good shit ✔💯

En zo'n Zend_Gdata_Calendar_ListEntry heeft niet toevallig een methode getId()?

As always, we are nailed to a cross of our own construction.


  • orange.x
  • Registratie: maart 2002
  • Laatst online: 24-03 10:00
Jawel, maar ook daar krijg ik de hele url er weer uit, en niet alleen het id. En als ik dat in een variabele opsla dan kan ik em niet exploden of wat ook. Zolang ik dat id niet helemaal los heb, is het, met het idee hoe ik het zie zeg maar, niet mogelijk...

  • Cartman!
  • Registratie: april 2000
  • Niet online
PHP:
1
return end(explode('/', (string) $event->getId()));


Werkt bij mij als een zonnetje...

  • orange.x
  • Registratie: maart 2002
  • Laatst online: 24-03 10:00
Cartman! schreef op vrijdag 29 oktober 2010 @ 16:55:
PHP:
1
return end(explode('/', (string) $event->getId()));


Werkt bij mij als een zonnetje...
Maar jij gebruikt het id van een $event, ik probeer het te krijgen uit de agenda..
Iedere keer als ik iets van een bewerking erop doe dan krijg ik de tekst "Object" te zien.

PHP:
1
2
3
4
5
6
7
8
9
10
foreach ($feed as $event)
{
    $id = end(explode('/', (string) $event->getId()));
    ?>
    <li>
        <h2><?=$id?></h2>
        <?=$event->summary?>
    </li>
    <?
}


Als ik dat doe, dan krijg ik als titel de tekst "Object id # 137". Zit er dan iets in de installatie verkeerd?

Edit:
Volgens mij ben ik er uit :)
Als ik dit doe, dan kan ik het wel:
PHP:
1
2
3
4
5
6
7
8
// fout
$bla = $calendar->id;
$bla = $calendar->getId();

// goed
$bla = $calendar->id->text;
$bla = $calendar->getId()->text;
echo end(explode('/', (string) $bla));

[Voor 14% gewijzigd door orange.x op 29-10-2010 20:22. Reden: Probleem opgelost]

Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee