GithubHelp home page GithubHelp logo

redaxo4's Introduction

🌎 Deutsch

REDAXO

Content Management since 2004. Both simple and flexible.

REDAXO provides you an easy-to-learn website framework. It lets you create content from custom modules with full control of any input and output. It is multilingual, highly extendable and adapts to your workflow.

Screenshots

 

Changelog  |  Documentation  |  API Docs  |  Tricks  |  Slack  |  Twitter  |  Friends Of REDAXO  |  Community Map

   


Community ❤️

REDAXO is mainly used in German-speaking countries. However, the software already comes in several languages — English, Spanish, Italian, Swedisch, Portuguese — and the community is working on translating more and more content. If you don't understand German, please don't let that stop you from trying REDAXO: The community is known for being extremely helpful and friendly, and we will support you wherever we can! ✌️

Get to know REDAXO and its community:

1. Install CMS and check out the demo websites

This is probably the best way to get to know REDAXO: install the latest release, log in to the admin section and use the built-in Installer addOn to check out one of the demo websites. If you’re new to REDAXO or don’t speak german, search for demo_base (»Basisdemo«) as it is fully translated into English and explains all major topics.

Current demo websites: Base, Community, OnePage, FullPage.

2. Join our Slack

You’ll find a lot of community members in the Slack chat. And also the core developers. This is probably the best option to ask questions and get to know the community. —Happy to see you there, get your invite at redaxo.org/slack!

3. Find people on the Community World Map

Where in the world are people using REDAXO? The map will show you. 🌎 Your marker still missing? Learn how to place it on the map.

 

Contributions

To develop on core and core addons, set up the project with these steps:

  • Clone the repsoitory: git clone https://github.com/redaxo/redaxo redaxo && cd redaxo
  • Install the tools used for the development with Composer: composer install
  • You can use the provided Docker configuration to start a local development environment: docker-compose up -d. In case you need a port other than the default port 80, start it like this: REDAXO_PORT=8080 docker-compose up -d.

 

Copyright & License

REDAXO was developed by Yakamara (Frankfurt am Main/Germany 🇩🇪), is open-source since 2004 and is released under the MIT license.

 

Psalm coverage

redaxo4's People

Contributors

aeberhard avatar alxndr-w avatar bloep avatar dergel avatar dtpop avatar gharlan avatar sigmaalphapi avatar sjewo avatar staabm avatar tbaddade avatar wende60 avatar xong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redaxo4's Issues

Addons mit eignenen Pages ermöglichen sich über EP PAGE_CONTENT_HEADER einzuhängen

Achtung! Es kommt ne Issue Lawine von mir :) (Gregor wollte das...;))

  • Siehe: redaxo/redaxo#166
  • inkl. Mediepool!
  • Der RexSEO-Metainfo-"Wahnsinn" und Rex Multiuploader Patch-"Wahsinn" könnte damit vermieden werden. Als 3. fällt mir noch UrlReplace ein, bei welchem man dann nicht immer auf der Addon-Seite landet.

https://www.dropbox.com/s/kgekz48mhlcxvl0/rexseo_metainfos.png

https://www.dropbox.com/s/2hyeij5mtqecgbe/rex_multiupload_patches.png

auf be_search achten!
http://www.redaxo.org/de/forum/wunschliste-f5/wunsche-fur-die-nachste-r4-t18855.html#p103859

Import und Export

Hallo,
wäre echt hilfreich wenn man das Import/Export Addon so anpassen könnte das man alle Dateien, egal wie groß exportieren kann. Gerade bei vielen Bildern usw. ist man schnell am Ende mit dem Export.

Bei Wordpress gibt es z.b: ein Backup Plugin was die ganze Installation zippen kann, somit ist es egal wie viele oder wie groß die Dateien sind. Sowas in der Art wünsche ich mir für das Addon.

Schönen Gruß und Danke für die gute Arbeit.

_readme.txt -> .redaxo

(komme mir vor wie ein Spambot :)))

  • Oder: .rex / .rexcheck
  • Sind die überhauptwirklich wirklich sinnvoll? Wenn ja wäre es netter diese vom User zu verbergen. Außerdem denkt man "hmmm ne readme.txt die brauche ich net, lösch ich mal..." -> geht aber net
  • Zeitgemäßer

Deprecated: PHPMailer 2.8

Hey,

there is an deprecated notice in phpmailer version 2.8

Deprecated: Function ereg_replace() is deprecated in /www/redaxo/include/addons/phpmailer/pages/settings.inc.php on line 60

Use str_replace oder preg_replace instead. Assign to 4.3.4 or 4.4

Regards,
Hirbod

rex_title: gesetzte subpage attributes werden vererbt..

Setzt man für subpages z.b. das class Attribut, wird es für nachfolgende subpages einfach übernommen.. wenn man versucht es explizit nochmal zu überschreiben klappt das nicht. Lediglich wenn die eine subpage gerade aktuell afgerufen ist, wird das attribut korrekt ausgewertet.. Beispiel:

$REX['ADDON'][$mypage]['SUBPAGES'] = array (
  //     subpage    ,label                         ,perm   ,params               ,attributes
  array (''         ,'Einstellungen'               ,''     ,''                   ,''),
  array ('database' ,'Datenbank'                   ,''     ,''                   ,''),
  array ('modul'    ,'Modul'                       ,''     ,''                   ,''),
  array ('includes' ,'Include Beispiele'           ,''     ,''                   ,array('class'=>'blafasel')),
  array ('connector','Connector (faceless subpage)',''     ,array('faceless'=>1) ,array('class'=>'jsopenwin')),
  array ('help'     ,'Hilfe'                       ,''     ,''                   ,array('class'=>'foobar')),
);

Beim Aufruf der subpages vor "includes", wird für "includes" und die folgenden subpage sdie class "blafasel" gesetzt..
Beim Aufruf von "includes", wird für connector korrekt "jsopenwin" gesetzt, aber auch wieder für die folgende subpage "help" wiederum "jsopenwin" ..

[textile] caching..

Ich habe heute mal ausprobiert was mir immer wieder mal in den Sinn gekommen war: würde es sich lohnen Textile ein caching zu verpassen? Ich habe dafür mal hier in meiner Textile Addon Version (nur für Tests.. mit diversen lib Versionen die man per select switchen kann) folgenden simplen caching Mechnismus reingestrickt: https://github.com/jdlx/textile_addon/commit/3cab08830c845ea00263f3017830f227e404362f
Als Test-Markup habe ich etwas mit "Pfund" gewählt - konkret dieses hier: http://textile.sitemonks.com/?eg=RefGuide - und ins Textile Modul der Demo gepackt.

Ergebnis: Messungen mit microtime deltas der reinen parse Funktion vs. Caching haben zwar mit mehreren 100 mal schneller ein klar besseres Ergebnis gezeigt, aber da die absoluten Werte auch ohne caching im Nanosekunden Bereich liegen, wäre die Beschleunigung faktisch irrelevant im Kontext des gesamten script-Ablaufs. Aber: als ich dann mal mit Firebug bzw. Webinspector die pageloads angekuckt hab, waren die Unterschiede plötzlich im - je nach markup Menge/Komplexität - im Bereich von 5-10ms für die kleinen markup Blöcke der Demo, und satte 70ms (konkret hier bei mir 190ms vs 120ms) bei oben erwähntem markup schneller.

Ein rechte Erklärung für diesen riesen Unterschied gegenüber den microtime Messungen innerhalb rex_a79_textile() habe ich nicht.. ;) Jemand ne Idee?

Aber falls ich mit meinen Messungen bzw. der Interpretation nicht daneben liege, und ihr die bei euch nachvollziehen könnt, wäre die Beschleunigung selbst bei kleinen Blöcken, sprich im Bereich 5-10ms ja nicht ohne Belang. Da das caching imho robust und vom code her trivial ist, wäre das evtl. ne Überlegung wert..

PHPMailer Package

Redaxo4 still includes PHPMailer Version 1.3. This should be changed asap. xForm and much other AddOns using PHPMailer 2.8 and a lot of functions. The worst thing is, there are no information about the dependencies. xForm will just fail with an fatal error.

Please change the package to 2.8 or inform the user to update the current version, or xform will fail to send mails

textile => Interpretation der Zeichensätze ?

In der aktuellen Version 4.4.1 von REX funktioniert die Standardmodulausgabe teils fehlerhaft?

A) Variante mit dem Standardmodul

CODE:
$text = htmlspecialchars_decode("REX_VALUE[1]");
$text = str_replace("
","",$text);
$text = rex_a79_textile($text);

Bei dieser Variante werden die Parameter der Bilder mit Textile unsauber zusammengesetzt, da der Dateiname wegen & nicht mehr von REX gelesen werden kann?! Alle anderen TEXTILE-Tags funktionieren problemlos...

Beispiel CODE: img src="index.php?rex_img_type=fancybox_resize_250&rex_img_file=

Ist das ein Feature, ein Bug oder ein typischer Userfehler?

Medienpool - Löschen verweigert durch Ähnlichkeit im Dateinamen

In einem Tiny-MCE-Feld wurde ein Bild eingebunden:
"exklusiv-ferienhaus-provence.jpg"

Im Medienpool befindet sich ein Bild "ferienhaus_provence.jpg".
Dieses Bild sollte gelöscht werden, es kam jedoch ein Fehler, dass es sich in Verwendung befindet.

Die MySQL-Abfrage
SELECT DISTINCT article_id, clang FROM rex_article_slice WHERE value1 LIKE "%ferienhaus_provence.jpg%"
fand einen Datensatz, obwohl in Value1 eben nur "exklusiv-ferienhaus-provence.jpg" drin stand.

Nachdem das rausgenommen wurde, konnte "ferienhaus_provence.jpg" gelöscht werden.

Die Unterstrich / Gedankenstrich-Ähnlichkeit macht hier also anscheinend Probleme.

be_search - falsches selected

Ausgang Strukturverwaltung, nicht im Editiermodus eines Artikels

-> Sprung in Kategorie
-> Artikel in der Strukturverwaltung editieren
-> nächsten Sprung

alte Kategorie ist "selected"

Version 4.5 rausbringen statt 4.4.x

Ich würde gerne eine Version 4.5 rausbringen anstatt nur kleinere Optimierungen zu machen. Einerseits deswegen, weil man damit vielleihct einen Schritt näher zur Version 5 kommt, die, auch wenn sie rauskommt, noch Zeit braucht sinnvoll verwendet werden zu können (Externe AddOns die noch angepasst werden müssen etc) und auch, um eine Version zu haben, die von den Standards her eine einfachere Übernahme ermöglicht.

Deswegen würde ich gerne folgende Dinge hier definieren:

  • nur UTF-8
  • PHP 5.3 ist nötig und PHP 5.4 kompatibel
  • schauen was wir an kleinen Dingen von REX 5 schon reinnehmen könnten - ich denke an rex_path und einen Dataordner
  • und noch andere Dinge, die man dann über die Issues abfrühstücken könnte. Nur die Entscheidung auf 4.5 zu gehen ändert die Bedeutung von manchem Issues, deswegen wäre das schonmal wichtig zu klären.
  • jQuery 1.9 und no ConflictMode
  • und noch andere Dinge..

würde gerne aber noch Eure Meinung hören/lesen.

UTF-8 only

die langdateien und fallbacks entsprechend anpassen. keine auswahl in den sprachen mehr ermöglichen. in der master inc die sprache festzurren

autocreate ./generated/* hirarchy if missing..

Durch Versionierung z.b. kann es u.U. mal geschehen, daß ./generated/* komplett fehlt.. in dem Fall schmiert Redaxo auf die harte Tour ab. Fix: kleine Routine, welche die dirs anlegt falls sie fehlen..

[feature] rex_title() -> "tripage/subsubpage" navi..

Hatten wir schon mal irgendwo drüber gesprochen.. iirc zumindest mit @gharlan ..:

Schön wärs für tripages/subsubpages eine automatische navi per rex_title zu bekommen. Bislang macht das ja jeder $irgendwie zu Fuß, aber die Mühsal sollt man sich sparen können, zumal immer mehr Funktionalitäten als Addon Plugins daherkommen und man dort oft eben auch nochmal ne Plugin-eigenen Sub-Navi braucht.

HTML: wenn man im r4 backend einfach in div#rex-navi-page eine 2. ul reinschmeißt paßts imho schon recht gut.. noch ne border-top und das Ergebnis is brauchbar: http://dl.dropbox.com/u/10220684/screenshots/ea04f839791a1cb1bc9b5b6734f25cb9.PNG

Definition: imho am sympathischsten wärs einfach $REX['ADDON']['my_addon']['SUBPAGES'].. anolog nach unten zu erweitern..

[Demo] fatal error in Modul 04 Artikelweiterleitung

Wenn man mit dem Modul einen Block anlegt ohne einen Artikel angelegt zu haben, bekommt man in back/frontend einen fatal. Siehe: http://www.redaxo.org/de/forum/module-aktionen-f28/home-durch-artikelerweiterrung-geschrottet-t18850.html

Hotfix:

<?php

if(!$REX['REDAXO'] || ($REX['REDAXO']!=1 && 'REX_ARTICLE_ID' != 'REX_LINK_ID[1]'))
{
  if ( 'REX_LINK_ID[1]' != 0) 
  {
   rex_redirect('REX_LINK_ID[1]', $REX['CUR_CLANG']);
  }
}
else
{
  echo "Weiterleitung zu <a href='index.php?page=content&article_id=REX_LINK_ID[1]&mode=edit'>Artikel           REX_LINK[1]</a>";
}

?>```

rex_sql : set names utf8 nur bei erster DB Verbindung

Bei einer zweiten DBID wird die DB-Verbindung nicht auf utf8 gesetzt. Abhilfe schafft ein Query vorher mit SET NAMES abzusetzen

Falsches Ergebnis

$s = rex_sql::factory(3);
$s->setQuery($qry);

Richtiges Ergebnis

$s = rex_sql::factory(3);
$s->setQuery('SET NAMES utf8');
$s->setQuery($qry);

rex_standards class: container für oft benutzte intl. Code Listen..

Idee: container class für immer wieder mal benötigte Tabellen wie PHP Timezones, ISO CountryCodes, etc.

Natürlich kann man sich diese Listen ad hoc irgendwo runterladen und zu Fuß einklinken, und auch wenn das kein totaler Beinbruch per se ist, nervts doch eher.. daher wäre es schön sowas per se in rex zur Verfügung zu haben. Da sich diese Listen qua Standardisierung auch nicht alle Nase lang ändern, stellt es auch keinen wirklichen Supportaufwand dar sie innerhalb des frameworks vorzuhalten.

Eine Skizze für so eine class hab ich mal hier gescribbelt: class.rex_standards.inc.php

Konkrete Anwendung:

  • z.b. $REX['TIMEZONE'] select im backend
  • typische country selscts für frontend forms
  • etc..

REX_VALUE array (JSON) handling..

Ausgehend von der Diskussion in redaxo/redaxo#161 hier nochmal im r4 Kontext aufgegriffen bezügl. backport ja/nein und Details.. der Vollständigkeit halber nochmal der konkrete Vorschlag:

REX_VALUES die arrays sind per json_encode() zum string machen und so in die DB saven, bzw. als solchen (json string) wieder ausgeben.

Ein patch für r4 sähe z.b. so aus:
http://rexdev.de/rex_var_value-array-patch.html

Dann wäre es möglich z.b. wie folgt ein Modul-Multislsect zu bauen:

$tmp = new rex_select;
$tmp->setName('VALUE[14][]');
// ...
$tmp->setSelected(json_decode('REX_HTML_VALUE[14]')); 
//..

Letzter Stand der Diskussion bezügl. r4:

PHP < 5.2: Man könnte eine lib für ältere PHP Versionen einbinden.. nach ein bischen Recherche scheint mir diese am "erwachsensten": http://www.boutell.com/scripts/jsonwrapper.html
escaping/htmlspecialchars: Kein Eingriff, REX_VALUE[n] gibt den JSON string escaped aus, REX_HTML_VALUE[n] unescaped..
Wechselwirkungen mit Actions: Imho sollte es keine geben.. mindestens mal wenn man als name für den input was eigenes nimmt, sprich nicht VALUE... Mangels Erfahrung mit actions würd ich das aber eher noch mal wen anders abklopfen lassen..
Ausgabe als echtes array: würde einen backport von rex_var::to_array() o.ä. Methode erfordern..

rex_62_params -> restrictions fehlt u. best. Umständen

Ich hatte das letzten mal, Oli hatte es grad heute, können aber ad hoc nicht den Kontext wiederherstellen.. auf jeden Fall: unter bestimmten Umständen kann es passieren, daß das Feld restrictions in rex_62_params fehlt.. und man in metainfo dadurch keine neuen Felder anlegen kann.

Ein offensichtliches Symptom ist dann z.b. bei installiertem RexSEO, daß bei jedem backend Aufruf von RexSEO die Meldung kommt, daß die Metafelder neu angelegt wurden..

Sprich: im Hinterkopf behalten und mal drauf achten..

[feature] rex_navigation -> mehr features & flexibilität..

Liste der wünschenswerten Erweiterungen (bitte ergänzen ad lib..)

  • Vollständige Kontrolle von CSS Klassen bzw. IDs
  • Steuerung der Ausgabe über Metainfo Navigations-Typen.. z.b. (header_nav,footer_nav,left_nav,..)
  • Evtl. eingabaute AUTH Anbindung? Check per user_func oder so.. dunno

class.textile.inc.php

falsches Parsen

Eingabe

*123 - Text - bold* weiterer Fließtext

Ausgabe

Richtig: Version 2.0

<p><strong>123 – Text – bold</strong> weiterer Fließtext</p>

Falsch: Version 2.4.0

<ul123><li>- Text – bold* –  weiterer Fließtext</li></ul>

PHP 5.4 kompatibel machen

gregor: Die ganzen Strict-Meldungen sollten dann beseitigt werden. Der größte Teil wird erledigt sein, wenn die statischen Methoden ein "static" bekommen. Die Sichtbarkeiten (private, protected, public) würde ich aber bei den vorhandenen Klassen auskommentiert lassen, um keine zusätzlichen BC-Breaks zu erzeugen (eigentlich "private" Funktionen werden teilweise trotzdem direkt aufgerufen etc.).

das gilt es umzubauen und anzupassen

textile (html5) + standard.js (rex backend)

für REX4.x oder REX5

TEXTILE:

  • Anpassungen für HTML5 von OBSOLETE und DEPRECATED ELEMENTS
  • Ergänzung neuer Elemente: Audio & Video in Anlehnung an IMG
    z.B. !!video!! ODER !!!audio!!!

REX:

  • Anpassungen für die standard.js
    a) function insertVideo(src,desc) {}
    b) function insertAudio(src,desc) {}

//würde auch die Anpassung der standard.js und der textile.class vornehmen...?
=> vielleicht auch ein Selektor für (X)HTML4 und HTML5?

Import Export: Sortierung auf/absteigend einstellbar und nach filetime / Exportname einstellbar

  • Ich war etwas verwundert, das hier plötzlich Sortierreihenfolge sowie Dateiname geändert wurde. Generell finde ich, dass wenn man Einstellungen ändert die seit Jahren bestand haben, man auch die Möglichkeit für den User vorsieht diese wieder rückgängig zu machen, z.B. per Einstellungsseite. Bestes Beispiel: Firefox inkl. about:config 8) Schlechtstes Beispiel: Windows :shock: 8.
  • Deshalb: 11) Sortierung auf/absteigend einstellbar
  • Und: 12) Exportname einstellbar
  • Anmerkung: Aufsteigende Sortierung (so wie früher meine ich!) finde ich intuitiver, da in der Regel halt einfach auch bei Betriebssystem das der Stadard ist. Desweiteren ist mir hier der Exportname (z.B. "mydomain.de_rex433_de_de_utf8_28.01.2013_10h39") viel zu lang. Ich benutze hier: "mydomain.de_20130128_1039". Fertig!
  1. Als letztes würde ich mir hier eine Sortierung nach Dateiname nicht nach Datei filetime wünschen. Grund: Wenn man mehrer Exports auf nen Server hochlädt bekommen alle die gleiche filetime und schwups ist meine Sortierreihenfolge dahin. Mit sowas wie "mydomain.de_20130128_1039" ließe sich wunderbar per Dateiname sortieren

Nach "Block hinzufügen", erscheint Block nicht an oberster Stelle

Der Screenshot zeigt eigentlich was ich meine:
https://www.dropbox.com/s/sanerdw9tgtvm6g/slice_bottom.png

Slice wird nicht voll angezeigt, obwohl nach unten hin noch Platz wäre (siehe Browser-Scrollbalken-Position).

Hier finde ich sollte sich die Funktion "Block hinzufügen" genauso verhalten wie die Funktionen Editieren/Löschen, sprich per Anchor nach oben springen. Wäre so besser wie nur einen halben Slice am unteren Bildschirmrand angezeigt zu bekommen.

[textile] Beispielcode in Addon vs. Code in Demo-Modulen vs. Vorschlag..

Bin gerade wieder durch Zufall drauf gestoßen.. sowohl der Beispielcode, und erst recht der Code in den Demo Modulen ist untauglich sobald man wirklich mal (Source)Code per textile ausgeben will..

Beide führen dazu, daß singlequotes als numerisches entity dargestellt werden, der Code der Module sogar dazu, daß Variablen interpretiert werden.

Textile Addon Beispielcode: (single quotes broken)

$textile = htmlspecialchars_decode('REX_VALUE[1]');
$textile = str_replace("<br />","",$textile);
echo rex_a79_textile($textile);

Demo Modul Code: (single quotes broken, vars werden interpretiert, wozu die ### Erstzung mir persönlich unklar..)

$textile = htmlspecialchars_decode("REX_VALUE[1]");
$textile = str_replace("<br />","",$textile);
$textile = rex_a79_textile($textile);
$textile = str_replace("###","&#x20;",$textile);

Vorschlag:

$textile = htmlspecialchars_decode('REX_VALUE[1]');
$textile = str_replace('<br />','',$textile);
$textile = str_replace('&#039;','\'',$textile);
$textile = rex_a79_textile($textile);

Selbigen Code benutze ich schon seit langem ohne irgendwelche probs..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.