Seite 1 von 1

das FoR Slack Universum und der ganze Rest

Verfasst: 22. Dez 2017, 00:59
von Koala
Da Slack eher an einen an Alzheimer erkrankten Professor erinnert, sollte man daran gehen, die derzeit eher flüchtigen Informationen in bleibendere zu überführen. Zumindest dann, wenn es konkrete Lösungen zu Fragen gibt.
Ausserdem ist die SuFu hier besser :D


Eine typisches Antwort/Frage Spiel mit dem Slackbot:
  • GH
    Geht.
  • slackbot Custom Response
    Geht nicht?
  • HM
    Geht.
  • slackbot Custom Response
    Geht nicht?
  • GH
    Doch doch, geht!
  • slackbot Custom Response
    Geht?
  • TS
    Geht
  • HM
    Sicher das es geht?
  • slackbot Custom Response
    Geht nicht.
  • PS
    Der Slackbot ist heut wieder so anti.
:lol:

im Frontend die Backend-Session abgreifen

Verfasst: 22. Dez 2017, 01:07
von Koala
Ist im Frontend die Backend-Session abgreifbar, sprich, könnte man im Frontend prüfen, ob der aufrufende Mensch eingeloggt ist und dessen Rechte abfragen?
  • Code: Alles auswählen

    $user = rex_backend_login::createUser();
    if ($user && $user->isAdmin()) {
    $admin = true;
    } else {
    $admin = false;
    }
  • Genau so. und statt isAdmin kann man halt auch hasPerm() etc. nutzen
  • Wenn man nur wissen möchte, ob überhaupt jemand eingeloggt ist, dann besser die methode: https://github.com/FriendsOfREDAXO/acce ... ot.php#L20
  • weil rex_backend_login::createUser(); erstellt eine Session im Frontend
  • Das macht hasSession allerdings auch. denn ohne session_start() kann die methode hasSession() nicht wissen, ob es einen backend-user gibt. Ob die Session gestart wurde oder nicht, sagt ja darüber nichts aus, ob in der Session ein Backend-user hinterlegt ist. das sieht man ja erst, wenn die session gestart wurde.Der Overhead, der bei hasSession() wegfällt gegenüber createUser(), ist der abruf der userdaten aus der db und die erstellung des User-Objekts.
  • createUser cacht aber den User, falls schon von irgendweinem anderen addon angefordert. ein mehrmaliger aufruf der funktion schadet also nicht.

So kommst du an den Startartikel des aktuellen Mointpoints

Verfasst: 24. Dez 2017, 00:10
von Koala
Gegeben: yrewrite als Multidomain Umgebung

So kommst du an den Startartikel (die Artikel-ID) des aktuellen Mointpoints:

Code: Alles auswählen

rex_yrewrite::getCurrentDomain()->getMountId()

Re: das FoR Slack Universum und der ganze Rest

Verfasst: 29. Dez 2017, 21:11
von Thomas.Skerbis
Hi Koala. Sowas gerne hier sammeln: https://github.com/FriendsOfREDAXO/tricks

Re: das FoR Slack Universum und der ganze Rest

Verfasst: 2. Jan 2018, 23:44
von Koala
Thomas.Skerbis hat geschrieben:
29. Dez 2017, 21:11
Sowas gerne hier sammeln: https://github.com/FriendsOfREDAXO/tricks
https://friendsofredaxo.github.io/tricks/
Ganz großer Nachteil der Seite ist, es gibt keine SuFu (so weit ich das sehe). Das Eintragen bedarf ebenfalls eines deutlich größeren Aufwandes, als hier im Forum.

Re: das FoR Slack Universum und der ganze Rest

Verfasst: 3. Jan 2018, 10:23
von ds
Der Link, den du erhalten hast, führt auf eine generierte Website. Das Repo, aus dem die Website generiert wird, liegt bei GitHub, und dort kannst du oben den Suchschlitz (»This repository«) benutzen: https://github.com/FriendsOfREDAXO/tricks

(Aber du hast natürlich recht, es ist nicht so einfach befüllbar wie das Forum.)

Datepicker mit yform tools plugin generieren

Verfasst: 4. Jan 2018, 00:08
von Koala
Frage: Was mache ich falsch?
Ich habe das yform tools plugin installiert und versucht, ein Feld mit Datepicker wie folgt zu generieren:

Code: Alles auswählen

text|datum|Datum|||{"data-yform-tools-datepicker":"YYYY-MM-DD"}|
Antwort:
Die Tools funktionieren nur im Backend. Im Frontend müsstest Du die JS noch separat einbinden

Wie komme ich an den Medientitel?

Verfasst: 7. Jan 2018, 00:13
von Koala
Frage:
Wie komme ich an den Medientitel?

Code: Alles auswählen

## Erstellen der Mediendatei
$media = rex_media_manager::create($type, $file1)->getMedia();
$media->getFormat(); // Informationen zum Format ermitteln
$media->getWidth(); // Breite auslesen
$media->getHeight(); // Höhe auslesen
$media->getHeader(); // Header-Informationen auslesen > Array
### Missing !!!
// echo $media->getTitle(); // funkt nicht
Antwort:

Code: Alles auswählen

$pic = "meinbild.jpg"
$file = rex_media::get($pic);
        if ($file instanceof rex_media) {
            $title = $file->getTitle();
        ...            

Ist der aktuelle Artikel ein Startartikel der Kategorie?

Verfasst: 7. Jan 2018, 00:44
von Koala
Frage
Wie heißt denn in Redaxo5 die Funktion, die herausfindet, ob der aktuelle Artikel Startartikel der Kategorie ist?
$this->isStartArticle() funktioniert wohl nicht.

Antwort

Code: Alles auswählen

rex_article::getCurrent()->isStartArticle();

Theme-AddOn - wo eigene Styles ablegen?

Verfasst: 11. Jan 2018, 01:08
von Koala
Frage:
Theme-AddOn: Wo genau muss ich die backend.css mit meinen zusätzlichen Styles ablegen?
Ich verstand die Doku so, dass ich es unter theme > public > assets > backend > backend.css ablegen muss.

Antwort:
Im Theme AddOn - Einstellungen gibt es eine Option die aktiviert werden muss: "JS/CSS-Dateien im Backend laden" .. dann sind diese auch im Quelltext / Backend zu sehen

Hausmittel um die beiden Parameter sauber umzuschreiben

Verfasst: 13. Jun 2018, 12:03
von cukabeka
Frage
zum Thema Parameter und Rewriting. Vielleicht hat ja jemand einen einfachen Tipp. Ich habe eine Redaxo 5 Instanz mit einer Suche mit der zwei Parameter übergeben werden. Gibt es ein Hausmittel mit dem ich die beiden Parameter sauber umschreiben kann?

Antwort (awalter):
.htaccess Rewrite, bspw.

Code: Alles auswählen

`https://domain.de/suche/wert1/wert2/`
```RewriteRule ^suche/([^/]*)/([^/]*) %{ENV:BASE}/suchergebnisartikel/?param1=$1&param2=$2```
(ungetestet)

REDAXO-Version (4.3-4.7, 5.0-5.6) ist zu welchen Systemanforderungen kompatibel

Verfasst: 13. Jun 2018, 16:00
von cukabeka
Frage
welche REDAXO-Version (4.3-4.7, 5.0-5.6) ist zu welchen Systemanforderungen kompatibel ist.

Antwort
R4.7 kann aber auch PHP7.0, R5.5 kann kein PHP7.2 bspw.
5.5 läuft bei mir auf 7.2
R4.3/4.4: min php 4.3.2, max 5.6
R4.5/4.6: min php 5.3, max 5.6
R4.7: min php 5.3
R5: min php 5.5

Redactor Addon mit einem YFORM Plugin erweitern

Verfasst: 17. Jun 2018, 00:08
von cukabeka
Frage
Wie kann ich Verlinkungen zu YForm-Datensätzen für Editoren generieren?

Antwort Danke @blumbeet :)
yform_group_link.js

Code: Alles auswählen

$.Redactor.prototype.yform_group_link = function () {
  return {
    langs: {
      de: {
        "yform_group_link": "YForm Link",
        "yform_group_link_table_1": "Tabelle 1",
        "yform_group_link_table_2": "Tabelle 2"
      },
      en: {
        "yform_group_link": "YForm Link",
        "yform_group_link_table_1": "Table 1",
        "yform_group_link_table_2": "Table 2"
      }
    },
    init: function () {
      if (!this.opts.yform_group_link) return;
      var yform_group_link = this.opts.yform_group_link;
​
      var that = this;
      var dropdown = {};
​
      if (yform_group_link.indexOf("table1") != -1) {
        dropdown.table_1 = {
          title: that.lang.get('yform_group_link_table_1'),
          func: that.yform_group_link.showTable1
        };
      }
      if (yform_group_link.indexOf("table2") != -1) {
        dropdown.table_2 = {
          title: that.lang.get('yform_group_link_table_2'),
          func: that.yform_group_link.showTable2
        };
      }
      var button = this.button.add('yform_group_link', this.lang.get('yform_group_link'));
      this.button.setIcon(button, '<i class="fa fa-link"></i> YForm');
      this.button.addDropdown(button, dropdown);
    },
    showTable1: function () {
      var that = this;
      var pool = newPoolWindow('index.php?page=yform/manager/data_edit&table_name=rex_table_1&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]=title_1&rex_yform_manager_opener[multiple]=0');
      $(pool).on('rex:YForm_selectData', function (event, filename) {
        event.preventDefault();
        pool.close();
        that.yform_group_link.set(filename, 'table-1');
      });
    },
    showTable2: function () {
      var that = this;
      var pool = newPoolWindow('index.php?page=yform/manager/data_edit&table_name=rex_table_2&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]=lastname&rex_yform_manager_opener[multiple]=0');
      $(pool).on('rex:YForm_selectData', function (event, filename) {
        event.preventDefault();
        pool.close();
        that.yform_group_link.set(filename, 'table-2');
      });
    },
    set: function (filename, key) {
      var selectedText = this.selection.text();
​
      var linktext = filename;
      if (selectedText != '') {
        linktext = selectedText;
      }
      this.insert.html('<a href="' + key + '://' + filename + '">' + linktext + '</a>');
    }
  };
};

Im Project AddOn unter “assets/redactor2” ablegen und dann im Redactorprofil das eintragen

yform_group_link[table1|table2]:addons/project/redactor2/yform_group_link.js

Error 500 bei Intranet / MAMP Installation

Verfasst: 18. Jun 2018, 18:58
von cukabeka
Frage
Wie Bekomme ich REX5 auf MAMP zum laufen?

Thread
Der 500 kommt auch, wenn keine .htaccess vorhanden ist..

welche php-version läuft denn?

PHP 7.2.1, Apache 2.2.31

hm, eigenartig. ich persönlich würde jetzt mal schritt für schritt die boot.php debuggen. (redaxo/redaxo/src/core/boot.php)
ganz oben mal was per echo ausgeben lassen und `exit` hinterher. und dann nach und nach tiefer schieben und schauen, bis wohin es noch funktioniert.


irgendwelche fehler in logfiles von redaxo oder php oder webserver?

das habe ich schon gemacht, es stoppt beim letzten Schritt:
require rex_path::core(rex::isBackend() ? ‘backend.php’ : ‘frontend.php’);

hast du die installation einfach draufkopiert oder dort auch ein setup durchlaufen?
mit R5.6 könntest du z.b. den servercheck via console machen
https://redaxo.org/cms/news/redaxo-56-veroeffentlicht/
aber prinzipiell würde ich erstmal logfiles anschauen

die phperror.log sagt tatsächlich, dass die db nicht konnektiert werden konnte.. das gibt doch redaxo eigentlich anders aus?

Lösung
nun auch hier die Lösung: MAMP hatte die Standardports verändert, weil es einen Konflikt gab. Port an localhost in der config angehängt, nun läufts.. Danke an alle!

HTTPS für die gesamte Seite nachträglich aktivieren

Verfasst: 11. Dez 2018, 22:55
von Koala
Frage:
Wo kann ich einstellen, dass Frontend und Backend nur über https aufgerufen werden dürfen, ohne das Setup neu zu starten?

Antwort:
Ändere in der redaxo/data/core/config.yml den Wert use_https: false zu use_https: true

3 YForm-Formulare mit unterschiedlichem form_name im selben Artikel - alle werden gleich ausgewertet

Verfasst: 19. Dez 2018, 20:50
von Koala
Frage:
3 YForm-Formulare auf der selben Webseite (selber Artikel) - form_name ist unterschiedlich, warum werden trotzdem alle 3 Formulare ausgewertet?

Antwort:
setze:

Code: Alles auswählen

$yform->setObjectparams('real_field_names', false);
dann gehts

Icons verwenden (Font Awesome)

Verfasst: 19. Dez 2018, 21:35
von Koala
Frage:
Hat jemand mal einen Link für mich wo ich sehen kann was für Icons ich im AddOn verwenden kann?

Antwort:
https://fontawesome.com/v4.7.0/icons/

ein Modul für Weiterleitungen zu externen Adressen?

Verfasst: 19. Dez 2018, 21:56
von Koala
Frage:
Gibt es für Redaxo 5 ein Modul für Weiterleitungen zu externen Adressen?

Antwort
In der Modulsammlung gibt es das modul “0410 - Interne Weiterleitung”. Diese muss nur entsprechend angepasst werden.

Wie kriege ich in einem Modul den Namen der direkt übergeordneten Kategorie/Artikel raus?

Verfasst: 20. Dez 2018, 22:13
von Koala
Frage:
Wie kriege ich in einem Modul den Namen der direkt übergeordneten Kategorie/Artikel raus?

Antwort:[/]

Code: Alles auswählen

rex_article::getCurrent()->getParent()->getName()

Wie komme ich denn in einem Addon an den CSRF Token?

Verfasst: 20. Dez 2018, 22:28
von Koala
Frage:
Wie komme ich denn in einem Addon an den CSRF Token?

Antwort:

Code: Alles auswählen

$csrf_token = rex_csrf_token::factory('project_manager');
$csrf_token->getValue()

git :: einen Fork neu holen

Verfasst: 20. Dez 2018, 23:55
von Koala
Frage:
Mal eine GIT-Frage. Einen Fork der gemerged wurde und ich möchte jetzt neu forken ... wie bekomme ich ein Update in meinen Fork oder besser Fork löschen und neu forken?

Antwort:
wenn man sich daran hält, dass man in seinem geforkten "master" branch keine änderungen macht, geht es sehr einfach:

Code: Alles auswählen

# in den master branch wechseln
git checkout master 
# die änderungen aus dem originalen master in den eigenen lokalen (also z.b. aus redaxo/redaxo)
git pull --rebase origin master fork abholen
# änderungen in den fork auf github schieben
git push