Get the reason why the copy-all operation can't be performed (NOTE: this DOES NOT include the checks performed in the whyCantCopy() method).

@return string empty string if the operation CAN be performed
489789
protected function whyCantCopyAll()
    {
        $u = $this->app->make(User::class);
        if (!$u->isSuperUser() && $this->isSomeOriginalPageAnAlias()) {
            return t('Only the administrator can copy aliased pages.');
        }
        $destinationPageID = $this->getDestinationPage()->getCollectionID();
        $somePageWithChildren = false;
        foreach ($this->getOriginalPages() as $originalPage) {
            if ($originalPage->getCollectionID() == $destinationPageID) {
                return t('It\'s not possible to copy the page "%s" and its child pages under the page itself.', $originalPage->getCollectionName());
            }
            if (in_array($destinationPageID, $originalPage->getCollectionChildrenArray())) {
                return t('It\'s not possible to copy the page "%s" and its child pages under one of its child pages.', $originalPage->getCollectionName());
            }
            if ($somePageWithChildren === false && !$originalPage->isAliasPageOrExternalLink() && $originalPage->getNumChildrenDirect() > 0) {
                $somePageWithChildren = true;
            }
        }
        if ($somePageWithChildren === false) {
            return count($this->getOriginalPages()) === 1 ? t("The page doesn't have any child pages.") : t("The pages don't have any child pages.");
        }

        return '';
    }
1134211
public function getWhereStatement()
    {
        if (empty($this->where)) {
            return false;
        }
        $this->where[0]['operation'] = null;
        $str = '';
        foreach ($this->where as $clause) {
            $str .= trim("{$clause['operation']} {$clause['condition']}");
            $str .= " ";
        }

        return trim($str);
    }
43990
public function copy()
	{
		$view = $this->getView();

		try
		{
			$view->productListTypes = $this->getListTypes();
			$view->productBody = '';

			foreach( $this->getSubClients() as $client ) {
				$view->productBody .= $client->copy();
			}
		}
		catch( \Aimeos\MShop\Exception $e )
		{
			$error = array( 'customer-product' => $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
			$view->errors = $view->get( 'errors', [] ) + $error;
			$this->logException( $e );
		}
		catch( \Exception $e )
		{
			$error = array( 'customer-product' => $e->getMessage() . ', ' . $e->getFile() . ':' . $e->getLine() );
			$view->errors = $view->get( 'errors', [] ) + $error;
			$this->logException( $e );
		}

		return $this->render( $view );
	}
523563
public function getAllTxrefs()
    {
        $allTxrefs = array();
        if (is_array($this->txrefs)) {
            $allTxrefs = array_merge($allTxrefs, $this->txrefs);
        }
        if (is_array($this->unconfirmed_txrefs)) {
            $allTxrefs = array_merge($allTxrefs, $this->unconfirmed_txrefs);
        }

        if (count($allTxrefs) == 0)
            return null;
        else
            return $allTxrefs;
    }
801875
protected function validateDestinationDirectoryCopy()
    {
        if ($this->isError()) {
            return null;
        }

        $initial_path = $this->scanner->getInitialPath(true);
        $directory = gplcart_path_normalize("$initial_path/" . $this->getSubmitted('destination'));

        if (!file_exists($directory) && !mkdir($directory, 0777, true)) {
            $this->setError('destination', $this->translation->text('Destination does not exist'));
            return false;
        }

        if (!is_dir($directory)) {
            $this->setError('destination', $this->translation->text('Destination is not a directory'));
            return false;
        }

        if (!is_writable($directory)) {
            $this->setError('destination', $this->translation->text('Directory is not writable'));
            return false;
        }

        $this->setSubmitted('directory', $directory);
        return true;
    }
1229518
public function getFullIsoDescription()
    {
        $region = $this->getRegionName();
        $variant = $this->getVariantName();

        return $this->getFullIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');
    }
468548
public function toString()
    {
        ob_start();

        printf(
            "%s:\n\nMessage:\n\t%s\n\n" . "In file '%s' on line %s.\n\n",
            $this->getSeverityString(),
            $this->message,
            $this->file,
            $this->line
        );

        echo "Stack Trace:\n";
        $count = count($this->backtrace);

        foreach ($this->backtrace as $entry) {
            $class = array_key_exists('class', $entry) ? $entry['class'] : null;

            $function = array_key_exists('function', $entry)
                ? $entry['function']
                : null;

            if (array_key_exists('args', $entry)) {
                $arguments = $this->getArguments(
                    $entry['args'],
                    $function,
                    $class
                );
            } else {
                $arguments = '';
            }

            printf(
                "%s. In file '%s' on line %s.\n%sMethod: %s%s%s(%s)\n",
                str_pad(--$count, 6, ' ', STR_PAD_LEFT),
                array_key_exists('file', $entry) ? $entry['file'] : 'unknown',
                array_key_exists('line', $entry) ? $entry['line'] : 'unknown',
                str_repeat(' ', 8),
                $class === null ? '' : $class,
                array_key_exists('type', $entry) ? $entry['type'] : '',
                $function === null ? '' : $function,
                $arguments
            );
        }

        echo "\n";

        return ob_get_clean();
    }
953685
public function getMsisdn()
    {
        $this->debug->debug(__FUNCTION__, 'isMobile: ' . $this->mDetect->isMobile());
        $this->debug->debug(__FUNCTION__, 'isTablet: ' . $this->mDetect->isTablet());
        try {
            if ($this->mDetect->isMobile() || $this->mDetect->isTablet()) {
                $msisdn = $this->MSISDN->getMsisdn();
                $this->debug->info(__FUNCTION__, 'MSISDN: ' . json_encode($msisdn));

                return $msisdn;
            }
        }
        catch (\Exception $e) {
            $message = 'Error File: ' . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage();
            $this->debug->error(__FUNCTION__, $message);

            return NULL;
        }
        $this->debug->info(__FUNCTION__, 'MSISDN is Null');

        return NULL;
    }
300050
public function getVerbose()
    {
        $field = EnumRequestOption::VERBOSE;
        return isset($this->options[$field]) ? $this->options[$field] : false;
    }
1003124
public function getContent_copied()
    {
        $attr = '';
        $cntattr = count($this->attribute);
        $count = ($this->separatorCount >= $cntattr) ? ($cntattr - 1) : $this->separatorCount;
        $content = '';

        for ($i = 0; $i <= $count; $i++) {
            if (in_array($this->attribute[$i], $this->ignoreAttribute))
                continue;
            if ($this->attribute[$i] != '$$') {
                $attr .= ' ' . $this->attribute[$i] . '="' . $this->wikiContentArr[$i] . '"';
            } else {
                $content = $this->contents[$i];
            }
        }

        foreach ($this->additionnalAttributes as $name => $value) {
            $attr .= ' ' . $name . '="' . htmlspecialchars($value) . '"';
        }

        return '<' . $this->name . $attr . '>' . $content . '</' . $this->name . '>';
    }
1160421
public function getArrayCopy()
    {
        $obj_vars = get_object_vars($this);
        // keeping the object in each element produce an infinite loop...
        if (isset($obj_vars['object'])) {
            $obj_vars['object'] = $obj_vars['object']->getCode();
        }

        return $obj_vars;
    }
236935
public function getAllowedUploadableExtension()
    {
        $config = $this->getServiceLocator()->get('MelisCoreConfig');
        $path   = $config->getItem('meliscore/interface/meliscore_leftmenu/interface/meliscore_toolstree_section/interface/meliscore_tool_system_config/interface/meliscore_tool_platform_scheme');
        $ext    = null;


        if($path) {
            $ext = isset($path['datas']['allowed_file_extension']) ? $path['datas']['allowed_file_extension'] : 'jpeg,jpg,png,svg,ico,gif';
        }

        return $ext;
    }
87878
public function getDebugLocation()
    {
        $location = '';
        if ($this->class && ($this->method || $this->property)) {
            $location .= $this->fullyQualifiedName($this->class);
            if ($this->method) {
                $location .= ($this->static ? '::' : '->') . $this->method . '()';
            } elseif ($this->property) {
                $location .= ($this->static ? '::$' : '->') . $this->property;
            }
        }
        if ($this->filename) {
            if ($location !== '') {
                $location .= ' in ';
            }
            $location .= $this->filename;
        }
        if ($this->line) {
            if ($location !== '') {
                $location .= ' on';
            }
            $location .= ' line ' . $this->line;
            if ($this->character) {
                $location .= ':' . $this->character;
            }
        }

        return $location;
    }
55609
public function serializeOperations()
    {
        $datas = array();

        foreach ($this->operations as $operation) {
            $method = $operation[0];
            $args = $operation[1];

            foreach ($args as &$arg) {
                if ($arg instanceof self) {
                    $arg = $arg->getHash();
                }
            }

            $datas[] = array($method, $args);
        }

        return serialize($datas);
    }
863423
public function getOperatedBy() {
        $operatedBy = $this->getOption(static::OPERATED_BY);
        $operatedBy['name']  = empty($operatedBy['name'])  ? '' : $operatedBy['name'];
        $operatedBy['email'] = empty($operatedBy['email']) ? '' : $operatedBy['email'];
        return $operatedBy;
    }
1159216
public function getFullMessage(): string {
        $paras = [];

        if (!empty($this->getMainMessage())) {
            $paras[] = $this->getMainMessage();
        } elseif ($this->getErrorCount() === 0) {
            return '';
        }

        if (isset($this->errors[''])) {
            $paras[] = $this->formatErrorList('', $this->errors['']);
        }

        foreach ($this->errors as $field => $errors) {
            if ($field === '') {
                continue;
            }
            $paras[] = $this->formatErrorList($field, $errors);
        }

        $result = implode("\n\n", $paras);
        return $result;
    }
257586
public function getCondensed()
    {
        if ($this->version === 4) {
            return $this->value;
        }

        $addr = preg_replace('/(^|:)0+(\d)/', '\1\2', $this->getExpanded());

        if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $addr, $matches, PREG_OFFSET_CAPTURE)) {
            $max = 0;
            $pos = null;

            foreach ($matches[0] as $match) {
                if (strlen($match[0]) > $max) {
                    $max = mb_strlen($match[0]);
                    $pos = $match[1];
                }
            }

            $addr = substr_replace($addr, '::', $pos, $max);
        }

        return $addr;
    }