login( new \Mediawiki\Api\ApiUser( $REEVO_WIKI_API_USER, $REEVO_WIKI_API_PASS ) ); $services = new \Mediawiki\Api\MediawikiFactory( $api ); if ($opciones['t']) { if ($opciones['p']) { $title = $opciones['t']; if (is_string($opciones['p'])) { $prop[] = $opciones['p']; } else { $prop = $opciones['p']; } foreach ($prop as $key => $value) { // $p = explode('|', $value); $propiedades[$value] = ''; } $result = ObtenerPropiedades($title, $propiedades, $opciones, $services); } else { echo "Es necesario que definas al menos una propiedad para obtener con -p='propiedad|valor'\n"; exit; } } else { echo "Es necesario que definas el nombe de la pagina a revisar con -t='Pagina'\n"; exit; } // Obtengo el nombre de la página como parámetro function ObtenerPropiedades($title, $propiedades, $opciones, $services) { $page = $services->newPageGetter()->getFromTitle( $title ); $pagecontent = $page->getRevisions()->getLatest(); if (!$pagecontent) { echo "\n**** ERROR: No existe una página con el nombre '$title'\n\n\n"; exit(); } else { // echo "\n**** PROCESANDO: '$title' ****\n"; } $pagecontent = $page->getRevisions()->getLatest()->getContent()->getData(); // armo un array con las propiedades de SMW $extracto = preg_grep('/^\|/', explode("\n", $pagecontent)); foreach ($extracto as $key => $value) { $data = str_replace('|','',$value); $data_limpia = explode('=', $data); $propiedades_previas[$data_limpia[0]] = $data_limpia[1]; } foreach ($propiedades as $key => $value) { if (array_key_exists($key, $propiedades_previas)) { echo "$propiedades_previas[$key]\n"; } } } function accessProtected($obj, $prop) { $reflection = new ReflectionClass($obj); $property = $reflection->getProperty($prop); $property->setAccessible(true); return $property->getValue($obj); } ?>