Added 'sync all', improved behavior, fixes
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / package / plugin / MenuItemPackageInstallationPlugin.class.php
index 1720f6a80cbf2eb7827bdc09e2bc24b7e85a9c54..2f6ad07e7dc7237826f843c78a1bc267b31795c9 100644 (file)
@@ -2,6 +2,7 @@
 namespace wcf\system\package\plugin;
 use wcf\data\menu\item\MenuItem;
 use wcf\data\menu\item\MenuItemEditor;
+use wcf\system\devtools\pip\IIdempotentPackageInstallationPlugin;
 use wcf\system\exception\SystemException;
 use wcf\system\WCF;
 
@@ -9,14 +10,12 @@ use wcf\system\WCF;
  * Installs, updates and deletes menu items.
  * 
  * @author     Alexander Ebert
- * @copyright  2001-2016 WoltLab GmbH
+ * @copyright  2001-2017 WoltLab GmbH
  * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
- * @package    com.woltlab.wcf
- * @subpackage acp.package.plugin
- * @category   Community Framework
- * @since      2.2
+ * @package    WoltLabSuite\Core\Acp\Package\Plugin
+ * @since      3.0
  */
-class MenuItemPackageInstallationPlugin extends AbstractXMLPackageInstallationPlugin {
+class MenuItemPackageInstallationPlugin extends AbstractXMLPackageInstallationPlugin implements IIdempotentPackageInstallationPlugin {
        /**
         * @inheritDoc
         */
@@ -197,11 +196,18 @@ class MenuItemPackageInstallationPlugin extends AbstractXMLPackageInstallationPl
                        WHERE   " . ($parentItemID === null ? 'menuID' : 'parentItemID') . " = ?";
                $statement = WCF::getDB()->prepareStatement($sql, 1);
                $statement->execute([
-                       ($parentItemID === null ? $menuID : $parentItemID)
+                       $parentItemID === null ? $menuID : $parentItemID
                ]);
                
                $row = $statement->fetchSingleRow();
                
                return (!$row['showOrder']) ? 1 : $row['showOrder'] + 1;
        }
+       
+       /**
+        * @inheritDoc
+        */
+       public static function getSyncDependencies() {
+               return ['language'];
+       }
 }