{"action":"created","comment":{"url":"https://api.github.com/repos/zikula/core/pulls/comments/45564604","id":45564604,"diff_hunk":"@@ -0,0 +1,773 @@\n+<?php\n+/**\n+ * Copyright Zikula Foundation 2009 - Zikula Application Framework\n+ *\n+ * This work is contributed to the Zikula Foundation under one or more\n+ * Contributor Agreements and licensed to You under the following license:\n+ *\n+ * @license GNU/LGPLv3 (or at your option, any later version).\n+ *\n+ * Please see the NOTICE file distributed with this source code for further\n+ * information regarding copyright and licensing.\n+ */\n+\n+namespace Zikula\\AdminModule\\Controller;\n+\n+use ModUtil;\n+use SecurityUtil;\n+use System;\n+use DataUtil;\n+use StringUtil;\n+use Zikula_Core;\n+use Symfony\\Component\\Security\\Core\\Exception\\AccessDeniedException;\n+use Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException;\n+use Symfony\\Component\\HttpFoundation\\Request;\n+use Symfony\\Component\\HttpFoundation\\Response;\n+use Symfony\\Component\\HttpFoundation\\RedirectResponse;\n+use Symfony\\Component\\Routing\\RouterInterface;\n+use Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Route; // used in annotations - do not remove\n+use Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Method; // used in annotations - do not remove\n+use Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Template;\n+use Zikula\\Core\\Controller\\AbstractController;\n+use Zikula\\Bundle\\CoreBundle\\Console\\Application;\n+use Zikula\\Core\\Theme\\Annotation\\Theme;\n+use Symfony\\Component\\Console\\Input\\ArrayInput;\n+use JMS\\TranslationBundle\\Command\\ExtractTranslationCommand;\n+\n+\n+/**\n+ * @Route(\"/admininterface\")\n+ */\n+class AdminInterfaceController extends AbstractController\n+{\n+    /**\n+     * @Route(\"/categorymenu/{acid}\", requirements={\"acid\" = \"^[1-9]\\d*$\"})\n+     * @Method(\"GET\")\n+     *\n+     * @Template()\n+     * @Theme(\"admin\")\n+     *\n+     * Main category menu.\n+     *\n+     * @param integer $acid\n+     *\n+     * @return Response symfony response object\n+     */\n+    public function categorymenuAction($acid = null)\n+    {\n+    \t\n+    \tif (!SecurityUtil::checkPermission('ZikulaAdminModule::', '::', ACCESS_ADMIN)) {\n+    \t\tthrow new AccessDeniedException();\n+    \t}\n+    \t\n+        $acid = empty($acid) ? $this->getVar('startcategory') : $acid;\n+\n+        $master_request = $this->get('request_stack')->getMasterRequest();\n+        $caller = array();\n+        $caller['_zkModule'] = $master_request->attributes->get('_zkModule');\n+        $caller['_zkType'] = $master_request->attributes->get('_zkType');\n+        $caller['_zkFunc'] = $master_request->attributes->get('_zkFunc');\n+                \n+        // Get all categories\n+        $categories = array();\n+        $items = ModUtil::apiFunc('ZikulaAdminModule', 'admin', 'getall');\n+        foreach ($items as $item) {\n+            if (SecurityUtil::checkPermission('ZikulaAdminModule::', \"$item[name]::$item[cid]\", ACCESS_READ)) {\n+                $categories[] = $item;\n+            }\n+        }\n+\n+        // get admin capable modules\n+        $adminmodules = ModUtil::getModulesCapableOf('admin');\n+        $adminlinks = array();\n+\n+        foreach ($adminmodules as $adminmodule) {\n+            if (SecurityUtil::checkPermission(\"$adminmodule[name]::\", '::', ACCESS_EDIT)) {\n+                $catid = ModUtil::apiFunc('ZikulaAdminModule', 'admin', 'getmodcategory', array('mid' => $adminmodule['id']));\n+                $order = ModUtil::apiFunc('ZikulaAdminModule', 'admin', 'getSortOrder',\n+                                          array('mid' => ModUtil::getIdFromName($adminmodule['name'])));\n+                $menutexturl = isset($adminmodule['capabilities']['admin']['url'])\n+                    ? $adminmodule['capabilities']['admin']['url']\n+                    : $this->get('router')->generate($adminmodule['capabilities']['admin']['route']);\n+                $menutext = $adminmodule['displayname'];\n+                $menutexttitle = $adminmodule['description'];\n+                $adminlinks[$catid][] = array('menutexturl' => $menutexturl,\n+                        'menutext' => $menutext,\n+                        'menutexttitle' => $menutexttitle,\n+                        'modname' => $adminmodule['name'],\n+                        'order' => $order,\n+                        'id' => $adminmodule['id'],\n+                        'icon' =>  ModUtil::getModuleImagePath($adminmodule['name'])\n+                );\n+            }\n+        }\n+\n+        foreach ($adminlinks as &$item) {\n+            usort($item, 'Zikula\\AdminModule\\Controller\\AdminController::_sortAdminModsByOrder');\n+        }\n+\n+        $menuoptions = array();\n+        $possible_cids = array();\n+        $permission = false;\n+\n+        if (isset($categories) && is_array($categories)) {\n+            foreach ($categories as $category) {\n+                // only categories containing modules where the current user has permissions will\n+                // be shown, all others will be hidden\n+                // admin will see all categories\n+                if ( (isset($adminlinks[$category['cid']]) && count($adminlinks[$category['cid']]) )\n+                        || SecurityUtil::checkPermission('.*', '.*', ACCESS_ADMIN) ) {\n+                    $menuoption = array(\n+                        'url' => $this->get('router')->generate('zikulaadminmodule_admin_adminpanel', array('acid' => $category['cid'])),\n+                        'title' => $category['name'],\n+                        'description' => $category['description'],\n+                        'cid' => $category['cid']);\n+                    if (isset($adminlinks[$category['cid']])) {\n+                        $menuoption['items'] = $adminlinks[$category['cid']];\n+                    } else {\n+                        $menuoption['items'] = array();\n+                    }\n+                    $menuoptions[$category['cid']] = $menuoption;\n+                    $possible_cids[] = $category['cid'];\n+\n+                    if ($acid == $category['cid']) {\n+                        $permission =true;\n+                    }\n+                }\n+            }\n+        }\n+\n+        // if permission is false we are not allowed to see this category because its\n+        // empty and we are not admin\n+        if ($permission==false) {\n+            // show the first category\n+            $acid = !empty($possible_cids) ? (int)$possible_cids[0] : null;\n+        }\n+\n+        return ['currentcat' => $acid,\n+        \t\t'menuoptions' => $menuoptions,\n+        \t\t'caller' => $caller\n+        ];\n+    }\n+    \n+    \n+    /**\n+     * @Route(\"/notices\")\n+     *\n+     * @Template()\n+     * @Theme(\"admin\")\n+     *\n+     * Open the admin container\n+     *\n+     * @return Response symfony response object\n+     */\n+    public function noticesAction()\n+    {\n+    \t\n+    \tif (!SecurityUtil::checkPermission('ZikulaAdminModule::', '::', ACCESS_ADMIN)) {\n+    \t\tthrow new AccessDeniedException();\n+    \t}\n+    \t\n+    \t// security analyzer and update checker warnings\n+    \t$notices = array();\n+    \t$notices['security'] = $this->_securityanalyzer();\n+    \t$notices['update'] = $this->_updatecheck();\n+    \t$notices['developer'] = $this->_developernotices();\n+    \treturn ['notices' => $notices];\n+    }   \n+\n+    /**\n+     * @Route(\"/header\")\n+     *\n+     * @Template()\n+     * @Theme(\"admin\")\n+     *\n+     * Open the admin container\n+     *\n+     * @return Response symfony response object\n+     */\n+    public function headerAction()\n+    {\n+    \t$master_request = $this->get('request_stack')->getMasterRequest();\n+    \t$caller = array();\n+    \t$caller['_zkModule'] = $master_request->attributes->get('_zkModule');\n+    \t$caller['_zkType'] = $master_request->attributes->get('_zkType');    \t\n+    \t$caller['_zkFunc'] = $master_request->attributes->get('_zkFunc');\n+    \t\n+        return ['caller' => $caller];\n+    }\n+\n+    /**\n+     * @Route(\"/footer\")\n+     *\n+     * @Template()\n+     * @Theme(\"admin\")\n+     *\n+     * Close the admin container\n+     *\n+     * @return Response symfony response object\n+     */\n+    public function footerAction()\n+    {\n+        return ['symfonyversion' => \\Symfony\\Component\\HttpKernel\\Kernel::VERSION];\n+    }\n+\n+    /**\n+     * @Route(\"/help\")\n+     * \n+     * @Template()\n+     * @Theme(\"admin\")\n+     *\n+     * display the module help page\n+     *\n+     * @return Response symfony response object\n+     *\n+     * @throws AccessDeniedException Thrown if the user doesn't have admin permission to the module\n+     */\n+    public function helpAction()\n+    {\n+        if (!SecurityUtil::checkPermission('ZikulaAdminModule::', '::', ACCESS_ADMIN)) {\n+            throw new AccessDeniedException();\n+        }\n+\n+        return ['symfonyversion' => \\Symfony\\Component\\HttpKernel\\Kernel::VERSION];\n+    }\n+  \n+    /**\n+     * @Route(\"/moduleheader\")\n+     *\n+     * @Template()\n+     * @Theme()\n+     *\n+     * Open the admin container\n+     *\n+     * @return Response symfony response object\n+     */\n+    public function moduleheaderAction()\n+    {\n+    \t$master_request = $this->get('request_stack')->getMasterRequest();\n+    \t$caller = array();\n+    \t$caller['_zkModule'] = $master_request->attributes->get('_zkModule');\n+    \t$caller['_zkType'] = $master_request->attributes->get('_zkType');\n+    \t$caller['_zkFunc'] = $master_request->attributes->get('_zkFunc');\n+    \t$caller['info']= ModUtil::getInfoFromName($caller['_zkModule']); \n+    \t\n+    \treturn ['caller' => $caller, \t\n+    \t\t\t'setpagetitle' => false,\n+    \t\t\t'insertstatusmsg' => false,\n+    \t\t\t'userthemename' => false,\n+    \t\t\t'menufirst' => false,\n+    \t\t\t'type' => $master_request->attributes->get('_zkType'),\n+    \t\t\t'image' => ModUtil::getModuleImagePath($caller['_zkModule']),\n+    \t\t\t'title' => $caller['info']['displayname']\n+    \t];\n+    }\n+    \n+    /**\n+     * @Route(\"/modulelinks\")\n+     *\n+     * @Template()\n+     * @Theme()\n+     *\n+     * Open the admin container\n+     *\n+     * @return Response symfony response object\n+     */\n+    public function modulelinksAction()\n+    {\n+    \t$master_request = $this->get('request_stack')->getMasterRequest();\n+\n+    \t$params['modname'] = $master_request->attributes->get('_zkModule');\n+    \t$caller['_zkType'] = $master_request->attributes->get('_zkType');\n+    \t$caller['_zkFunc'] = $master_request->attributes->get('_zkFunc');\n+    \t    \t\n+    \t\n+    \t$menuLinks          = isset($params['links'])       ? $params['links'] : '';\n+    \t$menuId             = isset($params['menuid'])      ? $params['menuid'] : '';\n+    \t$menuClass          = isset($params['menuclass'])   ? $params['menuclass'] : 'navbar navbar-default navbar-modulelinks navbar-modulelinks-main';\n+    \t$menuItemClass      = isset($params['itemclass'])   ? $params['itemclass'] : '';\n+    \t$menuItemFirst      = isset($params['first'])       ? $params['first'] : '';\n+    \t$menuItemLast       = isset($params['last'])        ? $params['last'] : '';\n+    \t$returnAsArray      = isset($params['returnAsArray']) ? (boolean) $params['returnAsArray'] : false;\n+    \t\n+    \tif (empty($menuLinks)) {\n+    \t\tif (!isset($params['modname']) || !ModUtil::available($params['modname'])) {\n+    \t\t\t$params['modname'] = ModUtil::getName();\n+    \t\t}\n+    \t\n+    \t\t// check our module name\n+    \t\tif (!ModUtil::available($params['modname'])) {\n+    \t\t//\t$view->trigger_error('modulelinks: '.__f(\"Error! The '%s' module is not available.\", DataUtil::formatForDisplay($params['modname'])));\n+    \t\n+    \t\t\treturn false;\n+    \t\t}\n+    \t\n+    \t\t$params['type'] = isset($params['type']) ? $params['type'] : 'admin';\n+    \t\n+    \t\t// get the menu links\n+    \t\t// try the Core-2.0 way first, then try the legacy way.\n+    \t\t$menuLinks = $this->get('zikula.link_container_collector')->getLinks($params['modname'], $params['type']);\n+    \t\tif (empty($menuLinks)) {\n+    \t\t\t$menuLinks = ModUtil::apiFunc($params['modname'], $params['type'], 'getLinks', $params);\n+    \t\t}\n+    \t}\n+    \t\n+    \t// return if there are no links to print or template has requested to returnAsArray\n+    \tif ((!$menuLinks) || ($returnAsArray && isset($params['assign']))) {\n+    \t\tif (isset($params['assign'])) {\n+    \t\t\t//$view->assign($params['assign'], $menuLinks);","path":"src/system/AdminModule/Controller/AdminInterfaceController.php","position":318,"original_position":318,"commit_id":"7006b95f85b889d1cb13839d57edccc698028f9a","original_commit_id":"7006b95f85b889d1cb13839d57edccc698028f9a","user":{"login":"craigh","id":350048,"avatar_url":"https://avatars.githubusercontent.com/u/350048?v=3","gravatar_id":"","url":"https://api.github.com/users/craigh","html_url":"https://github.com/craigh","followers_url":"https://api.github.com/users/craigh/followers","following_url":"https://api.github.com/users/craigh/following{/other_user}","gists_url":"https://api.github.com/users/craigh/gists{/gist_id}","starred_url":"https://api.github.com/users/craigh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craigh/subscriptions","organizations_url":"https://api.github.com/users/craigh/orgs","repos_url":"https://api.github.com/users/craigh/repos","events_url":"https://api.github.com/users/craigh/events{/privacy}","received_events_url":"https://api.github.com/users/craigh/received_events","type":"User","site_admin":false},"body":"all 'assign' functionality can be removed.","created_at":"2015-11-22T21:14:06Z","updated_at":"2015-11-22T21:14:06Z","html_url":"https://github.com/zikula/core/pull/2648#discussion_r45564604","pull_request_url":"https://api.github.com/repos/zikula/core/pulls/2648","_links":{"self":{"href":"https://api.github.com/repos/zikula/core/pulls/comments/45564604"},"html":{"href":"https://github.com/zikula/core/pull/2648#discussion_r45564604"},"pull_request":{"href":"https://api.github.com/repos/zikula/core/pulls/2648"}}},"pull_request":{"url":"https://api.github.com/repos/zikula/core/pulls/2648","id":51471180,"html_url":"https://github.com/zikula/core/pull/2648","diff_url":"https://github.com/zikula/core/pull/2648.diff","patch_url":"https://github.com/zikula/core/pull/2648.patch","issue_url":"https://api.github.com/repos/zikula/core/issues/2648","number":2648,"state":"open","locked":false,"title":"AdminModule AdminInterfaceController - twig","user":{"login":"Kaik","id":966910,"avatar_url":"https://avatars.githubusercontent.com/u/966910?v=3","gravatar_id":"","url":"https://api.github.com/users/Kaik","html_url":"https://github.com/Kaik","followers_url":"https://api.github.com/users/Kaik/followers","following_url":"https://api.github.com/users/Kaik/following{/other_user}","gists_url":"https://api.github.com/users/Kaik/gists{/gist_id}","starred_url":"https://api.github.com/users/Kaik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kaik/subscriptions","organizations_url":"https://api.github.com/users/Kaik/orgs","repos_url":"https://api.github.com/users/Kaik/repos","events_url":"https://api.github.com/users/Kaik/events{/privacy}","received_events_url":"https://api.github.com/users/Kaik/received_events","type":"User","site_admin":false},"body":"| Q                 | A\r\n| ----------------- | ---\r\n| Bug fix?          | no\r\n| New feature?      | yes\r\n| BC breaks?        | no*\r\n| Deprecations?     | no\r\n| Tests pass?       | no\r\n| Fixed tickets     | \r\n| Refs tickets      | #1753 \r\n| License           | MIT\r\n| Doc PR            | -\r\n| Changelog updated | [no]\r\n\r\nAdminInteraceController for new spec 2.0 modules using AbstractController and Twig.\r\n\r\nPlease take a look on it you can test it with this https://github.com/Kaik/core/tree/admin_settings_multilingual\r\n\r\nUsage\r\n\r\n```{{ render(controller('ZikulaAdminModule:AdminInterface:header')) }} ```\r\n\r\nThis is still not finished do not merge.\r\nTasks\r\n- [ ] Move security etc private functions somewhere?..\r\n- [ ] Split notices into separate functions\r\n- [ ] Move breadcrumbs to separate function\r\n- [ ] Find place for moduleheader and modulelinks Extensions? module ModuleInterfaceController?..\r\n- [ ] AdminTab's breadcrumb's etc css and js improvements\r\n- [ ] Improvements\r\n...?","created_at":"2015-11-22T18:40:57Z","updated_at":"2015-11-22T21:14:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7843a6ce9981750b3f49fa8eff7eb2b75f976eef","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/zikula/core/pulls/2648/commits","review_comments_url":"https://api.github.com/repos/zikula/core/pulls/2648/comments","review_comment_url":"https://api.github.com/repos/zikula/core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zikula/core/issues/2648/comments","statuses_url":"https://api.github.com/repos/zikula/core/statuses/7006b95f85b889d1cb13839d57edccc698028f9a","head":{"label":"Kaik:admin_module_twig","ref":"admin_module_twig","sha":"7006b95f85b889d1cb13839d57edccc698028f9a","user":{"login":"Kaik","id":966910,"avatar_url":"https://avatars.githubusercontent.com/u/966910?v=3","gravatar_id":"","url":"https://api.github.com/users/Kaik","html_url":"https://github.com/Kaik","followers_url":"https://api.github.com/users/Kaik/followers","following_url":"https://api.github.com/users/Kaik/following{/other_user}","gists_url":"https://api.github.com/users/Kaik/gists{/gist_id}","starred_url":"https://api.github.com/users/Kaik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kaik/subscriptions","organizations_url":"https://api.github.com/users/Kaik/orgs","repos_url":"https://api.github.com/users/Kaik/repos","events_url":"https://api.github.com/users/Kaik/events{/privacy}","received_events_url":"https://api.github.com/users/Kaik/received_events","type":"User","site_admin":false},"repo":{"id":22928144,"name":"core","full_name":"Kaik/core","owner":{"login":"Kaik","id":966910,"avatar_url":"https://avatars.githubusercontent.com/u/966910?v=3","gravatar_id":"","url":"https://api.github.com/users/Kaik","html_url":"https://github.com/Kaik","followers_url":"https://api.github.com/users/Kaik/followers","following_url":"https://api.github.com/users/Kaik/following{/other_user}","gists_url":"https://api.github.com/users/Kaik/gists{/gist_id}","starred_url":"https://api.github.com/users/Kaik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kaik/subscriptions","organizations_url":"https://api.github.com/users/Kaik/orgs","repos_url":"https://api.github.com/users/Kaik/repos","events_url":"https://api.github.com/users/Kaik/events{/privacy}","received_events_url":"https://api.github.com/users/Kaik/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Kaik/core","description":"Zikula Core Framework","fork":true,"url":"https://api.github.com/repos/Kaik/core","forks_url":"https://api.github.com/repos/Kaik/core/forks","keys_url":"https://api.github.com/repos/Kaik/core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Kaik/core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Kaik/core/teams","hooks_url":"https://api.github.com/repos/Kaik/core/hooks","issue_events_url":"https://api.github.com/repos/Kaik/core/issues/events{/number}","events_url":"https://api.github.com/repos/Kaik/core/events","assignees_url":"https://api.github.com/repos/Kaik/core/assignees{/user}","branches_url":"https://api.github.com/repos/Kaik/core/branches{/branch}","tags_url":"https://api.github.com/repos/Kaik/core/tags","blobs_url":"https://api.github.com/repos/Kaik/core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Kaik/core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Kaik/core/git/refs{/sha}","trees_url":"https://api.github.com/repos/Kaik/core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Kaik/core/statuses/{sha}","languages_url":"https://api.github.com/repos/Kaik/core/languages","stargazers_url":"https://api.github.com/repos/Kaik/core/stargazers","contributors_url":"https://api.github.com/repos/Kaik/core/contributors","subscribers_url":"https://api.github.com/repos/Kaik/core/subscribers","subscription_url":"https://api.github.com/repos/Kaik/core/subscription","commits_url":"https://api.github.com/repos/Kaik/core/commits{/sha}","git_commits_url":"https://api.github.com/repos/Kaik/core/git/commits{/sha}","comments_url":"https://api.github.com/repos/Kaik/core/comments{/number}","issue_comment_url":"https://api.github.com/repos/Kaik/core/issues/comments{/number}","contents_url":"https://api.github.com/repos/Kaik/core/contents/{+path}","compare_url":"https://api.github.com/repos/Kaik/core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Kaik/core/merges","archive_url":"https://api.github.com/repos/Kaik/core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Kaik/core/downloads","issues_url":"https://api.github.com/repos/Kaik/core/issues{/number}","pulls_url":"https://api.github.com/repos/Kaik/core/pulls{/number}","milestones_url":"https://api.github.com/repos/Kaik/core/milestones{/number}","notifications_url":"https://api.github.com/repos/Kaik/core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Kaik/core/labels{/name}","releases_url":"https://api.github.com/repos/Kaik/core/releases{/id}","created_at":"2014-08-13T19:20:57Z","updated_at":"2014-11-30T12:47:58Z","pushed_at":"2015-11-22T20:34:42Z","git_url":"git://github.com/Kaik/core.git","ssh_url":"git@github.com:Kaik/core.git","clone_url":"https://github.com/Kaik/core.git","svn_url":"https://github.com/Kaik/core","homepage":"http://zikula.org/","size":54827,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"1.4"}},"base":{"label":"zikula:1.4","ref":"1.4","sha":"b4216a7c5556ad665411eca7bade10e60a647b00","user":{"login":"zikula","id":251211,"avatar_url":"https://avatars.githubusercontent.com/u/251211?v=3","gravatar_id":"","url":"https://api.github.com/users/zikula","html_url":"https://github.com/zikula","followers_url":"https://api.github.com/users/zikula/followers","following_url":"https://api.github.com/users/zikula/following{/other_user}","gists_url":"https://api.github.com/users/zikula/gists{/gist_id}","starred_url":"https://api.github.com/users/zikula/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zikula/subscriptions","organizations_url":"https://api.github.com/users/zikula/orgs","repos_url":"https://api.github.com/users/zikula/repos","events_url":"https://api.github.com/users/zikula/events{/privacy}","received_events_url":"https://api.github.com/users/zikula/received_events","type":"Organization","site_admin":false},"repo":{"id":781544,"name":"core","full_name":"zikula/core","owner":{"login":"zikula","id":251211,"avatar_url":"https://avatars.githubusercontent.com/u/251211?v=3","gravatar_id":"","url":"https://api.github.com/users/zikula","html_url":"https://github.com/zikula","followers_url":"https://api.github.com/users/zikula/followers","following_url":"https://api.github.com/users/zikula/following{/other_user}","gists_url":"https://api.github.com/users/zikula/gists{/gist_id}","starred_url":"https://api.github.com/users/zikula/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zikula/subscriptions","organizations_url":"https://api.github.com/users/zikula/orgs","repos_url":"https://api.github.com/users/zikula/repos","events_url":"https://api.github.com/users/zikula/events{/privacy}","received_events_url":"https://api.github.com/users/zikula/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zikula/core","description":"Zikula Core Framework","fork":false,"url":"https://api.github.com/repos/zikula/core","forks_url":"https://api.github.com/repos/zikula/core/forks","keys_url":"https://api.github.com/repos/zikula/core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zikula/core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zikula/core/teams","hooks_url":"https://api.github.com/repos/zikula/core/hooks","issue_events_url":"https://api.github.com/repos/zikula/core/issues/events{/number}","events_url":"https://api.github.com/repos/zikula/core/events","assignees_url":"https://api.github.com/repos/zikula/core/assignees{/user}","branches_url":"https://api.github.com/repos/zikula/core/branches{/branch}","tags_url":"https://api.github.com/repos/zikula/core/tags","blobs_url":"https://api.github.com/repos/zikula/core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zikula/core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zikula/core/git/refs{/sha}","trees_url":"https://api.github.com/repos/zikula/core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zikula/core/statuses/{sha}","languages_url":"https://api.github.com/repos/zikula/core/languages","stargazers_url":"https://api.github.com/repos/zikula/core/stargazers","contributors_url":"https://api.github.com/repos/zikula/core/contributors","subscribers_url":"https://api.github.com/repos/zikula/core/subscribers","subscription_url":"https://api.github.com/repos/zikula/core/subscription","commits_url":"https://api.github.com/repos/zikula/core/commits{/sha}","git_commits_url":"https://api.github.com/repos/zikula/core/git/commits{/sha}","comments_url":"https://api.github.com/repos/zikula/core/comments{/number}","issue_comment_url":"https://api.github.com/repos/zikula/core/issues/comments{/number}","contents_url":"https://api.github.com/repos/zikula/core/contents/{+path}","compare_url":"https://api.github.com/repos/zikula/core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zikula/core/merges","archive_url":"https://api.github.com/repos/zikula/core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zikula/core/downloads","issues_url":"https://api.github.com/repos/zikula/core/issues{/number}","pulls_url":"https://api.github.com/repos/zikula/core/pulls{/number}","milestones_url":"https://api.github.com/repos/zikula/core/milestones{/number}","notifications_url":"https://api.github.com/repos/zikula/core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zikula/core/labels{/name}","releases_url":"https://api.github.com/repos/zikula/core/releases{/id}","created_at":"2010-07-18T10:35:53Z","updated_at":"2015-11-05T09:38:57Z","pushed_at":"2015-11-22T18:40:59Z","git_url":"git://github.com/zikula/core.git","ssh_url":"git@github.com:zikula/core.git","clone_url":"https://github.com/zikula/core.git","svn_url":"https://github.com/zikula/core","homepage":"http://zikula.org/","size":65911,"stargazers_count":167,"watchers_count":167,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":75,"mirror_url":null,"open_issues_count":147,"forks":75,"open_issues":147,"watchers":167,"default_branch":"1.4"}},"_links":{"self":{"href":"https://api.github.com/repos/zikula/core/pulls/2648"},"html":{"href":"https://github.com/zikula/core/pull/2648"},"issue":{"href":"https://api.github.com/repos/zikula/core/issues/2648"},"comments":{"href":"https://api.github.com/repos/zikula/core/issues/2648/comments"},"review_comments":{"href":"https://api.github.com/repos/zikula/core/pulls/2648/comments"},"review_comment":{"href":"https://api.github.com/repos/zikula/core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zikula/core/pulls/2648/commits"},"statuses":{"href":"https://api.github.com/repos/zikula/core/statuses/7006b95f85b889d1cb13839d57edccc698028f9a"}}}}