summaryrefslogtreecommitdiff
path: root/bin/wiki/PropiedadObtener.php
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/PropiedadObtener.php')
-rw-r--r--bin/wiki/PropiedadObtener.php80
1 files changed, 80 insertions, 0 deletions
diff --git a/bin/wiki/PropiedadObtener.php b/bin/wiki/PropiedadObtener.php
new file mode 100644
index 00000000..114fba48
--- /dev/null
+++ b/bin/wiki/PropiedadObtener.php
@@ -0,0 +1,80 @@
+<?php
+# ----
+# Copyright (C) 2013-2020 - Reevo Project (http://reevo.org)
+# License: Affero GPL version 3 - http://www.gnu.org/licenses/agpl.html
+# ES: Este script recibe el nombre de una pagina e intenta obtener el valor las propiedades específicas.
+# Algo como: php PropiedadObtener.php -t=Experiencia:Summerhill -p="experiencia:lugar" -p="experiencia:lugar-pais"
+# ----
+
+
+// error_reporting(0);
+// Load all the stuff
+require_once( __DIR__ . '/vendor/autoload.php' );
+require_once( __DIR__ .'/../../etc/global_config.php' );
+
+// Log in to a wiki
+$api = new \Mediawiki\Api\MediawikiApi( $wgServer .'/api.php' );
+$api->login( new \Mediawiki\Api\ApiUser( $REEVO_WIKI_API_USER, $REEVO_WIKI_API_PASS ) );
+$services = new \Mediawiki\Api\MediawikiFactory( $api );
+
+$opciones = getopt('t:p:f:');
+
+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";
+ }
+} else {
+ echo "Es necesario que definas el nombe de la pagina a revisar con -t='Pagina'\n";
+}
+
+// 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);
+}
+
+?>